Hacker News new | ask | show | jobs
by y3sh 1557 days ago
Think of it like an unbounded array of integer temperatures values -- if you keep adding memory you can keep adding more positive values to the end of the array infinitely, each with an indexable location (i.e. enumerating the set). But this concept breaks if we just say we'll throw all the negative values on after infinity; if we're infinitely adding positive values to the array, we'll never have the chance to stop and start with those negative Kelvin values on after. When this happens it's called non-enumerable (or more formally fails the test of diagonalization). It seems that the authors of this system chose to make +infinity an arbitrary enumarable point to show the negative Kelvin values in excess of that point. Having said that, the set of all integers (negative, 0, positive) should be enumerable (because you can just *=-1 each index), but not when infinity is a member of that set. I think there's a numberphile and veratisium on why not all infinity's are equal if curious to explore.
2 comments

Adding infinity to a set does not change it from numerable to non-numerable. There are plenty of ways to add infinity to a set, for example, you can take the natural numbers N and just add infinity:

0, 1, 2, 3, ..., ∞

It's also possible to add another set of natural numbers after infinity, but in this case infinity is usually call ω: https://en.wikipedia.org/wiki/Ordinal_number

0, 1, 2, 3, ..., ω, ω+1, ω+2, ω+3, ...

Your example with an array is just:

0, 1, 2, 3, ..., ∞, ..., -3, -2, -1

It's possible to define a "<" relationship there and a topology and most of the other usual stuff, but it's a numerable set.

There are similar constructions for non-numerable sets, like the real numbers. You can add one infinite on both sides and you get something that is topologically equivalent to the border of a circle, or add two infinites (one on each side) and you get something that is topologically equivalent to a closed interval, or add even more infinites https://en.wikipedia.org/wiki/Compactification_(mathematics)

We have to be careful with multiple infinities when one takes place after another, and in this case the "<" between two infinities is what I've highlighted as odd.

Indeed as you've illustrated the union of countable sets is countable, but unions aren't appropriate when order matters. The use of an array instead of a set data structure highlights this difference. The negative temperatures in the post begin after +∞. Because ordinals are an extension of enumerability we cannot simply drop ∞ into an array location and still call it enumerable. Speaking from turing recognizability / recursively enumerable languages there is no way for a machine to accept negative integers after all positive integers have been input.

and 0, 1, 2, 3, ..., ∞, ..., -3, -2, -1 is kind of an "integer projective line"

https://en.wikipedia.org/wiki/Projective_line#Line_extended_...

The "integer projective line" wraps around, and after -1 there is another 0 again, something like

..., 0, 1, 2, 3, ..., ∞, ..., -3, -2, -1, 0, 1, 2, 3, ..., ∞, ..., -3, -2, -1, 0, 1, 2, 3, ..., ∞, ..., -3, -2, -1, ...

where all the repetitions of a number are equivalent. In particular, you can not define a "<".

The example was

[stop], 0, 1, 2, 3, ..., ∞, ..., -3, -2, -1, [stop]

where you can define "<". This example is more similar to the temperature classification in the article in Wikipedia. You can pass through infinity, but you can't pass through 0. (Perhaps to be more similar, we should remove 0.)

You seem to be conflating concepts.