Encyclopedia Foundation Foundation Primitive Recognition Calculus Orbit Of Nat To Nat
ARTICLE 4 claims 3 theorems 1 model
Foundation Primitive Recognition Calculus Orbit Of Nat To Nat
A tiny formal object shows how the framework counts its own primitive steps, and what that counting does not say.
The orbit and its counting
The declaration ofNat_toNat is a small piece of the Recognition Science framework's machine-checked library of formal theorems. It states that if you start with an ordinary counting number, build the framework's primitive object from it, and then translate that object back, you get the number you started with. The proof is a routine induction: the zero case is immediate, and the successor case follows from the definitions. The same round-trip works in the other direction, from the framework's object back to the counting number and then forward again.
What makes this more than a trivial identity is the object it transports. The framework's primitive object is called a distinction: a discrete record of one act of recognition. The type DistinctionNat has two constructors, zero and succ, so it is exactly the natural numbers in disguise. The framework proves that zero is not a successor, that successor is injective, and that induction holds over this type. These are the Peano axioms, restated in the framework's own vocabulary. The round-trip theorems then show that the framework's orbit of distinctions and the ordinary natural numbers are equivalent as far as counting goes.
In Recognition Science, the framework models the natural numbers as the orbit of repeated distinction: each successor is another act of recognition, and zero is the absence of any act. The declaration ofNat_toNat is the bridge that lets the verifier display this orbit as an ordinary number. It is a definitional choice plus a proved theorem about that choice, not a claim about physics. The framework does not claim that this equivalence forces any physical constant, any dimension, or any property of the natural numbers beyond what the Peano axioms already give.
What the declaration does not claim is worth stating plainly. It does not say that the natural numbers are the only possible orbit, nor that distinction is the only way to build a counting structure. It does not say that the framework's primitive recognition calculus is the true foundation of arithmetic. It only says that, within the framework, the orbit of distinctions and the ordinary natural numbers are interchangeable for the purpose of counting. That is the whole content, and it is exactly what the machine-checked theorem proves.
THEOREM toNat_ofNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. Transport from Lean Nat to the δ-orbit and back is identity. -/
theorem toNat_ofNat (n : Nat) :
toNat (ofNat n) = n := by
induction n with
| zero => rfl
| succ n ih =>
simp [ofNat, ih]
THEOREM ofNat_toNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. Transport from the δ-orbit to Lean Nat and back is identity. -/
theorem ofNat_toNat (n : DistinctionNat) :
ofNat (toNat n) = n := by
induction n with
| zero => rfl
| succ n ih =>
simp [toNat, ih]
MODEL DistinctionNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K2.12. The base-neutral finite orbit of repeated distinction. -/
inductive DistinctionNat where
| zero
| succ : DistinctionNat → DistinctionNat
deriving DecidableEq, Repr
THEOREM zero_ne_succ · succ_injective · induction · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- R8. Zero is not a successor. -/
theorem zero_ne_succ (n : DistinctionNat) :
zero ≠ succ n := by
intro h
cases h
/-- R8. Successor is injective. -/
theorem succ_injective :
Function.Injective succ := by
intro a b h
cases h
rfl
/-- R8. Induction over the δ-orbit. -/
theorem induction {P : DistinctionNat → Prop}
(hzero : P zero)
(hsucc : ∀ n : DistinctionNat, P n → P (succ n)) :
∀ n : DistinctionNat, P n := by
intro n
induction n with
| zero => exact hzero
| succ n ih => exact hsucc n ih
What this page does not claim
The declaration does not claim that the natural numbers are the only possible orbit of repeated distinction. It does not claim that the framework's primitive recognition calculus is the true foundation of arithmetic. It does not claim that this equivalence forces any physical constant or dimension.
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/PrimitiveRecognitionCalculus/Orbit.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:
- How does the framework's orbit of distinctions relate to the forcing chain that derives the golden ratio and three spatial dimensions?
- What other primitive types does the Recognition Science calculus define, and what do their round-trip theorems establish?
- Does the equivalence between DistinctionNat and Nat extend to a proof that the framework's counting is consistent with ordinary arithmetic?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM toNat_ofNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. Transport from Lean Nat to the δ-orbit and back is identity. -/ theorem toNat_ofNat (n : Nat) : toNat (ofNat n) = n := by induction n with | zero => rfl | succ n ih => simp [ofNat, ih]The declaration ofNat_toNat states that if you start with an ordinary counting number, build the framework's primitive object from it, and then translate that object back, you get the number you started with. toNat_ofNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanTHEOREM ofNat_toNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. Transport from the δ-orbit to Lean Nat and back is identity. -/ theorem ofNat_toNat (n : DistinctionNat) : ofNat (toNat n) = n := by induction n with | zero => rfl | succ n ih => simp [toNat, ih]The same round-trip works in the other direction, from the framework's object back to the counting number and then forward again. ofNat_toNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanMODEL DistinctionNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K2.12. The base-neutral finite orbit of repeated distinction. -/ inductive DistinctionNat where | zero | succ : DistinctionNat → DistinctionNat deriving DecidableEq, ReprThe type DistinctionNat has two constructors, zero and succ, so it is exactly the natural numbers in disguise. DistinctionNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanTHEOREM zero_ne_succ · succ_injective · induction · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- R8. Zero is not a successor. -/ theorem zero_ne_succ (n : DistinctionNat) : zero ≠ succ n := by intro h cases h/-- R8. Successor is injective. -/ theorem succ_injective : Function.Injective succ := by intro a b h cases h rfl/-- R8. Induction over the δ-orbit. -/ theorem induction {P : DistinctionNat → Prop} (hzero : P zero) (hsucc : ∀ n : DistinctionNat, P n → P (succ n)) : ∀ n : DistinctionNat, P n := by intro n induction n with | zero => exact hzero | succ n ih => exact hsucc n ihThe framework proves that zero is not a successor, that successor is injective, and that induction holds over this type. zero_ne_succ · succ_injective · induction · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean