def
definition
interpret
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.Foundation.UniversalForcing.StrictRealization on GitHub at line 51.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
-
voxelStep_foldPlusOne_encodeIndex -
canonicalCategoricalRealization -
boolRealization -
FaithfulArithmeticInterpretation -
LogicRealization -
ofPositiveRatioComparison -
modularRealization -
natOrderedRealization -
physicsRealization -
biologyRealization -
ethicsRealization -
modularRealization -
musicRealization -
narrativeRealization -
interpret_collapses -
interpret_eq_parity -
universal_forcing_via_NNO -
orderRealization -
interpret_step -
interpret_zero -
toLightweight -
logicRealizationOfDistinction
formal source
48
49/-- Interpret the free orbit of a strict realization in its carrier by
50primitive recursion over the native generator and composition operation. -/
51def interpret (R : StrictLogicRealization) : FreeOrbit R → R.Carrier
52 | LogicNat.identity => R.one
53 | LogicNat.step n => R.compose R.generator (interpret R n)
54
55@[simp] theorem interpret_zero (R : StrictLogicRealization) :
56 interpret R LogicNat.zero = R.one := rfl
57
58@[simp] theorem interpret_step (R : StrictLogicRealization) (n : FreeOrbit R) :
59 interpret R (LogicNat.succ n) = R.compose R.generator (interpret R n) := rfl
60
61/-- Convert a strict realization to the existing lightweight interface.
62The orbit fields are all derived from `LogicNat`, not supplied by the caller. -/
63def toLightweight (R : StrictLogicRealization) : LogicRealization where
64 Carrier := R.Carrier
65 Cost := R.Cost
66 zeroCost := R.zeroCost
67 compare := R.compare
68 zero := R.one
69 step := fun x => R.compose R.generator x
70 Orbit := FreeOrbit R
71 orbitZero := LogicNat.zero
72 orbitStep := LogicNat.succ
73 interpret := interpret R
74 interpret_zero := rfl
75 interpret_step := by intro n; rfl
76 orbit_no_confusion := by
77 intro n h
78 exact LogicNat.zero_ne_succ n h
79 orbit_step_injective := LogicNat.succ_injective
80 orbit_induction := by
81 intro P h0 hs n