User blog:PsiCubed2/Letter Notation Part II

Primitive Recursive Functions Beyond H
So far, we had:


 * Fx = EEEE...EEEE(10^frac(x)) with int(x) E's


 * Gx = FFFF...FFFF(10^frac(x)) with int(x) F's


 * Hx = GGGG...GGGG(10^frac(x)) with int(x) G's

It would be natural to continue by defining I as repeated H and J as repeated I and so on, but then we'll reach the end with Zn being equivalent to a puny 10↑22n and we obviously don't want that.

So instead of adding more and more letters, we define an infinite set of primitive recursive functions:


 * 1|x = Ex


 * (n+1)|x = n|n|...|n|10^frac(x) with int(x) n's.

Thus we have 2|x=Fx, 3|x=Gx, 4|x=Hx and so on. And when n is an integer, we have:


 * k|n = 10↑kn

While we don't yet have a Universal-Canonical-Form for such numbers (the next section will deal with that by defining J), this extension already allows us to extend Bowers 3-Arrays to a second real argument:


 * {10,x,k} = k|x.

Defining J - The First Diagonalization
In the previous section we've defined an infinite sequence of functions, so we can diagonalize over them:


 * Jx = x|10.

But there are a couple of problems here:


 * (1) x|10 isn't yet defined for noninteger x.


 * (2) J1 would be 1|10 = 1010 rather than 10 = E1 = F1 = G1= H1. This would have caused trouble later on, when we define the higher levels.

To solve these two problems, we'll give a definition for x|10 and amend the definition of J:


 * (i) x|10 = (int(x)+1)|2*5^frac(x)


 * (ii) For x<2: Jx = Gx


 * (iii) For x≥2: Jx = x|10

(The seemingly complex expression in rule (i) simply gives us a smooth geometric curve between 2 and 10. This ensures that J would be continuous, given the identity 10↑k10 = 10↑k+12)

Now we have a continuous ω-level function J and we can write any number in J-Canonical Form. For example:


 * 1 = J0


 * π = J(log π) ≈ J0.4971


 * 10 = J1


 * 100 = E2 ≈ F1.3010 ≈ G1.1143 = J1.1143


 * 1010 = E10 = F2 = G1.3010 = J1.3010


 * Googolplex = EEE2 ≈ F3.3010 ≈ G1.5186 = J1.5186


 * Decker = F10 = G2 = J2


 * Tritri ≈ F(327) ≈ FE12.9 ≈ FEE1.11 ≈ FF2.045 ≈ G2.3107 = 3|2.3107 ≈ J2.0897


 * Tetra-taxis = 10↑↑↑4 = G4 = 3|4 ≈ J2.4307


 * 10↑↑↑10 = G10 = 3|10 = J3


 * 10↑↑↑10↑↑10↑42 = GFE42 ≈ GFF2.2104 ≈ GG2.3445 ≈ H2.3700 = 4|2.3700 ≈ J3.10548


 * 10↑↑↑10↑↑10↑43 = GFE43 ≈ GFF2.2131 ≈ GG2.3450 ≈ H2.3701 = 4|2.3701 ≈ J3.10550


 * Tritet = 4↑↑↑↑4 ≈ GGFFEE154 ≈ GGFFF3.3400 ≈ GGG3.5237 ≈ H3.5470 ≈ 4|3.5470 ≈ J3.3560


 * 10↑↑↑↑4 = H4 = 4|4  ≈ J3.4307


 * 10↑↑↑↑10 = H10 = 4|10 = J4 (as promised in the previous post)

Note that unlike the previous letters, J does not obey the general relation of 2= 10. This is a singular exception of the rule (which is easy to remember because we skipped I when we went from H to J).

K, L and Universal Canonical Forms up to L10
The definitions of K and L are simple enough:


 * Kx = JJJJ...JJJJ(10^frac(x)) with int(x) K's


 * Lx = LLLL...LLLL(10^frac(x)) with int(x) L's

And that's it. So Kn is comparable to fω+1(n) in the FGH, and Ln is comparable to fω+2(n).

Again we have K0=L0=1 and K1=L1=10, and both K and L are continuous. So any number greater than 1 has a unique K-Canonical Form and a unique L-Canonical Form.

Moreover, since J10=K2 and K10=L2, we can extend our definition of the "Universal Canonical Form" up to L10:

(1) if x<100 (that's E2) then we write down the E-Canonical Form of x.

(2) Otherwise, we write x as Ay for some letter A and 2≤y<10. If there is more than one possible choice, we choose the letter which comes first in the alphabet (so we write H2 rather than J3).

So basically, we have the progression:


 * E0...E2


 * E2...E10 (with E10=F2)


 * F2...F10 (with F10=G2)


 * G2...G10 (with G10=H2)


 * H2...H10 (with H10=J4 - the single exception!)


 * J4...J10 (with J10=K2)


 * K2...K10 (with K10=L2)


 * L2...L10

The Canonical Forms of Graham's Number
As an example, let's see how we can write Graham's Number in this system.

First, we need to find a representation for the Grahal (3↑↑↑↑3):


 * 3↑↑↑↑3 = 3↑↑↑3↑↑↑3 = 3↑↑↑(3↑↑3↑↑3) = 3↑↑↑(3↑↑7625597484987) ≈ GF7625597484987

(If this kind of quick approximation bothers you, it is possible to calculate the actual value of the number after the "GF" to arbitrary precision. It turns out to be about F7625597484986.041 so the above quick approximation is actually off by 1)

Now we'll find the J-Canonical Form of the Grahal:


 * GF7625597484987 ≈ GF(1012.882274) = GFE12.882274 ≈ GFE(101.1099925) = GFEE1.1099925 = GFF(2+log 1.1099925) ≈ GFF2.0453200 = GG(2+log 2.0453200) ≈ GG2.3107613 = H(2+log 2.3107613) ≈ H2.3637551 = 4|2.3637551 ≈ J(4-1+log52.3637551/2) = J3.1038277

So


 * 3↑↑↑↑3 ≈ J3.1038277.

And Graham's Number would be:


 * Graham's Number ≈ JJJJ...JJJJ3.1038277 with 64 J's = K(64+log 3.1038277) ≈ K64.491898

So the K-Canonical Form of Grahams number is K64.491898.

As for the Univeral Canonical Form of the same number:


 * K64.491898 ≈ K(101.8095052) = KE1.8095052 = KF(1+log 1.8095052) ≈ KF1.2575598 = KG(1+log 1.2575598) = KG1.0995287 = KJ1.0995287 ≈ KK(1+log 1.0995287) = KK1.0412066 = L(2+log 1.0412066) ≈ L2.0175369



Defining M
We already know how to do recursion (F,G,H,K and L) and simple diagonalization (J) in our continuous system, so we can easily extend our system up to ω×2-level in the FGH. In order to track our progress, we'll use the format (1,b)|x and define:


 * (1,0)|x = Jx


 * (1,n+1)|x = (1,n)|(1,n)|...|(1,n)|10^frac(x) with int(x) (1,n)'s

And define Mx in a way similar to Jx:


 * (i) (1,x)|10 = (1,int(x)+1)|2*5^frac(x)


 * (ii) For x<2: Mx = (1,3)|10


 * (iii) For x≥2: Mx = (1,x)|10

This gives rise to writing numbers in M-Canonical form (x=My for some y) and extend the Universal Canonical Form up to M10 (which is about fω×2(10) in the FGH).

A Supporting Array Notation and N
We can, of-course, repeat what we did in the previous section as many times as we wish and get the following ω2-level notation (n,m ≥ 0 are integers, and x≥0 is real):


 * (i) (0,1)|x = 10^x


 * (ii) (m,n+1)|x = (m,n)|(m,n)|...|(m,n)|10^frac(x) with int(x) (m,n)'s


 * (iii) (m,x)|10 = (m,int(x+1))|2*5^frac(x)


 * (iv) For x<2: (m+1,0)|x = (m,3)|x


 * (v) For x≥2: (m+1,0)|x = (m,x)|10

Note that (a,b)|x is an (ω×a+b)-level function. Also, if we read (0,n)|x as n|x, this notation is a direct extension of everything we did before this section. Also, in this new notation we can write:


 * Mx = (2,0)|x (because both are equal to (1,x)|10)

And with this new supporting notation we can now to define N:


 * (i) For x<2: Nx = (2,1)|x


 * (ii) For x≥2: Nx = (int(x),10*frac(x))|10

With rule (ii) containing a very neat trick that allows us to do the double-diagonalization with a single number:


 * N2 = (2,0)|10 = (1,10)|10 = M10


 * N2.1 = (2,1)|10


 * N2.2 = (2,2)|10


 * N2.9 = (2,9)|10


 * N3.0 = (3,0)|10 = (2,10)|10


 * N5.7 = (5,7)|10

The decimal point serves as a seperator for the double-diagonalization! Of-course Nx is a continuous function, so we can also have things like N2.225 which would be between N2.2=(2,2)|10 and N2.3=(2,3)|10. Indeed, N2.225 turns out to be about (2,3)|3.

At any rate, it isn't too difficult to see that N behaves "nicely" and allows us to speak of N-Canonical Forms of any number. And since N2=M10, this also enables us to write the Unversal Canonical Form of any number up to N10 (which is about fω²(10) in the FGH).

Examples of Universal Canonical Forms from J4 to N10
(for numbers less than J4, see my previous blog post)


 * 10↑↑↑↑10 = H10 = 5|2 = J4


 * PentoFaxul = 200!3 ≈ H198.1175 ≈ 5|2.023  ≈ J4.007


 * Tripent = {5,5,5} ≈ HHHH4.668 ≈ 5|4.669 ≈ J4.527


 * 10↑↑↑↑↑10 = 5|10 = 6|2 = J5


 * Trisex = {6,6,6} ≈ 6|5.7605 ≈ J5.657


 * 10↑↑↑↑↑↑10 = 6|10 = 6|2 = J6


 * Trisept = {7,7,7} ≈ 7|6.8347 ≈ J6.764


 * Tridecal = {10,10,10} = 10|10 = J10 = K2


 * 3→3→2→2 = {3,3,27} ≈ J26.11 ≈ K2.026


 * Boogol = {10,10,100} = 100|10 = J100 ≈ K2.047


 * Hyperfaxul = 200![1] ≈ J201 ≈ K2.055


 * {10,10,googol} = JEE2 ≈ K2.134


 * Moser ≈ J(Mega) ≈ JG2.1405 ≈ K2.310


 * g2 ≈ J(Grahal) ≈ JGFE13 ≈ K2.492


 * {10,3,1,2} = K3


 * Boogolplex = JJ100 ≈ JK2.047 = K3.047


 * g3 ≈ J(g2) ≈ JK2.492 ≈ K3.492


 * {10,4,1,2} = K4


 * {10,10,1,2} = K10 = L2


 * {10,11,1,2} = K11 ≈ L2.001423


 * Unaddom = fω+110 ≈ K11.0033 ≈ L2.001427


 * (10,64,1,2} = K64 ≈ L2.01749


 * Graham's Number ≈ K64.492 ≈ L2.01754


 * (10,65,1,2} = K65 ≈ L2.01758


 * XKCD Number ≈ J(Graham) ≈ JK64.492 = K65.492 ≈ L2.01763


 * Corporal = {10,100,1,2} = K100 ≈ L2.020


 * Forcal ≈ KE6 ≈ L2.041


 * Bed :-) ≈ KE100 ≈ L2.055


 * Grand Hyperfaxul = (200![1])![2] ≈ KJ201 ≈ L2.313


 * {3,3,2,2} ≈ KJ(tritri) ≈ KJFE13 ≈ L2.366


 * {10,3,2,2} = KK10 = L3


 * Conway's Tetratri = 3→3→3→3 ≈ KK26 ≈ L3.011


 * {4,4,2,2} = KKJJ(tritet) = KKJJGGFFEE154 ≈ L3.547


 * {10,4,2,2} = L4


 * {10,10,2,2} = L10 = M2


 * Three-ex-hyperfaxul ≈ {10,200,2,2} = L200 ≈ M2.003


 * {3,3,3,2} ≈ LKJFE13 ≈ LL2.366 ≈ (1,3)|2.374 ≈ M2.106


 * {10,3,3,2} = LL10 = (1,3)|3 ≈ M2.252


 * {4,4,3,2} ≈ LLKKKJJGGFFEE154 ≈ LLL3.547 ≈ (1,3)|3.550 ≈ M2.356


 * {10,4,3,2} = LLL10 = (1,3)|4 ≈ M2.431


 * Conway's Tetratet = 4→4→4→4 ≈ LLL255 ≈ (1,3)|4.010 ≈ M2.432


 * {10,10,3,2} = (1,3)|10 ≈ M3


 * {3,3,4,2} ≈ (1,3)|LKJFE13 ≈ (1,3)|(1,3)|2.374 ≈ (1,4)|2.375 ≈ M3.107


 * 5→5→5→5 ≈ (1,4)|5.013 ≈ M3.571


 * {10,10,4,2} = (1,4)|10 ≈ M4


 * Grand Tridecal = {10,10,10,2} = (1,10)|10 = M10 = N2


 * chan-2.c (Bignum Bake-off) output ≈ {10,10,47,2} = M47 ≈ (2,1)|2.0029 ≈ N2.00009


 * Biggol = {10,10,100,2} = M100 ≈ (2,1)|2.0037 ≈ N2.00011


 * {10,3,1,3} = MM10 = (2,1)|3 ≈ N2.0252


 * Biggolplex = {10,10,Biggol,2} = MM100 ≈ (2,1)|3.0037 ≈N2.0253


 * {10,4,1,3} = MMM10 = (2,1)|4 ≈ N2.0431


 * {10,10,1,3} = (2,1)|10 = N2.1


 * {10,10,2,3} = (2,2)|10 = N2.2


 * Tetratri = {3,3,3,3} ≈ (2,2)|(2,1)|MLKJFE13 ≈ (2,3)|2.3796 ≈ N2.2108


 * fω²(3) ≈ (2,3)|3.55 ≈ N2.2356


 * {10,10,3,3} = (2,3)|10 = N2.3


 * 5→5→5→5→5 ≈ (2,4)|5 ≈ N2.3569


 * {10,10,10,3} = (3,0)|10 = N3


 * Supertet = {4,4,4,4} ≈ (3,4)|3.55 ≈ N3.3356


 * fω²(4) ≈ (3,4)|4.67 ≈ N3.3527


 * 6→6→6→6→6→6  ≈ (3,5)|6 ≈ N3.4683


 * {10,10,10,4} = (4,0)|10 = N4


 * General = {10,10,10,10} = N10 = P2

Bonus: A Continuous Generalization of Bower 4-Arrays
For integer n, we have the following exact equivalences:


 * {10,n,a} = a|n


 * {10,10,n} = Jn


 * {10,n,a,b} = (b-1,a)|n


 * {10,10,n,b} = (b-1,0)|n


 * {10,10,10,n} = Nn

Replacing "n" with any real number x allows us - for example - to write Graham's Number as {10,64.492,1,2} or as {10,2.0175,2,2}.

Moreover, it isn't too difficult to generalize the above to any integer base b>2: Just replace all the 10's in the definitions with b, and all the 5's with b/2 and we're done. In particular, in base 3, we would have the following exact equation:


 * Graham's Number = JJJJJ...JJJJ4 with 64 J's (exactly! - in base 3)

We could also write:


 * 4 ≈ 31.261859 = E1.261859 (base 3) = F(1+log31.261859) (base 3) ≈ F1.211709 (base 3) = G(1+log31.211709) (base 3) ≈ G1.174795 (base 3) = J1.174795 (base 3)

Therefore:


 * Graham's Number ≈ JJJJJ...JJJJ1.174795 with 65 J's (base 3) = K(65+log31.174795) (base 3) ≈ K65.147 (base 3) = {3,65.147,1,2}

And that's all for now. As this post is already quite long, I'll define P and wrap things up in another post.

As always, feedback would be appreciated. :-)