Encyclopedia Foundation Foundation Arithmetic From Logic Embed Lt Iff Of One Lt
ARTICLE 3 claims 3 theorems
Foundation Arithmetic From Logic Embed Lt Iff Of One Lt
A machine-checked proof shows that the natural numbers, as constructed from a comparison operator, sit inside the positive real numbers in a way that preserves their ordering.
The embedding theorem
The natural numbers are the familiar counting numbers 0, 1, 2, 3, and so on. In the Recognition Science framework, these numbers are not assumed as a starting point. Instead, the framework derives them from a comparison operator, a rule that decides which of two positive real numbers is larger. The key idea is that the orbit of a single nontrivial generator, the set {1, γ, γ², γ³, ...}, has exactly two constructors: being at the identity element 1, or taking one more step. That two-constructor structure is the natural-number structure, and the framework makes it an inductive type called LogicNat.
The declaration embed_lt_iff_of_one_lt establishes a precise correspondence between this derived structure and the ordinary natural numbers. It proves that the embedding function, which maps each LogicNat to a positive real number, preserves the less-than relation. In plain language: if one derived number is less than another in the LogicNat ordering, then its embedded real value is less than the other's embedded real value, and conversely. The theorem is stated as: n < m if and only if embed γ n < embed γ m, for any positive real generator γ not equal to 1.
This matters because it shows the derived arithmetic behaves like the familiar one. The framework's natural numbers are not a strange shadow of the real numbers; they embed into the positive reals in a way that respects order. The proof also shows the embedding is injective, meaning distinct derived numbers map to distinct real numbers. Combined with the order preservation, this gives a faithful copy of the natural numbers inside the positive reals, built from nothing but the comparison operator and the step operation.
In Recognition Science, this is part of a larger chain: the Law of Logic forces a cost function, which forces a generator, which forces the natural numbers, which then force arithmetic. The declaration is one link in that chain, showing that the derived ordering matches the real ordering. It does not claim that the framework has invented new numbers or a new arithmetic. It claims that the familiar natural numbers, with their usual order, can be reconstructed from a more primitive starting point.
The theorem is machine-checked, meaning a computer program has verified every step of the proof. The framework's library of formal theorems contains this result as a proved statement, not as a conjecture or an assumption. The proof relies only on the standard axioms of the underlying type theory, with no framework-specific axioms added.
THEOREM lt_iff_succ_le · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
theorem lt_iff_succ_le {n m : LogicNat} : n < m ↔ succ n ≤ m := by
constructor
· rintro ⟨k, hk⟩
refine ⟨k, ?_⟩
show succ n + k = m
rw [succ_add]
show succ (n + k) = m
rw [← add_succ]
-- need n + succ k = m, but we have n + succ k = m via hk; succ_add transforms
-- Wait: hk : n + succ k = m, and succ (n + k) = n + succ k by add_succ. So succ (n + k) = m.
exact hk
· rintro ⟨k, hk⟩
refine ⟨k, ?_⟩
show n + succ k = m
rw [add_succ]
show succ (n + k) = m
rw [← succ_add]
exact hk
THEOREM embed_injective · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
/-- **Embedding injectivity**: distinct natural numbers map to distinct
points in the orbit. This closes the bridge from the abstract `LogicNat`
to the concrete orbit `{1, γ, γ², ...}` in ℝ₊. -/
theorem embed_injective (γ : Generator) : Function.Injective (embed γ) := by
intro a b hab
-- Translate to powers.
rw [embed_eq_pow, embed_eq_pow] at hab
-- Take logs.
have hpos_a : 0 < γ.value ^ (LogicNat.toNat a) := pow_pos γ.pos _
have hpos_b : 0 < γ.value ^ (LogicNat.toNat b) := pow_pos γ.pos _
have hlog : Real.log (γ.value ^ (LogicNat.toNat a))
= Real.log (γ.value ^ (LogicNat.toNat b)) := by
exact congrArg Real.log hab
rw [Real.log_pow, Real.log_pow] at hlog
-- Cancel the non-zero log γ.value.
have hne := log_generator_ne_zero γ
have hcast : ((LogicNat.toNat a : ℝ)) = ((LogicNat.toNat b : ℝ)) := by
have := mul_right_cancel₀ hne hlog
exact this
have h_nat : LogicNat.toNat a = LogicNat.toNat b := by exact_mod_cast hcast
-- Lift back to LogicNat via the equivalence.
have := congrArg LogicNat.fromNat h_nat
rw [LogicNat.fromNat_toNat, LogicNat.fromNat_toNat] at this
exact this
THEOREM LogicNat · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
/-- The natural numbers as forced by the Law of Logic.
`identity` represents the zero-cost element (the multiplicative
identity in the orbit). `step` represents one more iteration of the
generator. The two-constructor structure mirrors the orbit
{1, γ, γ², γ³, ...} as the smallest subset of ℝ₊ closed under
multiplication by γ and containing 1. -/
inductive LogicNat : Type
| identity : LogicNat
| step : LogicNat → LogicNat
deriving DecidableEq, Repr
What this page does not claim
Not a claim that the framework has invented new numbers or a new arithmetic. Not a claim that the embedding covers all positive real numbers, only the orbit of the generator. Not a claim that the comparison operator itself is derived from anything more primitive; it is a starting point.
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/ArithmeticFromLogic.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 derived ordering on LogicNat relate to the usual ordering on natural numbers in full detail?
- What other properties of the natural numbers, such as addition and multiplication, are preserved by the embedding?
- Does the embedding extend to the rational or real numbers constructed within the framework?
- What role does the generator γ play in determining which real numbers are represented?
- How does this construction compare to other foundations of arithmetic, such as Peano axioms?
MACHINE LAYER · GROUNDED CLAIM TABLE · CLICK TO EXPAND
THEOREM lt_iff_succ_le · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
theorem lt_iff_succ_le {n m : LogicNat} : n < m ↔ succ n ≤ m := by constructor · rintro ⟨k, hk⟩ refine ⟨k, ?_⟩ show succ n + k = m rw [succ_add] show succ (n + k) = m rw [← add_succ] -- need n + succ k = m, but we have n + succ k = m via hk; succ_add transforms -- Wait: hk : n + succ k = m, and succ (n + k) = n + succ k by add_succ. So succ (n + k) = m. exact hk · rintro ⟨k, hk⟩ refine ⟨k, ?_⟩ show n + succ k = m rw [add_succ] show succ (n + k) = m rw [← succ_add] exact hkThe declaration embed_lt_iff_of_one_lt proves that n < m if and only if embed γ n < embed γ m, for any positive real generator γ not equal to 1. lt_iff_succ_le · IndisputableMonolith/Foundation/ArithmeticFromLogic.leanTHEOREM embed_injective · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
/-- **Embedding injectivity**: distinct natural numbers map to distinct points in the orbit. This closes the bridge from the abstract `LogicNat` to the concrete orbit `{1, γ, γ², ...}` in ℝ₊. -/ theorem embed_injective (γ : Generator) : Function.Injective (embed γ) := by intro a b hab -- Translate to powers. rw [embed_eq_pow, embed_eq_pow] at hab -- Take logs. have hpos_a : 0 < γ.value ^ (LogicNat.toNat a) := pow_pos γ.pos _ have hpos_b : 0 < γ.value ^ (LogicNat.toNat b) := pow_pos γ.pos _ have hlog : Real.log (γ.value ^ (LogicNat.toNat a)) = Real.log (γ.value ^ (LogicNat.toNat b)) := by exact congrArg Real.log hab rw [Real.log_pow, Real.log_pow] at hlog -- Cancel the non-zero log γ.value. have hne := log_generator_ne_zero γ have hcast : ((LogicNat.toNat a : ℝ)) = ((LogicNat.toNat b : ℝ)) := by have := mul_right_cancel₀ hne hlog exact this have h_nat : LogicNat.toNat a = LogicNat.toNat b := by exact_mod_cast hcast -- Lift back to LogicNat via the equivalence. have := congrArg LogicNat.fromNat h_nat rw [LogicNat.fromNat_toNat, LogicNat.fromNat_toNat] at this exact thisThe embedding function is injective, meaning distinct derived numbers map to distinct real numbers. embed_injective · IndisputableMonolith/Foundation/ArithmeticFromLogic.leanTHEOREM LogicNat · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean
/-- The natural numbers as forced by the Law of Logic. `identity` represents the zero-cost element (the multiplicative identity in the orbit). `step` represents one more iteration of the generator. The two-constructor structure mirrors the orbit {1, γ, γ², γ³, ...} as the smallest subset of ℝ₊ closed under multiplication by γ and containing 1. -/ inductive LogicNat : Type | identity : LogicNat | step : LogicNat → LogicNat deriving DecidableEq, ReprThe natural numbers as derived have exactly two constructors: being at the identity element 1, or taking one more step. LogicNat · IndisputableMonolith/Foundation/ArithmeticFromLogic.lean