Encyclopedia Foundation Foundation Universal Forcing Forced Semiring Map Preserves Add

ARTICLE 3 claims 3 theorems

Foundation Universal Forcing Forced Semiring Map Preserves Add

A machine-checked proof shows that any structure respecting zero and counting must respect addition, pinning down the arithmetic of the natural numbers.

The arithmetic that distinction forces

The natural numbers are the counting numbers: 0, 1, 2, 3, and so on, with the operations of addition and multiplication. A fundamental question about them is whether their arithmetic is something we invent or something forced upon us by more basic structure. The Recognition Science framework's ledger, a discrete record of events, provides a setting where this question has a precise answer.

The framework's machine-checked library of formal theorems proves a result called map_preserves_add. It states that any function from the counting numbers to themselves that sends 0 to 0 and commutes with the successor operation (the operation that takes a number to the next one, so 2 becomes 3) must also preserve addition. In symbols, if the function is h, then h(a + b) = h(a) + h(b) for all a and b. The proof is a single induction on the second argument, because addition is defined by recursion on it.

The same two hypotheses, fixing zero and commuting with successor, also force the function to preserve multiplication and to fix 1. These three results together show that any structure that respects the basic act of counting must respect the full arithmetic of the natural numbers. The framework's library then applies this to a specific canonical map between any two realizations of the ledger, proving that this map is a bijection preserving 0, 1, +, and ×.

In Recognition Science, this is the capstone: distinction forces the natural numbers. The forced carrier is isomorphic to the natural numbers as a structure with 0, 1, +, and ×, with no base, no positional notation, and no arithmetic axioms posited. The arithmetic is determined, not chosen.

What the theorem does not claim is also important. It does not say that the natural numbers are the only possible arithmetic structure, nor that the proof establishes anything about the physical world. It is a statement about the framework's formal ledger, not about empirical reality. The theorem also does not claim that the canonical map is non-trivial; in the strict presentation, it is simply the identity function, and the honest note in the library says so plainly.

THEOREM map_preserves_add · IndisputableMonolith/Foundation/UniversalForcing/ForcedSemiring.lean
/-- A map fixing zero and commuting with `succ` preserves addition. Addition
recurses on its second argument, so the proof is a single induction. -/
theorem map_preserves_add (h : LogicNat → LogicNat)
    (h0 : h LogicNat.zero = LogicNat.zero)
    (hs : ∀ n, h (LogicNat.succ n) = LogicNat.succ (h n)) :
    ∀ a b : LogicNat, h (a + b) = h a + h b := by
  intro a b
  induction b with
  | identity =>
      show h (a + LogicNat.zero) = h a + h LogicNat.zero
      rw [add_zero, h0, add_zero]
  | step b ih =>
      show h (a + LogicNat.succ b) = h a + h (LogicNat.succ b)
      rw [add_succ, hs, ih, hs, add_succ]
THEOREM map_preserves_mul · map_preserves_one · IndisputableMonolith/Foundation/UniversalForcing/ForcedSemiring.lean
/-- A map fixing zero and commuting with `succ` (hence, by the previous lemma,
preserving `+`) preserves multiplication. Multiplication recurses on its second
argument via addition. -/
theorem map_preserves_mul (h : LogicNat → LogicNat)
    (h0 : h LogicNat.zero = LogicNat.zero)
    (hs : ∀ n, h (LogicNat.succ n) = LogicNat.succ (h n)) :
    ∀ a b : LogicNat, h (a * b) = h a * h b := by
  have hadd := map_preserves_add h h0 hs
  intro a b
  induction b with
  | identity =>
      show h (a * LogicNat.zero) = h a * h LogicNat.zero
      rw [mul_zero, h0, mul_zero]
  | step b ih =>
      show h (a * LogicNat.succ b) = h a * h (LogicNat.succ b)
      rw [mul_succ, hadd, ih, hs, mul_succ]
/-- A zero/step-preserving map fixes `1 = succ 0`. -/
theorem map_preserves_one (h : LogicNat → LogicNat)
    (h0 : h LogicNat.zero = LogicNat.zero)
    (hs : ∀ n, h (LogicNat.succ n) = LogicNat.succ (h n)) :
    h 1 = 1 := by
  show h (LogicNat.succ LogicNat.zero) = LogicNat.succ LogicNat.zero
  rw [hs, h0]
THEOREM forcedArithmeticIsNat · IndisputableMonolith/Foundation/UniversalForcing/ForcedSemiring.lean
/-- The forced arithmetic is `ℕ`. -/
noncomputable def forcedArithmeticIsNat : ForcedArithmeticIsNat where
  toEquiv := LogicNat.equivNat
  map_zero := LogicNat.toNat_zero
  map_one := toNat_one
  map_add := LogicNat.toNat_add
  map_mul := LogicNat.toNat_mul

What this page does not claim

The theorem does not claim that the natural numbers are the only possible arithmetic structure. The theorem does not claim anything about the physical world or empirical reality. The canonical map is not claimed to be non-trivial; in the strict presentation it is the identity function.

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/ForcedSemiring.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