OAI/Computability/UniqueGames/Machines/MachineDrainManyLemmas.lean
66 declarations, 0 contain sorry, 0 declared as axioms
Actual cleanup of a finite list of work tapes
Each list position supplies one fixed drain label. The finite-sequence theorem composes the checked physical drains; neither the list nor a runtime tape index is stored in the register. Repeated tape names are allowed. The cleanup bound uses the lengths before cleanup, since draining can only shorten a tape.
- abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Alphabetline 26 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Tapesline 27 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.LocalLabelline 28 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Labelline 29 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Dataline 30 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.entryline 32 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.localInstructionline 35 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.instructionline 39 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.resultline 44 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.costline 47 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapesline 49 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalRegisterline 53 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalRegister_noneline 58 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.stepsline 61 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.sequence_resultline 66 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.sequence_stepsline 76 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapes_applyline 84Source documentation
Selected tapes are empty; every other tape word is preserved.
theorem finalTapes_apply (chosen : List K) (base : Tapes K) (k : K) : finalTapes chosen base k = if k ∈ chosen then [] else base k := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Tapes, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapes_memline 95 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapes_not_memline 98 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.lengthSumline 101 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.lengthSum_monoline 105 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.steps_leline 115Source documentation
This upper bound remains valid when the cleanup list repeats tapes.
theorem steps_le (chosen : List K) (base : Tapes K) : steps chosen base ≤ lengthSum chosen base + chosen.length := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Tapes, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.steps, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.lengthSum
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.steps_le_uniformline 131 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.traceline 147Source documentation
Exact execution of all concrete drains in the supplied ambient program.
theorem trace (chosen : List K) (labels : Label chosen → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.executionline 168 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.workTapesline 181Source documentation
An executable complete cleanup list from an explicit finite enumeration.
def workTapes {N : Nat} (enumeration : Fin N ≃ K) (output : K) : List K := … - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.mem_workTapesline 184 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.workTapes_length_leline 191 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.haltTapesline 197Source documentation
The tape component of the actual halted configuration: only output remains.
def haltTapes (output : K) (word : List Bool) : Tapes K := …
Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Tapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.finalTapes_workTapesline 200 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.cleanupTraceline 212Source documentation
With a clean register, complete work-tape cleanup reaches the standard halted shape, preserving the output word and the ambient state exactly.
theorem cleanupTrace {N : Nat} (enumeration : Fin N ≃ K) (output : K) (labels : Label (workTapes enumeration output) → Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.workTapes, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.Alphabet
- abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profileline 235 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.equalityProfileline 237 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.equalityProfile_encodeWordline 240 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.statement_roundtripline 255 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.copyStateEquivline 260 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.normalStateline 267 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.copyStatementline 269 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.copyInCompareStateline 274 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.nonDestructiveCompareInTimeline 321 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.setEntryline 378 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.setEntry_applyline 381 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.setExpectedline 387 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.foldProfileline 391 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.foldProfile_applyline 394 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tapeline 410 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Labelline 411 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.labelAtline 413 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.storePairline 416 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileProgramline 423Source documentation
The fixed list of pairs determines all control labels and original fields. The program compares only copied work-stack heads, then stores one finite bit.
def profileProgram {q : Nat} (cells : List (Fin q × Fin q)) (label : Label cells) : TM2.Stmt (fun _ : Tape q => Bool) (Label cells) (MachineCompare.State (Profile q)) := …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCompare.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profile
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.pairTimeline 443 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixProfileline 447 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixTimeline 451 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixProfile_succline 455 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixTime_succline 463 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.stageInTimeline 471Source documentation
One fully constructed copy/copy/compare/store stage, restoring every stack.
def stageInTime {q : Nat} (cells : List (Fin q × Fin q)) (r : Nat) (hr : r < cells.length) (base : Tape q → List Bool) (hwork : ∀ w : Fin 3, base (.inr w) = []) (profile : Profile q) : StateTransition.EvalsToInTime (TM2.step (profileProgram cells)) ⟨some (labelAt cells r 0), normalState profile, base⟩ (some ⟨some (labelAt cells (r + 1) 0), normalState (setExpected (fun i => base (.inl i)) profile cells[r]), base⟩) (pairTime (fun i => base (.inl i)) cells[r]) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileProgram, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.normalState, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.setExpected, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.pairTime
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixInTimeline 517Source documentation
Compose the actual stages up to any fixed position in the pair list.
def prefixInTime {q : Nat} (cells : List (Fin q × Fin q)) (base : Tape q → List Bool) (hwork : ∀ w : Fin 3, base (.inr w) = []) (initial : Profile q) (r : Nat) (hr : r ≤ cells.length) : StateTransition.EvalsToInTime (TM2.step (profileProgram cells)) ⟨some (labelAt cells 0 0), normalState initial, base⟩ (some ⟨some (labelAt cells r 0), normalState (prefixProfile (fun i => base (.inl i)) initial cells r), base⟩) (prefixTime (fun i => base (.inl i)) cells r) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileProgram, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.normalState, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixProfile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.prefixTime
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.allPairsline 537 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.mem_allPairsline 540 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.length_allPairsline 543 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.foldProfile_allPairsline 546 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileMachineline 552Source documentation
A concrete finite machine for the full field equality matrix.
def profileMachine (q : Nat) : FinTM2 where …
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileInTimeline 564Source documentation
Compute every matrix entry while preserving all original field stacks.
def profileInTime (q : Nat) (base : Tape q → List Bool) (hwork : ∀ w : Fin 3, base (.inr w) = []) (initial : Profile q) : StateTransition.EvalsToInTime (profileMachine q).step ⟨some (labelAt (allPairs q) 0 0), normalState initial, base⟩ (some ⟨none, normalState (equalityProfile (fun i => base (.inl i))), base⟩) (((allPairs q).map (pairTime (fun i => base (.inl i)))).sum + 1) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileMachine, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.allPairs, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.normalState, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.equalityProfile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.pairTime
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.pairTime_leline 590 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.totalTime_leline 599 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileInTime_boundedline 611Source documentation
A linear bound in the maximum original field length, for fixed
q. The actual machine and execution witness are retained.def profileInTime_bounded (q : Nat) (base : Tape q → List Bool) (hwork : ∀ w : Fin 3, base (.inr w) = []) (initial : Profile q) (L : Nat) (hL : ∀ i, (base (.inl i)).length ≤ L) : StateTransition.EvalsToInTime (profileMachine q).step ⟨some (labelAt (allPairs q) 0 0), normalState initial, base⟩ (some ⟨none, normalState (equalityProfile (fun i => base (.inl i))), base⟩) (q * q * (5 * L + 6) + 1) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.Profile, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.profileMachine, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.allPairs, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.normalState, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFieldProfile.equalityProfile