User blog:Spitemaster/Golfing Large Numbers

Since seeing this SE question on golfing a number bigger than Loader's number, I've been pondering how one might do so. To that end, I've developed an array notation that I can evaluate in under 512 bytes that gets as large as possible as quickly as possible. To evaluate, do these steps in order (whenever 1 is available, do 1, then 2, and so on). "..." refers to the rest of the array and can be empty:

1    $$\langle ...,a,0,...\rangle[b,...] \rightarrow \langle ...,a-1,b,...\rangle[b,...]$$

2    $$\langle ...,a\rangle[b] \rightarrow \langle ...,a-1\rangle[(b,...,b)b]$$

3    $$\langle 0\rangle[...] \rightarrow [...]$$

4    $$(...,a,0,...)b \rightarrow (...a-1,b,...)b$$

5    $$[...,(...,a)b] \rightarrow [...,(...,a-1)b,...,(...,a-1)b]$$

6    $$(0)a \rightarrow a$$

7    $$[...,1] \rightarrow [...]$$

8    $$[...,1,a,...] \rightarrow [...,a,a-1,...]$$

9    $$[a,b,c,...,d] \rightarrow [[a,b-1,c,...,d],[a,b,c-1,...,d],...,d-1]$$

10    $$[a,b] \rightarrow [a+b]$$

11    $$[a] \rightarrow a$$

A note on rule 9: in particular, $$\langle 1\rangle[(2)3,(4)5,6] \rightarrow \langle 1\rangle[(2)\langle 1\rangle[(2)3,(4)4,6],(4)\langle 1\rangle[(2)3,(4)5,5],5]$$

We calculate the value of $$[(1)x]$$:

$$[x,x] = x+x = f_1(x)$$

$$[x,x,2] = [[x,x-1,2],[x,x,1],1] = [x,x-1,2] + x+x > x*x+x*(x-1)/2 > x^2 = f_2(x)$$

$$[x,x,3] = [[x,x-1,3],[x,x,2],2] > [[x,x-1,3],x^2,2] > x^3$$

...

$$[x,x,x] > x^x = f_3(x)$$

This can be extended, and we find that $$[(1)x]$$ is about $$f_{2x-1}(x)$$, roughly $$f_\omega(x)$$.

We next calculate the value of $$[(2)x]$$:

$$[(1)x,x] = [(1)2x] = f_{4x-1}(2x)$$

$$[(1)x,x,2] = [(1)[(1)x,x-1,2],[(1)x,x,1],1] = [(1)...[(1)x,1,2]...],f_{4x-1}(2x)] > f_{2x-1}^x(x)$$

In fact, if $$g(y) = f_{2y-1}(y)$$, then $$[(1)x,x,2] > g^x(x)$$. This has power roughly $$f_{\omega2}(x)$$

I conjecture, though I cannot prove it, that $$[(1)x,x,x] > g^{f_3(x)}(x)$$, and $$[(1)x,x,...,x] > g^{f_{2x-1}(x)}(x)$$. This has power roughly $$f_{\omega3}(x)$$

This is still not close to $$[(2)x]$$, which is $$[(1)x,(1)x,...,(1)x]$$. We continue:

$$[(1)x,(1)x] = [(1)x,x,x,...,x] = g^{f_{2x-1}(x)}(x)$$

$$[(1)x,(1)x,2] = [(1)[(1)x,(1)x-1,2],g^{f_{2x-1}}(x),1]$$

We can see the pattern here, and predict that $$[(2)x]$$ is roughly equivalent to $$f_{\omega^2}(x)$$.

If so, then further conjecture puts $$[(x)x]$$ at $$f_{\omega^\omega}(x).$$

$$[(1,0)x]=[(x)x]$$, and $$[(1,1)x]=[(x+1)x]$$ is only slightly larger. But when we get to $$[(1,2)x]$$, we have $$[(1,1)x,(1,1)x,...,(1,1)x]$$, meaning that it takes quite a few steps before rule 4 is applied more than once. I'm fairly certain that $$[(1,2)x]$$ is at least $$f_{\epsilon_0}(x)$$. I really am ill-equipped to judge. Further conjecture:

$$[(1,x)x] ~ f_{\epsilon_\omega}$$

$$[(2,x)x] ~ f_{\epsilon_{\epsilon_\omega}}$$

$$[(x,x)x] ~ f_{\sigma_0}$$

I don't know where to go from here, except to note that $$\langle 9,9,...,9\rangle[9]$$ (with 9e9999 9s, the largest I can currently do with 512 bytes) is much larger still. Any thoughts?