Measuring large numbers: Difference between revisions

From BusyBeaverWiki
Jump to navigation Jump to search
Tlonuqbar (talk | contribs)
No edit summary
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The Busy Beaver function is known to grow faster than any computable function, as do many of it's variants. Because of this, values of the function or lower bounds on the function can be very, very large, so it is important to find ways of representing these numbers; this article will cover these methods.
{{Stub}}
The busy beaver functions are known to grow faster than any computable function, as do many of their variants. Because of this, values of the function, or lower bounds on the function can be very, very large, so it is tempting to find ways of representing these numbers; this article will cover these methods.


Paradoxically, although the Kolgomorov complexity of stating "The runtime of program X" for the program X is typically very low, it is often not useful as it does not give us good information on about the size of the number. Informally, more "natural" or "combinatorial" ways of measuring large numbers are desired. Tools like the [[Fast-Growing Hierarchy]] can help us achieve this, as do Laver tables, or the diagonalization of an axiomatic foundation of mathematics.
Paradoxically, although the Kolgomorov complexity of stating "The runtime of program X" to define the runtime of program X is typically very low, it is often not useful as it does not give us good information on the size of the number. Informally, more "natural" or "combinatorial" ways of measuring large numbers are desired. Tools like Knuth's up-arrow notation can help us achieve this, as well as more powerful methods such as [[Fast-Growing Hierarchy|fast-growing hierarchy]] or the diagonalization of an axiomatic foundation of mathematics.


== Scientific notation ==
Scientific notation is one of the most common ways of representing exceedingly large numbers; numbers written in standard scientific notation symbolically consist of a multiplicand (taking a value between 1 and the base, though is sometimes omitted), a base (commonly 10) and an index (usually an integer, though sometimes takes non-integer values if the multiplicand is omitted).
For example, <math>8.68 \cdot 10^6</math> represents the number 8,680,000, whereas <math>6.022 \cdot 10^{23}</math> represents the number 602,200,000,000,000,000,000,000.
In cases where the index is not an integer, the representation usually represents an irrational number, though sometimes it can represent a rational number, or even an integer.
For example, <math>10^{7.67}</math> represents the number 46,773,514.1287..., an irrational number, whereas <math>16^{6.75}</math> represents the number 134,217,728, an integer.
Certain busy beaver values can most conveniently be represented using scientific notation; they include:
<math>S(3,3) > 1.19 \cdot 10^{17}</math>
<math>\operatorname{BBf}(23) > 4.39 \cdot 10^{124}</math>
<math>\operatorname{BB\lambda}(38) > 1.00 \cdot 10^{19,729}</math>
When representing certain exceedingly large numbers using scientific notation, the index itself may also be represented using scientific notation.
<math>S(2,5) > 10^{10^{10^{3,314,360}}}</math>
== Knuth's up-arrow notation ==
Knuth's up-arrow notation extends the sequence of recursive operators (i.e. addition, multiplication, exponentiation) to higher-order functions (e.g. tetration, pentation) which grow much more rapidly.
Tetration, the operation following exponentiation in the sequence of "hyperoperators" is defined by:
<math>a \uparrow \uparrow b = \begin{cases}
    1, & \text{if } b = 0
    \\ a^{a \uparrow \uparrow (b - 1)}, & \text{otherwise.}
    \end{cases}</math>
The lower bound for <math>S(2,5)</math> can thus be more concisely (though more weakly) written as <math>S(2,5) > 10 \uparrow\uparrow 4</math>.
Knuth's up-arrow notation generalizes this though the following formula (where an arrow with a superscript of n represents the operator indicated by n arrows):
<math>a \uparrow^{n} b = \begin{cases} 1, & \text{if } b = 0
    \\ a^b, & \text{if } n = 1
    \\ a \uparrow^{n - 1} (a \uparrow^{n} (b - 1)), & \text{otherwise.}
    \end{cases}</math>
Larger busy beaver values represented using Knuth's up-arrow notation include:
<math>S(2,6) > 10 \uparrow \uparrow \uparrow 3</math>
<math>S(4,3) > 10 \uparrow \uparrow \uparrow \uparrow 4</math>
<math>S(3,4) > 2 \uparrow^{15} 3</math>
<math>S(3,5) > 2 \uparrow^{2 \uparrow^{15} 3} 3</math>
In popular mathematics<!-- This is an oxymoron, as mathematics is not popular; please find a better way to state this. -->, Graham's number (<math>= g_{64}</math>) is represented using the following recursive function involving Knuth's up-arrow notation:
<math>g_n = \begin{cases}
    3 \uparrow \uparrow \uparrow \uparrow 3, & \text{if }n = 1
    \\ 3 \uparrow^{g_{n - 1}} 3, & \text{otherwise.}
    \end{cases}</math>
The Ackermann function <math>\operatorname{A}(n,n)</math> grows at roughly the same rate as <math>2 \uparrow^{n} 3</math>. It can be said to "diagonalize" across the hyperoperators, eventually dominating every single hyperoperator.
== Fast-growing hierarchy ==
The fast-growing hierarchy uses the fundamental sequences of ordinals to define further, stronger diagonalizations across fast-growing functions. Functions under the fast-growing hierarchy are written in the form <math>f_\alpha(n)</math>, and may be calculated according to three rules:
<math>f_0(n) = n + 1</math>
<math>f_{\alpha + 1}(n) = f_{\alpha}^n(n)</math>
<math>f_{\alpha}(n) = f_{\alpha[n]}(n)</math> where <math>\alpha</math> is a limit ordinal (i.e. not a successor of any ordinal, nor zero.)
The fast-growing hierarchy requires a defined set of fundamental sequences; the fundamental sequence of a limit ordinal <math>\alpha</math> consists of an ordered sequence of ordinals which has a supremum of <math>\alpha</math>.
It is suspected that in this wiki, and in most other spaces that deal with googology, the fundamental sequences described by Maksudov (2017) are used to define the fast-growing hierarchy.
In this manner, the value of <math>S(3,5)</math> can be more concisely (though more weakly) written as <math>S(3,5) > f_\omega(2 \uparrow^{15} 3)</math>.
Other busy beaver values that necessitate the use of the fast-growing hierarchy include:
<math>\operatorname{BB\lambda}(49) > f_{\omega + 1}\left(\frac{2 \uparrow \uparrow 6}{2}\right)</math>
<math>\operatorname{S}(51) > f_{\varepsilon_0 + 1}(8)</math>
<math>\operatorname{BB\lambda}(100) > f_{\psi_0(\Omega_\omega) + 1}(4)</math>
=== Defining fundamental sequences: ordinal notations and ordinal collapsing functions ===
Individually defining fundamental sequences for a transfinite number of ordinals may be less than ideal; thus, to define the fast-growing hierarchy effectively, ordinal notations, which define a computable mapping between sequences of symbols and ordinals can be used to define fundamental sequences instead.TODO<!-- somewhere in this section should mention
cantor form
primitive sequence system or kirby paris hydra
buccholz ocf and/or extension to p0(Lambda)
after that, go, be free. live. -->
== Theories ==
The proof-theoretic ordinal of a theory is defined as supremum of the order types of all ordinal notations that can be shown to be well-founded within the theory.
Some examples of proof theoretical ordinals include <math>\operatorname{PTO}(Q) = \omega</math>, <math>\operatorname{PTO}(PA) = \varepsilon_0</math>, and <math>\operatorname{PTO}(\operatorname{KP}) = \psi_0(\Omega_\omega)</math>.
The proof theoretic ordinal of second order arithmetic is unknown (relative to any ordinal notation), but is known to vastly exceed that of <math>\operatorname{KP}</math>.
They can be used to compare the strength of different theories, as well as (by definition) an indicator as to which ordinal notations (or functions that are derived from ordinal notations) cannot be shown to be well-founded (or total) in a theory.
A notable example of a theory which is directly used to create fast growing functions is the Calculus of Constructions (CoC), which has a proof-theoretic ordinal greater than that of any nth order arithmetic (Z<sub>n</sub>); well-formed statements in CoC can also be easily detected, and are strongly normalizing (TODO: explain what that means in this context).
CoC gives way to the fast growing function <math>D(n)</math> (defined by Ralph Loader in 2003 to create the eponymous Loader's number = <math>D^5(99)</math>), which computes something similar to (but larger than) "The largest number that is a minimal x where the statement <math>\phi(x)</math> is true, and where <math>\exists x \phi(x)</math> can be written in less than n symbols and shown to be true in CoC." <math>D(n)</math> outgrows all functions definable in <math>Z_\omega</math>; the growth rate of <math>D(n)</math> is sometimes informally written as <math>f_{\operatorname{PTO}(Z_\omega)}(n)</math>, though no fundamental sequence has yet been defined for all ordinals under <math>\operatorname{PTO}(Z_\omega)</math>.
The simplicity of CoC and <math>D(n)</math> has been utilized to show the following bounds for certain busy beaver values:
<math>\operatorname{BB\lambda}(1850) > D^5(99)</math>
<math>\operatorname{S}(1015) > D^5(99)</math>
An even stronger but simpler function, <math>q(n)</math>, has been derived from the structure of <math>\operatorname{I3}</math> cardinals, though it is unknown if this function can be shown to be total in <math>\operatorname{ZFC}</math> alone, and whether it grows faster than the aforementioned <math>D(n)</math>. It is used in the following (conjectured) bounds:
<math>\operatorname{BB\lambda}(201) > q(5)</math>
<math>\operatorname{S}(67) > q^{81}(q(5) - 2)</math>
== Resources ==
The Googology wiki hosts good information on methods of describing large numbers or large upper bounds for numbers.
The Googology wiki hosts good information on methods of describing large numbers or large upper bounds for numbers.


* https://googology.miraheze.org/wiki/Main_Page


[[Category:Stub]]
[[Category:Stub]]

Latest revision as of 23:43, 25 September 2026

The busy beaver functions are known to grow faster than any computable function, as do many of their variants. Because of this, values of the function, or lower bounds on the function can be very, very large, so it is tempting to find ways of representing these numbers; this article will cover these methods.

Paradoxically, although the Kolgomorov complexity of stating "The runtime of program X" to define the runtime of program X is typically very low, it is often not useful as it does not give us good information on the size of the number. Informally, more "natural" or "combinatorial" ways of measuring large numbers are desired. Tools like Knuth's up-arrow notation can help us achieve this, as well as more powerful methods such as fast-growing hierarchy or the diagonalization of an axiomatic foundation of mathematics.

Scientific notation

Scientific notation is one of the most common ways of representing exceedingly large numbers; numbers written in standard scientific notation symbolically consist of a multiplicand (taking a value between 1 and the base, though is sometimes omitted), a base (commonly 10) and an index (usually an integer, though sometimes takes non-integer values if the multiplicand is omitted).

For example, 8.68⋅106 represents the number 8,680,000, whereas 6.022⋅1023 represents the number 602,200,000,000,000,000,000,000.

In cases where the index is not an integer, the representation usually represents an irrational number, though sometimes it can represent a rational number, or even an integer.

For example, 107.67 represents the number 46,773,514.1287..., an irrational number, whereas 166.75 represents the number 134,217,728, an integer.


Certain busy beaver values can most conveniently be represented using scientific notation; they include:

S(3,3)>1.19⋅1017

BBf⁡(23)>4.39⋅10124

BBλ⁡(38)>1.00⋅1019,729


When representing certain exceedingly large numbers using scientific notation, the index itself may also be represented using scientific notation.

S(2,5)>1010103,314,360

Knuth's up-arrow notation

Knuth's up-arrow notation extends the sequence of recursive operators (i.e. addition, multiplication, exponentiation) to higher-order functions (e.g. tetration, pentation) which grow much more rapidly.

Tetration, the operation following exponentiation in the sequence of "hyperoperators" is defined by:

a↑↑b={1,if b=0aa↑↑(b−1),otherwise.

The lower bound for S(2,5) can thus be more concisely (though more weakly) written as S(2,5)>10↑↑4.

Knuth's up-arrow notation generalizes this though the following formula (where an arrow with a superscript of n represents the operator indicated by n arrows):

a↑nb={1,if b=0ab,if n=1a↑n−1(a↑n(b−1)),otherwise.

Larger busy beaver values represented using Knuth's up-arrow notation include:

S(2,6)>10↑↑↑3

S(4,3)>10↑↑↑↑4

S(3,4)>2↑153

S(3,5)>2↑2↑1533


In popular mathematics, Graham's number (=g64) is represented using the following recursive function involving Knuth's up-arrow notation:

gn={3↑↑↑↑3,if n=13↑gn−13,otherwise.


The Ackermann function A⁡(n,n) grows at roughly the same rate as 2↑n3. It can be said to "diagonalize" across the hyperoperators, eventually dominating every single hyperoperator.

Fast-growing hierarchy

The fast-growing hierarchy uses the fundamental sequences of ordinals to define further, stronger diagonalizations across fast-growing functions. Functions under the fast-growing hierarchy are written in the form fα(n), and may be calculated according to three rules:

f0(n)=n+1

fα+1(n)=fαn(n)

fα(n)=fα[n](n) where α is a limit ordinal (i.e. not a successor of any ordinal, nor zero.)

The fast-growing hierarchy requires a defined set of fundamental sequences; the fundamental sequence of a limit ordinal α consists of an ordered sequence of ordinals which has a supremum of α.

It is suspected that in this wiki, and in most other spaces that deal with googology, the fundamental sequences described by Maksudov (2017) are used to define the fast-growing hierarchy.

In this manner, the value of S(3,5) can be more concisely (though more weakly) written as S(3,5)>fω(2↑153).

Other busy beaver values that necessitate the use of the fast-growing hierarchy include:

BBλ⁡(49)>fω+1(2↑↑62)

S⁡(51)>fε0+1(8)

BBλ⁡(100)>fψ0(Ωω)+1(4)

Defining fundamental sequences: ordinal notations and ordinal collapsing functions

Individually defining fundamental sequences for a transfinite number of ordinals may be less than ideal; thus, to define the fast-growing hierarchy effectively, ordinal notations, which define a computable mapping between sequences of symbols and ordinals can be used to define fundamental sequences instead.TODO

Theories

The proof-theoretic ordinal of a theory is defined as supremum of the order types of all ordinal notations that can be shown to be well-founded within the theory.

Some examples of proof theoretical ordinals include PTO⁡(Q)=ω, PTO⁡(PA)=ε0, and PTO⁡(KP⁡)=ψ0(Ωω).

The proof theoretic ordinal of second order arithmetic is unknown (relative to any ordinal notation), but is known to vastly exceed that of KP.

They can be used to compare the strength of different theories, as well as (by definition) an indicator as to which ordinal notations (or functions that are derived from ordinal notations) cannot be shown to be well-founded (or total) in a theory.


A notable example of a theory which is directly used to create fast growing functions is the Calculus of Constructions (CoC), which has a proof-theoretic ordinal greater than that of any nth order arithmetic (Zn); well-formed statements in CoC can also be easily detected, and are strongly normalizing (TODO: explain what that means in this context).

CoC gives way to the fast growing function D(n) (defined by Ralph Loader in 2003 to create the eponymous Loader's number = D5(99)), which computes something similar to (but larger than) "The largest number that is a minimal x where the statement ϕ(x) is true, and where ∃xϕ(x) can be written in less than n symbols and shown to be true in CoC." D(n) outgrows all functions definable in Zω; the growth rate of D(n) is sometimes informally written as fPTO⁡(Zω)(n), though no fundamental sequence has yet been defined for all ordinals under PTO⁡(Zω).

The simplicity of CoC and D(n) has been utilized to show the following bounds for certain busy beaver values:

BBλ⁡(1850)>D5(99)

S⁡(1015)>D5(99)


An even stronger but simpler function, q(n), has been derived from the structure of I3 cardinals, though it is unknown if this function can be shown to be total in ZFC alone, and whether it grows faster than the aforementioned D(n). It is used in the following (conjectured) bounds:

BBλ⁡(201)>q(5)

S⁡(67)>q81(q(5)−2)

Resources

The Googology wiki hosts good information on methods of describing large numbers or large upper bounds for numbers.