N primitive

N primitive (N原始 in Japanese, N PRIMITIV in German) is the generic name of difference sequence systems created by the Googology Wiki user Nayuta Ito. They are intended to surpass Bashicu matrix system version 2.3 with respect to koteitan's classification and admit simple isomorphisms between the set of standard expressions below \((0,1,3)\) and the set of standard Bashicu matrices whose restriction to the subset of standard expressions below \((0,1,2,4)\) is the identity map onto the subset of standard primitive sequences.

All functions defined by N primitive are intended to be computable and hence to be weaker than busy beaver function.

Version Name
There are several versions of N primitive. Here is a table of names of versions of N primitive.

Dead N primitive
A version of N primitive is said to be dead if it does not work as intended, and to be alive if it is not known to be dead. For example, N1.1 is supposed to be dead because it does not seem to admit a simple isomorphism between the set of standard expressions below \((0,1,3)\) and the set of standard Bashicu matrices. It does not mean that N1.1 is actually weaker than Bashicu matrix system version 2.3 or admits an infinite loop. Here is a table of the status of versions of N primitive.

Definition
The original definitions of N1.1, N1.1½, N1.2½, and N3.0 are open, and the original source code of N1.1.π is also open.

Here, we explain the definition of N1.1

Convention
We denote by \(\textrm{FinSeq}\) the set of finite sequences of natural numbers. Let \(a \in \textrm{FinSeq}\). We denote by \(\textrm{Lng}(a) \in \mathbb{N}\) the length of \(a\). For an \(i \in \mathbb{N}\) smaller than \(L\), we denote by \(a_i \in \mathbb{N}\) the \((1+i)\)-th entry of \(a\).

Bad Root Searching Rule
The bad root searching rule for N1.1 in the sense of the terminilogy in the article of difference sequence system is the partial computable function \begin{eqnarray*} \textrm{Parent} \colon \textrm{FinSeq} \times \mathbb{N} & \to & \mathbb{N} \\ (a,i) & \mapsto & \textrm{Parent}(a,i) \end{eqnarray*} defined in the following recursive way: By the definition, the restriction of \(\textrm{Parent}\) to the direct product of the set of standard primitive sequences and \(\mathbb{N}\) coincides with [the bad root searching rule for primitive sequence system]. The main difference from the bad root searching rule for primitive sequence system is that \(((1,1,2),1)\) belongs to the domain of \(\textrm{Parent}\). Actually, we have \(\textrm{Parent}((1,1,2),1) = 0\).
 * 1) Denote by \(L\) the length of \(a\).
 * 2) If \(i \geq L\), then \(\textrm{Parent}(a,i)\) is not defined.
 * 3) Suppose \(i < L\).
 * 4) Suppose that there exists a \(j \in \mathbb{N}\) larger than \(i\) such that \(\textrm{Parent}(a,j)\) is defined and coincides with \(i\).
 * 5) Denote by \(k\) the maximum of such a \(j\).
 * 6) If \(a_0 \geq 1\) and \(a_k-1 \leq a_i < a_{L-1}\), then put \(b := 1\).
 * 7) Otherwise, put \(b:= 0\).
 * 8) Otherwise, put \(b := 0\).
 * 9) Suppose \(b = 0\).
 * 10) If there exists an \(m \in \mathbb{N}\) smaller than \(i\) such that \(a_m < a_i\), then \(\textrm{Parent}(a,i)\) is the maximum of such an \(m\).
 * 11) Otherwise, \(\textrm{Parent}(a,i)\) is not defined.
 * 12) Suppose \(b = 1\).
 * 13) If there exists an \(m \in \mathbb{N}\) smaller than \(i\) such that \(a_m \leq a_i\), then \(\textrm{Parent}(a,i)\) is the maximum of such an \(m\).
 * 14) Otherwise, \(\textrm{Parent}(a,i)\) is not defined.

Difference Sequence
Since \(\textrm{Parent}\) satisfies the axiom of a bad root searching rule in the sense of the terminology in the article of difference sequence system, it induces the total computable maps \begin{eqnarray*} \begin{array}{lcrcl} \textrm{Ancestor} & \colon & \textrm{FinSeq} & \to & \textrm{FinSeq} \\ \textrm{RightNodes} & \colon & \textrm{FinSeq} & \to & \textrm{FinSeq} \\ \textrm{Kaiser} & \colon & \textrm{FinSeq} \setminus \{\} & \to & \textrm{FinSeq} \\ \end{array} \end{eqnarray*} introduced in the same article. Roughly speaking, \(\textrm{Ancestor}(a)\) is the sequence of indices of ancestors of the rightmost entry of \(a\), \(\textrm{RightNodes}(a)\) is the sequence of entries of ancestors of the rightmost entry of \(a\), and \(\textrm{Kaiser}(a)\) is the difference sequence of \(\textrm{RightNodes}(a)\).

For an \(a \in \textrm{FinSeq} \setminus \{\}\), we put \(\textrm{Height}(a) := \max \{k \in \mathbb{N} \mid a \in \textrm{dom}(\textrm{Kaiser}^{k+1})\}\), and denote by \(\textrm{Royal}(a)\) the diagonal difference sequence of \(a\) characterised by the following propeties: Roughly Speaking, \(\textrm{Royal}(a)\) is the sequence given as the left edge of the tower of the ancestor subsequences of difference sequences of \(a\).
 * 1) \(\textrm{Lng}(\textrm{Royal}(a)) = \textrm{Height}(a)\).
 * 2) For any \(i \in \mathbb{N}\) smaller than \(\textrm{Height}(a)\), \(\textrm{Royal}(a)_i = \textrm{RightNodes}(\textrm{Kaiser}^i(a))_0\).

For example, when \(a = (0,1,4,13,20,30,44,64)\), then \(\textrm{Royal}(a) = (0,1,2,1,0,1)\). The tower of the difference sequences of \(a\) is constructed in the following way: \begin{eqnarray*} \begin{array}{rcccccccccccccccccc} \textrm{RightNodes}(\textrm{Kaiser}^5(a)) & = & & & & & & & & & & ( & \color{red}{1} & ) & & & & & \\ \textrm{Kaiser}^5(a) & = & & & & & & & & & & ( & 1 & ) & & & & & \\ \textrm{RightNodes}(\textrm{Kaiser}^4(a)) & = & & & & & & & & & ( & \color{red}{0} &, & 1 & ) & & & & \\ \textrm{Kaiser}^4(a) & = & & & & & & & & & ( & 0 &, & 1 & ) & & & & \\ \textrm{RightNodes}(\textrm{Kaiser}^3(a)) & = & & & & & & & & ( & \color{red}{1} &, & 1 & , & 2 & ) & & & \\ \textrm{Kaiser}^3(a) & = & & & & & & & & ( & 1 &, & 1 & , & 2 & ) & & & \\ \textrm{RightNodes}(\textrm{Kaiser}^2(a)) & = & & & ( & \color{red}{2} &, & & & & & 3 & , & 4 & , & 6 & ) & & \\ \textrm{Kaiser}^2(a) & = & & & ( & 2 &, & & & 4 & , & 3 & , & 4 & , & 6 & ) & & \\ \textrm{RightNodes}(\textrm{Kaiser}(a)) & = & & ( & \color{red}{1} &, & 3 & , & & & 7 & , & 10 & , & 14 & , & 20 & ) & \\ \textrm{Kaiser}(a) & = & & ( & 1 &, & 3 & , & 9 & , & 7 & , & 10 & , & 14 & , & 20 & ) & \\ \textrm{RightNodes}(a) & = & ( & \color{red}{0} &, & 1 & , & 4 & , & 13 & , & 20 & , & 30 & , & 44 & , & 64 & ) \\ a & = & ( & 0 &, & 1 & , & 4 & , & 13 & , & 20 & , & 30 & , & 44 & , & 64 & ) \end{array} \end{eqnarray*} The occurence of \(0\) in the difference sequences is a characteristic property of N primitive. It is possible because the bad root searching rule for N1.1 allows parents sharing the values of entries unlike other difference sequence systems.

Bad Root
We define a total computable map \begin{eqnarray*} \textrm{BadRoot} \colon \textrm{FinSeq} \setminus \{\} & \to & \mathbb{N} \\ a & \mapsto & \textrm{BadRoot}(a) \end{eqnarray*} in the following recursive way: As the name of the function indicates, \(\textrm{BadRoot}(a)\) is the bad root of \(a\) with respect to the bad root searching rule \(\textrm{Parent}\). The initial segment of \(a\) of length \(\textrm{BadRoot}(a)\) will be regarded as the good part of \(a\), and the rest final segment of \(a\) will be regarded as the bad part of \(a\) in the expansion rule.
 * 1) Put \(b := \textrm{Kaiser}(a)\)
 * 2) Put \(L_0 := \textrm{Lng}(a)\)
 * 3) Put \(L_1 := \textrm{Lng}(b)\)
 * 4) If \(L_1 = 0\), then \(\textrm{BadRoot}(a) := L_0-1\).
 * 5) Suppose \(L_1 \neq 0\).
 * 6) Put \(r := \textrm{BadRoot}(b)\).
 * 7) If \(r = L_1-1\), then \(\textrm{BadRoot}(a) := \textrm{Ancestor}(a)_r\).
 * 8) If \(r \neq L_1-1\), then \(\textrm{BadRoot}(a) := \textrm{Ancestor}(a)_{r+1}\).

For example, when \(a = (0,1,4,13,20,30,44,64)\), then \(\textrm{BadRoot}(a) = 6\). The bad root searching of \(a\) is executed in the following way: \begin{eqnarray*} \begin{array}{rcccccccccccccccccc} \textrm{Kaiser}^5(a) & = & & & & & & & & & & ( & \color{red}{1} & ) & & & & & \\ \textrm{Kaiser}^4(a) & = & & & & & & & & & ( & \color{red}{0} &, & 1 & ) & & & & \\ \textrm{Kaiser}^3(a) & = & & & & & & & & ( & 1 &, & \color{red}{1} & , & 2 & ) & & & \\ \textrm{Kaiser}^2(a) & = & & & ( & 2 &, & & & 4 & , & 3 & , & \color{red}{4} & , & 6 & ) & & \\ \textrm{Kaiser}(a) & = & & ( & 1 &, & 3 & , & 9 & , & 7 & , & 10 & , & \color{red}{14} & , & 20 & ) & \\ a & = & ( & 0 &, & 1 & , & 4 & , & 13 & , & 20 & , & 30 & , & \color{red}{44} & , & 64 & ) \\ & \rightsquigarrow & & 0 & & 1 & & 2 & & 3 & & 4 & & 5 & & \color{red}{6} & & 7 & \end{array} \end{eqnarray*} Namely, mark the rightmost entry of the highest difference sequence. Then shift to the left downward. After then, repeat to shift right downward. The good part of \(a\) is \((0,1,4,13,20,30)\), and the bad part of \(a\) is \((44,64)\).

Reconstruction
We define a total computable map \begin{eqnarray*} \textrm{Reconstruct} \colon (\textrm{FinSeq} \setminus \{\})^2 & \to & \textrm{FinSeq} \\ (d,a) & \mapsto & \textrm{Reconstruct}(d,a) \end{eqnarray*} in the following recursive way: Roughly speaking, \(\textrm{Reconstruct}(d,a)\) is a sequence such that the difference sequence of a suitable subsequence related to \(\textrm{Ancestor}(b)\) is given by \(d\).
 * 1) Put \(r := \textrm{BadRoot}(a)\).
 * 2) Denote by \(b\) the sequence given by removing the first \(r\) entries from \(a\).
 * 3) Put \(L_0 := \textrm{Lng}(d)\).
 * 4) Put \(L_1 := \textrm{Lng}(\textrm{Ancestor}(b))\).
 * 5) Suppose \(L_1 \leq 1\).
 * 6) For each \((i,j) \in \mathbb{N} \times \mathbb{N}\) satisfying \(i+j  1\).
 * 11) Put \(q := \max \{k \in \mathbb{N} \mid k(L_1-1)+1 \leq L_0\}\).
 * 12) Put \(L_2 := \textrm{Lng}(b)\).
 * 13) For each \(i \in \mathbb{N}\) smaller than \((q-1)(L_2-1)\), we define a \(c_i \in \mathbb{N}\) in the following recursive way:
 * 14) Put \(q' := \max \{k \in \mathbb{N} \mid k(L_2-1) \leq i\}\).
 * 15) Put \(i' := i-q'(L_2-1)\).
 * 16) If \(q' = 0\), then \(c_i := a_{r+i}\).
 * 17) Suppose that \(q' \neq 0\) and \(i'\) is an entry of \(\textrm{Ancestor}(b)\).
 * 18) Denote by \(j' \in \mathbb{N}\) the unique number smaller than \(L_1\) satisfying \(i' = \textrm{Ancestor}(b)_{j'}\).
 * 19) If \(j' = 0\), put \(p := (q'-1)(L_2-1) + \textrm{Ancestor}(b)_{L_1-2}\).
 * 20) If \(j' \neq 0\), put \(p := q'(L_2-1) + \textrm{Ancestor}(b)_{j'-1}\).
 * 21) Set \(c_i := c_p + d_{q'(L_1-1)+j'}\).
 * 22) Suppose that \(q' \neq 0\) and \(i'\) is not an entry of \(\textrm{Ancestor}(b)\).
 * 23) Put \(j' := \max \{k \in \mathbb{N} \mid k < L_1 \land \textrm{Ancestor}(b)_k < i'\}\).
 * 24) Put \(p := q'(L_2-1) + \textrm{Ancestor}(b)_{j'}\)
 * 25) Set\(c_i := c_p + (c_{i-(L_2-1)} - c_{p-(L_2-1)}) + (d_{q'(L_1-1)+j'+1}- d_{(q'-1)(L_1-1)+j'+1})\).
 * 26) Set \(\textrm{Reconstruct}(d,a) := (c_i)_{i=0}^{(q-1)(L_2-1)-1}\).

For example, when \(d = (19,25,32,40,49)\) and \(a = (0,1,4,13,20,30,44,64)\), then \(\textrm{Reconstruct}(a,d) = (44,63,88,120,160)\). The reconstruction is executed in the following way: \begin{eqnarray*} \begin{array}{rccccccccccccccccc} d & = & & & & & & ( & 19 &, & 25 & , & 32 & , & 40 & , & 49 & ) \\ a & = & ( & 0 &, & \ldots & , & \color{red}{44} & , & 64 & ) & & & & & & & \\ & \rightsquigarrow & & & & & ( & \color{red}{44} &, & 63 & , & 88 & , & 120 & , & 160 & ) & \end{array} \end{eqnarray*} Here, we do not have a non-trivial offset, i.e. an entry between the bad root and the right most entry which is not an ancestor of the rightmost entry, and hence the reconstructed sequence is simply given by adding the entries of \(d\). Although the rightmost entry of \(d\) is not used in this case, it can be actually used in the cmputation of offsets.

Expansion
We define a partial computable map \begin{eqnarray*} [ \ ] \colon \textrm{FinSeq} \times \mathbb{N} & \to & \textrm{FinSeq} \\ (a,n) & \mapsto & a[n] \end{eqnarray*} in the following recursive way: Since \([ \ ]\) recursively call \([ \ ]\) itself, it is not trivial that \(((0,1,k),n) \in \textrm{dom}([ \ ])\) for any \((k,n) \in \mathbb{N}^2\). Actually, we have \(((0,1,k),n) \in \textrm{dom}([ \ ])\) and \begin{eqnarray*} (0,1,k)[n] = \left\{ \begin{array}{ll} (0,1) & (k = 0) \\ (\underbrace{0,1,0,1,\ldots,0,1}_{n+1}) & (k = 1) \\ (0,1,(k-1),(k-1)^2,\ldots,(k-1)^n) & (k > 1) \end{array} \right. \end{eqnarray*} for any \((n,m) \in \mathbb{N}^2\) by induction on \(n\).
 * 1) If \(a = \), then \(a[n] := \).
 * 2) If \(a \neq \) and \(\textrm{Kaiser}(a) = \), then \(a[n]\) is the sequence given by removing the rightmost entry from \(a\).
 * 3) If \(a = (0,1)\), then \(a[n]\) is the sequence of length \(n+1\) whose entries are \(0\).
 * 4) Suppose \(a \neq \), \(\textrm{Kaiser}(a) \neq \), and \(a \neq (0,1)\).
 * 5) Put \(H := \textrm{Height}(a)\).
 * 6) Denote by \(d \in \textrm{FinSeq} \setminus \{\}\) the sequence given by removing the first \(H-1\) entries from \(\textrm{Royal}(a)[n+H-1]\).
 * 7) For each \(i \in \mathbb{N}\) smaller than \(H\), define a \(C_i \in \textrm{FinSeq}\) in the following recursive way:
 * 8) If \(i = H-1\), then \(C_i := \textrm{Reconstruct}(d,\textrm{Kaiser}^{H-1}(a))\).
 * 9) If \(i \neq H-1\), then \(C_i := \textrm{Reconstruct}(C_{i+1},\textrm{Kaiser}^i(a))\).
 * 10) Put \(r := \textrm{BadRoot}(a)\).
 * 11) Denote by \(g \in \textrm{FinSeq}\) the initial segment of \(a\) of length \(r\).
 * 12) Denote by \(b \in \textrm{FinSeq}\) the sequence given by removing the first \(r\) entries from \(a\).
 * 13) Denote by \(b^{(n)} \in \textrm{FinSeq} \setminus \{\}\) the initial segment of \(C_0\) of length \(n(\textrm{Lng}(b)-1)\).
 * 14) Set \(a[n] := g \frown b^{(n)}\).

For example, when \(a = (0,1,4,13,20,30,44,64)\) and \(n = 4\), then \(a[n] = (0,1,4,13,20,30,44,63,88,120,160)\). The expansion of \(a\) is executed in the following way: \begin{eqnarray*} \begin{array}{rccccccccccccccccccccc} C_5 & = & & ( & \color{red}{0} &, & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & ) \\ C_4 & = & ( & \color{red}{0} &, & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & , & 0 & ) & \\ C_3 & = & & ( & \color{red}{1} &, & 1 & , & 1 & , & 1 & , & 1 & , & 1 & , & 1 & , & 1 & ) & & \\ C_2 & = & & & ( & \color{red}{4} &, & 5 & , & 6 & , & 7 & , & 8 & , & 9 & , & 10 & ) & & & \\ C_1 & = & & & & ( & \color{red}{14} &, & 19 & , & 25 & , & 32 & , & 40 & , & 49 & ) & & & & \\ C_0 & = & & & & & ( & \color{red}{44} &, & 63 & , & 88 & , & 120 & , & 160 & ) & & & & & \\ a & = & ( & 0 &, & \ldots & , & \color{red}{44} & , & 64 & ) & & & & & & & & & & & \\ & \rightsquigarrow & ( & 0 &, & \ldots & , & \color{red}{44} & , & 63 & , & 88 & , & 120 & , & 160 & ) & & & & & \end{array} \end{eqnarray*} Namely, expand the diagonal sequence given by \(\textrm{Royal}(a)\), replace the highest difference sequence by the sequence reconstructed by the expanded diagonal sequence, and repete the reconstruction step for each difference sequences.

Standard Form
We define a partial computable map \begin{eqnarray*} \textrm{Expand} \colon \textrm{FinSeq} \times \textrm{FinSeq} & \to & \textrm{FinSeq} \\ (a,n) & \mapsto & \textrm{Expand}(a,n) \end{eqnarray*} in the following recursive way: Namely, \(\textrm{Expand}(a,n)\) is just the formalisation of the iterated expansion \(a[n_0] \cdots [n_{L-1}]\).
 * 1) Put \(L := \textrm{Lng}(n)\).
 * 2) If \(L = 0\), then \(\textrm{Expand}(a,n) := a\).
 * 3) Suppose \(L \neq 0\).
 * 4) Denote by \(n'\) the initial segment of \(n\) of length \(L-1\).
 * 5) Set \(\textrm{Expand}(a,n) := \textrm{Expand}(a,n')[n_{L-1}]\).

For an \(a \in \textrm{FinSeq}\), We denote by \(I_a \subset \textrm{FinSeq}\) the recursively enumerable subset \(\{\textrm{Expand}(a,n) \mid n \in \textrm{FinSeq} \setminus \{\} \land (a,n) \in \textrm{dom}(\textrm{Expand})\}\).

We put \(OT := \bigcup_{k \in \mathbb{N}} I_{(0,1,k)}\), and call an element of \(OT\) a standard N primitive sequence. Since we have \(\textrm{Expand}((0,1,1),(1,0)) = (0,1,0)\) and \(\textrm{Expand}((0,1,2),(1)) = (0,1,1)\), \((0,1,k)\) is a standard N primitive sequence for any \(k \in \mathbb{N}\) by induction on \(k\).

Well-Foundedness
We define the binary relation \(a < b\) on \((a,b) \in \textrm{FinSeq}^2\) as the existence of an \(n \in \textrm{FinSeq}\) such that \(b \neq \), \(n \neq \), \((b,n) \in \textrm{dom}(\textrm{Expand})\), and \(a = \textrm{Expand}(b,n)\). The well-foundedness of the system \((OT,<)\) is open.

In order to argue the termination and the strength of the resulting computable large function which will be introduced later, we prepare a conjecture.

Of course, if we find an infinite loop in expansions of standard N primitive sequences, then \(\textrm{WFN1.1}\) is disproved. Although we do not know whether \(\textrm{WFN1.1}\) is consistent with \(\textrm{ZFC}\) or not, we sometimes explicitly assume it.

By the definition of \(OT\) as the image of \(\textrm{Expand}\) starting from standard N primitive sequences of the form \((0,1,k)\) for a \(k \in \mathbb{N}\), we obtain the following:

Ordinal Notation
We denote by \(<_{\textrm{lex}}\) the lexicographic ordering on \(\textrm{FinSeq}\). By the structural induction with respect to \([ \ ]\), we obtain the following:

By the order-lowering property, there is no simple infinite loop in expansions, i.e. there exists no \((a,n) \in \textrm{dom}(\textrm{Expand})\) such that \(a \neq \), \(n \neq \), and \(\textrm{Expand}(a,n) = a\). It implies that if there is an infinite loop in expansions, then it is so complicated that we need a non-trivial argument in order to show that it is actually an infinite loop.

Since \(\textrm{WFN1.1}\) implies that the restriction of \(<\) is a strict total ordering, we obtain have the following corollary of the order-lowering property:

Since \(<_{\textrm{lex}}\) is recursive, the recursiveness of \(OT\) implies the following corollary of the comparison of \(<\) and \(<_{\textrm{lex}}\):

For an \(a \in \textrm{FinSeq}\), if \((I_a,<)\) is a well-ordered set, we denote by \(o(a) \in \omega_1\) its ordinal type. By the recursive well-foundedness of \((OT,<)\), \(o(a)\) is defined and is a recursive ordinal for any \(a \in OT\) under the assumption of \(\textrm{WFN1.1}\).

Large Function
We define a partial computable map \begin{eqnarray*} F \colon \mathbb{N} \times \textrm{FinSeq} \times \mathbb{N} & \to & \mathbb{N} \\ (m,a,n) & \mapsto & F^m[a](n) \end{eqnarray*} in the following recursive way: We define a partial computable map \begin{eqnarray*} N \colon \textrm{FinSeq} \times \mathbb{N} & \to & \mathbb{N} \\ (a,n) & \mapsto & N(a,n) \end{eqnarray*} by setting \(N(a,n) = F^1[a](n)\). Since this construction is essentially equivalent to fast-growing hierarchy, \(N(a,n)\) coincides with \(f_{o(a)}[n]\) with respect to a suitable system of fundamental sequences as long as \(o(a)\) is defined. By the well-foundedness of N1.1 and the recursive well-foundedness of \((OT,<)\), we obtain the following:
 * 1) If \(m = 0\), then \(F^m[a](n) := n\).
 * 2) Suppose \(m = 1\).
 * 3) If \(a = \), then \(F^m[a](n) := n+1\).
 * 4) If \(a \neq \) and \(\textrm{Kaiser}(a) = \), then \(F^m[a](n) := F^n[a[0]](n)\).
 * 5) If \(a \neq \) and \(\textrm{Kaiser}(a) \neq \), then \(F^m[a](n) := F^1[a[n]](n)\).
 * 6) If \(m > 1\), then \(F^m[a](n) := F^{m-1}[a](F^1[a](n))\).

Of course, the assumption of \(\textrm{WFN1.1}\) is essential in the proof of the termination of N. In particular, the totality of \(N\) in \(\textrm{ZFC}\) set theory is open.