General Recursive Function

From BusyBeaverWiki
Revision as of 05:03, 10 December 2025 by Sligocki (talk | contribs) (→Champions: Ref FGH results from Discord)
Jump to navigation Jump to search

General recursive functions (GRFs), also called µ-recursive functions or partial recursive functions, are the collection of partial functions ℕk⇀ℕ that are computable. This definition is equivalent using any Turing complete system of computation. See Wikipedia:general recursive function for background.

Historically it was defined as the smallest class of partial functions ℕk⇀ℕ 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.

BBµ(n) is a Busy Beaver function for GRFs:BBμ(n)=max⁡{f()|f∈GRF0,|f|=n}

where f∈GRFk means that f:ℕk⇀ℕ is a k-ary GRF and |f| is the "structural size" of f (defined below). In other words, it is the largest number computable via a 0-ary function (a constant) with a limited "program" 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.

Definition

Primitive Recursive Functions

TODO

Minimization

TODO

Macros

In order to improve readability we define the following macros:

Macro arity Definition Size Function
Plus constant Plus[n] 1 Plus[1]:=SPlus[n+1]:=C(S,Plus[n]) 2n−1 λx.x+n
Constant Kk[n] k Kk[0]:=ZkKk[n]:=C(Plus[n],Zk) 2n+1 λx1…xk.n
Iteration Rep[f,n] 1 Rep[f,n]:=R(K0[n],C(f,P22)) |f|+2n+4 λx.fx(n)
Ackermann iteration Ack[n,f] 1 Ack[0,f]:=fAck[n+1,f]:=Rep[Ack[n,f],1] 6n+|f|
Knuth base 2 up-arrows Knuth2[n] 1 Knuth2[0]:=Rep[Plus[2],0]Knuth2[n+1]:=Rep[Knuth2[n],1] 6n+7 λx.2↑nx
Polygonal Poly[n] 1 Poly[n]:=R(Z0,R(S,C(Plus[n],P23))) 2n+5 λx.n2x(x−1)+x
Tri 1 Tri:=Poly[1] 7 λx.x(x+1)2
Square 1 Square:=Poly[2] 9 λx.x2

Champions

n BBµ(n) Champion Champion Found Holdouts Proven
2k+1 ≥ k K0[k] Trivial
15 ≥ 7 K0[7] Trivial
17 ≥ 10 C(Tri,K0[4]) Shawn Ligocki 9 Dec 2025
19 ≥ 16 C(Square,K0[4]) Shawn Ligocki 9 Dec 2025
21 ≥ 25 C(Square,K0[5]) Shawn Ligocki 9 Dec 2025
23 ≥ 36 C(Square,K0[6]) Shawn Ligocki 9 Dec 2025
25 ≥ 256 C(Rep[Square,2],K0[3]) Shawn Ligocki 9 Dec 2025
27 ≥216 C(Rep[Square,2],K0[4]) Shawn Ligocki 9 Dec 2025
29 ≥2↑↑5 C(Rep[Rep[Square,2],0],K0[3]) Shawn Ligocki 9 Dec 2025
31 ≥2↑↑7 C(Rep[Rep[Square,2],0],K0[4]) Shawn Ligocki 9 Dec 2025
33 ≥2↑↑9 C(Rep[Rep[Square,2],0],K0[5]) Shawn Ligocki 9 Dec 2025
35 ≥2↑↑↑4 C(Knuth2[3],K0[4]) Shawn Ligocki 8 Dec 2025
37 ≥2↑↑↑5 C(Knuth2[3],K0[5]) Shawn Ligocki 8 Dec 2025
39 ≥2↑↑↑6 C(Knuth2[3],K0[6]) Shawn Ligocki 8 Dec 2025
6k+17 ≥2↑k4 C(Knuth2[k],K0[4]) Shawn Ligocki 8 Dec 2025
6k+19 ≥2↑k5 C(Knuth2[k],K0[5]) Shawn Ligocki 8 Dec 2025
6k+21 ≥2↑k6 C(Knuth2[k],K0[6]) Shawn Ligocki 8 Dec 2025