OAI/Computability/UniqueGames/PCP/SourceLoopInitLemmas.lean
61 declarations, 0 contain sorry, 0 declared as axioms
- inductive
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.HeaderTapeline 12 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.HeaderTape.enumListline 16 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.HeaderTape.enumList_getElem?_ctorIdx_eqline 18 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.HeaderTape.enumList_nodupline 22 - instance
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.(instance at line 24)line 24 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.Tapeline 28 - inductive
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.Labelline 30 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.variableHeaderline 38 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.clauseHeaderline 39 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.headerDestinationline 40 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.readStartline 41 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.readLoopline 42 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.labelAtline 43 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.programline 45 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.atReadStartline 64 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.atReadLoopline 69 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.atReadDoneline 74 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.copiedInputline 80 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.readOutputline 83 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.headerOutputline 87 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.clear_readOutputline 92 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.readOutput_workline 102 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.headerOutput_frameline 107 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.headerInTimeline 111 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.digitOutputline 147 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.digitOutput_frameline 150 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.digitInTimeline 154 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.stageTapesline 197 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.stageTapes_frameline 202 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.stageTapes_currentline 213 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.stageTapes_remainingline 233 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.prefixInTimeline 254 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.digitsInTimeline 282 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.outputTapesline 301 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.initializeInTimeline 304 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_currentline 336 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_remainingline 340 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_frameline 344 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_workline 350 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_variableHeaderline 355 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_clauseHeaderline 360 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_headersline 365 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.output_formulaline 371 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.timePolynomialline 376 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.timePolynomial_evalline 379 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceLoopInit.machineline 383 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Labelline 402 - abbrev
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Tapesline 403 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.entryline 405 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.statementline 410Source documentation
All instructions act on physical stacks. The final load only resets the finite internal register; no input-dependent integer is stored in it.
def statement (clearKeys : List K) (accumulator output : K) (canonical : σ) (labels : Label clearKeys → Λ) (exit : Option Λ) : Label clearKeys → TM2.Stmt (fun _ : K => Bool) Λ (σ × Option Bool) | .inl label => MachineDrainMany.instruction clearKeys (fun l => labels (.inl l)) (some (labels (.inr false))) label | .inr false => Reduction.MachineTransfer.loopAt accumulator output id false (labels (.inr false)) (some (labels (.inr true))) | .inr true => .load (fun _ => (canonical, none)) (Reduction.MachineTransfer.exitAt output exit)Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Label, OAI.UniqueGamesTheorem.Reduction.MachineTransfer.loopAt, OAI.UniqueGamesTheorem.Reduction.MachineTransfer.exitAt
- def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.canonicalTapesline 419 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.finishCostline 422 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.cleared_frameline 425 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.reversed_tapesline 429 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.finishInTimeline 448Source documentation
Exact execution, including the real drain loops, reversal, and reset. The only program hypotheses identify the caller's actual placed statements.
def finishInTime (clearKeys : List K) (accumulator output : K) (distinct : accumulator ≠ output) (keepAccumulator : accumulator ∉ clearKeys) (keepOutput : output ∉ clearKeys) (covers : ∀ k, k ≠ accumulator → k ≠ output → k ∈ clearKeys) (canonical : σ) (labels : Label clearKeys → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (σ × Option Bool)) (atLabels : ∀ label, program (labels label) = statement clearKeys accumulator output canonical labels exit label) (base : Tapes K) (outputEmpty : base output = []) (ambient : σ) (register : Option Bool) : StateTransition.EvalsToInTime (TM2.step program) ⟨entry clearKeys labels, (ambient, register), base⟩ (some ⟨exit, (canonical, none), canonicalTapes output (base accumulator).reverse⟩) …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Label, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.statement, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Tapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.entry, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.canonicalTapes
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.finishCost_le_listline 508 - def
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.totalLengthline 518 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.totalLength_eraseline 520 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.drain_conservationline 536Source documentation
Each physical pop removes one stored symbol; repeated clear keys add only the extra empty-tape loop test after their first occurrence.
theorem drain_conservation (clearKeys : List K) (base : Tapes K) : MachineDrainMany.steps clearKeys base + totalLength (MachineDrainMany.finalTapes clearKeys base) = totalLength base + clearKeys.length := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Tapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.totalLength
- theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.cleared_totalLengthline 548 - theorem
OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.finishCost_eq_totalLengthline 567Source documentation
Exact finalization cost from the complete initial stack contents.
theorem finishCost_eq_totalLength (clearKeys : List K) (accumulator output : K) (keepAccumulator : accumulator ∉ clearKeys) (keepOutput : output ∉ clearKeys) (covers : ∀ k, k ≠ accumulator → k ≠ output → k ∈ clearKeys) (base : Tapes K) (outputEmpty : base output = []) : finishCost clearKeys accumulator base = totalLength base + clearKeys.length + 2 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.Tapes, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.finishCost, OAI.UniqueGamesTheorem.Foundations.Hastad.SourceRuntimeFinish.totalLength