OAI/Computability/UniqueGames/PCP/CleanupLemmas.lean
70 declarations, 0 contain sorry, 0 declared as axioms
Actual finite-stack cleanup. Each selected stack is drained using the checked pop loop, followed by one transition resetting the finite state. Repeated selections are allowed; they only reduce the cost upper bound.
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabetline 23 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.finishline 26Source documentation
Reset both the ambient finite state and the drain register before exiting.
def finish (initial : σ) (exit : Option Λ) : TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.instructionline 32Source documentation
A concrete instruction for each of the n drain phases and the final reset.
def instruction {n : Nat} (selected : Fin n → K) (labels : Fin (n + 1) → Λ) (initial : σ) (exit : Option Λ) (phase : Fin (n + 1)) : TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabet
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.instruction_drainline 41 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.instruction_finishline 49 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapesline 55Source documentation
Actual tape family after the selected stacks have been drained in order.
def clearTapes : {n : Nat} → (Fin n → K) → (K → List Bool) → K → List Bool | 0, _, base => base | n + 1, selected, base => clearTapes (fun i : Fin n => selected i.succ) (Function.update base (selected 0) []) /-- Exact number of transitions, including the final state-reset transition. -/ - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.actualCostline 61Source documentation
Exact number of transitions, including the final state-reset transition.
def actualCost : {n : Nat} → (Fin n → K) → (K → List Bool) → Nat | 0, _, _ => 1 | n + 1, selected, base => actualCost (fun i : Fin n => selected i.succ) (Function.update base (selected 0) []) + ((base (selected 0)).length + 1) - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapes_applyline 67 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapes_selectedline 80 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapes_unselectedline 84 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.actualCost_leline 90 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.cleanupTraceline 108Source documentation
The trace is derived solely from the actual drain instructions and final reset instruction. No execution of the entire cleanup is assumed.
theorem cleanupTrace {n : Nat} (selected : Fin n → K) (labels : Fin (n + 1) → Λ) (initial : σ) (exit : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.program, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.cleanupInTimeline 134Source documentation
Actual cleanup execution, bounded using the original selected-stack lengths.
def cleanupInTime {n : Nat} (selected : Fin n → K) (labels : Fin (n + 1) → Λ) (initial : σ) (exit : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.program, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.programline 151Source documentation
Concrete n+1-label program, terminating after resetting the finite state.
def program {n : Nat} (selected : Fin n → K) (initial : σ) : Fin (n + 1) → TM2.Stmt (Alphabet (K := K)) (Fin (n + 1)) (σ × Option Bool) := …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.machineline 156Source documentation
A bundled finite machine. Its input/output tapes are designated explicitly.
def machine [Fintype K] [Fintype σ] {n : Nat} (selected : Fin n → K) (input output : K) (initial : σ) : FinTM2 where … - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.machineInTimeline 168 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapes_outputOnlyline 181Source documentation
Enumerating exactly the nonoutput stacks yields the standard final tape family. Repeated selected stacks are permitted.
theorem clearTapes_outputOnly {n : Nat} (selected : Fin n → K) (output : K) (base : K → List Bool) (excludesOutput : ∀ i, selected i ≠ output) (coversOther : ∀ k, k ≠ output → ∃ i, selected i = k) : clearTapes selected base = fun k => if k = output then base output else [] := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.clearTapes
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.machineHaltInTimeline 195Source documentation
Full cleanup reaches
haltList, with all nonoutput stacks empty and the machine's actual initial finite state restored.def machineHaltInTime [Fintype K] [Fintype σ] {n : Nat} (selected : Fin n → K) (input output : K) (initial : σ) (base : K → List Bool) (ambient : σ) (register : Option Bool) (excludesOutput : ∀ i, selected i ≠ output) (coversOther : ∀ k, k ≠ output → ∃ i, selected i = k) : StateTransition.EvalsToInTime (machine selected input output initial).step ⟨some (0 : Fin (n + 1)), (ambient, register), base⟩ (some (haltList (machine selected input output initial) (base output))) ((∑ i, (base (selected i)).length) + n + 1) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Cleanup.machine
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabetline 222 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.skipBitsline 227Source documentation
A fixed finite chain skips Boolean unary words. A true head causes one additional delimiter pop; a false head is already the complete zero word. Only the one-bit head register is examined.
def skipBits (source : K) : Nat → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool) → …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.stepAux_skipBitsline 238 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.stepAux_skipBits_fromTapesline 255 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.skipBits_pushBoundline 269 - inductive
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Labelline 277 - abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label.enumListline 281 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label.enumList_getElem?_ctorIdx_eqline 284 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label.enumList_nodupline 288 - instance
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.(instance at line 290)line 290 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.statementline 296Source documentation
Six fixed control labels implement row selection.
qfixes the finite predicate parser; no data-dependent number is placed in the program syntax.def statement (q : Nat) (counter source destination : K) (labels : Label → Λ) (exit : Option Λ) : Label → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.programline 305 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowBitsline 309 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowBits_eqline 311 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowsBitsline 316 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowsBits_nilline 319 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowsBits_consline 321 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.skipCostline 325 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.prefixCostline 328 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupCostline 331 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.skipRowTraceline 345Source documentation
One skipped row: two actual unary scans followed by one finite predicate statement. All registers are reset and every other tape is untouched.
theorem skipRowTrace (base : K → List Bool) (row : DartRow q n m) (suffix : List Bool) (ambient : σ) (register : Option Bool) : (advance (TM2.step P))^[row.tail.val + row.reverseIndex.val + 3] (some ⟨some (labels .skipTail), (ambient, register), Function.update base source (rowBits row ++ suffix)⟩) = some ⟨some (labels .guard), (ambient, none), Function.update base source suffix⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowBits
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.skipRowTrace_fromTapesline 374 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.selectTraceline 388 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupTailTraceline 408Source documentation
Exact successful row lookup. The only data premise is the literal table prefix; no lookup result or whole execution is postulated.
theorem lookupTailTrace (hcs : counter ≠ source) (hcd : counter ≠ destination) (hsd : source ≠ destination) (base : K → List Bool) (prior : List (DartRow q n m)) (row : DartRow q n m) (counterSuffix suffix output : List Bool) (ambient : σ) (register : Option Bool) : (advance (TM2.step P))^[lookupCost prior row] (some ⟨some (labels .guard), (ambient, register), MachineLookup.tapes counter source destination base (encodeWord prior.length ++ counterSuffix) (rowsBits prior ++ (rowBits row ++ suffix)) output⟩) = some ⟨exit, (ambient, none), MachineLookup.tapes counter source destination base (encodeWord 0 ++ counterSuffix) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupCost, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowsBits, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowBits
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupCost_leline 478Source documentation
The number of actual transitions is linear in the scanned encoding and the unary row index. Fixed predicate statements contribute one transition.
theorem lookupCost_le {q n m : Nat} (prior : List (DartRow q n m)) (row : DartRow q n m) : lookupCost prior row ≤ (rowsBits prior ++ rowBits row).length + 2 * (encodeWord prior.length).length + 1 := by …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupCost, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowsBits, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.rowBits
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookupTailInTimeline 498Source documentation
The exact row-selection trace packaged with its linear transition budget.
def lookupTailInTime {q n m : Nat} (counter source destination : K) (labels : Label → Λ) (exit : Option Λ) (P : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.tableTailTraceline 523Source documentation
The input's actual stored row vector determines the selected row. This specialization derives the literal lookup prefix from the checked codec.
theorem tableTailTrace {q : Nat} (counter source destination : K) (labels : Label → Λ) (exit : Option Λ) (P : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.fullTableTailTraceline 558Source documentation
Two real delimiter-scanning loops remove the header of the copied table before the row counter starts. The protected original table can occupy any other tape in
baseand is unchanged.theorem fullTableTailTrace {q : Nat} (counter source destination : K) (labels : Label → Λ) (exit : Option Λ) (headerVertices headerDarts : Λ) (P : Λ → TM2.Stmt (Alphabet (K := K)) Λ (σ × Option Bool)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Label, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet
- theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.lookup_frameline 598 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.tableTailCostline 604 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.tableTailCost_leline 608 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headIndexline 631 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headValueline 634 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headValue_eq_semanticsline 639Source documentation
The looked-up endpoint is the head of the actual graph semantics, including paired loop darts whose reverse index differs from their own index.
theorem headValue_eq_semantics {q : Nat} (table : Table q) (e : Fin table.darts) : headValue table e = ((semantics table).head e).val := rflMentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headValue
- abbrev
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.HeadTapesline 642 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupTapesline 644 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupCostline 653 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupCost_leline 657 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headTimePolynomialline 666 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupInTimeline 669 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupTapes_headline 761 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.headLookupTapes_frameline 766 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowTapesline 772 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowTapes_sourceline 777 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowTapes_tailline 783 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowTapes_reverseline 789 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowTapes_frameline 795 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowCostline 801 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowCost_leline 804 - theorem
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowCost_table_leline 811 - def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.readRowInTimeline 823Source documentation
Read both unary fields using actual copy loops, then execute the checked fixed predicate parser. Only the two field destinations must initially be empty; the cursor suffix and every unrelated tape are retained exactly.
def readRowInTime {q n m : Nat} (source tail reverse : K) (hst : source ≠ tail) (hsr : source ≠ reverse) (htr : tail ≠ reverse) (tailStart tailLoop reverseStart reverseLoop readLabel exitLabel : Λ) (P : Λ → TM2.Stmt (Alphabet (K := K)) Λ (ReadRelation.State σ q)) …Mentions: OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.Alphabet, OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.ReadRelation.State
- def
OAI.UniqueGamesTheorem.Foundations.PCP.AlphabetTable.Lookup.machineline 909Source documentation
A concrete finite machine instance, with input-dependent unary values located only on its three tapes.
def machine (q : Nat) : FinTM2 where …