General Recursive Function: Difference between revisions
→Champions: Remove 16, 17 champs beaten by the 14 champ |
→Champions: BBµ(17) ≥ 2090 |
||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 232: | Line 232: | ||
|- | |- | ||
|16 | |16 | ||
| | |≥ 47 | ||
| | |<math>M(C(R(S, R(P^2_1, R(P^3_2, C(R(S, P^3_1), P^5_3, P^5_2)))), P^1_1, S))</math> | ||
| | |Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1501347538287067267 5 May 2026] | ||
| | | | ||
|- | |- | ||
|17 | |17 | ||
| | |≥ 2090 | ||
| | |<math>M^0(C^1(R^2(P^1_1, R^3(P^2_1, R^4(R^3(R^2(S, C^3(S, P^3_2)), P^4_1), P^5_2))), P^1_1, S))</math> | ||
| | |Shawn Ligocki [https://discord.com/channels/960643023006490684/1447627603698647303/1502314241766588468 8 May 2026] | ||
| | | | ||
|- | |- | ||
| Line 250: | Line 250: | ||
|- | |- | ||
|19 | |19 | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
|20 | |20 | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
Latest revision as of 16:54, 8 May 2026
General recursive functions (GRFs), also called µ-recursive functions or partial recursive functions, are the collection of partial functions 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 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:
where means that is a k-ary GRF and is the "structural size" of f (the number of atoms and combinators in the definition, see details 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
Structure
Define inductively based on the following construction rules, start with Atoms and combine them using Combinators.
Atoms
- Zero: is the constant 0 function
- Successor: is the successor function
- Projection: is a projection function
Combinators
- Composition: is the composition or substitution of the gs into h:
- Primitive Recursion: is primitive recursion using g as the base case and h as the inductive step.
- Minimization / Unlimited Search: is the µ-operator which allows unlimited search.
The arity superscripts for C, R and M are redundant (except for ) and so are sometimes omitted below.
Size
The size of a GRF is the number of atoms and combinators in the definition:
Primitive Recursion
models a typical iterative function definition over ℕ.
Base case:
Iterative case (for ): where .
R can be recursively evaluated following its definition directly or it can be simulated as a bounded for loop like this python code:
# f = R(g,h)
def f(n, *xs):
acc = g(*xs)
for k in range(n):
acc = h(k, acc, *xs)
return acc
The iterative function h is passed two synthetic args in the front: (k) iteration number (0-indexed) and (acc) "accumulator" from previous iterations.
Both the base and iterative cases can be parameterized by values .
If you restrict functions to only those constructible with Z, S, P, C, R (no M) then this defines the Primitive Recursive Functions, a subset of the General Recursive Functions that always halt.
Minimization
In computational language, when M(f) is evaluated it can be considered to calculate with , then , then etc. until one of the calls to returns 0, at which point it returns the value of which first gave a result of 0. If no first argument causes to return 0, doesn't return (this is the only way for a GRF to not halt).
Macros
In order to improve readability we define the following macros. For all
| Macro | arity | Definition | Size | Function | |
|---|---|---|---|---|---|
| Constant | k | ||||
| Plus constant | 1 | ||||
| Triangular numbers | 1 | ||||
| Iteration | 2 | ||||
| Diagonalization & Iteration | 2 | ||||
| Diagonalization | 1 | ||||
| Ackermann iteration | 2 | ||||
| 1 |
Champions
| n | BBµ(n) | Champion | Champion Found | Holdouts Proven |
|---|---|---|---|---|
| 1 | = 0 | Shawn Ligocki 8 Dec 2025 By hand | ||
| 2 | = 0 | Shawn Ligocki 8 Dec 2025 By hand | ||
| 3 | = 1 | Shawn Ligocki 8 Dec 2025 By hand | ||
| 4 | = 1 | Jacob Mandelson 3 Apr 2026 | ||
| 5 | = 2 | Jacob Mandelson 3 Apr 2026 | ||
| 6 | = 2 | Jacob Mandelson 3 Apr 2026 | ||
| 7 | = 3 | Jacob Mandelson 3 Apr 2026 | ||
| 8 | ≥ 3 | |||
| 9 | ≥ 4 | |||
| 10 | ≥ 4 | |||
| 11 | ≥ 5 | |||
| 12 | ≥ 5 | |||
| 13 | ≥ 6 | |||
| 14 | ≥ 32 | Shawn Ligocki 29 Apr 2026 | ||
| 15 | ||||
| 16 | ≥ 47 | Shawn Ligocki 5 May 2026 | ||
| 17 | ≥ 2090 | Shawn Ligocki 8 May 2026 | ||
| 18 | ||||
| 19 | ||||
| 20 | ||||
| 21 | ||||
| 22 | Shawn Ligocki 13 Apr 2026 | |||
| 23 | Shawn Ligocki 13 Apr 2026 | |||
| 24 | ||||
| 25 | Shawn Ligocki 13 Apr 2026 | |||
| 26 | ||||
| 27 | Shawn Ligocki 13 Apr 2026 | |||
| 28 | Shawn Ligocki 13 Apr 2026 | |||
| 29 | Shawn Ligocki 13 Apr 2026 | |||
| 30 | Shawn Ligocki 13 Apr 2026 | |||
| 31 | Shawn Ligocki 13 Apr 2026 | |||
| ... | ||||
| 5k+17 | > | Shawn Ligocki 13 Apr 2026 | ||
| 5k+18 | > | Shawn Ligocki 13 Apr 2026 | ||
| 5k+19 | > | Shawn Ligocki 13 Apr 2026 | ||
| 5k+20 | > | Shawn Ligocki 13 Apr 2026 | ||
| 5k+21 | > | Shawn Ligocki 13 Apr 2026 | ||
| ... | ||||
| 94 | > | Shawn Ligocki 13 Apr 2026 | ||
| 95 | Omega() from example_ack.rs | Shawn Ligocki 16 Apr 2026 | ||
| 96 | ||||
| 97 | Omega3() from example_ack.rs | Shawn Ligocki 22 Apr 2026 | ||
| 98 | ||||
| 99 | Omega4() from example_ack.rs | Shawn Ligocki 22 Apr 2026 | ||
| 100 | Graham() from example_ack.rs | Shawn Ligocki 16 Apr 2026 |
Cryptids
So far all Cryptids have been constructed by hand. None found "in the wild" yet.
| Size | Problem | Authors | Ref |
|---|---|---|---|
| 49 | Brocard's problem | aparker, star and Shawn 3 May 2026 | brocard.mgrf Discord |
| 56 | 5x+1 trajectory of 7 | Shawn Ligocki 2 May 2026 | collatz.mgrf |
| 81 | Erdos Ternary Conjecture | Shawn Ligocki 28 Apr 2026 | erdos.mgrf |
| 139 | Antihydra-like problem | Jacob Mandelson 8 Apr 2026 | Orig (size 141) Size 139 |
Notable Divergent GRF
Tetrahedral Divisibility
The GRF (Size 15) halts iff there exists some n ≥ 1 such that n+3 divides .[1] aparker[2] and star[3] proved that there is no such n, therefore this GRF diverges.
Macro Bounds
Let
AckDiag[k, S]
Let
- (for )
- (for )
- (for and )
AckDiag[k, Tri]
Let
- , ,
- (for )
- ,
- (for )
- ,
- (for )
Utilizing Minimization
Most champions are primitive recursive functions. In other words they do not 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: .
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 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, 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:
| Macro | arity | Definition | Size | Function |
|---|---|---|---|---|
| 2 | 20 | |||
| 1 | 38 | |||
| 1 | 36 | |||
| 1 |
Where these are based on the following definitions:
| Macro | arity | Definition | Size | Function | |
|---|---|---|---|---|---|
| Addition | Add | 2 | 5 | ||
| AddXA | 3 | 5 | |||
| AddS | 2 | 5 | |||
| Predecesor | Pred | 1 | 3 | ||
| Monus | RMonus | 2 | 7 | ||
| Triangular numbers | Tri | 1 | 7 | ||
| TriP | 1 | 7 | |||
| TriPXA | 2 | 7 | |||
| Inverting Tri | RMonusTri | 2 | 18 | ||
| InvTriCeil | 1 | 19 | |||
| Combined LRCall | RightPiece | 3 | 7 | ||
| LeftPiece | 3 | 12 | |||
| LRpart1[f] | 3 | ||||
| LRpart2[f] | 3 | ||||
| LRpart3[f] | 2 |