Skip to the reading
QuodlibetFoundations · the floor · fourth deepening

The same fixed point, now the engine

The Floor

The previous volume showed the diagonal forbidding its fixed point — no host, a verdict of impossibility, a hierarchy with no top. Turn the codomain into a rich enough space and the very same fixed point is not forbidden but forced into being, and it becomes the engine of everything computable. Recursion is the diagonal granted its fixed point. The combinator that loops, the least solution built from nothing, and the theorem that these are one object — this is the positive face, and it is the exact inversion of the negative. Where the ceiling had no top, the floor has a definite bottom, and from that bottom the whole of computation is assembled.

component IV of the diagonal · the positive face, isolated and deepened — the Y combinator as the forced loop, least fixed points as the built limit, the domain theory of ⊥ and the convergent ascent, the coincidence of loop and limit by computational adequacy, and the price the loop exacts: the Curry–Howard reading of consistency, and the dial of totality against universality

I · the inversion

When the fixed point is granted

Fate 1 and Fate 2 are one construction with opposite receptions. What decides between them is a single property of the codomain — and it is the same property that turned the Ceiling's ascent divergent and turns this one convergent.

the pivot  Lawvere's theorem forces a fixed point of the twist α whenever the system is reflexive. The Ceiling studied the case where α has no fixed point in its codomain — the swap on {0,1}, negation over rigid truth‑values — so the forced point cannot exist and the naming is forbidden. Here we study the other case: where the codomain is rich enough to host the fixed point. Then nothing is forbidden; the fixed point is granted, and the system that names itself does not collapse but computes. The dividing line is exact. When the answer‑space is a complete domain — when it has a least element and the suprema of its ascending chains — every endomorphism has a fixed point, and the diagonal, instead of witnessing an impossibility, builds a recursion.

the same ascent, now convergent  The kinship with the negative face runs deeper than opposition. Both fates are built from an ascending chain. In the Ceiling, iterating the diagonal produced the jumps ∅ <T ∅′ <T ∅″ <T ⋯ — a chain strictly increasing with no upper bound, because the degrees have no top. Here, iterating the recursion from the bottom produces a chain ⊥ ⊑ F(⊥) ⊑ F²(⊥) ⊑ ⋯ — strictly increasing toward a least upper bound, because the domain is complete. One and the same construction: an ascent generated by repeated self‑application. The only difference is whether the codomain supplies the limit. The degrees do not, so the Ceiling's ascent diverges into a hierarchy. The domains do, so the Floor's ascent converges into a fixed point. Completeness of the codomain is the whole of the difference between a limit that cannot be reached and a limit that is reached.

the three things this volume must keep distinct

Recursion is usually told as one idea; it is three, and their relations are the substance of the subject. The loop is the syntactic fixed point — the combinator Y that, given any operation, applies it to its own result, forced into existence by the diagonal exactly as in the Kernel. The limit is the semantic fixed point — the least solution of a recursive definition, built from ⊥ by an ascending chain, the canonical meaning the syntax alone cannot supply. And the law is the theorem that, in any faithful model of computation, the loop and the limit are the same object: running the combinator computes the least fixed point. The loop says a recursion exists; the limit says which one and what it means; the law says they never disagree. This volume builds each in turn and then welds them — and closes by reading the whole against its dual, the Ceiling, to show that the engine of computation and the wall of limitation are one diagonal, received two ways.

II · the loop

The combinator that feeds an operation its own result

The syntactic fixed point is the diagonal, internalised. It exists in any reflexive structure, it can be run — and it is silent, by itself, on which fixed point it has found or what that point means.

Y is the diagonal  In the untyped λ‑calculus every term applies to every term, so the construction of the Kernel becomes an actual term. The self‑application λx. f(x x), fed to itself, is a fixed point of f; abstracting f gives the fixed‑point combinator Y = λf.(λx.f(x x))(λx.f(x x)), with Y f =β f(Y f) for every f. This is not a new device; it is the diagonal of g(x) = α(φ(x)(x)) with the naming φ the identity — the reflexive object naming itself. Recursion, the most constructive thing in computation, is the very same self‑application that, over a hostile codomain, was paradox.

a multitude of loops  And there is not one combinator but an infinity of them. Curry's Y gives only a β‑equality Y f =β f(Y f); Turing's Θ = (λxy. y(x x y))(λxy. y(x x y)) gives an actual β‑reduction Θ f ↠ f(Θ f), a loop that literally unfolds. The Böhm sequence generates infinitely many more, each a fixed‑point combinator, each a fixed point of "being a fixed‑point combinator" — the diagonal recurring one level up, as it always does. The lesson is that the loop is plural. Syntax hands you a fixed point, indeed endlessly many, but it does not single one out, and it does not say what the recursion computes. For that, the order must speak.

recursion with no name · factorial through Y

        
outputpress run — self is never declared; the combinator hands it back, and the recursion computes.
The function fact refers to itself without a name: Y supplies self by feeding the operation its own value. The output is the factorial — and, as the next sections show, it is exactly the function the least‑fixed‑point ascent converges to. The loop already computes the limit.
III · the limit

The least solution, built from nothing

A recursive definition is not a circular sentence but an operator on partial functions. Its meaning is the smallest function the operator leaves unchanged — and that function is assembled, from the empty function up, by an ascending chain that converges.

a definition is a functional  Read the recursive definition of factorial not as fact(n) = … fact(n−1), a sentence that mentions what it defines, but as a functional — a map from candidate functions to candidate functions: F(g) = λn. (n=0 ? 1 : n·g(n−1)). A function f satisfies the recursion exactly when F(f) = f — when it is a fixed point of F. The circularity is gone, replaced by a perfectly ordinary question: what are the fixed points of F, and which is the right one? F is monotone in the information order — better‑defined inputs give better‑defined outputs — and continuous, and that is all the structure the answer needs.

Kleene's fixed-point theorem · the least solution
A continuous functional F on a domain with least element ⊥ has a least fixed point, and it is the supremum of the ascending chain obtained by iterating F from ⊥:
μF  =  ⊔n Fn(⊥)  =  ⊥ ⊑ F(⊥) ⊑ F²(⊥) ⊑ ⋯
why least is right The chain climbs because ⊥ ⊑ F(⊥) and F is monotone; its supremum is a fixed point by continuity; and it is the least one, below every other fixed point, because it assumes nothing the recursion does not force. That is exactly the meaning we want: μF is defined on an input precisely when the recursion, unfolded, terminates there, and undefined — ⊥ — where it loops forever. A non‑terminating recursion is not a failure of the theorem but its honest verdict: the least fixed point has no value to offer at that input. ∎

the ascent — watch the least fixed point assemble itself

Step n shows Fn(⊥) — the factorial functional applied n times to the empty function. Each step defines the answer on one more input and never revises an earlier one; the chain only climbs. The supremum of the whole chain, defined everywhere, is the factorial: the least fixed point, built from ⊥ by pure iteration.
many fixed points, one canonical — and why the least is the meaning

A recursive definition can have many fixed points, and distinguishing them is the point of taking the least. Consider the definition f(n) = f(n) — the functional F(g) = g. Every function is a fixed point; the recursion constrains nothing. The least fixed point is the totally undefined function ⊥ — the correct verdict, since the definition specifies no value anywhere. Or take a recursion that terminates on the evens and loops on the odds: it has fixed points that, gratuitously, assign arbitrary values on the odd inputs, but its least fixed point is undefined there, recording exactly that the computation does not halt. The least fixed point is the unique fixed point that is faithful to the operational behaviour — defined where computation succeeds, undefined where it diverges, and nowhere inventing a value the recursion did not earn. The other fixed points are mathematically real but operationally fictional. The order does what the syntax could not: out of the loop's plurality it selects the one solution that means the computation.

IV · domains

The order that makes the ascent converge

For the chain to have a limit, the codomain must be the right kind of ordered space — one with a bottom to start from and the suprema to finish with. That space is a domain, and its bottom element is the floor this volume is named for.

information, ordered  Order partial functions, and more generally partial computations, by information: x ⊑ y means y is everywhere at least as defined as x and agrees with it where x is defined. At the bottom sits ⊥ — total absence of information, the everywhere‑undefined computation, the program that only ever loops. A domain (a directed‑complete partial order) is a space in this order with two guarantees: a least element ⊥, and a supremum for every ascending chain. The first gives the recursion somewhere to start; the second gives it somewhere to arrive. This is the precise structure the Ceiling's degrees lacked — they had increase without a top — and its presence is what converts an unbounded climb into a reached limit.

continuity is finiteness  The functionals that arise from recursive definitions are not merely monotone but continuous — they preserve the suprema of ascending chains, F(⊔ xn) = ⊔ F(xn). This is not a technical nicety; it is the mathematical content of computability. A continuous functional's output on an infinite input is already determined by its outputs on the input's finite approximations — it never needs to consult the whole of an infinite object at once, only finite parts of it. That is exactly what a machine, which can read only finitely much in finite time, is able to do. Continuity is the order‑theoretic face of "finite information suffices," and it is why μF = ⊔n Fn(⊥) needs only ω steps: the least fixed point of a computable definition is reached in the limit of finite stages, never requiring the transfinite.

Kleene below, Knaster–Tarski above — and why ⊥ is the floor

Two fixed‑point theorems govern the order, at two strengths. Knaster–Tarski asks only monotonicity on a complete lattice and returns the least fixed point as an intersection — but to build it from below may take a transfinite iteration Fα(⊥) through the ordinals. Kleene asks the stronger hypothesis of continuity and is rewarded with the constructive ω‑chain ⊔n Fn(⊥) — the least fixed point reached in countably many finite steps. Computation lives at the Kleene strength: its recursions converge in ω, and that is why a program's meaning is a limit you can approach by running it longer. Both theorems begin at ⊥. The least element is not incidental — it is the seed of every least fixed point, the one point from which an information‑increasing chain can start, and the still ground beneath all of recursion. The Ceiling had no top and so could not converge; the Floor has a bottom and so can build. The whole positive theory stands on ⊥.

V · the coincidence

The loop is the limit

Now the two threads are tied. The combinator that loops and the least solution that is built turn out to be one object — and the statement that they never diverge is a theorem of the first importance: computational adequacy.

Y denotes μ  The loop of §II was syntactic and plural; the limit of §III was semantic and canonical. They meet in the model. Interpret the λ‑calculus in Scott's reflexive domain D ≅ [D → D], and the Y combinator's denotation is exactly the least‑fixed‑point operator: ⟦Y⟧ = μ, the map sending each continuous F to ⊔n Fn(⊥). The syntactic combinator, which by itself singled out no particular fixed point, is forced by the semantics to denote the least one — because the model is built from ⊥ and its limits, and there is nowhere else for the meaning to land. The plurality of combinators collapses under interpretation: Curry's Y, Turing's Θ, the whole Böhm sequence — all denote the single operator μ.

Computational adequacy · the loop computes the limit
In an adequate model of a recursive language, the operational and denotational accounts agree: a closed term M reduces to a value iff ⟦M⟧ ≠ ⊥, and then ⟦M⟧ = ⟦value⟧. Running the loop and taking the least fixed point yield the same answer on every input.
M ↠ v  ⟺  ⟦M⟧ ≠ ⊥   ·   ⟦Y F⟧ = μ⟦F⟧ = ⊔n ⟦F⟧n(⊥)
what it secures Operationally, Y F unfolds one layer at a time — F(F(F(…))) — and halts on an input exactly when finitely many layers already decide it. Denotationally, μ⟦F⟧ is the supremum of those same finite stages. Adequacy is the theorem that these never disagree: the n‑th unfolding of the loop is the n‑th rung Fn(⊥) of the ascent, and the computation's result is the chain's limit. "The loop you run is the limit you climb" is not an analogy; it is this equality. ∎
The runnable Y of §II computed the factorial; the ascent of §III converged to the factorial; adequacy is the guarantee that this coincidence is no accident of the example but holds for every recursion in any faithful model.

two recursion theorems, one function  The same coincidence appears in pure computability, where it is the relation between Kleene's two recursion theorems. The second — the diagonal one — forces a program equal to a transformation of its own code: the loop, plural, with no canonical index. The first — the order‑theoretic one — builds the least fixed point of an effective functional: the limit, canonical. And a faithful implementation of the first is an instance of the second: the program the diagonal hands you, when the transformation is "one more layer of the recursion," computes precisely the least fixed point the order builds. Forced and built name one partial function. The diagonal proves a recursion exists; the order says which one it is; adequacy certifies that running it computes that one. Three theorems, one engine.

the frontier — adequacy is not full abstraction

Honesty marks where the coincidence stops being easy. Adequacy says the model gets every computation right — same value, same divergence. It does not say the model gets every equivalence right. A model is fully abstract when two terms have the same denotation exactly when no program can tell them apart operationally, and Scott's D∞ is adequate but not fully abstract: it contains "parallel" functions, like a parallel‑or that probes both arguments at once, which no sequential program computes, so the model draws distinctions the language cannot (Plotkin's problem). Closing the gap drove decades of work — Berry's stable and sequential functions, and finally game semantics (Abramsky–Jagadeesan–Malacaria, Hyland–Ong), where a computation is a dialogue of moves and full abstraction is at last achieved. The loop‑is‑the‑limit theorem is secure at the level of what is computed; the subtler question of what is indistinguishable is where the diagonal's positive face meets the open sea. That a fixed point exists, is canonical, and is what runs — all settled. Exactly which fixed points are operationally the same — the living edge of semantics.

VI · the price

What the loop costs a logic

The engine is not free. Read a program as a proof, and an unrestricted fixed‑point combinator becomes a proof of falsehood. The whole of recursion theory turns out to be a dial: the more fixed‑point power a system has, the less it can guarantee about termination and truth.

Y at the empty type  Under the Curry–Howard correspondence, types are propositions and terms are their proofs, and reduction is the normalisation of proofs. Read Y through this dictionary and a shadow appears. A fixed‑point combinator inhabits (τ → τ) → τ for every τ — in particular for τ = ⊥, the empty type, the proposition with no proof. So an unrestricted Y yields a closed proof of falsehood, and by it a proof of everything. This is why the untyped λ‑calculus, as a logic, is the degenerate one: the engine that drives all computation is, read as reasoning, an inconsistency. The loop that makes recursion possible is the same loop that, in a logic, must be forbidden.

consistency is strong normalisation is no Y  The simply typed λ‑calculus forbids it structurally. Self‑application x x would need a type σ = σ → τ, which no finite type satisfies; so there is no reflexive object, no Y, and — by Tait's reducibility argument — every term strongly normalises, reducing to a value in finitely many steps. A normal closed proof of ⊥ cannot exist, so the calculus is consistent. Three properties travel together: no fixed‑point combinator, strong normalisation, logical consistency — present in the typed calculus, absent in the untyped. But the price of buying them is steep: a strongly normalising calculus cannot diverge, so it cannot be universal. Totality and universality cannot both be had. The position of any system on that trade is fixed by exactly how much recursion it admits — which is the dial below.

the dial of recursion — totality against universality

Turn it up and you gain reach and lose guarantees. Primitive recursion is total but cannot count to Ackermann; System T is total and reaches every function Peano arithmetic can prove terminating, yet still cannot diverge; general recursion computes everything and pays in partiality and, as a logic, in consistency. The single knob is unbounded search — the place where Y enters.
totality has degrees — and the degree is an ordinal

Between "bounded and total" and "universal and partial" lies a vast, exactly‑measured middle. Ackermann's function is the first landmark: total, computable, but growing too fast for any primitive recursion — the first proof that being total is not one thing but a graded hierarchy. System T, Gödel's calculus of higher‑type recursion, climbs that hierarchy precisely as far as Peano arithmetic can certify: its definable functions are exactly the provably total functions of PA, the ε₀‑recursive ones, and its strong normalisation is the computational content of PA's consistency. The measure of how much recursion a system commands is a proof‑theoretic ordinal — ωω for primitive recursive arithmetic, ε₀ for PA, higher for stronger theories — and the fast‑growing hierarchy Fα turns that ordinal into a rate of growth, Fε₀ outpacing every function PA can prove total. Here the positive face of the diagonal touches the proof‑theoretic ascent of the wider fascicle from the other side: how high a recursion can climb is how strong a theory must be to know it halts. The loop's reach is an ordinal, and the ordinal is a measure of trust.

VII · the engine and its dual

One diagonal, received two ways

The positive face is complete, and it is the exact mirror of the negative. Set the two side by side and a single picture emerges: the wall of limitation and the engine of computation are the same construction, divided only by what the codomain can hold.

the whole of computation is least fixed points  Gather the thread. Every computable function is the least fixed point of a continuous functional; every recursive definition is the diagonal made to converge; every loop a program runs is, by adequacy, the limit of an ascending chain begun at ⊥. The combinator forces the fixed point into existence, the order selects the canonical one, the model certifies that running computes it. What the Ceiling proved impossible — a fixed point of the twist — the Floor proves not merely possible but unavoidable and constructive, the moment the codomain is a domain. The fixed point did not change. The host did.

the shared construction
Fate 1 · the Ceiling
Fate 2 · the Floor
the chain
iterate the diagonal
∅ ⊏ ∅′ ⊏ ∅″ ⊏ ⋯ — strictly increasing
⊥ ⊑ F(⊥) ⊑ F²(⊥) ⊑ ⋯ — strictly increasing
the codomain
where the chain lives
the Turing degrees — increase with no top
a domain — a bottom ⊥ and all suprema
the limit
does the chain arrive?
none — it diverges into a hierarchy
the least fixed point — it converges
the fixed point
its reception
forbidden, relocated one level up
forced, built from below
the result
what it becomes
limitation — Cantor, Tarski, Turing, Rice
recursion — Y, least fixed points, all computation

conservation, on its constructive face  This is the law of the fascicle once more, now read forwards. The diagonal never abolishes its fixed point; it only finds it a home. In the negative settings the home is a higher level — the fixed point forbidden here exists one storey up, and the impossibility is conserved as an ascent. In the positive settings the home is right here, assembled from ⊥ by a chain the codomain is complete enough to finish — the fixed point granted, and the construction conserved as a recursion. The two fates are not opposed theorems but one theorem under two conditions: a twist that cannot rest forbids a naming and climbs a hierarchy; a twist that can rest builds a recursion and grounds a computation. The wall and the engine are the same diagonal, and the only question ever asked of it is whether the codomain has a floor to build on or a ceiling it cannot pass. The fixed point is conserved either way — relocated upward when refused, constructed from below when received. There is no third possibility, because there is only the one construction, and it always finds its point.

The fixed point the previous volume could not host, this one cannot avoid. Where the codomain is a domain — where there is a bottom to begin from and the suprema to arrive at — the diagonal stops forbidding and starts building: a combinator that loops, a least solution assembled from nothing, and the theorem that running the one computes the other. Every recursion is the diagonal made to converge; every computable function is a fixed point reached from ⊥. And the price is exact — the loop that powers all computation is, read as a proof, the inconsistency a logic must refuse, so that totality and universality become a dial calibrated in ordinals. The engine of the possible and the wall of the impossible are a single construction, parted only by whether the answer‑space has a floor. Y f = f(Y f) — the loop that is a limit, the self‑reference that, granted its fixed point, becomes the whole of what a machine can do.