Hacker News new | ask | show | jobs
by jacksnipe 451 days ago
Zero is a natural number. It is in the axioms of Peano arithmetic, and any other definition is just teachers choosing a taxonomy that best fits their lesson.
3 comments

> Zero is a natural number. It is in the axioms of Peano arithmetic, and any other definition is just teachers choosing a taxonomy that best fits their lesson.

It is, but it need not be. In the category of pointed sets with endofunctor, (Z_{\ge 1}, 1, ++) and (Z_{\ge 0}, 0, ++) are isomorphic (to each other, to (Z_{\ge 937}, 937, ++), and to any number of other absurd models), so either would do equally well as a model of Peano arithmetic.

I may be misunderstanding your argument, but if it's that of a simple offset, then only the one starting from 0 forms a monoid (a group without an inverse to each element). Though, of course, you could redefine the + operation...
> I may be misunderstanding your argument, but if it's that of a simple offset, then only the one starting from 0 forms a monoid (a group without an inverse to each element). Though, of course, you could redefine the + operation...

Yes, agreed, there is other algebraic structure that can tell the difference, but Peano arithmetic by itself cannot.

I think I’m missing something here. PA defines x * 0 = 0 for all x. So while we could take (Z+, 1, ++) as a model of it, we would be imposing a completely different definition of multiplication than the usual. Would this not be simply choosing to label 1 as 0 and work from there?
> I think I’m missing something here. PA defines x * 0 = 0 for all x. So while we could take (Z+, 1, ++) as a model of it, we would be imposing a completely different definition of multiplication than the usual. Would this not be simply choosing to label 1 as 0 and work from there?

Despite the name, in the usual mathematical meaning of the term, Peano arithmetic does not define arithmetic at all, only the successor operation, and everything else is built from there. Once we have those, for the model (Z_{\ge 0}, 0, ++), we certainly usually do define x0 = 0 for all x; and, you're right, if for the model (Z_{\ge 1}, 1, ++) we defined x1 = 1 for all x (as no-one could stop us from doing), then we'd just be dealing with "0 by another name." But it might be equally sensible, if our model of Peano arithmetic is (Z_{\ge 1}, 1, ++), to define x1 = x for all x, in which case we recover the expected arithmetic.

Sorry, but that’s incorrect. Multiplication is defined in the Peano axioms, in terms of S(x).

2 of the axioms are:

1. For all x, x*0 = 0

2. For all x, y: x*S(y) = x*y + y

In the usual terminology, these are not axioms; as your wording itself says, they are definitions. (Indeed, I'd argue that it's almost ungrammatical to say something is "defined in the axioms"; axioms may, and probably must, be stated in terms of definitions, but the definitions are not themselves axioms.) As I say, one can quibble about terminology, since what's important is less what's axiom and what's definition, and more what we can build on top of both; but the usual mathematical presentation separates out the axioms (numbered 1–9 at https://en.wikipedia.org/wiki/Peano_axioms#Historical_second..., though things like 2–5 wouldn't usually be stated as an axiom of the theory but rather of the ambient logic) from the definitions (see https://en.wikipedia.org/wiki/Peano_axioms#Defining_arithmet...).

(Now having written that and looking back, I see that, in my previous post https://news.ycombinator.com/item?id=43442074, I wrote "Despite the name, in the usual mathematical meaning of the term, Peano arithmetic does not define arithmetic at all, only the successor operation, and everything else is built from there." Perhaps this infelicitious-to-the-point-of-wrong wording of mine is the source of our difference? I meant to say that Peano arithmetic does not axiomatize arithmetic at all, but that arithmetic can be defined from the axioms. Thus the specific definition x[pt] = [pt] is eminently sensible if we consider the distinguished point [pt] to be playing the usual role of 0; but the definition x[pt] = x is also sensible if we consider it to be playing the usual role of 1, and even things like x[pt] = x + x + x + x + x can be tolerated if we think of [pt] as standing for 5, say. The axioms cannot distinguish among these options, because the axioms say nothing about multiplication.)

No, they are axioms. Peano arithmetic itself is a first-order theory, and a theory is just a recursively enumerable set of axioms.

Enderton, “A Mathematical Introduction to Logic, 2nd Ed.”, p,203,269-270

Kleene, “Mathematical Logic”, p.206

EDIT: It seems like you're talking about Peano's original historical formulation of arithmetic? That's all well and good but it is categorically not what is meant by "Peano Arithmetic" in any modern context. I've provided two citations from pretty far apart in time editions of common logic texts (well, "Mathematical Logic" is a bit of a weird book, but Kleene is certainly an authority) and I hope that demonstrates this.

There's a lot of reasons that the theory is pretty much always discussed as a first-order theory. The biggest, of course, is that when taken as a first-order theory it fits neatly into the proof and statement of Godel's Incompleteness Theorems, but iiuc it's just generally much less useful in a model theoretic context to take it as a second order theory (to the point where I only ever saw this discussed as a historical note, not as a mathematical one).

EDIT 2: This is all a digression anyway. Both first- and second-order PA label the start of the Z-chain as 0; so any model of PA contains 0 when interpreted as a model of PA.

There is no consensus on that, and it's not just about teachers. It depends on the mathematical field and tradition. It usually starts at 1 in German, at 0 in French due to the influence of the Bourbakis, and in English I think it's more field-dependent.

The original formulation of Peano started at 1.

+1 for peano arithmetic club.

I never realized it was controversial. I think I've always included 0 in the nat numbers since learning to count.

But there are some programming books I've read, I want to say the Little Typer, or similar, that say "natural number" or "zero". Which makes actually confuses me.

IMO zero represents an absence of quantity and doesn't appear in Nature, so it cannot be classified as a Natural number

Just like a negative numbers, it's a higher-level abstraction or a model, not a direct observation from the Nature

Likewise, the digit "0" originating from the Hindu-Arabic numeral system[1] is merely a notation, not a number

---

1. https://en.wikipedia.org/wiki/Hindu%E2%80%93Arabic_numeral_s...

> zero represents an absence of quantity and doesn't appear in Nature

From one point of view, zero never appearing in nature is exactly an example of it appearing in nature!

From another point of view, do you not think a prairie dog has ever asked another prairie dog, "how many foxes are out there now?" with the other looking and replying "None! All clear!"? Crows can count to at least 5, and will count down until there are zero humans in a silo before returning to it. Zero influences animal behavior!

From a third point of view, humans are natural, so everything we do appears in nature.

From a fourth point of view, all models are wrong, but some models are useful. Is it more useful to put zero in the natural numbers or not? That is: if we exclude zero from the natural numbers, do we just force 90% of occurrences of the term to be "non-negative integers" instead?

> From another point of view, do you not think a prairie dog has ever asked another prairie dog, "how many foxes are out there now?" with the other looking and replying "None! All clear!"?

  type PrairieDogFoxCount = NoFoxesAllClear | SomeFoxes 1..5 | TooManyFoxes

  type CrowCount = Some 1..5 | UpsideDown 5..1

  type HumanProgrammerCount = 0..MAXINT

  type HumanMathematicianCount = 0..∞
My point is: "No Foxes - All Clear" is not the same thing (the same level of abstraction) as 0.

> From a third point of view, humans are natural, so everything we do appears in nature.

using this definition everything is Natural, including fore example Complex numbers, which is obviously incorrect, and thus invalidates yr argument

> From a fourth point of view, all models are wrong, but some models are useful. Is it more useful to put zero in the natural numbers or not? That is: if we exclude zero from the natural numbers, do we just force 90% of occurrences of the term to be "non-negative integers" instead?

all models are wrong, but some are really wrong

If all u care is the length of the terms, i.e. "Natural" vs "non-negative integers", then what's wrong with 1-letter set names, like N, W, Z ?

I think the usefulness of including 0 into the set of natural numbers is that it closes the holes in various math theories like [1,2]

1. https://en.wikipedia.org/wiki/Peano_axioms

2. https://en.wikipedia.org/wiki/Set-theoretic_definition_of_na...

> using this definition everything is Natural, including fore example Complex numbers, which is obviously incorrect

No, that's not "obviously incorrect", nor does it invalidate my argument: that is my exact argument. Complex numbers appear in electromagnetism, in exactly the same sense of "appear", as whole numbers appear in herds of sheep. Which is to say, it's the simplest and most useful model of the situation. And what's more natural than one of the four fundamental forces of nature? And the weak & strong nuclear forces have even more esoteric math structures appearing in their most parsimonious models as well.

> "No Foxes - All Clear" is not the same thing (the same level of abstraction) as 0.

In your model. In my model, it is the same thing. All models are wrong; some models are useful. Which one is more useful? Almost always, the one with 0 as a natural number. What about this:

    type PrairieDogFoxCount = NoFoxesAllClear | JustOneFox | ACoupleOfFoxes | SeveralFoxes 3..5 | ManyFoxes
I can make any model as complex as I want; that does not prove some other model wrong.
> using this definition everything is Natural, including fore example Complex numbers, which is obviously incorrect, and thus invalidates yr argument

Except you’re wrong here; should we thus call your argument “obviously incorrect”?

Complex numbers are natural; they’re fundamental in quantum mechanics. Ever since Schrödinger’s equation fundamentally required them for time evolution of states, physicists (and philosophers) wondered if they could be removed. Recent experiments say “no.” QED and QFTs are the most precise theories known in all of science.

https://physicsworld.com/a/complex-numbers-are-essential-in-...

No doubt they're useful to explain some theories, but did someone observed in the Nature 6-4i apples or -7+3i particles?
A symbol being arbitrary doesn't influence the reality of the meaning behind a thing. I've always thought about `zero` while counting, it never was about `0`.

I observe zero.

I don't think zero is an absence of quantity. I don't think zero is the null set.

You can write types in a programming language, but there are other type theory books that do include zero in the natural numbers. And type theory comes from number/set theory. So it's ok if you decide to exclude it, but this is just as arbitrary.

In fact I'd be happy to write `>=0` or `>0` or `=0` any day instead of mangling the idea of zero representing 0 and zero representing something like `None`, `null` or any other tag of that sort. I don't think the natural world has anything like "nothing" it just has logical fallacies.

> I don't think zero is the null set.

zero is the cardinality of the empty set

> I observe zero.

it cannot be observed directly at any static point in time, but it can be observed as a dynamic process when some quantity goes down to empty and back up over time

> In fact I'd be happy to write `>=0` or `>0` or `=0` any day instead of mangling the idea of zero representing 0 and zero representing something like `None`, `null` or any other tag of that sort. I don't think the natural world has anything like "nothing" it just has logical fallacies.

N, W, R, etc. - r just well-known names for sets of numbers, nothing stops us from defining better or additional names for them (with self-describing names)

We can discuss Empty type[1] vs Unit type[2], but I think it goes off-topic

---

1. https://en.wikipedia.org/wiki/Empty_type

2. https://en.wikipedia.org/wiki/Unit_type