OAI/Computability/UniqueGames/Machines/MachineBinaryTokenMachine.lean
45 declarations, 0 contain sorry, 0 declared as axioms
An actual finite Boolean-stack machine which removes formula/clause markers from valid ordinary-binary 3CNF encodings. Literal signs and every bit of each framed binary name survive in their original occurrence order. The first pass accumulates the output in reverse; the checked transfer routine restores order.
The machine is specified on the semantic encoded-input domain. It does not claim to reject every malformed or noncanonical input. In particular, the name-copying loop does not check canonicality: valid input already supplies it. All transitions inspect only finite control and one popped bit. No branch or load computes a whole-list function or converts a binary name to unary.
- abbrev
OAI.UniqueGamesTheorem.BinaryTokenMachine.Tapeline 29 - abbrev
OAI.UniqueGamesTheorem.BinaryTokenMachine.Alphabetline 30 - abbrev
OAI.UniqueGamesTheorem.BinaryTokenMachine.Stateline 31 - inductive
OAI.UniqueGamesTheorem.BinaryTokenMachine.Labelline 33 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.afterNameline 42 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.afterName_zeroline 45 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.afterName_oneline 46 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.afterName_twoline 47 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.jumpline 49 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.clauseInstructionline 53Source documentation
Discard a clause marker, or finish at the final formula terminator.
def clauseInstruction : TM2.Stmt Alphabet Label State := …
Mentions: OAI.UniqueGamesTheorem.BinaryTokenMachine.Alphabet, OAI.UniqueGamesTheorem.BinaryTokenMachine.Label, OAI.UniqueGamesTheorem.BinaryTokenMachine.State
- def
OAI.UniqueGamesTheorem.BinaryTokenMachine.signInstructionline 60 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.nameInstructionline 67Source documentation
Copy both symbols of a payload pair, or copy the name terminator.
def nameInstruction (slot : Fin 3) : TM2.Stmt Alphabet Label State := …
Mentions: OAI.UniqueGamesTheorem.BinaryTokenMachine.Alphabet, OAI.UniqueGamesTheorem.BinaryTokenMachine.Label, OAI.UniqueGamesTheorem.BinaryTokenMachine.State
- def
OAI.UniqueGamesTheorem.BinaryTokenMachine.programline 79 - abbrev
OAI.UniqueGamesTheorem.BinaryTokenMachine.machineline 87 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.tapesline 98 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.cfgline 101 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tapes_zeroline 105 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tapes_oneline 108 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tapes_twoline 111 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.update_zeroline 114 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.update_oneline 120 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.clauseStepline 126 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.finalStepline 133 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.signStepline 140 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.nameEndStepline 148 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.nameDigitStepline 156 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.nameTraceline 165 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.literalTraceline 182 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.joinTraceline 199 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.clauseTraceline 204Source documentation
Three literal subroutines return to the next clause boundary.
theorem clauseTrace (clause : Clause) (suffix reversed output : List Bool) (register : Option Bool) : (advance machine.step)^[clauseNameSize clause + 6] (some (cfg (some (.sign 0)) (clauseBits clause ++ suffix) reversed output register)) = some (cfg (some .clause) suffix ((clauseBits clause).reverse ++ reversed) output) := by … - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokensline 225 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens_nilline 227 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens_consline 229 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens_lengthline 233 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.stripTraceline 243Source documentation
Exact first-pass run, retaining the unread suffix and ambient output.
theorem stripTrace (clauses : List Clause) (suffix reversed output : List Bool) (register : Option Bool) : (advance machine.step)^[7 * clauses.length + namesBitSize clauses + 1] (some (cfg (some .clause) (clausesBits clauses ++ suffix) reversed output register)) = some (cfg (some .restore) suffix ((tokens clauses).reverse ++ reversed) output) := by …Mentions: OAI.UniqueGamesTheorem.BinaryTokenMachine.cfg, OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens
- theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.restoreTraceline 275 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.initList_eqline 292 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.haltList_eqline 299 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.acceptTraceline 306 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.haltStepline 324 - theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokenTraceline 330Source documentation
Exact transition count for the complete finite-machine computation.
theorem tokenTrace (formula : Formula) : (advance machine.step)^[13 * formula.clauses.length + 3 * namesBitSize formula.clauses + 3] (some (initList machine (formulaBits formula))) = some (haltList machine (tokens formula.clauses)) := by …Mentions: OAI.UniqueGamesTheorem.BinaryTokenMachine.machine, OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens
- theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.tokenSteps_leline 339 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.outputsInTimeline 345 - def
OAI.UniqueGamesTheorem.BinaryTokenMachine.computableInPolyTimeline 354Source documentation
A displayed finite machine and linear polynomial in the ordinary input bit length, proved by the transitions above rather than assumed by a caller.
noncomputable def computableInPolyTime : TM2ComputableInPolyTime BinaryEncoding.formulaBits (id : List Bool → List Bool) (fun formula => tokens formula.clauses) where …Mentions: OAI.UniqueGamesTheorem.BinaryEncoding.formulaBits, OAI.UniqueGamesTheorem.BinaryTokenMachine.tokens
- theorem
OAI.UniqueGamesTheorem.BinaryTokenMachine.machine_finiteAlphabetline 369