OAI/Computability/UniqueGames/Machines/MachineClone100TableLemmas.lean
78 declarations, 0 contain sorry, 0 declared as axioms
The literal four-word row used by the hundred-clone finite machine. The natural-number triple is a fixed program parameter; its bounds and distinctness are needed only when identifying the output with the typed parity instance.
- def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Table.cloneEquationWordsline 22 - inductive
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.Tapeline 41 - abbrev
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.Contextline 45 - abbrev
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.Stateline 46 - abbrev
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.Alphabetline 47 - inductive
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.Labelline 49 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.defaultControlline 65 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.initialStateline 66 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.headerTapeline 68 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.contextSourceline 70 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.contextScaleline 74 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.tripleFieldline 78 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.contextOffsetline 85 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.affineEmitline 89 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.emissionline 93 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.contextNextline 96 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.cleanupNextline 103 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.drainline 106 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.programline 113 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Model.machineline 136 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_eq_flatMapline 161Source documentation
Identity control transitions reduce exactly to fixed symbol substitution.
theorem output_eq_flatMap {Q : Type} [Fintype Q] (emit : Q → Bool → List Bool) (q : Q) (input : List Bool) : MachineTransducer.output (fun state _ => state) emit q input = input.flatMap (emit q) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_appendline 170 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.affineEmit_replicate_trueline 177 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.affineEmit_wordline 185Source documentation
This includes zero scale and zero offset, with no positivity assumptions.
theorem affineEmit_word (scale offset v : Nat) : (encodeWord v).flatMap (affineEmit scale offset) = encodeWord (offset + scale * v) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.affineEmit_word_appendline 192 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.affineEmit_wordsline 197 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_wordline 206Source documentation
Exact symbolic context transform used by the shared clone-table machine.
theorem output_word (triples : List (Nat × Nat × Nat)) (c : Context triples.length) (v : Nat) : MachineTransducer.output (fun q _ => q) (emission triples) c (encodeWord v) = encodeWord (contextOffset triples c + contextScale c * v) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_word_appendline 213 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_wordsline 220 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_header_variablesline 227 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_header_countline 233Source documentation
The equation-count multiplier remains the arbitrary symbolic table length.
theorem output_header_count (triples : List (Nat × Nat × Nat)) (v : Nat) : MachineTransducer.output (fun q _ => q) (emission triples) (.inl 1) (encodeWord v) = encodeWord (triples.length * v) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_fieldline 238 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_first_fieldline 244 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_second_fieldline 250 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_third_fieldline 256 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Affine.output_rhs_fieldline 263Source documentation
RHS words are copied exactly, including both legal Boolean values.
theorem output_rhs_field (triples : List (Nat × Nat × Nat)) (i : Fin triples.length) (v : Nat) : MachineTransducer.output (fun q _ => q) (emission triples) (.inr (i, 3)) (encodeWord v) = encodeWord v := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.drainStep_consline 286Source documentation
The finite drain statement pops one symbol and retains the ambient control.
theorem drainStep_cons (tape : Tape) (again next : Label D) (program : Label D → TM2.Stmt Alphabet (Label D) (State D)) (atAgain : program again = drain tape again next) (base : Tape → List Bool) (bit : Bool) (input : List Bool) (control : Unit × Context D) (register : Option Bool) : TM2.step program ⟨some again, (control, register), Function.update base tape (bit :: input)⟩ = some ⟨some again, (control, some bit), Function.update base tape input⟩ := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.drainStep_nilline 300Source documentation
The exit transition observes the empty tape and resets the optional bit.
theorem drainStep_nil (tape : Tape) (again next : Label D) (program : Label D → TM2.Stmt Alphabet (Label D) (State D)) (atAgain : program again = drain tape again next) (base : Tape → List Bool) (control : Unit × Context D) (register : Option Bool) : TM2.step program ⟨some again, (control, register), Function.update base tape []⟩ = some ⟨some next, (control, none), Function.update base tape []⟩ := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.drainTraceline 314Source documentation
Direct list induction gives exactly one transition per symbol plus the empty-tape exit; no whole execution trace is assumed.
theorem drainTrace (tape : Tape) (again next : Label D) (program : Label D → TM2.Stmt Alphabet (Label D) (State D)) (atAgain : program again = drain tape again next) (base : Tape → List Bool) (input : List Bool) (control : Unit × Context D) (register : Option Bool) : (MachineComposition.advance (TM2.step program))^[input.length + 1] (some ⟨some again, (control, register), Function.update base tape input⟩) = some ⟨some next, (control, none), Function.update base tape []⟩ := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.drainTrace_baseline 335Source documentation
Caller form: the selected tape's initial contents are read from the frame.
theorem drainTrace_base (tape : Tape) (again next : Label D) (program : Label D → TM2.Stmt Alphabet (Label D) (State D)) (atAgain : program again = drain tape again next) (base : Tape → List Bool) (control : Unit × Context D) (register : Option Bool) : (MachineComposition.advance (TM2.step program))^[(base tape).length + 1] (some ⟨some again, (control, register), base⟩) = some ⟨some next, (control, none), Function.update base tape []⟩ := by … - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.drainInTimeline 345 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearHeaderTraceline 359 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearHeaderInTimeline 367 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFieldsline 377Source documentation
The four explicit updates made by the successive cleanup labels.
def clearFields (base : Tape → List Bool) : Tape → List Bool := …
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_fieldline 381 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_otherline 385 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_inputline 389 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_headerline 391 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_counterline 393 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_scratchline 395 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_reversedline 397 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_outputline 399 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_eq_selfline 402 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields_idempotentline 407 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.cleanupStepsline 411 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.cleanupTraceline 415 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.cleanupFourTraceline 426Source documentation
All four field stacks are consumed by the actual cleanup program.
theorem cleanupFourTrace (triples : List (Nat × Nat × Nat)) (nonempty : triples ≠ []) (base : Tape → List Bool) (control : Unit × Context triples.length) (register : Option Bool) : (MachineComposition.advance (TM2.step (program triples nonempty)))^[cleanupSteps base] (some ⟨some (.cleanup 0), (control, register), base⟩) = some ⟨some .guard, (control, none), clearFields base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.cleanupSteps, OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.clearFields
- def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Cleanup.cleanupFourInTimeline 465 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextSource_ne_scratchline 492 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextSource_ne_reversedline 500 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapesline 508 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapes_reversedline 514 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapes_otherline 521 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapes_sourceline 527 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapes_scratchline 532 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.setupStepline 538Source documentation
Setup discards arbitrary old control and register values before scanning.
theorem setupStep (triples : List (Nat × Nat × Nat)) (nonempty : triples ≠ []) (context : Context triples.length) (base : Tape → List Bool) (state : State triples.length) : TM2.step (program triples nonempty) ⟨some (.setup context), state, base⟩ = some ⟨some (.scan context), (((), context), none), base⟩ := rfl - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTraceline 544 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextInTimeline 568Source documentation
The exact trace packaged for composition with neighboring cloning stages.
def contextInTime (triples : List (Nat × Nat × Nat)) (nonempty : triples ≠ []) (context : Context triples.length) (base : Tape → List Bool) (scratchEmpty : base .scratch = []) (state : State triples.length) : StateTransition.EvalsToInTime (TM2.step (program triples nonempty)) ⟨some (.setup context), state, base⟩ (some ⟨contextNext context, initialState _, contextTapes triples context base⟩) (3 * (base (contextSource context)).length + 3) where …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextTapes
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Context.contextInTime_stepsline 579 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTapesline 599 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTapes_counterline 603 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTapes_reversedline 606 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTapes_outputline 609 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTapes_otherline 613 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.counterStepline 618 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishTraceline 625 - def
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finishInTimeline 649 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineClone100Finish.finish_eq_haltListline 658