OAI/Computability/UniqueGames/Machines/MachineExpanderRowCleanup.lean
23 declarations, 0 contain sorry, 0 declared as axioms
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_zeroline 11 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_oneline 12 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_twoline 13 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_threeline 14 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_fourline 15 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape_fiveline 16 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapesline 20 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupStepsline 33 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupSteps_eq_sumline 42 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes_dirtyline 46 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes_otherline 53Source documentation
Every tape outside the six named work roles keeps its exact contents.
theorem cleanupTapes_other (ports : Tape → K) (base : K → List Bool) (k : K) (outside : ∀ i : Fin 6, k ≠ ports (dirtyTape i)) : cleanupTapes ports base k = base k := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes_tableline 70 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes_inputVertexline 75 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes_outputline 80 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.join_traceline 85 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupOneTraceAtline 92Source documentation
One cleanup phase follows the actual drain instruction at its placed label.
theorem cleanupOneTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (i : Fin 6) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[((base (ports (dirtyTape i))).length + 1)] (some ⟨some (labels (.cleanup i)), state, base⟩) = some ⟨some (if hi : i.val + 1 < 6 then labels (.cleanup ⟨i.val + 1, hi⟩) else labels .done), (state.1, none), Function.update base (ports (dirtyTape i)) []⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.dirtyTape
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTraceAtline 111Source documentation
All six phases execute in the common program, with exactly the sum of the six initial word lengths plus one empty-branch transition per tape.
theorem cleanupTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[cleanupSteps ports base] (some ⟨some (labels (.cleanup 0)), state, base⟩) = some ⟨some (labels .done), (state.1, none), cleanupTapes ports base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupSteps, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.doneStepAtline 137Source documentation
The done label transfers control without inspecting or modifying any tape.
theorem doneStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .done), state, base⟩ = some ⟨exit, state, base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupExitTraceAtline 148Source documentation
Cleanup followed by the actual done-to-caller transition.
theorem cleanupExitTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[cleanupSteps ports base + 1] (some ⟨some (labels (.cleanup 0)), state, base⟩) = some ⟨exit, (state.1, none), cleanupTapes ports base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupSteps, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.initializedTapesline 165 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.initializeStepAtline 175Source documentation
Initialization physically pushes four delimiters and resets the bit register.
theorem initializeStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .initialize), state, base⟩ = some ⟨some (labels (.firstEmit (PCP.AlphabetTable.Emitter.labelAt 3 _ 0 .entry))), (state.1, none), initializedTapes ports base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Emitter.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.initializedTapes
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.clearedQueryTapesline 188 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.clearQueryStepAtline 195Source documentation
The query-clear phase removes one symbol from each of its two tapes and preserves the complete finite state and every other tape.
theorem clearQueryStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .clearQuery), state, base⟩ = some ⟨some (labels (.secondEmit (PCP.AlphabetTable.Emitter.labelAt 3 _ 0 .entry))), state, clearedQueryTapes ports base⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.State, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.statement, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Emitter.labelAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineExpanderRow.clearedQueryTapes