Hacker News new | ask | show | jobs
by jmkr 455 days ago
+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.

1 comments

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?
They’re more than useful: they’re required, hence the research demonstrating it that I linked. That you don’t understand it doesn’t mean the rest of science is at your level of ignorance on the topic.

Your repeated, willful ignorance on a topic, especially when shown to you, is why you have such low understanding of the incorrect claims you make.

Take a moment and learn. Then maybe you’ll not repeat claims shown to be wrong.

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