OAI/Computability/UniqueGames/Machines/PoweringMachineOuterLoopLemmas.lean
66 declarations, 0 contain sorry, 0 declared as axioms
Actual variable-size vertex enumeration. The finite guard decrements the live unary counter, a one-step bridge enters the fixed vertex producer, and the producer returns to the guard. Work tapes may change after every vertex.
- abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.Placementline 18 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.Stateline 19 - structure
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.Readyline 21 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.counterline 29 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.counter_otherline 32 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.ready_vertexline 39 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.ready_of_vertexline 58 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.vertexStartline 64 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.vertexEntryline 67 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.bridgeline 85 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.finalTapesline 90Source documentation
The exact tapes produced by repeatedly executing the actual vertex body.
def finalTapes (graph : PortTables.Table vertices d) (n : Nat) (placement : Placement K n) (output : K) : (remaining : Nat) → remaining ≤ vertices → (K → List Bool) → K → List Bool | 0, _, base => counter placement base 0 | r + 1, bounded, base => finalTapes graph n placement output r (by omega) (PoweringMachineVertex.finalTapes graph n placement output ⟨r, by omega⟩ (counter placement base r))Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.Placement, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.counter, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineVertex.finalTapes
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.stepsline 98 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.steps_leline 104 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.finalTapes_readyline 116 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.prefixRowsline 141 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.prefixRows_ofFnline 146 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.prefixRows_allline 163 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.finalTapes_outputline 170 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.finalTapes_otherline 196 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.loopTraceline 208 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.loopInTimeline 274 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Tapeline 315 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Stateline 318 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.placementline 321 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.inputTapeline 325 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.outputTapeline 328 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.headerVerticesline 331 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.headerDartsline 332 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.enumerationline 334 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.FinishLabelline 338 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Labelline 340 - instance
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.labelFintypeline 343 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.initLabelsline 347 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.guardLabelline 348 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.bridgeLabelline 349 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.vertexLabelsline 351 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.finishLabelsline 354 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.finishEntryline 358Source documentation
Finish first copies the dart-count field, then the vertex-count field.
def finishEntry (d n : Nat) : Label d n := finishLabels d n (.inl .seed)
Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.finishLabels
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.mainline 361Source documentation
Initialization first clones the input's live vertex-count field.
def main (d n : Nat) : Label d n := initLabels d n (.inr .seed)
Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.initLabels
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.programline 364Source documentation
The complete program, fixed solely by the reduction parameters.
def program (d n : Nat) : Label d n → TM2.Stmt (fun _ : Tape n => Bool) (Label d n) (State d n) | .inl label => PoweringMachineInitialize.instruction (PoweringMachineRowBody.capacity n) (PoweringMachineRowBody.bufferSize d n) (PCP.PoweringTableLayout.blockSize d n) (initLabels d n) (some (guardLabel d n)) label | .inr (.inl false) => MachineUnaryCounter.guard (placement n (PoweringMachineTapes.start (PoweringMachineRowBody.capacity n))) (bridgeLabel d n) (finishEntry d n) | .inr (.inl true) => PoweringMachineOuterLoop.bridge d n (vertexLabels d n) (guardLabel d n) | .inr (.inr (.inl label)) => PoweringMachineVertex.instruction n (placement n) (outputTape n) (vertexLabels d n) (some (guardLabel d n)) label | .inr (.inr (.inr label)) => PoweringMachineFinish.instruction (enumeration n) …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Label, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.Tape, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.State, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineInitialize.instruction, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineRowBody.capacity, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineRowBody.bufferSize, OAI.UniqueGamesTheorem.Foundations.PCP.PoweringTableLayout.blockSize, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.initLabels, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.guardLabel, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineUnaryCounter.guard, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.placement, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineTapes.start, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.bridgeLabel, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.finishEntry, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineOuterLoop.bridge, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.vertexLabels, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineVertex.instruction, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.outputTape, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineFinish.instruction, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.enumeration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.atInitline 380 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.atGuardline 385 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.atBridgeline 390 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.atVertexline 394 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.atFinishline 398 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.machineline 406Source documentation
All state and control spaces are explicit finite types; only the tapes hold variable-size data.
def machine (d n : Nat) : FinTM2 where …
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.machine_codeline 417 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.machine_mainline 420 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.machine_initialStateline 422 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineGlobal.input_ne_outputline 425 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.placement_injectiveline 443 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.placement_ne_outputline 446 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.output_ne_placementline 452 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerVertices_ne_placementline 456 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerDarts_ne_placementline 462 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.placement_ne_headerVerticesline 468 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.placement_ne_headerDartsline 472 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerVertices_ne_headerDartsline 476 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerVertices_ne_outputline 479 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerDarts_ne_outputline 482 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerVertices_ne_scratchline 485 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.headerDarts_ne_scratchline 490 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.scratch_ne_outputline 495 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.boolList_mpr_eqline 502Source documentation
A Boolean tape alphabet is constant, so the type-equality transport in the bundled machine's dependent stack specification leaves its word intact.
@[simp] theorem boolList_mpr_eq (h : List Bool = List Bool) (bits : List Bool) : h.mpr bits = bits := rfl - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.haltList_tapesline 507Source documentation
The dependent stack definition in
haltListis exactly the Boolean output tape shape produced by the checked finite cleanup program.theorem haltList_tapes (d n : Nat) (output : List Bool) : (Turing.haltList (machine d n) output).stk = MachineDrainMany.haltTapes (outputTape n) output := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.haltTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringGlobalConfiguration.haltList_eqline 515Source documentation
Exact identity with the global machine's actual output specification.
theorem haltList_eq (d n : Nat) (output : List Bool) : Turing.haltList (machine d n) output = (⟨none, PoweringMasterState.clean (PoweringMachineRowBody.bufferSize d n), MachineDrainMany.haltTapes (outputTape n) output⟩ : (machine d n).Cfg) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMasterState.clean, OAI.UniqueGamesTheorem.Foundations.Complexity.PoweringMachineRowBody.bufferSize, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineDrainMany.haltTapes