you may have heard of certain kinds of infinity (e.g. \(\aleph_0\), \(\aleph_1\), etc.). these are all cardinal infinities, which focus on whether one infinity can be mapped to another (for example, \(2\infty = \infty\) because we can map \(2\infty\) items onto \(\infty\) items by interleaving them). these infinities are very frequently covered, but there is another kind that i find a bit more interesting; these are the ordinal infinities.

the difference between cardinal and ordinal infinities is that both regard two infinities as equivalent iff the elements one can be mapped onto the other. the difference is that ordinal infinities do not allow the order of elements to be changed. for example, if we have \begin{equation}A=0,1,2,3,4,5,6,\dots\end{equation} and \begin{equation}B=1,2,3,4,5,6,\dots,0\end{equation}, \(A\) maps onto \(B\) in the cardinal system (just move the \(0\) from the beginning to the end), but not in ordinal as there's no last element of \(A\). this results in the systems being radically different, as we will soon see.

## numbers

we will define numbers similar to set theory, where \(0 := \{\}\) and \(Sx := x \cup \{x\}\), where \(Sx\) is the successor of x, i.e. \(x + 1\).

iteratively applying this successor function starting from zero, we have \(0 := \{\}\), \(1 := S0 = \{\{\}\}\), \(2 := S1 = \{\{\}, \{\{\}\}\}\), \(3 := S2 = \{\{\}, \{\{\}\}, \{\{\}, \{\{\}\}\}\}\), \(4 := S3 = \{\{\}, \{\{\}\}, \{\{\}, \{\{\}\}\}, \{\{\}, \{\{\}\}, \{\{\}, \{\{\}\}\}\}\}\), etc. we can get arbitrarily high numbers this way.

using this definition, \(x < y\) iff \(x \in y\). this is analogous to the definition of ordinal infinities using mappings of sequences as seen in (1) and (2) but i can't think of a proof so you'll just have to trust me.

## operations

we define \(x + Sy := Sx + y; x + 0 := x\) for addition, \(x \times Sy := (x \times y) + x; x \times 0 := 0\) for multiplication, and \(x^{Sy} := (x^y) \times x; x^0 := 1\) for exponentiation. we'll get to more notation later; all of the operations follow this sort of recursive definition.

## infinities

we can define a number greater than these, though. we define the set of all numbers you can get by iteratively applying successor from \(0\) as the first ordinal infinity, \(\omega\), which is greater than all finite numbers. this isn't the end though; \(\omega\) has a successor, \(S\omega = \omega \cup \{\omega\}\), which is greater than \(\omega\) as well as all finite numbers; there's also \(SS\omega\), \(SSS\omega\), \(SSSS\omega\), etc. we can generalize from here, taking all numbers we can get from iteratively applying \(S\) from \(\omega\), getting \(\omega + \omega\), or \(\omega \times 2\). (note: operations are not commutative. \(\omega \times 2 \neq 2 \times \omega\): \(2 \times \omega = 2 + 2 + 2 + \cdots = \cdots SSSS0 = \omega\).)

using the same method, we can reach \(\omega \times 3\), \(\omega \times 4\), \(\omega \times 5\), etc. up to \(\omega \times \omega = \omega^2\), but this still isn't the end. after \(\omega^2 + 1\), \(\omega^2 + \omega\), \(\omega^2 + \omega^2 = \omega^2 \times 2\), we get to \(\omega^2 \times \omega = \omega^3\), after which we can reach \(\omega^4\), \(\omega^5\), etc. up to \(\omega^\omega\). going even further we can reach \(\omega^{\omega^\omega}\), \(\omega^{\omega^{\omega^\omega}}\); iterating this results in a number which we cannot express with our current notation. let's fix that.

## more generalization

we might be able to generalize this trend (\(\omega + \omega\), \(\omega \times \omega\), \(\omega^\omega\), etc.). each operation is a repeated version of the operation before it. this can be formalized as hyperoperation, a generalization of the operations themselves. we define \(x [1] y := x + y\), \(x [2] y := x * y\), and \(x [Sz] Sy := (x [Sz] y) [z] x; x [Sz] 0 := 1\) for \(Sz > 2\). \([3]\) is exponentiation; you can match the definitions up.

using hyperoperation, we can find the next infinity after \(\omega [3] \omega = \omega^\omega\), \(\omega [4] \omega\), etc. can be \(\omega [\omega] \omega\), which is a very large number. of course we can then go to \(\omega [\omega + 1] \omega\), bringing us to things like \(\omega [\omega [\omega] \omega] \omega\), \(\omega [\omega [\omega [\omega] \omega] \omega]\omega\), and expanding upon that results in infinities to big to write with our current notation. i'll stop here, but as you can probably see by now, there is no limit to the number of ordinal infinities; you can go as far as you want.

## conclusion

you may notice that each of our notation systems fell short at some point. using traditional operations addition, multiplication, and exponentiation, we failed when we reached repeated exponentiation. using hyperoperation, we failed when we iterated upon hyperoperation itself. using more complex notation will get you a bit farther but not very much. it is in fact impossible to name all the ordinal infinities in a systematic way; similarly there is no possible computer representation. these are some very interesting properties in my opinion.

a similar structure to this appears in clicker games: once we get bored of one system, another system is introduced to automate that, sort of analogous to the iterative application we use to find new ordinal infinities. clicks lead to clickers, and once we get bored buying clickers we have the opportunity to start over with faster progression (usually called prestige); once repeated prestige gets boring, there are often higher levels of prestige that reset the game including the lower levels; this usually goes on until the game is multiple years long or something. most better clickers rely less on this and more on interesting mechanics (candy box has quests and brewing, universal paperclips has...a lot of things) but most follow this structure. it's obviously not a 1:1 correspondence with ordinal numbers but it has some similarities.

as humans, we really like to see patterns and extrapolate from them. but these numbers defy generalization, something that makes them pretty hard to think about without falling into a cycle of trying to generalize and getting stuck even more, something i find really neat.