OAI/Combinatorics/ContingencyTables/Counting/CompanionRestartSemantics.lean
9 declarations, 0 contain sorry, 0 declared as axioms
Exact disjoint-word semantics of the physical restart loop
- def
OAI.ContingencyTables.CompanionRestartProgram.widthAtline 11 - lemma
OAI.ContingencyTables.CompanionRestartProgram.widths_ofFnline 13 - lemma
OAI.ContingencyTables.CompanionRestartProgram.stageWord_ofFnline 21 - def
OAI.ContingencyTables.CompanionRestartProgram.detachedStepline 30 - lemma
OAI.ContingencyTables.CompanionRestartProgram.next_detachedline 35 - lemma
OAI.ContingencyTables.CompanionRestartProgram.walk_eqline 39 - lemma
OAI.ContingencyTables.CompanionRestartProgram.fold_range_varyingline 47 - theorem
OAI.ContingencyTables.CompanionRestartProgram.output_varyingWalkline 63Source documentation
The bounded list program consumes exactly its independent stage blocks. No assumption about the encoded states is needed here.
theorem output_varyingWalk (base : List Stage×List ℕ) (bits : Fin (∑ i : Fin base.1.length,widthAt base i.val) → Bool) : output (base,List.ofFn bits)= varyingWalk (widthAt base) (fun i code word => detachedStep base i code (List.ofFn word)) base.2 base.1.length (varyingWordEquiv (widthAt base) base.1.length bits) := by …Mentions: OAI.ContingencyTables.CompanionRestartProgram.Stage, OAI.ContingencyTables.CompanionRestartProgram.widthAt, OAI.ContingencyTables.CompanionRestartProgram.output, OAI.ContingencyTables.CompanionRestartProgram.detachedStep
- theorem
OAI.ContingencyTables.CompanionRestartProgram.output_sameLawline 81Source documentation
Conditional laws compose across the actual disjoint variable-width blocks, even when the source and encoded state spaces have different sizes.
theorem output_sameLaw {Z : Type*} (base : List Stage×List ℕ) (v : ℕ → ℕ) (G : (i : ℕ) → Z → (Fin (v i) → Bool) → Z) (e : Z → List ℕ) (z : Z) (hz : base.2=e z) (h : ∀ i,i < base.1.length → ∀ s,SameLaw (fun bits : Fin (widthAt base i) → Bool => detachedStep base i (e s) (List.ofFn bits)) (fun bits => e (G i s bits))) : SameLaw (fun bits : Fin (∑ i : Fin base.1.length,widthAt base i.val) → Bool => output (base,List.ofFn bits)) (fun bits : Fin (∑ i : Fin base.1.length,v i.val) → Bool => e (varyingWalk v G z base.1.length (varyingWordEquiv v base.1.length bits))) := by …Mentions: OAI.ContingencyTables.CompanionRestartProgram.Stage, OAI.ContingencyTables.CompanionRestartProgram.widthAt, OAI.ContingencyTables.CompanionRestartProgram.detachedStep, OAI.ContingencyTables.CompanionRestartProgram.output