Encyclopedia Foundation Foundation Primitive Recognition Calculus Orbit Equiv Nat
ARTICLE 4 claims 4 theorems
Foundation Primitive Recognition Calculus Orbit Equiv Nat
A formal bridge shows the framework's basic counting steps and ordinary whole numbers are the same thing, with proofs checked by machine.
The counting equivalence
The declaration equivNat establishes that the framework's primitive counting structure, called the distinction orbit (a discrete record of repeated acts of making a distinction), is equivalent to the familiar natural numbers. In plain language, it proves that starting from zero and repeatedly adding one, which is how the framework builds its most basic ledger of events, produces exactly the same structure as the ordinary counting numbers 0, 1, 2, 3, and so on. The equivalence is bidirectional: every position in the framework's orbit maps to a natural number, and every natural number maps back to a position in the orbit, with both round trips returning to the starting point.
This is not a speculative analogy. The declaration is a definition in the framework's machine-checked library of formal theorems, and it is backed by four proved theorems that guarantee the round trips work. The first two theorems state that zero maps to zero and a successor maps to a successor. The other two prove the round trips are identity: converting a natural number into the orbit and back gives the original number, and converting an orbit position into a natural number and back gives the original position. Together these proofs show the two structures are interchangeable as far as counting is concerned.
The practical consequence is that the framework can use ordinary arithmetic for its internal bookkeeping. When the framework needs to count how many distinction events have occurred, it can hand that count to a standard verifier as a natural number, and when it needs to recover an orbit position from a count, it can do that too. The equivalence also confirms that the framework's basic counting obeys the same rules as ordinary counting: zero is not a successor of anything, and the successor function never maps two different positions to the same one. These are the Peano-style properties that make counting well behaved.
In Recognition Science, this equivalence is a foundational plumbing result rather than a discovery about the world. It does not claim that the natural numbers are somehow made of distinctions, nor that the framework's orbit is the true nature of counting. It claims only that within the framework, the two ways of representing counts agree perfectly, so that proofs about one can be carried over to the other. The declaration is a bridge between the framework's internal language and the language of ordinary mathematics, and it is a bridge that has been checked step by step by a machine.
What the declaration does not claim is more modest than what it establishes. It does not say that the framework's ledger is the only way to count, nor that the natural numbers are uniquely determined by the framework's axioms. It does not assert anything about infinite processes, since the orbit is built from finite steps. And it does not by itself prove any physical claim about the world; it is a statement about the framework's own internal consistency, not about space, time, or matter.
THEOREM equivNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. The δ-orbit is equivalent to Lean Nat as a verifier display. -/
def equivNat : DistinctionNat ≃ Nat where
toFun := toNat
invFun := ofNat
left_inv := ofNat_toNat
right_inv := toNat_ofNat
THEOREM toNat_zero · toNat_succ · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
@[simp] theorem toNat_zero :
toNat zero = 0 := by
rfl
@[simp] theorem toNat_succ (n : DistinctionNat) :
toNat (succ n) = Nat.succ (toNat n) := by
rfl
THEOREM toNat_ofNat · ofNat_toNat · 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]
/-- 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]
THEOREM zero_ne_succ · succ_injective · 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
What this page does not claim
The declaration does not claim that the natural numbers are uniquely determined by the framework's axioms. It does not assert anything about infinite processes, since the orbit is built from finite steps. It does not by itself prove any physical claim about the world.
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 distinction orbit relate to the framework's cost function and the forcing chain?
- What role does the equivalence to natural numbers play in the framework's treatment of infinity?
- Does the framework derive the natural numbers from more primitive recognition events, or are they assumed?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM equivNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
/-- K4.5. The δ-orbit is equivalent to Lean Nat as a verifier display. -/ def equivNat : DistinctionNat ≃ Nat where toFun := toNat invFun := ofNat left_inv := ofNat_toNat right_inv := toNat_ofNatThe declaration equivNat establishes that the framework's primitive counting structure, called the distinction orbit (a discrete record of repeated acts of making a distinction), is equivalent to the familiar natural numbers. equivNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanTHEOREM toNat_zero · toNat_succ · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean
@[simp] theorem toNat_zero : toNat zero = 0 := by rfl@[simp] theorem toNat_succ (n : DistinctionNat) : toNat (succ n) = Nat.succ (toNat n) := by rflThe first two theorems state that zero maps to zero and a successor maps to a successor. toNat_zero · toNat_succ · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanTHEOREM toNat_ofNat · ofNat_toNat · 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]/-- 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 other two prove the round trips are identity: converting a natural number into the orbit and back gives the original number, and converting an orbit position into a natural number and back gives the original position. toNat_ofNat · ofNat_toNat · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.leanTHEOREM zero_ne_succ · succ_injective · 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 rflThe equivalence also confirms that the framework's basic counting obeys the same rules as ordinary counting: zero is not a successor of anything, and the successor function never maps two different positions to the same one. zero_ne_succ · succ_injective · IndisputableMonolith/Foundation/PrimitiveRecognitionCalculus/Orbit.lean