Encyclopedia Foundation Foundation Universal Forcing Strict Mathlib Nno Logic Nat Has Type Nno Universal

ARTICLE 2 claims 2 theorems

Foundation Universal Forcing Strict Mathlib Nno Logic Nat Has Type Nno Universal

A natural number system is the one where every counting process, however strange, is forced to exist and to be unique.

The universal property

A natural number system is the counting structure that starts at zero and repeatedly applies a successor step. The classical way to test whether something really is such a system is to ask whether it satisfies a universal property: given any starting point and any step rule in any other structure, there must be exactly one way to translate the counting system into that structure. The Recognition Science framework's machine-checked library of formal theorems establishes precisely this for its own counting type, called LogicNat. The theorem logicNat_has_type_NNO_universal_property proves that for any type α, any base element, and any step function, a function f exists from LogicNat to α that sends zero to the base and sends each successor to the step applied to the previous image.

The companion theorem logicNat_NNO_uniqueness proves that this function is the only one. If two functions both send zero to the base and both commute with the successor step, then they are identical. Together the two theorems form the full universal property: existence and uniqueness. This is the same property that characterizes the natural numbers in category theory, where it is called the natural numbers object (NNO). The framework's declaration is a bridge: it takes the already proved categorical result and exposes it under the Mathlib namespace, so that the property is available in the standard library's vocabulary.

In Recognition Science, this result matters because the framework derives structure from a forced ledger of recognition events. The discrete counting type is the skeleton on which later theorems about cost, scaling, and dimension are built. The universal property is what makes that skeleton rigid: any structure that obeys the same recursion rules must be the same counting system, up to unique translation. The framework's library shows this by connecting its own construction to the established categorical notion, so the property is not an assumption but a proved theorem.

What the declaration does not claim is broader than what it proves. It does not say that LogicNat is the only possible model of the natural numbers in any absolute sense; it says that any model satisfying the recursion rules is uniquely isomorphic to it. It does not derive any physical constant, any cost function, or any spatial dimension. It is a structural theorem about a counting type, not a physical law. The theorem is a foundation stone, not a finished building.

THEOREM logicNat_has_type_NNO_universal_property · IndisputableMonolith/Foundation/UniversalForcing/Strict/MathlibNNO.lean
logicNat_has_type_NNO_universal_property · IndisputableMonolith/Foundation/UniversalForcing/Strict/MathlibNNO.lean:20
theorem logicNat_has_type_NNO_universal_property :
    ∀ {α : Type*} (base : α) (step : α → α),
      ∃ (f : LogicNat → α),
        f LogicNat.zero = base ∧
        ∀ n, f (LogicNat.succ n) = step (f n) :=
  @nno_universal_existence
THEOREM logicNat_NNO_uniqueness · IndisputableMonolith/Foundation/UniversalForcing/Strict/MathlibNNO.lean
theorem logicNat_NNO_uniqueness :
    ∀ {α : Type*} (base : α) (step : α → α)
      (f g : LogicNat → α),
      f LogicNat.zero = base → (∀ n, f (LogicNat.succ n) = step (f n)) →
      g LogicNat.zero = base → (∀ n, g (LogicNat.succ n) = step (g n)) →
      f = g :=
  @nno_universal_uniqueness

What this page does not claim

The declaration does not prove that LogicNat is the only possible model of the natural numbers in an absolute sense. The declaration does not derive any physical constant, cost function, or spatial dimension. The declaration does not establish that the natural numbers are the only structure with a universal property.

Verify this page

Every tagged claim above names its theorem. To check one yourself rather than trust this page, elaborate the source module with Lean 4 and audit its axiom basis:

$ lake env lean IndisputableMonolith/Foundation/UniversalForcing/Strict/MathlibNNO.lean
expected axiom basis: [propext, Classical.choice, Quot.sound] (the Lean kernel's standard three; no RS-specific axioms)

A page whose claims cannot be reproduced this way does not ship. In production, every anchor links to the exact declaration in the public source release, and this block carries the build receipt for the page itself.

Derived articles

This page is generated by a question-recursion engine: the questions its answers raise become the next pages. The current agenda, with open targets marked red:

MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND