structure
definition
ArithmeticOf
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.ArithmeticOf on GitHub at line 65.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
canonical -
canonical_peanoSurface -
equivOfInitial -
extracted -
PeanoSurface -
categorical_arithmetic_invariant -
logicNatNNO -
bool_arithmetic_invariant -
bool_peano_surface -
LogicRealization -
modular_arithmetic_invariant -
ordered_arithmetic_invariant -
physics_arithmetic_invariant -
arithmetic_invariant -
arithmeticOf -
continuous_positive_ratio_arithmetic_invariant -
peano_surface -
universal_forcing -
arith_continuous_equiv_arith_discrete -
universal_forcing -
universal_peano_surface -
universalGround -
modular_arithmetic_invariant -
logicNat_isNNO -
realizationOrbit_isNNO -
order_arithmetic_invariant -
strictPositiveRatio_arith_equiv_strictBoolean -
strict_peano_surface -
strict_universal_forcing -
strictUniversalGround -
positiveRatio_strict_equiv_existing -
arith -
peano_surface -
universal_forcing -
metaphysical_ground_invariant
formal source
62end PeanoObject
63
64/-- The arithmetic object forced by a Law-of-Logic realization. -/
65structure ArithmeticOf (R : LogicRealization) where
66 peano : PeanoObject
67 initial : PeanoObject.IsInitial peano
68
69namespace ArithmeticOf
70
71/-- Peano surface of a forced arithmetic object. -/
72structure PeanoSurface {R : LogicRealization} (A : ArithmeticOf R) : Prop where
73 zero_ne_step : ∀ x : A.peano.carrier, A.peano.zero ≠ A.peano.step x
74 step_injective : Function.Injective A.peano.step
75 induction :
76 ∀ P : A.peano.carrier → Prop,
77 P A.peano.zero →
78 (∀ n, P n → P (A.peano.step n)) →
79 ∀ n, P n
80
81/-! ## LogicNat as the canonical initial Peano object -/
82
83/-- The Peano object carried by `LogicNat`. -/
84def logicNatPeano : PeanoObject where
85 carrier := LogicNat
86 zero := LogicNat.zero
87 step := LogicNat.succ
88
89/-- Fold from `LogicNat` into an arbitrary Peano object. -/
90def logicNatFold (B : PeanoObject) : LogicNat → B.carrier
91 | LogicNat.identity => B.zero
92 | LogicNat.step n => B.step (logicNatFold B n)
93
94/-- Lift from `LogicNat` to any Peano object by primitive recursion. -/
95def logicNatLift (B : PeanoObject) : PeanoObject.Hom logicNatPeano B where