OAI/Computability/UniqueGames/Machines/MachineBinaryValidatorMachine.lean
40 declarations, 0 contain sorry, 0 declared as axioms
A finite-state validator for the concrete ordinary-binary formula encoding. It checks clause and literal framing, canonical name payloads, and the unique terminal formula marker. The last-digit register starts at true for each name, so the empty payload is accepted as zero while a nonempty payload must end in one. Every bit following the terminal formula marker causes rejection.
- inductive
OAI.UniqueGamesTheorem.BinaryValidatorMachine.Modeline 19 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.afterNameline 28 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.nextModeline 31 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.runline 41 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_rejectline 45 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_done_iffline 50 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.finalDigit_true_iffline 55 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_frameline 73Source documentation
A valid framed payload advances exactly to the next literal or clause.
theorem run_frame (slot : Fin 3) (bits rest : List Bool) (last : Bool) (valid : BinaryNameMachine.finalDigit bits (some last) = some true) : run (.name slot last) (frame bits ++ rest) = run (afterName slot) rest := by …Mentions: OAI.UniqueGamesTheorem.BinaryNameMachine.finalDigit, OAI.UniqueGamesTheorem.BinaryValidatorMachine.run, OAI.UniqueGamesTheorem.BinaryValidatorMachine.afterName
- theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_nameline 85 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_literalline 90 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_clauseline 95 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_clausesline 99 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_formulaline 106 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.frame_inverseline 110Source documentation
Any accepting name phase consumes a complete frame with a valid last digit.
theorem frame_inverse (slot : Fin 3) (last : Bool) (input : List Bool) (accepted : run (.name slot last) input = .done) : ∃ bits rest, input = frame bits ++ rest ∧ BinaryNameMachine.finalDigit bits (some last) = some true ∧ run (afterName slot) rest = .done := by …Mentions: OAI.UniqueGamesTheorem.BinaryValidatorMachine.run, OAI.UniqueGamesTheorem.BinaryNameMachine.finalDigit, OAI.UniqueGamesTheorem.BinaryValidatorMachine.afterName
- theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.name_inverseline 140 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.literal_inverseline 149 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.clause_inverseline 160 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.clauses_inverse_auxline 173 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.run_clause_iffline 202Source documentation
Exact language recognition, including rejection of incomplete, padded, or trailing input.
theorem run_clause_iff (input : List Bool) : run .clause input = .done ↔ ∃ formula, input = formulaBits formula := by … - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.acceptsline 212 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.accepts_eq_decodeline 214 - abbrev
OAI.UniqueGamesTheorem.BinaryValidatorMachine.Alphabetline 234 - abbrev
OAI.UniqueGamesTheorem.BinaryValidatorMachine.Stateline 235 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.instructionline 239Source documentation
Every nonempty pop performs exactly one finite DFA transition. The empty pop emits the final acceptance bit, resets control, and halts.
def instruction : TM2.Stmt Alphabet Unit State := …
Mentions: OAI.UniqueGamesTheorem.BinaryValidatorMachine.Alphabet, OAI.UniqueGamesTheorem.BinaryValidatorMachine.State
- abbrev
OAI.UniqueGamesTheorem.BinaryValidatorMachine.machineline 247 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.tapesline 258 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.cfgline 262 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.tapes_inputline 266 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.tapes_outputline 269 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.update_inputline 272 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.update_outputline 277 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.step_emptyline 282 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.step_consline 289 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.runTraceline 299Source documentation
Exact execution on every word, including malformed, noncanonical, and trailing input. Rejection drains the entire input through a finite sink state.
theorem runTrace (input output : List Bool) (mode : Mode) (register : Option Bool) : (advance machine.step)^[input.length + 1] (some (cfg (some ()) input output mode register)) = some (cfg none [] (decide (run mode input = .done) :: output) .clause) := by …Mentions: OAI.UniqueGamesTheorem.BinaryValidatorMachine.Mode, OAI.UniqueGamesTheorem.BinaryValidatorMachine.cfg, OAI.UniqueGamesTheorem.BinaryValidatorMachine.run
- theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.initList_eqline 313 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.haltList_eqline 320 - theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.validatorTraceline 328Source documentation
A total raw-bit validator with the exact same answer as the binary codec.
theorem validatorTrace (input : List Bool) : (advance machine.step)^[input.length + 1] (some (initList machine input)) = some (haltList machine [(BinaryEncoding.decodeFormula input).isSome]) := by …Mentions: OAI.UniqueGamesTheorem.BinaryValidatorMachine.machine, OAI.UniqueGamesTheorem.BinaryEncoding.decodeFormula
- def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.outputsInTimeline 340 - def
OAI.UniqueGamesTheorem.BinaryValidatorMachine.computableInPolyTimeline 349Source documentation
The polynomial certificate supplies the explicit machine above. There is no assumed parser, verifier, or runtime hypothesis.
noncomputable def computableInPolyTime : TM2ComputableInPolyTime (id : List Bool → List Bool) (id : List Bool → List Bool) (fun input => [(BinaryEncoding.decodeFormula input).isSome]) where …Mentions: OAI.UniqueGamesTheorem.BinaryEncoding.decodeFormula
- theorem
OAI.UniqueGamesTheorem.BinaryValidatorMachine.machine_finiteAlphabetline 363