# Rayo's number

Talk281*3,677*pages on

this wiki

Rayo's function | |
---|---|

Type | Uncomputable |

Growth rate | \(f_{\gg \omega_\alpha^\text{CK}}(n)\) |

**Rayo's number** is the largest named number, coined in a large number battle pitting Agustín Rayo against Adam Elga.^{[1]}^{[2]} Rayo's number is, in Rayo's own words, "the smallest positive integer bigger than any finite positive integer named by an expression in the language of first order set theory with a googol symbols or less."

By replacing "googol" with any positive integer, we get a very quickly growing function \(\text{Rayo}(n)\). Rayo's function is uncomputable; it is impossible for a Turing machine (and, by the Church-Turing thesis, any modern computer) to calculate \(\text{Rayo}(n)\) or \(\text{Rayo}(10^{100})\) without using infinite time and memory. In fact, even an oracle Turing machine, or any order-\(n\) Turing machine, cannot compute it.

The power of Rayo's function comes from diagonalizing over the *foundations of modern mathematics itself*! It is very difficult to devise a simple system significantly more powerful than \(\text{Rayo}(n)\), and in fact none have yet been created.

## Definition Edit

Let \([\phi]\) and \([\psi]\) be Godel-coded formulas and \(s\) and \(t\) be variable assignments. Define \(\text{Sat}([\phi], s)\) as follows:

∀R { { ∀[ψ], s: R([ψ],t) ↔ ([ψ] = "xᵢ ∈ xⱼ" ∧ t(xᵢ) ∈ t(xⱼ)) ∨ ([ψ] = "xᵢ = xⱼ" ∧ t(xᵢ) = t(xⱼ)) ∨ ([ψ] = "(¬θ)" ∧ ¬R([θ], t)) ∨ ([ψ] = "([θ]∧ξ)" ∧ R([θ], t) ∧ R([ξ], t)) ∨ ([ψ] = "∃xᵢ(θ)" ∧ ∃t′: R([θ], t′)) (where t′ is a copy of t with xᵢ changed) } ⇒ R([ϕ],s) }

Call a natural number \(m\) "Rayo-namable in \(n\) symbols" if there is a formula \(\phi(x_1)\) with less than \(n\) symbols and \(x_1\) as its only free variable that satisfies the following properties:

- There is a variable assignment \(s\), assigning \(x_1 := m\), such that \(\text{Sat}([\phi(x_1)], s)\).
- For any variable assignment \(t\), if \(\text{Sat}([\phi(x_1)], t)\), \(t\) must have \(x_1 = m\).

\(\text{Rayo}(n)\), then, is the smallest number greater than all numbers Rayo-namable in \(n\) symbols.

### Explanation 1 Edit

Disclaimer: Some background in set theory and mathematical logic is extremely helpful in understanding Rayo's number.

A **variable assignment** is some infinite sequence of objects such as \((3, 2, 6, 1/2, \{4, \pi\}, \text{Canada}, \omega, 65, \ldots)\). A **formula** is some statement about a variable assignment, such as "the third variable is relatively prime to the second one" or "the second variable is the set of all real numbers except for 3.2".

Rayo defined a very specific and abstract micro-language for describing how a formula works:

- "
*a*∈*b*" means that the*a*th member of the sequence is an element of*b*th member of the sequence. - "
*a*=*b*" means that the*a*th member of the sequence is equal to the*b*th member of the sequence. - "(¬
*e*)", for formula*e*, is the**negation**of*e*. - "(
*e*∧*f*)", for formulas*e*and*f*, indicates the logical**and**operation. - "∃
*a*(*e*)" indicates that we can modify the*a*th member of the sequence such that the formula*e*is true.

For example, take the formula "1∈2". This says "the member 1 is an element of the member 2," so we can plug in the variable assignment \((\text{apple}, \text{set of all types of fruits}, \ldots)\) and the result will be true, since apple is a type of fruit. If instead we plug in \((\text{cheese}, \text{set of all types of fruits}, \ldots)\), the result is not true because cheese is not a type of fruit.

A more complicated example: "(¬∃1(1∈2))". This says, "it is not true that there exists a member 1 such that member 1 is an element of member 2." In other words, we cannot pick member 1 such that member 1 is an element of member 2. This works when member 2 is the empty set, such as in the variable assignment \((3, \{\}, \ldots)\) No matter what we change the \(3\) to, it can never be a member of the empty set.

If a formula returns true when a variable assignment is plugged into it, we say that the variable assignment "satisfies" that formula.

Now we arrive at the core concept of Rayo-nameability, ignoring the length restriction:

- There is a formula \(\phi\) such that
**all satisfactory variable assignments must have \(m\) as their first argument**, and there is at least one such assignment.

First we shall show that 0 is Rayo-nameable. In the ordinal system, \(0 = \{\}\). We need to craft a formula \(\phi\) that forces \(\{\}\) as its first argument. One such string is "(¬∃2(2∈1))" = "we cannot pick variable 2 such that variable 2 is a member of variable 1" = "we cannot pick an element of variable 1" = "variable 1 has no elements" = "variable 1 is empty set".

Now we need to find a way to Rayo-name \(1 = \{\{\}\}\). We first put the empty set in variable 2 using the same trick as above: "(¬∃3(3∈2))". We also need "2∈1" to ensure that variable 1 is not an empty set. To ensure that 1 does not have any other elements, we use "(¬∃3((3∈1∧(¬3=2))))" = "we cannot pick variable 3 such that variable 3 is an element of variable 1, but is not the same as variable 2" = "if variable 3 is an element of variable 1, it must be variable 2" = "variable 2 is the only element of variable 1 (if variable 1 has any element)". We "and" all these statements together, we get "(((¬∃3(3∈2))∧2∈1)∧(¬∃3(3∈1∧(¬3=2))))".

We can continue with this pattern, defining each natural number using this method. It allows us to name the number \(n\) in \((9n^2 + 43n)/2\) symbols. With larger values, it is possible to define recursive operations, allowing us to Rayo-name larger and larger numbers using compact notation. Given a sufficiently large number, a Rayo string that defines exponentiation would need less symbols than our naïve technique.

We have all the pieces in place to define Rayo's function:

- Rayo's function \(\text{Rayo}(n)\) is defined as the smallest nonnegative integer greater than all nonnegative integers Rayo-nameable in at most \(n\) symbols.

Why is Rayo's function uncomputable? Using Rayo's microlanguage one can construct set elements of which are so called instantaneous descriptions of a Turing machine, and from this it's just a small step to define Busy Beaver function. With more effort, one can even construct oracle Turing machines and compute their analogues of Busy Beaver function.

### Explanation 2 Edit

We will open with Berry's paradox:

- Let
*x*be the smallest natural number not definable using at most twelve English words. Then*x*can be defined as "the smallest natural number not definable using at most twelve English words." We just defined*x*using at most twelve English words, so therefore*x*is not the smallest natural number not definable using at most twelve English words. This is a contradiction.

The source of the paradox is the ambiguity of the word "definable", and more fundamentally the ambiguity of the English language itself. Rayo's function circumvents these mathematical sins by replacing English with the formal system called *first-order set theory* (FOST). FOST is the system of first-order logic with the von Neumann universe as the domain. Specifically, FOST is capable of determining set membership, quantifying over the universe, and applying logical operators. The nitty-gritty details of how this works are given above.

We fix the loophole that causes Berry's paradox, resulting in the following definition:

- the smallest natural number that cannot be uniquely identified by a FOST expression of at most
*n*symbols

This is a trivial variation on Rayo(*n*), which is actually:

- the smallest natural number
**greater than all natural numbers that can**be uniquely identified by a FOST expression of at most*n*symbols

The paradox is gone now because the definability has been replaced with a formal system. FOST, like all formal systems, is subject to Tarski's undefinability theorem, which says we can't formally define truth, let alone definability, so FOST can't invoke FOST the way English can invoke English.

## Ambiguity Edit

Rayo's definition introduces an ambiguity that, when resolved, opens up a world of possibilities to extend the function. The ambiguity is that Rayo did not specify what axioms are used to prove that certain variable assignments satisfy formulae. We can reasonably assume that he intended to use ZFC, but we can replace that with other systems to make weaker and stronger variants of Rayo's function.

## History Edit

Rayo and Elga's number duel was based on the article "Who Can Name the Bigger Number?" by Scott Aaronson.

In January 2013, Adam Goucher reported that \(\text{Rayo}(n)\)'s growth rate is comparable to \(f_{\omega^\text{CK}_\omega}(n)\) in the fast-growing hierarchy^{[3]}, where \(\omega^\text{CK}_\omega\) is the limit of the sequence of admissible ordinals \(\omega^\text{CK}_1\), \(\omega^\text{CK}_2\), \(\omega^\text{CK}_3\), ... (\(\omega^\text{CK}_1\) is known as the Church-Kleene ordinal). He then devised the xi function, whose growth rate is believed to be the first fixed point of \(\alpha \mapsto \omega_\alpha^\text{CK}\).

However, the claim has turned out to be incorrect, because Goucher misunderstood the definition of Rayo's number as the "largest integer expressible uniquely by n symbols in first-order arithmetic". Second-order arithmetic is much stronger, and first order set theory is even stronger than that. First-order arithmetic's domain of discourse is the natural numbers, but first order set theory's domain of discourse is defined to be sets of the entire von Neumann universe. Therefore, Rayo's function is almost certainly more powerful than the xi function, and \(\text{Rayo}(n)\)'s growth rate in FGH is still in search.

## Author Edit

The number was invented by **Dr. Agustín Rayo**, an Associate Professor of Linguistics and Philosophy at the Massachusetts Institute of Technology where he received his PhD in 2001.^{[4]}

## Sources Edit

- ↑ Big Number Duel
- ↑ Profs Duke It Out in Big Number Duel
- ↑ Goucher, Adam. The Ξ function. Retrieved 2013-03-21.
- ↑ MIT philosophy faculty: Agustín Rayo. Retrieved February 2013.

## See alsoEdit

127 · 256 · 32767 · 65536 · 2147483647 · 4294967296**Bignum Bakeoff contestants**: marxen.c · loader.c**Uncomputable functions:** Rado's sigma function · Xi function · **Rayo's number**