Exploration 03 · pure mathematics
The Ackermann frontier
Three rules, two small numbers, and an output that escapes every scale we have for writing numbers down.

Generated landscape
- 01
A(0, n) = n + 1Count up by one. - 02
A(m + 1, 0) = A(m, 1)Drop a level, start from one. - 03
A(m + 1, n + 1) = A(m, A(m + 1, n))Feed the whole previous answer back in as the argument.
The third rule is the engine: every step of level m + 1 is an entire run of level m, applied to a number the recursion has just made larger. Level 1 adds, level 2 multiplies, level 3 exponentiates, level 4 builds towers of exponents. A(4, 2) is exactly 265536 − 3, with 19,729 digits. A(4, 3) cannot be written: the count of its digits has 19,729 digits.
Act I–II Familiar growth, then the scale fails
Watch the axis give way.
Each gridline adds 250. The familiar scale — and 2ⁿ has already left it by n = 10.
n, n², 2ⁿ, n!, a tower of n twos (2↑↑n), and the Ackermann levels A(4, n) = 2↑↑(n + 3) − 3 and A(5, n). Values beyond floating point are carried exactly as iterated powers of ten. An arrow marks where a curve leaves the scale; it is not drawn further because the scale cannot hold it.
Act III Recursion takes over
Every step is a whole run of the level below.
A(3, 2)
Each step rewrites the innermost call by one of the three rules. The line is the pending expression; the skyline is its depth over the whole run. A(3, 2) = 29 takes 541 evaluations; A(3, 3) = 61 takes 2,432; A(4, 1) = 65,533 would take 2,862,984,010 (counted by recurrence, not run).
Act IV Beyond explicit representation
Where only notation is left.
A(4, 2) = 2 ↑↑ 5 − 3
19,729 digits
- The number
- Its digit count
- Digits of the digit count
- Only the tower height
- Height of the height
- Only arrows
A(4, n) + 3 is a tower of n + 3 twos. A(5, n) + 3 is a tower whose height is the previous A(5) value + 3, so heights nest inside heights. A(6, 0) = A(5, 1) exactly; A(6, 1) = 2 ↑↑↑↑ 4 − 3, a nesting of towers so deep that only Knuth's arrows can state it. Every line here is an identity, not an estimate.
Laboratory · evaluate any A(m, n)
Evaluate A(m, n)
Exact · 2 digits
A(3, 3) = 61
Computed exactly with arbitrary-precision integers.
2,432 evaluations of A; the stack of pending work reaches depth 60. Each column is the deepest point in that stretch of the computation.
The first thirty values
| m \ n | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 2 | 3 | 5 | 7 | 9 | 11 | 13 |
| 3 | 5 | 13 | 29 | 61 | 125 | 253 |
| 4 | 13 | 65533 | 19,729 digits | 2 ↑↑ 6 − 3 | 2 ↑↑ 7 − 3 | 2 ↑↑ 8 − 3 |
Scale collapse · n =
- A(0, n)3
- A(1, n)4
- A(2, n)7
- A(3, n)29
- A(4, n)19,729 digits
What this is not
The Ackermann function is not a law of technological or civilizational growth, and nothing at Ostrium grows "Ackermann-fast".
Nor is it the fastest-growing function. In the fast-growing hierarchy it sits at level ω; Goodstein's function and TREE outgrow it, and the Busy Beaver function outgrows every computable function. The definition used here is the two-argument Ackermann–Péter form; Ackermann's 1928 original had three arguments.
It is here because recursion is the interesting idea: a process whose every step is a full run of the process below it. The research question that echoes it is narrower and testable — can a system that generates progress improve its own generator, and what stops it? That model has bottlenecks and ceilings.
How it is computed
Values come from closed forms checked against the recursive definition: A(1, n) = n + 2, A(2, n) = 2n + 3, A(3, n) = 2n+3 − 3, and in general A(m, n) = 2 ↑m−2 (n + 3) − 3 in Knuth's up-arrow notation. Exact values use arbitrary-precision integers and stop at A(4, 2). The trace evaluates the definition literally with an explicit stack, capped at 1.5 million steps so the page never stalls; a capped trace says so.
Unit tests: tests/math.test.ts — values against the recursive definition, A(3, 3) = 61 in 2,432 evaluations, A(4, 2) digit count, notation boundaries.