**J Function Sandpit \(J_5\)**

The J Function is a work in progress. This sandpit defines a function called \(J_5\) which contains ideas that will be used in the final J Function. Click here for the J Function blog.

**Summary**

The \(J_5\) function is a combination of the logic and ideas used in my other \(J_3\) function and \(J_4\) function blogs. This function uses one real number "r" as an input parameter and will effectively produce every FGH function with ordinals in the Veblen hierarchy up to around SVO, i.e. a useful function to create simple references to some very large numbers which otherwise need complex notation that is difficult to read or understand.

**A Rough Sketch**

The \(J_4\) function is useful for generating ordinal milestones beyond \(\epsilon_0\) and into the Veblen Hierarchy. To start with, let's compare these milestones to the equivalent \(J_3\) functions.

\(J_4(0) = f_0(2) = 3 = J_3(0.375)\)

\(J_4(1) = f_1(2) = 4 = J_3(0.5)\)

\(J_4(2) = f_{\omega}(2) = 8 = J_3(1)\)

\(J_4(3) = f_{\omega+1}(2) = J_3(2.403)\)

\(J_4(4) = f_{\epsilon_0}(2) = J_3(2.47)\)

\(J_4(5) = f_{\epsilon_0+1}(2) >>\) growth rate of the \(J_3\) function

At this point, we can focus on two challenges that need to be solved to make a new function useful.

- Generalise the logic used in the \(J_3\) function to automatically generate most, if not all, FGH functions between any two \(J_4\) milestones. The logic used by \(J_3\) already achieves this between \(J_4(0), J_4(1), J_4(2), J_4(3)\) and \(J_4(4)\) so a good place to start is to generalize the logic to work between \(J_4(4)\) and \(J_4(5)\) but the real work will be to generalize the logic between any two milestones \(J_4(n)\) and \(J_4(n+1)\).
- Fix the gaps that appear in the range of FGH functions that the \(J_3\) function currently generates. The best example of this is very early on in the sequence of FGH functions that are generated by that function.

**Challenge of the Milestones**

Constructing all the valid FGH functions between 2 milestone ordinals has been achieved successfully in the \(J_3\) function. Generalising this for milestone ordinals beyond \(\epsilon_0\) can also be achieved by using very similar logic, but the logic needs to be applied to a more robust form of notation.

The Compact Veblen Notation is very robust. It can be used to represent any complex permutation of Veblen Hierarchy ordinals up to the Feferman–Schütte ordinal \(\Gamma_0\) and beyond, up to the Small Veblen Ordinal (SVO).

Work In Progress

**Challenge of the Gaps**

From the blog for the \(J_3\) function the starting sequence of FGH functions generated are as follows:

\(f_1^2(2), f_1^2(3), f_1^2(4), f_1^2(5), f_1^3(3), f_1^3(4), f_1^3(5), f_1^4(4), f_1^4(5), f_1^5(5), f_2^2(3)\)

The values of these functions are:

\(8, 12, 16, 20, 24, 32, 40, 64, 80, 160, 24.2^{24}\)

The sequence of values up to 160 is not complete, but I argue that it is a valid ascending sequence of numbers that illustrates different orders of magnitude. However, the jump from 160 to \(24.2^{24}\) is clumsy and reduces the usefulness of a function of this sort.

My proposed solution to this problem, is to extend the logic of the \(J_3\) function to support one more form of recursive behaviour. Specifically, while the logic will allow any FGH function of the form \(f_w^p(n)\) with n in the range 2 to 5, the logic needs to be extended to allow n to range between 2 to 5, **and**, any other previously calculated value in the \(J_3\) sequence. Therefore, the jump from \(f_1^5(5)\) to \(f_2^2(3)\) will be interrupted and FGH functions with n = 8, 12, 16, 20 and so on will be inserted.

Here is a sketch of how this will work.

\(f_1^5(5)\) is effectively a limit in the \(J_3\) function logic for any FGH function of the form \(f_1^p(n)\)

\(f_1^5(5) = f_2(5)\) and the \(J_3\) function logic then starts a new sequence with FGH functions of the form \(f_2^p(n)\). Note that p is not allowed to equal 1 in the \(J_3\) function logic.

An extension of the logic will allow FGH functions of the form \(f_w^1(n) = f_w(n)\), but only for values of n > 5 and up to the largest previously calculated value in the \(J_3\) sequence. Here is a worked example:

\(f_1^5(5) = f_2(5), f_2(8), f_2(12), f_2(16)\) and \(f_2(20)\)

The inserted FGH functions stop at n = 20, because n = 24 generates \(f_2(24) = f_2^2(3)\) which is the next FGH function in the sequence. The values generated by this new sequence is now:

\(8, 12, 16, 20, 24, 32, 40, 64, 80, 160, f_2(8), f_2(12), f_2(16), f_2(20), 24.2^{24}\)

or

\(8, 12, 16, 20, 24, 32, 40, 64, 80, 160, 2048, 49152, 1048576, 20971520, 24.2^{24} = 4.10^8\)

I argue that it is a valid ascending sequence of numbers to illustrate different orders of magnitude, and will make interesting comparisons for any normal "small" numbers as well as googolisms up to \(\epsilon_0\) and up to SVO.

The extended logic needs two things to be worked out.

- Calculating how many previously calculated values in the \(J_3\) sequence can be inserted until the original sequence can be resumed.
- Testing the logic for gaps further in the sequence when complex ordinals are being used with behavior that is not intuitive.

Work In Progress

**First Attempt**

Using Compact Veblen Notation and program code logic that is similar to the \(J_3\) function, I have built some example results as follows:

\(J_5(0) = \) 0

\(J_5(0.7) = \) 5

\(J_5(1) = \) 7

\(J_5(1.1) = \) f0^2(3)\( = f_{0}^{2}(3)\)

\(J_5(1.2) = \) f0^2(5)\( = f_{0}^{2}(5)\)

\(J_5(1.7) = \) f0^5(5)\( = f_{0}^{5}(5)\)

\(J_5(1.8) = \) f1^2(2)\( = f_{1}^{2}(2)\)

\(J_5(2.4) = \) f1^5(5)\( = f_{1}^{5}(5)\)

\(J_5(2.6) = \) f2^2(3)\( = f_{2}^{2}(3)\)

\(J_5(3.4) = \) f3^2(4)\( = f_{3}^{2}(4)\)

\(J_5(4.2) = \) f4^2(5)\( = f_{4}^{2}(5)\)

\(J_5(5) = \) f4^5(5)\( = f_{4}^{5}(5)\)

\(J_5(5.1) = \) f[1~1.1]^3(3)\( = f_{\phi(1)}^{3}(3) = f_{\omega}^{3}(3)\)

\(J_5(5.2) = \) f[1~1.1]^4(5)\( = f_{\phi(1)}^{4}(5) = f_{\omega}^{4}(5)\)

\(J_5(5.4) = \) f[1~1.2]^3(3)\( = f_{\phi(1).2}^{3}(3) = f_{\omega.2}^{3}(3)\)

\(J_5(5.5) = \) f[1~1.2]^4(4)\( = f_{\phi(1).2}^{4}(4) = f_{\omega.2}^{4}(4)\)

\(J_5(6.3) = \) f[1~2.1]+[1~1.1]^4(5)\( = f_{\phi(1)^{2}+\phi(1)}^{4}(5) = f_{\omega^{2}+\omega}^{4}(5)\)

\(J_5(6.7) = \) f[1~2.2]+[1~1.2]^5(5)\( = f_{\phi(1)^{2}.2+\phi(1).2}^{5}(5) = f_{\omega^{2}.2+\omega.2}^{5}(5)\)

\(J_5(7.6) = \) f[1~3.1]+[1~2.3]+[1~1.3]^2(5)\( = f_{\phi(1)^{3}+\phi(1)^{2}.3+\phi(1).3}^{2}(5) = f_{\omega^{3}+\omega^{2}.3+\omega.3}^{2}(5)\)

\(J_5(10.1) = \) f[2~1.1]^5(5)\( = f_{\phi(2)}^{5}(5) = f_{\omega^{\omega}}^{5}(5)\)

\(J_5(10.4) = \) f[2~1.2]^5(5)\( = f_{\phi(2).2}^{5}(5) = f_{\omega^{\omega}.2}^{5}(5)\)

\(J_5(11.0) = \) f[2~1.4]^4(5)\( = f_{\phi(2).4}^{4}(5) = f_{\omega^{\omega}.4}^{4}(5)\)

\(J_5(11.3) = \) f[2~2.1]^3(5)\( = f_{\phi(2)^{2}}^{3}(5) = f_{\omega^{\omega^{2}}}^{3}(5)\)

\(J_5(15.1) = \) f[3~1.1]^3(4)\( = f_{\phi(3)}^{3}(4) = f_{\omega^{\omega^{\omega^{3}}}}(4)\)

\(J_5(17.6) = \) f[3~3.1]^3(4)\( = f_{\phi(3)^{3}}^{3}(4) = f_{\omega^{\omega^{\omega^{3}}}}^{3}(4)\)

\(J_5(20) = \) f[4~1.1]^2(5)\( = f_{\phi(4)}^{2}(5) = f_{\phi(4)}^{2}(5)\)

\(J_5(22.5) = \) f[4~3.1]^2(5)\( = f_{\phi(4)^{3}}^{2}(5) = f_{\phi(4)^{3}}^{2}(5)\)

\(J_5(23.1) = \) f[4~3.2]+[4~2.1]^5(5)\( = f_{\phi(4)^{3}.2+\phi(4)^{2}}^{5}(5) = f_{\phi(4)^{3}.2+\phi(4)^{2}}^{5}(5)\)

\(J_5(24.63) = \) f[4~4.3]+[4~3.1]+[4~2.3]^2(5)\( = f_{\phi(4)^{4}.3+\phi(4)^{3}+\phi(4)^{2}.3}^{2}(5) = f_{\phi(4)^{4}.3+\phi(4)^{3}+\phi(4)^{2}.3}^{2}(5)\)

\(J_5(24.94) = \) f[4~4.4]+[4~3.1]^3(5)\( = f_{\phi(4)^{4}.4+\phi(4)^{3}}^{3}(5) = f_{\phi(4)^{4}.4+\phi(4)^{3}}^{3}(5)\)

\(J_5(25.00) = \) f[1,0~[1~1.1].[1~1.1]]+[1,0~[1~1.1].[1~1.1]]^2(3)\( = f_{\phi(1,0)^{\phi(1)}.\phi(1)+\phi(1,0)^{\phi(1)}.\phi(1)}^{2}(3) = f_{\epsilon_0^{\omega}.\omega+\epsilon_0^{\omega}.\omega}^{2}(3)\)

\(J_5(25.01)\)

= f[1,0~[1~1.1].[1~3.1]+[1~2.2]+[1~1.1]]+[1,0~[1~1.1].[1~2.1]+[1~1.1]]+[1,0~[1~1.1].[1~1.1]]+[1,0~[1~1.1].[1~1.1]]^2(4)

\(= f_{\phi(1,0)^{\phi(1)}.\phi(1)^{3}+\phi(1)^{2}.2+\phi(1)+\phi(1,0)^{\phi(1)}.\phi(1)^{2}+\phi(1)+\phi(1,0)^{\phi(1)}.\phi(1)+\phi(1,0)^{\phi(1)}.\phi(1)}^{2}(4)\)

\(= f_{\epsilon_0^{\omega}.\omega^{3}+\omega^{2}.2+\omega+\epsilon_0^{\omega}.\omega^{2}+\omega+\epsilon_0^{\omega}.\omega+\epsilon_0^{\omega}.\omega}^{2}(4)\)

At this point the code starts making mistakes, and I will need to find the bugs. The correct translation of the intended ordinal in this last example is in fact:

\(= f_{\epsilon_0^{\omega}.(\omega^{3}+\omega^{2}.2+\omega)+\epsilon_0^{\omega}.(\omega^{2}+\omega)+\epsilon_0^{\omega}.\omega+\epsilon_0^{\omega}.\omega}^{2}(4)\)

Or better still:

\(= f_{\epsilon_0^{\omega}.(\omega^{3}+\omega^{2}.3+\omega.4)}^{2}(4)\)

Note that by \(J_5(25)\) the function has surpassed the \(\epsilon_0\) ordinal and it should not be difficult to see that the function will be able to represent any complex permutation of Veblen Hierarchy ordinals up to the Feferman–Schütte ordinal \(\Gamma_0\) (and up to the Small Veblen Ordinal); once the bugs are ironed out.

Work In Progress