FormalConjecturesForMathlib/Computability/TuringMachine/PostTuringMachine.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1
6 declarations, 0 contain sorry, 0 declared as axioms
Imported by 2 files
- theorem
Part.get_eq_getline 23 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
Part,Part.Dom,Membership.mem,Part.get,EqProof uses:
Iff.mpr,Exists,Part.dom_iff_mem,Exists.intro,Eq.mp,congrArg,propext,Part.eq_iff_of_dom,Eq.symm,Part.eq_get_iff_mem2 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
StateTransition.dom_of_apply_eq_noneline 29 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Option,Eq,Option.none,Membership.mem,Part,StateTransition.evalProof uses:
PFun.fix_stop,Part.some,Sum,Option.elim,Sum.inl,Sum.inr,of_eq_true,Eq.trans,True,congrFun',congrArg,eq_self3 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
StateTransition.apply_get_evalline 34 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Option,Part.Dom,StateTransition.eval,Eq,Part.get,Option.noneProof uses:
Membership.mem,Part,Part.get_mem,And.right,StateTransition.Reaches,Eq.mp,And,congrArg,propext,StateTransition.mem_eval1 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- theorem
StateTransition.eval_get_evalTODO(Paul-Lez): also prove this forPFun.fix/golf using thePFun.fixAPI line 41 sourceSource comment
TODO(Paul-Lez): also prove this for `PFun.fix`/golf using the `PFun.fix` APIstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Option,Part.Dom,StateTransition.eval,Eq,Part,Part.getProof uses:
Eq.symm, Part.get_eq_get, StateTransition.dom_of_apply_eq_none,of_eq_true,Option.none,Eq.trans,True,congrFun',congrArg, StateTransition.apply_get_eval,eq_selfTactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem eval_get_eval {σ : Type*} {f : σ → Option σ} {s : σ} (H : (eval f s).Dom) : eval f ((eval f s).get H) = eval f s := by … - theorem
StateTransition.eval_eq_evalTODO(Paul-Lez): also prove this forPFun.fix/golf using thePFun.fixAPI line 48 sourceSource comment
TODO(Paul-Lez): also prove this for `PFun.fix`/golf using the `PFun.fix` APIstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Option,Eq,Option.some,Part,StateTransition.evalProof uses:
StateTransition.reaches_eval,Relation.ReflTransGen.single,Membership.mem,Eq.mpr,id,congrArg,Eq.refl1 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
theorem eval_eq_eval {σ : Type*} {f : σ → Option σ} {a a' : σ} (H : f a = some a'): eval f a = eval f a' := by … - theorem
StateTransition.eval_dom_iffTODO(lezeau): this should be generalized toPFun.fixline 56 sourceSource comment
TODO(lezeau): this should be generalized to `PFun.fix`standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Option,Iff,Exists,Nat,Eq,Nat.iterate,Option.bind,HAdd.hAdd,OfNat.ofNat,Option.some,Option.none,Part.Dom,StateTransition.evalProof uses:
Iff.intro,Nat.recAux,Eq.mpr,Membership.mem,Part,id,Exists.intro, StateTransition.dom_of_apply_eq_none,Eq.mp,congrArg,Option.bind_some,Function.iterate_one,zero_add,Or,Option.eq_none_or_eq_some,congrFun',Option.bind_congr',Eq.refl, StateTransition.eval_eq_eval,StateTransition.evalInductionand 9 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
theorem eval_dom_iff {σ : Type*} {f : σ → Option σ} {s : σ} : (∃ n, ((Option.bind · f)^[n+1] s) = none) ↔ (eval f s).Dom := by …