Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Which definition should be used? #605

tjgurwara99 started this conversation in General
Discussion options

// Pronic number: For any integer n, if there exists integer m
// such that n = m * (m + 1) then n is called a pronic number.

vs

// Pronic number: A number n is pronic, if there
// exists an integer m such that n = m * (m + 1)

given that the implementation is

// PronicNumber returns true if argument passed to the function is pronic and false otherwise.
func PronicNumber(n int) bool {
	if n < 0 || n%2 == 1 {
		return false
	}
	x := int(stdMath.Sqrt(float64(n)))
	return n == x*(x+1)
}

PS: Mathematicians being mathematicians by arguing which definition makes more sense 😂 in this context

You must be logged in to vote

Replies: 2 comments 7 replies

Comment options

@tjgurwara99 Rephrasing your suggestion:

// Pronic number: For any integer n, if there exists integer m
// such that n = m * (m + 1) then n is called a pronic number.

to

// Pronic number: Any integer n, satisfying
// n = m * (m + 1) for some integer m
// is called a pronic number.

makes it equally good as:

// Pronic number: An integer n is pronic, if there
// exists an integer m such that n = m * (m + 1).

In both cases I would not explicitly require that n is an integer, i.e. both

// Pronic number: Any number n, satisfying
// n = m * (m + 1) for some integer m
// is called a pronic number.
// Pronic number: A number n is pronic, if there
// exists an integer m such that n = m * (m + 1).

are equally good and I have no idea how to improve any of them.

I do not like the For any part in what you suggest. If you would insist of having such a thing, there is a third option:

// Pronic number: For any integer m the number
// m * (m + 1) is called a pronic number.
You must be logged in to vote
0 replies
Comment options

I think you're mistaken about the for all quantifier; there is no difference between the statements you suggested and the statement I suggested (try converting them in to second order logic statements and you'll see) other than the insistence on n being in the set of integers.

You must be logged in to vote
7 replies
Comment options

There were two things:

Why do I think that skipping for any makes the definition easier? It is like a shortcut. Of course the sentence any number n, such that n = k*(k+1), for some integer k, is called pronic, translates to the formally correct, 2nd order logic variant with for any. Using the for any in such definition is a bit like not using the "multiplication symbol" but defining it in place. Lengthy notions, like vector space, usually are defined without for any part (if you know some example of a text book or paper, please let me know). Why not to take take such shortcut here?

From my experience I can say, that non-mathematicians are a bit confused with the for any variants (For any n? I thought that I already have my n. etc.).

But honestly I think it is time to end this discussion and use the energy for something more meaningful.

Comment options

tjgurwara99 Nov 12, 2022
Maintainer Author

There are two thoughts I'm getting from your above comment:

  1. Using any is a shortcut and we are in agreement that the statements are equivalent (except the part about n belonging to integers) but since they are equivalent and one is a shortcut then does that mean the other is too, food for thought 🤔❓
  2. from your experience, for any variant is harder.

For 1, I can't convince you that any is not a shortcut without showing you loads of proofs and I don't think we both have time for that. Though depending on where you are in your mathematical career, can potentially direct you to resources 😄

For 2, I'm sure you would agree that, that statement is subjective. The kind of proofs that I'm used to (any variant of prove that for all a, there exists b and so on) choosing one arbitrary value for a shows that its true "for all" by the nature of using an arbitrary value so I don't think one is easier than the other, in fact both are equally hard but again I accept that this is subjective matter that even if one only knows programming they should be able to understand that "for any" and "any" are just two ways of saying the same thing, so let's leave it at that.

But honestly I think it is time to end this discussion and use the energy for something more meaningful.

Couldn't agree more.

Using the for any in such definition is a bit like not using the "multiplication symbol" but defining it in place

Are you talking about rings?

There are quite a few ways to define rings actually "A ring is a commutative group under addition that has a second operation: multiplication" is equivalent to Screenshot 2022年11月12日 at 01 26 02
but note that they are not the same statements (logically speaking - you can derive one from the other and vice versa thus they are equivalent - but in our case of above discussion they are actually the same logical statement).

PS: There are many ways of defining things, equally valid and equivalent (though I'm not talking about the same logical statements) and so you
as a mathematician have a choice on which one to use in which context

Anyways, I quite enjoyed this back and forth 😄 I don't get to do this anymore since I left academia so it was nice to talk about all this (trivial but meaningful to me) stuff 😄

Comment options

Please have a look at the definition of the ring, which you quote (the one on the screenshot). Why does it have a form "A ring is..." and not "For any set R, if ...., then R with operation '*' is a ring"?

Are you talking about rings?

I was rather referring to some set theoretical construction of numbers, but it does not matter, because I think you got the point that using shortcuts is useful.

Comment options

tjgurwara99 Nov 12, 2022
Maintainer Author

Why does it have a form "A ring is..." and not "For any set R, if ...., then R with operation '*' is a ring"?

Because the author chose it, NOT because one is easier than the other.

Comment options

tjgurwara99 Nov 12, 2022
Maintainer Author

For the point of using shortcuts, I agree but your statement was not a shortcut nor easy so... Make if it what you will 😄 enjoy your day. I'm gonna unsubscribe to this discussion since I'm not getting any benefit from it😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet

AltStyle によって変換されたページ (->オリジナル) /