pith. machine review for the scientific record. sign in
theorem

interpret_zero

proved
show as:
view math explainer →
module
IndisputableMonolith.Foundation.UniversalForcing.StrictRealization
domain
Foundation
line
55 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.Foundation.UniversalForcing.StrictRealization on GitHub at line 55.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  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
  82    exact LogicNat.induction (motive := P) h0 hs n
  83  orbitEquivLogicNat := Equiv.refl LogicNat
  84  orbitEquiv_zero := rfl
  85  orbitEquiv_step := by intro n; rfl