<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bbchallenge.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JLM</id>
	<title>BusyBeaverWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bbchallenge.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JLM"/>
	<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/wiki/Special:Contributions/JLM"/>
	<updated>2026-04-30T23:16:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7204</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7204"/>
		<updated>2026-04-18T05:07:05Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Macros */ Fix typos in AckDiag2 macro def&amp;#039;n.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0, at which point it returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Triangular numbers&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, R(S, C(Plus[2], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization &amp;amp; Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagRep[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagRep[f] := R(S, C(f, P^3_2, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. (\lambda z. f(z,z))^x (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagS[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagS[f] := C(f, S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f(x+1, x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag2[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  AckDiag2[0,f]    &amp;amp; :=  &amp;amp; RepSucc[f] \\&lt;br /&gt;
  AckDiag2[n+1,f]  &amp;amp; :=  &amp;amp; DiagRep[AckDiag2[n,f]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;5n + 4 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag[n,f] := DiagS[AckDiag2[n,f]]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;5n + 7 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|≥ 3&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0, Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 15&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492990073820545125 12 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 39&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492997385247264941 12 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10^{13.35}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10^{10^{463}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 8&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+18&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+19&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+20&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+21&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&amp;gt; Graham&#039;s number&lt;br /&gt;
|See [https://github.com/sligocki/etc/blob/main/gen_rec/src/example_ack.rs example_ack.rs]&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1494396445208608788 16 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cryptids ==&lt;br /&gt;
Jacob Mandelson constructed a size 141 [[Cryptid]] on 8 Apr 2026 [https://discord.com/channels/960643023006490684/1447627603698647303/1491642156295913482], shrunk to 139 by 17 Apr 2026.[https://discord.com/channels/960643023006490684/1447627603698647303/1494889866704588983]&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
Let &amp;lt;math&amp;gt;C = \frac{1}{\log_{10}(2)} \approx 3.32&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AckDiag[k, S] ===&lt;br /&gt;
Let &amp;lt;math&amp;gt;AS_k(n) := DiagRep^k[RepSucc[S]](n,n) = AckDiag[k,S](n-1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_0(n) = S^n(n+1) = 2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_1(n) = AS_0^n(n+1) = (n+2) 2^n - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_1(n) &amp;gt; C \cdot 10^{n/C}&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_2(n) = AS_1^n(n+1) &amp;gt; C \cdot (10 \uparrow)^n \left( \frac{n+1}{C} \right) &amp;gt; 10 \uparrow\uparrow n \left[ \uparrow \frac{n+1}{C} \right]&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_k(n) = AS_{k-1}^n(n+1) &amp;gt; (10 \uparrow^{k-1})^n (n+1)&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;k \ge 3&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;n \ge 1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== AckDiag[k, Tri] ===&lt;br /&gt;
Let &amp;lt;math&amp;gt;AT_k(n) := DiagRep^k[RepSucc[Tri]](n,n) = AckDiag[k,Tri](n-1)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(n) = Tri^n(n+1) &amp;gt; 2 \left( \frac{n+1}{2} \right)^{2^n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(2) = 21&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_0(3) = 1540&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_0(4) &amp;gt; 10^{7.42}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(n) &amp;gt; C 10^{10^{\left(\frac{n-1}{C}\right)}} + 1&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(n) = AT_0^n(n+1) &amp;gt; C (10 \uparrow)^{2n-2} \left( \frac{AT_0(n+1)}{C} \right)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(2) &amp;gt; 10^{10^{AT_0(3) / C}} &amp;gt; 10^{10^{463}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_1(3) &amp;gt; 10^{10^{10^{10^{AT_0(4) / C}}}} &amp;gt; 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(n) &amp;gt; 10 \uparrow\uparrow 2n&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(n) = AT_1^n(n+1) &amp;gt; (10 \uparrow\uparrow)^{n-1} (AT_1(n+1))&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(2) = AT_1^2(3) &amp;gt; AT_1(10 \uparrow\uparrow 5) &amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_2(3) = AT_1^3(4) &amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 8&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(n) &amp;gt; 10 \uparrow\uparrow\uparrow (n+1)&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_3(n) = AT_2^n(n+1) &amp;gt; (10 \uparrow\uparrow\uparrow)^{n-1} (AT_2(n+1))&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_3(2) = AT_2^2(3) &amp;gt; AT_2(10 \uparrow\uparrow\uparrow 3) &amp;gt; 10 \uparrow\uparrow\uparrow 10 \uparrow\uparrow\uparrow 3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7203</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7203"/>
		<updated>2026-04-18T02:46:08Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Cryptids */ Shrinkage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0, at which point it returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Triangular numbers&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, R(S, C(Plus[2], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization &amp;amp; Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagRep[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagRep[f] := R(S, C(f, P^3_2, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. (\lambda z. f(z,z))^x (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagS[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;DiagS[f] := C(f, S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f(x+1, x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag2[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  AckDiag2[0,f]    &amp;amp; :=  &amp;amp; RepSucc[f] \\&lt;br /&gt;
  AckDiag2[n+1,f]  &amp;amp; :=  &amp;amp; DiagRep[Ack[n,f]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;5n + 4 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;AckDiag[n,f] := DiagS[AckDiag2[n,f]]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;5n + 7 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|≥ 3&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0, Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 15&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492990073820545125 12 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 39&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492997385247264941 12 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[0,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10^{13.35}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10^{10^{463}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[1,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|28&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|30&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 8&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[2,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[3, S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+18&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k,Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+19&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+20&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k,Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|5k+21&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(AckDiag[k+1, S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 13 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|100&lt;br /&gt;
|&amp;gt; Graham&#039;s number&lt;br /&gt;
|See [https://github.com/sligocki/etc/blob/main/gen_rec/src/example_ack.rs example_ack.rs]&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1494396445208608788 16 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Cryptids ==&lt;br /&gt;
Jacob Mandelson constructed a size 141 [[Cryptid]] on 8 Apr 2026 [https://discord.com/channels/960643023006490684/1447627603698647303/1491642156295913482], shrunk to 139 by 17 Apr 2026.[https://discord.com/channels/960643023006490684/1447627603698647303/1494889866704588983]&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
Let &amp;lt;math&amp;gt;C = \frac{1}{\log_{10}(2)} \approx 3.32&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== AckDiag[k, S] ===&lt;br /&gt;
Let &amp;lt;math&amp;gt;AS_k(n) := DiagRep^k[RepSucc[S]](n,n) = AckDiag[k,S](n-1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_0(n) = S^n(n+1) = 2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_1(n) = AS_0^n(n+1) = (n+2) 2^n - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_1(n) &amp;gt; C \cdot 10^{n/C}&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_2(n) = AS_1^n(n+1) &amp;gt; C \cdot (10 \uparrow)^n \left( \frac{n+1}{C} \right) &amp;gt; 10 \uparrow\uparrow n \left[ \uparrow \frac{n+1}{C} \right]&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AS_k(n) = AS_{k-1}^n(n+1) &amp;gt; (10 \uparrow^{k-1})^n (n+1)&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;k \ge 3&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;n \ge 1&amp;lt;/math&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== AckDiag[k, Tri] ===&lt;br /&gt;
Let &amp;lt;math&amp;gt;AT_k(n) := DiagRep^k[RepSucc[Tri]](n,n) = AckDiag[k,Tri](n-1)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(n) = Tri^n(n+1) &amp;gt; 2 \left( \frac{n+1}{2} \right)^{2^n}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(2) = 21&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_0(3) = 1540&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_0(4) &amp;gt; 10^{7.42}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_0(n) &amp;gt; C 10^{10^{\left(\frac{n-1}{C}\right)}} + 1&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(n) = AT_0^n(n+1) &amp;gt; C (10 \uparrow)^{2n-2} \left( \frac{AT_0(n+1)}{C} \right)&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(2) &amp;gt; 10^{10^{AT_0(3) / C}} &amp;gt; 10^{10^{463}}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_1(3) &amp;gt; 10^{10^{10^{10^{AT_0(4) / C}}}} &amp;gt; 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_1(n) &amp;gt; 10 \uparrow\uparrow 2n&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(n) = AT_1^n(n+1) &amp;gt; (10 \uparrow\uparrow)^{n-1} (AT_1(n+1))&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(2) = AT_1^2(3) &amp;gt; AT_1(10 \uparrow\uparrow 5) &amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 5&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;AT_2(3) = AT_1^3(4) &amp;gt; 10 \uparrow\uparrow 10 \uparrow\uparrow 10 \uparrow\uparrow 8&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_2(n) &amp;gt; 10 \uparrow\uparrow\uparrow (n+1)&amp;lt;/math&amp;gt; (for &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_3(n) = AT_2^n(n+1) &amp;gt; (10 \uparrow\uparrow\uparrow)^{n-1} (AT_2(n+1))&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;AT_3(2) = AT_2^2(3) &amp;gt; AT_2(10 \uparrow\uparrow\uparrow 3) &amp;gt; 10 \uparrow\uparrow\uparrow 10 \uparrow\uparrow\uparrow 3&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7171</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7171"/>
		<updated>2026-04-13T02:20:12Z</updated>

		<summary type="html">&lt;p&gt;JLM: Rename RepDiag to RepDiagS.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0, at which point it returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiagS[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiagS[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiagS[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7142</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7142"/>
		<updated>2026-04-11T07:36:48Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Minimization */ Improve wording of M&amp;#039;s return mechanism.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0, at which point it returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7141</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7141"/>
		<updated>2026-04-11T07:07:00Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Simplify LRpart2 using the AddXA macro.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7140</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7140"/>
		<updated>2026-04-11T06:47:17Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Reduce size of LRCall by 2 by using ignored extra arguments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Plus[2]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492394919728517160 11 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;59 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddXA&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;AddXA := R(P^2_1, C(S, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriPXA&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA := R(Z^1, AddXA)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriPXA(x,y) = TriP(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], TriPXA, P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;38 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7137</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7137"/>
		<updated>2026-04-11T05:03:54Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Simplify LRpart3 fcn explanation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;61 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], C(TriP, P^2_1), P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;40 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. f(y\dot - (TriP(x)+1), TriP(x)+x\dot - y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7136</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7136"/>
		<updated>2026-04-11T04:58:57Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Simplify LRpart2 fcn explanation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;61 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(z \dot - (x+1), x+y\dot - z)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], C(TriP, P^2_1), P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;40 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. LRpart2[f](TriP(x), x, y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7135</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7135"/>
		<updated>2026-04-11T04:53:39Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Simplify LRpart1 fcn explanation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;61 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(x \dot - (y+1), z \dot - x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRPart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. LRpart1[f](z, x, x+y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], C(TriP, P^2_1), P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;40 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. LRpart2[f](TriP(x), x, y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7134</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7134"/>
		<updated>2026-04-11T04:46:06Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Mention technique for creating LRCall.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. When functions consume both the left and right values, [[wikipedia:Common_subexpression_elimination|common subexpression elimination]] can be used to reduce the number of operations below that from calling Left and Right individually.  The smallest known pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;61 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(LeftPiece(x,y,z), RightPiece(x,y,z))&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRPart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. LRpart1[f](z, x, x+y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], C(TriP, P^2_1), P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;40 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. LRpart2[f](TriP(x), x, y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7133</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7133"/>
		<updated>2026-04-11T04:37:46Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Define macros for combined Left+Right function calls&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. The smallest known such pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Left&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;Right&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f^2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f] := C(LRpart3[f], InvTriCeil, P^1_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;61 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;LRCall[f](Pair(x,y)) = f(x,y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;5&amp;quot; | Combined LRCall&lt;br /&gt;
|RightPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;RightPiece := R(P^2_2, C(Pred, P^4_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. z \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LeftPiece&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LeftPiece := C(RMonus, C(S, P^3_2), P^3_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|12&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. x \dot - (y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|LRpart1[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart1[f] := C(f, LeftPiece, RightPiece)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;20 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. f(LeftPiece(x,y,z), RightPiece(x,y,z))&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRPart2[f]&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart2[f] :=  C(LRpart1[f], P^3_3, P^3_1, R(P^2_1, C(S, P^4_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;28 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xyz. LRpart1[f](z, x, x+y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|LRpart3[f]&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;LRpart3[f] := C(LRpart2[f], C(TriP, P^2_1), P^2_1, P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;40 + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. LRpart2[f](TriP(x), x, y)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7131</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7131"/>
		<updated>2026-04-11T01:59:15Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Champions */ Champs table looks nicer with the shorter &amp;quot;ADT[2]&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388 &amp;gt; 10^{10^{10^{6.8}}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[2], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. The smallest known such pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Pair&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Left&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Right&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7130</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7130"/>
		<updated>2026-04-11T01:53:08Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Utilizing Minimization */ Typo for AddS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388 &amp;gt; 10^{10^{10^{6.8}}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
== Utilizing Minimization ==&lt;br /&gt;
All the current champions are primitive recursive functions. In other words none use the minimization combinator M. This fundamentally limits their growth rate. In fact, no primitive recursive function can grow faster than the Ackermann function and we can see that above where the assymtotic growth of the known BBµ bound is Ackermann growth: &amp;lt;math&amp;gt;BB\mu(6k+17) \ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
But, like the traditional BB function, BBµ grows uncomputably fast, so eventually it must surpass primitive recursive functions. In order to do that, it needs to use the M combinator. However, in order to do arbitrary computation, you need a way to store arbitrarily large amounts of data into a single integer and extract it back out. In other words, you need to implement a [[wikipedia:Pairing_function|pairing function]]. Thus there is value in finding small pairing/unpairing functions. A set of pairing functions is a triple Pair,Left,Right such that for all a,b: Left(Pair(a,b)) = a and Right(Pair(a,b)) = b. The smallest known such pairing functions are:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Smallest Pairing Functions&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Pair&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Pair := C(AddS, C(Tri, Add), P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|20&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. \frac{(x+y)(x+y+1)}{2} + x + 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Left&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Left := C(RMonus, C(TriP, InvTriCeil), Pred)&amp;lt;/math&amp;gt;&lt;br /&gt;
|38&lt;br /&gt;
|&amp;lt;math&amp;gt;Left(Pair(x,y)) = x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Right&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Right := C(RMonus, P^1_1, C(Tri, InvTriCeil))&amp;lt;/math&amp;gt;&lt;br /&gt;
|36&lt;br /&gt;
|&amp;lt;math&amp;gt;Right(Pair(x,y)) = y&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Where these are based on the following definitions:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Macros&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Addition&lt;br /&gt;
|Add&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;Add := R(P^1_1, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|AddS&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;AddS := R(S, C(S, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|5&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. x+y+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Primitive_recursive_function#Predecessor|Predecesor]]&lt;br /&gt;
|Pred&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Pred := R(Z^0, P^2_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|3&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x \dot - 1&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[wikipedia:Monus#Natural_numbers|Monus]]&lt;br /&gt;
|RMonus&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonus := R(P^1_1, C(Pred, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Triangular numbers&lt;br /&gt;
|Tri&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := R(Z^0, AddS)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|TriP&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP := R(Z^0, Add)&amp;lt;/math&amp;gt;&lt;br /&gt;
|7&lt;br /&gt;
|&amp;lt;math&amp;gt;TriP(x+1) = Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |Inverting Tri&lt;br /&gt;
|RMonusTri&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RMonusTri := C(RMonus, C(Tri, P^2_1), P^2_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|18&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda xy. y \dot - Tri(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|InvTriCeil&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;InvTriCeil := M(RMonusTri)&amp;lt;/math&amp;gt;&lt;br /&gt;
|19&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda y. \min \{x | Tri(x) \ge y \}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7128</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7128"/>
		<updated>2026-04-11T00:42:30Z</updated>

		<summary type="html">&lt;p&gt;JLM: Fix typo in ADT definition and add upper bound to sandwich 10^^3.8388&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalization&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiag[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann Diagonalization&lt;br /&gt;
on Triangular nums&lt;br /&gt;
|&amp;lt;math&amp;gt;ADT[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  ADT[0]    &amp;amp; :=  &amp;amp; Tri \\&lt;br /&gt;
  ADT[n+1]  &amp;amp; :=  &amp;amp; RepDiag[ADT[n]]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7n + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. &amp;gt; 10 \uparrow^n (x+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1] = R(Z^0, R(S, C(S, P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|≥ 4&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[4]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|≥ 5&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[5]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|≥ 6&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[6]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|16&lt;br /&gt;
|≥ 9&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[S], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1492246885329670184 10 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson [https://discord.com/channels/960643023006490684/1447627603698647303/1492021428546179182 9 Apr 2026]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321 &amp;gt; 10&amp;lt;sup&amp;gt;16.8&amp;lt;/sup&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;lt;math&amp;gt; &amp;gt; 10^{10^{10^{6.899}}} &amp;gt; 10 \uparrow\uparrow 3.8388 &amp;gt; 10^{10^{10^{6.8}}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 6.0834&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10.2800&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiag[RepDiag[Tri]], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|32&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow 10 \uparrow\uparrow 8.1944&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|34&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|36&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|38&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+11&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 2&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+13&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 3&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+15&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|7k+17&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(ADT[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Macro Bounds ==&lt;br /&gt;
&lt;br /&gt;
=== ADT[k] ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0](n) = Tri(n) = \frac{n(n+1)}{2} &amp;gt; \frac{1}{2} n^2&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[0]^k(n) &amp;gt; 2 \left( \frac{n}{2} \right)^{2^k}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1](n) = Tri^{n+1}(n+2) &amp;gt; 2 \left(\frac{n+2}{2} \right)^{2^{n+1}} = 2 \left(\frac{(n+2)^2}{4} \right)^{2^n} &amp;gt; A 10^{10^{n/A}}&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;A = \frac{1}{\log_{10}(2)}&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 5&amp;lt;/math&amp;gt;, for smaller values, this can be calculated directly)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[1]^k(n) &amp;gt; A (10 \uparrow)^{2k} \frac{n}{A} &amp;gt; 10 \uparrow\uparrow 2k&amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 4&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[2](n) = ADT[1]^{n+1}(n+2) &amp;gt; 10 \uparrow\uparrow (2n+2) &amp;lt;/math&amp;gt; (if &amp;lt;math&amp;gt;n \ge 2&amp;lt;/math&amp;gt;)&lt;br /&gt;
* &amp;lt;math&amp;gt;ADT[k](n) &amp;gt; 10 \uparrow^k (n+1) &amp;lt;/math&amp;gt; (proof by induction on k with ADT[2] bound above as base case)&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7115</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7115"/>
		<updated>2026-04-10T14:51:06Z</updated>

		<summary type="html">&lt;p&gt;JLM: Rename &amp;quot;RepRepSucc&amp;quot; to &amp;quot;RepDiagS&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Diagonalizing iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiagS[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepDiagS[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10\uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepDiagS[RepDiagS[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7102</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7102"/>
		<updated>2026-04-10T07:01:31Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Champions */ Write in &amp;quot;hyperscientific&amp;quot; notation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3(2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Composable iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10\uparrow\uparrow 3.8388&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[RepRepSucc[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7101</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7101"/>
		<updated>2026-04-10T06:31:36Z</updated>

		<summary type="html">&lt;p&gt;JLM: Use a closer-to-standard notation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3(2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Composable iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|&amp;gt; &amp;lt;math&amp;gt;10^\wedge ({7.119873\cdot 10^{7934377}})&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[RepRepSucc[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7100</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7100"/>
		<updated>2026-04-10T05:34:07Z</updated>

		<summary type="html">&lt;p&gt;JLM: New champions, starting at BBu(18) &amp;gt;= 21&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration of successor&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|2&lt;br /&gt;
|&amp;lt;math&amp;gt;RepSucc[f] := R(S, C(f, P^3(2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x\ y. f^x(y+1)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Composable iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;RepRepSucc[f] := C(RepSucc[f], S, S)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^{x+1}(x+2)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|18&lt;br /&gt;
|≥ 21&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|20&lt;br /&gt;
|≥ 1540&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|22&lt;br /&gt;
|≥ 26&#039;357&#039;430&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|≥ 64&#039;449&#039;908&#039;476&#039;890&#039;321&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[Tri], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ &amp;lt;math&amp;gt;Tri^{26&#039;357&#039;431}(26&#039;357&#039;432)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(RepRepSucc[RepRepSucc[Tri]], K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Jacob Mandelson 9 Apr 2026&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7051</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7051"/>
		<updated>2026-04-09T01:18:51Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Minimization */ Clearer explanation of &amp;#039;M&amp;#039; operator.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(i, x_1, ..., x_k)&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;i=0&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=1&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;i=2&amp;lt;/math&amp;gt; etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value of &amp;lt;math&amp;gt;i&amp;lt;/math&amp;gt; which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.  (This is the only way for a GRF to not halt.)&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7049</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7049"/>
		<updated>2026-04-08T15:06:06Z</updated>

		<summary type="html">&lt;p&gt;JLM: Regularize formatting.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the &#039;&#039;g&#039;&#039;s into &#039;&#039;h&#039;&#039;: &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using &#039;&#039;g&#039;&#039; as the base case and &#039;&#039;h&#039;&#039; as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when &#039;&#039;M(f)&#039;&#039; is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7043</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7043"/>
		<updated>2026-04-08T07:08:26Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Primitive Recursive Functions */ More precise section name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursion ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when M is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7042</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7042"/>
		<updated>2026-04-08T07:02:42Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Primitive Recursive Functions */ h() receives the prior iter count.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursive Functions ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the prior iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when M is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7041</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7041"/>
		<updated>2026-04-08T06:59:10Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Minimization */ Include arguments to M(f) in its definition.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursive Functions ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f)(x_1, ..., x_k) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when M is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7040</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7040"/>
		<updated>2026-04-08T06:56:21Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Primitive Recursive Functions */ Define the &amp;#039;R&amp;#039; operator.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursive Functions ===&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; models a typical iterative function definition over ℕ.&lt;br /&gt;
&lt;br /&gt;
Base case: &amp;lt;math&amp;gt;R^k(g, h)(0, x_2, x_3, ..., x_k) = g(x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Iterative case (for &amp;lt;math&amp;gt;x_1 &amp;gt; 0&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;R^k(g, h)(x_1, x_2, ..., x_k) = h(x_1-1, v, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt; where &amp;lt;math&amp;gt;v = R(g, h)(x_1-1, x_2, x_3, ..., x_k)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; can be recursively evaluated following its definition directly.  Or it can be iterated over its first argument, starting with 0 (and thus a call to &amp;lt;math&amp;gt;g&amp;lt;/math&amp;gt;), then 1, 2, 3, etc. until &amp;lt;math&amp;gt;x_1&amp;lt;/math&amp;gt; is reached, each time calling &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; with the iteration count for its first argument and the result of the prior call for its second.&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when M is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7039</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7039"/>
		<updated>2026-04-08T06:32:06Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Minimization */ Define &amp;#039;M&amp;#039; operator.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursive Functions ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
&amp;lt;math&amp;gt;M^k(f) \triangleq \min \{i \in \N: f(i, x_1, ..., x_k) = 0\}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In computational language, when M is evaluated it can be considered to calculate &amp;lt;math&amp;gt;f(0, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(1, x_1, ..., x_k)&amp;lt;/math&amp;gt;, then &amp;lt;math&amp;gt;f(2, x_1, ..., x_k)&amp;lt;/math&amp;gt;, etc. until one of the calls to &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; returns 0.  It returns the value for the first argument which first gave a result of 0.  If no first argument causes &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; to return 0, &amp;lt;math&amp;gt;M(f)&amp;lt;/math&amp;gt; doesn&#039;t return.&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
	<entry>
		<id>https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7038</id>
		<title>General Recursive Function</title>
		<link rel="alternate" type="text/html" href="https://wiki.bbchallenge.org/w/index.php?title=General_Recursive_Function&amp;diff=7038"/>
		<updated>2026-04-08T06:04:26Z</updated>

		<summary type="html">&lt;p&gt;JLM: /* Champions */ Holdouts for sizes 4-7 proven.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;General recursive functions&#039;&#039;&#039; (&#039;&#039;&#039;GRFs&#039;&#039;&#039;), also called &#039;&#039;&#039;µ-recursive functions&#039;&#039;&#039; or &#039;&#039;&#039;partial recursive functions&#039;&#039;&#039;, are the collection of [[Wikipedia:partial functions|partial functions]] &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that are computable. This definition is equivalent using any [[Turing complete]] system of computation. See [[Wikipedia:general recursive function]] for background.&lt;br /&gt;
&lt;br /&gt;
Historically it was defined as the smallest class of partial functions &amp;lt;math&amp;gt;\N^k \rightharpoonup \N&amp;lt;/math&amp;gt; that is closed under composition, recursion, and minimization, and includes zero, successor, and all projections (see formal definitions below). In the rest of this article, this is the formulation that we focus on exclusively. In this way, it can be considered to be a Turing complete model of computation. In fact, it is one of the oldest Turing complete models, first formalized by Kurt Gödel and Jacques Herbrand in 1933, 3 years before λ-calculus and Turing machines.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BBµ&#039;&#039;&#039;(n) is a [[Busy Beaver function]] for GRFs:&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;BB \mu (n) = \max \{ f() | f \in \text{GRF}_0 , |f| = n \}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;lt;math&amp;gt;f \in GRF_k&amp;lt;/math&amp;gt; means that &amp;lt;math&amp;gt;f: \N^k \rightharpoonup \N&amp;lt;/math&amp;gt; is a k-ary GRF and &amp;lt;math&amp;gt;|f|&amp;lt;/math&amp;gt; is the &amp;quot;structural size&amp;quot; of &#039;&#039;f&#039;&#039; (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited &amp;quot;program&amp;quot; size. It is more akin to the traditional [[Sigma score]] for a Turing machine rather than the Step function in the sense that it maximizes over the produced value, not the number of steps needed to reach that value.&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
Define &amp;lt;math&amp;gt;GRF_k&amp;lt;/math&amp;gt; inductively based on the following construction rules, start with Atoms and combine them using Combinators.&lt;br /&gt;
&lt;br /&gt;
====== Atoms ======&lt;br /&gt;
&lt;br /&gt;
* Zero: &amp;lt;math&amp;gt;\forall k \in \N, Z^k \in GRF_k&amp;lt;/math&amp;gt; is the constant 0 function &amp;lt;math&amp;gt;Z^k(x_1, \dots, x_k) = 0&amp;lt;/math&amp;gt;&lt;br /&gt;
* Successor: &amp;lt;math&amp;gt;S \in GRF_1&amp;lt;/math&amp;gt; is the successor function &amp;lt;math&amp;gt;S(x) = x+1&amp;lt;/math&amp;gt;&lt;br /&gt;
* Projection: &amp;lt;math&amp;gt;\forall 1 \le i \le k \in \N, P^k_i \in GRF_k&amp;lt;/math&amp;gt; is a projection function &amp;lt;math&amp;gt;P^k_i(x_1, \dots x_k) = x_i&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Combinators =====&lt;br /&gt;
&lt;br /&gt;
* Composition: &amp;lt;math&amp;gt;\forall k,m \in \N, \forall h \in GRF_m, \forall g_1, \dots g_m \in GRF_k, C(h, g_1, \dots g_m) \in GRF_k&amp;lt;/math&amp;gt; is the composition or substitution of the gs into h &amp;lt;math&amp;gt;C(h, g_1, \dots g_m)(x_1, \dots x_k) = h(g_1(x_1, \dots x_k), \dots g_m(x_1, \dots x_k))&amp;lt;/math&amp;gt;&lt;br /&gt;
* Primitive Recursion: &amp;lt;math&amp;gt;\forall k \in \N, \forall g \in GRF_k, \forall h \in GRF_{k+2}, R(g, h) \in GRF_{k+1}&amp;lt;/math&amp;gt; is primitive recursion using g as the base case and h as the inductive step.&lt;br /&gt;
* Minimization / Unlimited Search: &amp;lt;math&amp;gt;\forall k \in \N, \forall f \in GRF_{k+1}, M(f) \in GRF_k&amp;lt;/math&amp;gt; is the µ-operator which allows unlimited search.&lt;br /&gt;
&lt;br /&gt;
=== Primitive Recursive Functions ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
=== Minimization ===&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Macros ==&lt;br /&gt;
In order to improve readability we define the following macros. For all &amp;lt;math&amp;gt;f \in GRF_1&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!Macro&lt;br /&gt;
!arity&lt;br /&gt;
!Definition&lt;br /&gt;
!Size&lt;br /&gt;
!Function&lt;br /&gt;
|-&lt;br /&gt;
|Plus constant&lt;br /&gt;
|&amp;lt;math&amp;gt;Plus[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Plus[1]    &amp;amp; :=  &amp;amp; S \\&lt;br /&gt;
  Plus[n+1]  &amp;amp; :=  &amp;amp; C(S, Plus[n])&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n-1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x+n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Constant&lt;br /&gt;
|&amp;lt;math&amp;gt;K^k[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|k&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  K^k[0]    &amp;amp; :=  &amp;amp; Z^k \\&lt;br /&gt;
  K^k[n]    &amp;amp; :=  &amp;amp; C(Plus[n], Z^k)&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+1&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x_1 \dots x_k. n&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Rep[f,n] := R(K^0[n], C(f, P^2_2))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;|f| + 2n + 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. f^x(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Ackermann iteration&lt;br /&gt;
|&amp;lt;math&amp;gt;Ack[n,f]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Ack[0,f]    &amp;amp; :=  &amp;amp; f \\&lt;br /&gt;
  Ack[n+1,f]  &amp;amp; :=  &amp;amp; Rep[Ack[n,f],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n + |f|&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Knuth base 2 up-arrows&lt;br /&gt;
|&amp;lt;math&amp;gt;Knuth2[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{array}{lcl}&lt;br /&gt;
  Knuth2[0]    &amp;amp; :=  &amp;amp; Rep[Plus[2],0] \\&lt;br /&gt;
  Knuth2[n+1]  &amp;amp; :=  &amp;amp; Rep[Knuth2[n],1]&lt;br /&gt;
\end{array}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;6n+7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. 2 \uparrow^n x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Polygonal&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n]&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Poly[n] := R(Z^0, R(S, C(Plus[n], P^3_2)))&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;2n+5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{n}{2} x(x-1) + x&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Tri := Poly[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;7&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. \frac{x(x+1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&amp;lt;math&amp;gt;Square&amp;lt;/math&amp;gt;&lt;br /&gt;
|1&lt;br /&gt;
|&amp;lt;math&amp;gt;Square := Poly[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;\lambda x. x^2&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Champions ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!n&lt;br /&gt;
!BBµ(n)&lt;br /&gt;
!Champion&lt;br /&gt;
!Champion Found&lt;br /&gt;
!Holdouts Proven&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;Z^0&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|= 0&lt;br /&gt;
|&amp;lt;math&amp;gt;M(Z^1), M(P^1_1), C(Z^0)&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[1]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447693296322215976 8 Dec 2025] By hand&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|= 1&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[1])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[2]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|= 2&lt;br /&gt;
|&amp;lt;math&amp;gt;C^0(K^0[2])&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|= 3&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[3]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|Jacob Mandelson [https://mandelson.org/grf/ 3 Apr 2026]&lt;br /&gt;
|-&lt;br /&gt;
|2k+1&lt;br /&gt;
|≥ k&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[k]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|15&lt;br /&gt;
|≥ 7&lt;br /&gt;
|&amp;lt;math&amp;gt;K^0[7]&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|17&lt;br /&gt;
|≥ 10&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Tri, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|19&lt;br /&gt;
|≥ 16&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|21&lt;br /&gt;
|≥ 25&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|23&lt;br /&gt;
|≥ 36&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Square, K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|25&lt;br /&gt;
|≥ 256&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Square,2], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|≥ 359,026,206&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[3])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|29&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 3.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|31&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 5.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|33&lt;br /&gt;
|&amp;lt;math&amp;gt;&amp;gt; 10 \uparrow\uparrow 7.9 &amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Rep[Rep[Tri,2],0], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki 9 Dec 2025&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|35&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|37&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|39&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow\uparrow\uparrow 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[3], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+17&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 4&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[4])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+19&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 5&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[5])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6k+21&lt;br /&gt;
|&amp;lt;math&amp;gt;\ge 2 \uparrow^k 6&amp;lt;/math&amp;gt;&lt;br /&gt;
|&amp;lt;math&amp;gt;C(Knuth2[k], K^0[6])&amp;lt;/math&amp;gt;&lt;br /&gt;
|Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1447633458510692385 8 Dec 2025]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:functions]]&lt;/div&gt;</summary>
		<author><name>JLM</name></author>
	</entry>
</feed>