def
definition
natOrderedRealization
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.OrderedLogicRealization on GitHub at line 28.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
-
nontrivial -
step -
LogicNat -
succ -
succ_injective -
toNat -
toNat_succ -
toNat_zero -
zero_ne_succ -
LogicRealization -
identity -
is -
natCost -
natCost_self -
natCost_symm -
is -
interpret -
interpret_step -
interpret_zero -
is -
is -
Cost -
succ -
identity
used by
formal source
25 simp [natCost, h, h']
26
27/-- The ordered natural-number realization. -/
28def natOrderedRealization : LogicRealization where
29 Carrier := Nat
30 Cost := Nat
31 zeroCost := inferInstance
32 compare := natCost
33 zero := 0
34 step := Nat.succ
35 Orbit := ArithmeticFromLogic.LogicNat
36 orbitZero := ArithmeticFromLogic.LogicNat.zero
37 orbitStep := ArithmeticFromLogic.LogicNat.succ
38 interpret := ArithmeticFromLogic.LogicNat.toNat
39 interpret_zero := ArithmeticFromLogic.LogicNat.toNat_zero
40 interpret_step := by
41 intro n
42 exact ArithmeticFromLogic.LogicNat.toNat_succ n
43 orbit_no_confusion := by
44 intro n h
45 exact ArithmeticFromLogic.LogicNat.zero_ne_succ n h
46 orbit_step_injective := ArithmeticFromLogic.LogicNat.succ_injective
47 orbit_induction := by
48 intro P h0 hs n
49 exact ArithmeticFromLogic.LogicNat.induction (motive := P) h0 hs n
50 orbitEquivLogicNat := Equiv.refl ArithmeticFromLogic.LogicNat
51 orbitEquiv_zero := rfl
52 orbitEquiv_step := by intro n; rfl
53 identity := natCost_self
54 nonContradiction := natCost_symm
55 excludedMiddle := True
56 composition := True
57 actionInvariant := True
58 nontrivial := by