OAI/Computability/UniqueGames/Machines/MachineBinaryRenameLoop.lean
46 declarations, 0 contain sorry, 0 declared as axioms
The actual cursor loop for sparse-name renaming. A finite three-position slot counts completed clauses. Each nonempty cursor test calls the checked literal machine, then pushes one variable-count bit. Every third literal also pushes one clause-count bit. No instruction counts an unbounded list in finite control.
All nine literal-machine tapes retain their meanings. Tapes 9 and 10 are the variable and clause counters. The original token stream is preserved; the cursor is exhausted, the six work tapes are restored, and the output contains the reversed concatenation of exactly the emitted literal words.
- abbrev
OAI.UniqueGamesTheorem.BinaryRenameLoop.Tokenline 23 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.nextSlotline 25 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.clauseIncrementline 27 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.finalSlotline 29 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.completedClausesline 33 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.finalSlot_threeline 37 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.completedClauses_threeline 40 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.finalSlot_triplesline 44 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.completedClauses_triplesline 49 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBodyline 54 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBody_nilline 57 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBody_consline 59 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.stepsline 63 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.payload_length_le_streamline 67 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.perLiteralBoundline 82 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.literal_steps_leline 85 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.steps_leline 97 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.steps_le_cubicline 110 - abbrev
OAI.UniqueGamesTheorem.BinaryRenameLoop.Alphabetline 128 - abbrev
OAI.UniqueGamesTheorem.BinaryRenameLoop.Stateline 129 - abbrev
OAI.UniqueGamesTheorem.BinaryRenameLoop.cleanline 130 - inductive
OAI.UniqueGamesTheorem.BinaryRenameLoop.Labelline 133 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.literalTapesline 139 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.literalTapes_injectiveline 142 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.finishline 148 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.nextline 154 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.instructionline 158 - def
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapesline 175Source documentation
These are the only four stacks changed by the complete loop.
def loopTapes (tape : Fin 11 → K) (base : K → List Bool) (cursor output variableCounter clauses : List Bool) : K → List Bool := … - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes_cursorline 180 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes_outputline 186 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes_variablesline 192 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes_clausesline 198 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.update_cursorline 203 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.update_outputline 213 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.update_variablesline 223 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.update_clausesline 233 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes_otherline 239 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.stepAux_finishline 245 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.joinTraceline 250 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.peekStepline 262 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.emptyStepline 274 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.tallyStepline 285 - theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.bodyTraceline 301Source documentation
Peek, execute the checked literal program, then update the two counters.
theorem bodyTrace (tokens : List Token) (token : Token) (slot : Fin 3) (suffix output variableCounter clauses : List Bool) (canonical : BinaryNameMachine.canonical token.2 = true) (tokensCanonical : ∀ t ∈ tokens, BinaryNameMachine.canonical t.2 = true) (present : token.2 ∈ BinaryNameSearch.payloads tokens) (permanent : base (tape 1) = BinaryNameSearch.stream tokens) (empty : ∀ i : Fin 11, 2 ≤ i.val → i.val ≤ 7 → base (tape i) = []) : (advance (TM2.step program))^[BinaryLiteralMachine.steps tokens token.2 + 2] (some ⟨some (labels .entry), clean ambient slot, loopTapes tape base (BinaryNameSearch.tokenBits token ++ suffix) output variableCounter clauses⟩) = some ⟨some (labels .entry), clean ambient (nextSlot slot), loopTapes tape base suffix …Mentions: OAI.UniqueGamesTheorem.BinaryRenameLoop.Token, OAI.UniqueGamesTheorem.BinaryNameMachine.canonical, OAI.UniqueGamesTheorem.BinaryNameSearch.payloads, OAI.UniqueGamesTheorem.BinaryNameSearch.stream, OAI.UniqueGamesTheorem.BinaryLiteralMachine.steps, OAI.UniqueGamesTheorem.BinaryRenameLoop.clean, OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes, OAI.UniqueGamesTheorem.BinaryNameSearch.tokenBits, OAI.UniqueGamesTheorem.BinaryRenameLoop.nextSlot
- theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTraceline 374Source documentation
Full loop execution, including the final empty-cursor test.
theorem loopTrace (tokens input : List Token) (slot : Fin 3) (output variableCounter clauses : List Bool) (tokensCanonical : ∀ t ∈ tokens, BinaryNameMachine.canonical t.2 = true) (included : ∀ t ∈ input, t ∈ tokens) (permanent : base (tape 1) = BinaryNameSearch.stream tokens) (empty : ∀ i : Fin 11, 2 ≤ i.val → i.val ≤ 7 → base (tape i) = []) : (advance (TM2.step program))^[steps tokens input] (some ⟨some (labels .entry), clean ambient slot, loopTapes tape base (BinaryNameSearch.stream input) output variableCounter clauses⟩) = some ⟨done, clean ambient (finalSlot input.length slot), loopTapes tape base [] ((outputBody tokens input).reverse ++ output) (List.replicate input.length true ++ variableCounter) …Mentions: OAI.UniqueGamesTheorem.BinaryRenameLoop.Token, OAI.UniqueGamesTheorem.BinaryNameMachine.canonical, OAI.UniqueGamesTheorem.BinaryNameSearch.stream, OAI.UniqueGamesTheorem.BinaryRenameLoop.steps, OAI.UniqueGamesTheorem.BinaryRenameLoop.clean, OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes, OAI.UniqueGamesTheorem.BinaryRenameLoop.finalSlot, OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBody
- theorem
OAI.UniqueGamesTheorem.BinaryRenameLoop.triplesTraceline 419Source documentation
On complete triples the finite slot is reset and the two counters are exact.
theorem triplesTrace (tokens input : List Token) (count : Nat) (length_eq : input.length = 3 * count) (output variableCounter clauses : List Bool) (tokensCanonical : ∀ t ∈ tokens, BinaryNameMachine.canonical t.2 = true) (included : ∀ t ∈ input, t ∈ tokens) (permanent : base (tape 1) = BinaryNameSearch.stream tokens) (empty : ∀ i : Fin 11, 2 ≤ i.val → i.val ≤ 7 → base (tape i) = []) : (advance (TM2.step program))^[steps tokens input] (some ⟨some (labels .entry), clean ambient 0, loopTapes tape base (BinaryNameSearch.stream input) output variableCounter clauses⟩) = some ⟨done, clean ambient 0, loopTapes tape base [] ((outputBody tokens input).reverse ++ output) (List.replicate (3 * count) true ++ variableCounter) …Mentions: OAI.UniqueGamesTheorem.BinaryRenameLoop.Token, OAI.UniqueGamesTheorem.BinaryNameMachine.canonical, OAI.UniqueGamesTheorem.BinaryNameSearch.stream, OAI.UniqueGamesTheorem.BinaryRenameLoop.steps, OAI.UniqueGamesTheorem.BinaryRenameLoop.clean, OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes, OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBody
- def
OAI.UniqueGamesTheorem.BinaryRenameLoop.triplesInTimeline 437Source documentation
The machine's bit-length bound includes every peek, literal run, and tally.
def triplesInTime (tokens input : List Token) (count : Nat) (length_eq : input.length = 3 * count) (output variableCounter clauses : List Bool) (tokensCanonical : ∀ t ∈ tokens, BinaryNameMachine.canonical t.2 = true) (included : ∀ t ∈ input, t ∈ tokens) (permanent : base (tape 1) = BinaryNameSearch.stream tokens) (empty : ∀ i : Fin 11, 2 ≤ i.val → i.val ≤ 7 → base (tape i) = []) : StateTransition.EvalsToInTime (TM2.step program) ⟨some (labels .entry), clean ambient 0, loopTapes tape base (BinaryNameSearch.stream input) output variableCounter clauses⟩ (some ⟨done, clean ambient 0, loopTapes tape base [] ((outputBody tokens input).reverse ++ output) (List.replicate (3 * count) true ++ variableCounter) …Mentions: OAI.UniqueGamesTheorem.BinaryRenameLoop.Token, OAI.UniqueGamesTheorem.BinaryNameMachine.canonical, OAI.UniqueGamesTheorem.BinaryNameSearch.stream, OAI.UniqueGamesTheorem.BinaryRenameLoop.clean, OAI.UniqueGamesTheorem.BinaryRenameLoop.loopTapes, OAI.UniqueGamesTheorem.BinaryRenameLoop.outputBody