OAI/Computability/MaxCut/Machines/MachineBinaryNameCompare.lean
75 declarations, 0 contain sorry, 0 declared as axioms
Compare one framed binary name with an already extracted reversed key. The candidate stream loses precisely that name frame. The key and every other non-work stack are preserved; the three work stacks are empty again on exit. The scanner, copy loops, and head-by-head comparison all execute actual TM2 instructions. Whole words occur only in the correctness specification.
- abbrev
OAI.MaxCutGames.BinaryNameCompare.Alphabetline 22 - abbrev
OAI.MaxCutGames.BinaryNameCompare.Stateline 23 - def
OAI.MaxCutGames.BinaryNameCompare.cleanline 25 - def
OAI.MaxCutGames.BinaryNameCompare.scanStateEquivline 27 - def
OAI.MaxCutGames.BinaryNameCompare.compareStateEquivline 33 - inductive
OAI.MaxCutGames.BinaryNameCompare.Labelline 39 - abbrev
OAI.MaxCutGames.BinaryNameCompare.Label.enumListline 43 - theorem
OAI.MaxCutGames.BinaryNameCompare.Label.enumList_getElem?_ctorIdx_eqline 45 - theorem
OAI.MaxCutGames.BinaryNameCompare.Label.enumList_nodupline 49 - instance
OAI.MaxCutGames.BinaryNameCompare.(instance at line 51)line 51 - def
OAI.MaxCutGames.BinaryNameCompare.instructionline 56Source documentation
Tapes: candidate stream, preserved key, candidate payload, key copy, scratch.
def instruction (tape : Fin 5 → K) (labels : Label → Λ) (equalExit differentExit malformedExit : Option Λ) : Label → TM2.Stmt (Alphabet (K := K)) Λ (State A) …Mentions: OAI.MaxCutGames.BinaryNameCompare.Label, OAI.MaxCutGames.BinaryNameCompare.Alphabet, OAI.MaxCutGames.BinaryNameCompare.State
- def
OAI.MaxCutGames.BinaryNameCompare.stepsline 69 - theorem
OAI.MaxCutGames.BinaryNameCompare.steps_leline 72 - theorem
OAI.MaxCutGames.BinaryNameCompare.joinTrace_inline_MachineBinaryNameCompareline 77 - theorem
OAI.MaxCutGames.BinaryNameCompare.compareTraceline 83Source documentation
The name is actually scanned, the key actually copied, and the resulting payloads actually compared. Program premises are literal instruction equations.
theorem compareTrace (tape : Fin 5 → K) (distinct : Function.Injective tape) (labels : Label → Λ) (equalExit differentExit malformedExit : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (State A)) …Mentions: OAI.MaxCutGames.BinaryNameCompare.Label, OAI.MaxCutGames.BinaryNameCompare.Alphabet, OAI.MaxCutGames.BinaryNameCompare.State
- def
OAI.MaxCutGames.BinaryNameCompare.compareInTimeline 188Source documentation
Linear runtime in the extracted candidate and stored key lengths.
def compareInTime (tape : Fin 5 → K) (distinct : Function.Injective tape) (labels : Label → Λ) (equalExit differentExit malformedExit : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (State A)) …Mentions: OAI.MaxCutGames.BinaryNameCompare.Label, OAI.MaxCutGames.BinaryNameCompare.Alphabet, OAI.MaxCutGames.BinaryNameCompare.State
- def
OAI.MaxCutGames.BinaryNameCompare.machineline 211Source documentation
Concrete finite machine; exit labels 0, 1, 2 mean equal, different, malformed.
def machine : FinTM2 where …
- theorem
OAI.MaxCutGames.BinaryNameCompare.machine_finiteAlphabetline 224 - abbrev
OAI.MaxCutGames.BinaryNameSearch.Tokenline 251 - def
OAI.MaxCutGames.BinaryNameSearch.tokenBitsline 253 - def
OAI.MaxCutGames.BinaryNameSearch.streamline 256 - def
OAI.MaxCutGames.BinaryNameSearch.payloadsline 260 - def
OAI.MaxCutGames.BinaryNameSearch.afterMatchline 262 - def
OAI.MaxCutGames.BinaryNameSearch.stepsline 266 - def
OAI.MaxCutGames.BinaryNameSearch.payloadSizeline 272 - theorem
OAI.MaxCutGames.BinaryNameSearch.stream_nilline 274 - theorem
OAI.MaxCutGames.BinaryNameSearch.stream_consline 276 - theorem
OAI.MaxCutGames.BinaryNameSearch.payloads_nilline 279 - theorem
OAI.MaxCutGames.BinaryNameSearch.payloads_consline 281 - theorem
OAI.MaxCutGames.BinaryNameSearch.payloadSize_nilline 284 - theorem
OAI.MaxCutGames.BinaryNameSearch.payloadSize_consline 286 - theorem
OAI.MaxCutGames.BinaryNameSearch.stream_lengthline 289 - theorem
OAI.MaxCutGames.BinaryNameSearch.steps_leline 299Source documentation
Work is linear in the scanned payloads plus one key-copy cost per token.
theorem steps_le (tokens : List Token) (key : List Bool) : steps tokens key ≤ 2 * payloadSize tokens + (3 * key.length + 6) * tokens.length := by …Mentions: OAI.MaxCutGames.BinaryNameSearch.Token, OAI.MaxCutGames.BinaryNameSearch.steps, OAI.MaxCutGames.BinaryNameSearch.payloadSize
- theorem
OAI.MaxCutGames.BinaryNameSearch.steps_le_streamline 309Source documentation
This bound uses lengths of actual encoded words, not decoded name values.
theorem steps_le_stream (tokens : List Token) (key : List Bool) : steps tokens key ≤ (3 * key.length + 7) * (stream tokens).length := by …Mentions: OAI.MaxCutGames.BinaryNameSearch.Token, OAI.MaxCutGames.BinaryNameSearch.steps, OAI.MaxCutGames.BinaryNameSearch.stream
- abbrev
OAI.MaxCutGames.BinaryNameSearch.Alphabetline 319 - abbrev
OAI.MaxCutGames.BinaryNameSearch.Stateline 320 - abbrev
OAI.MaxCutGames.BinaryNameSearch.cleanline 322 - inductive
OAI.MaxCutGames.BinaryNameSearch.Labelline 324 - def
OAI.MaxCutGames.BinaryNameSearch.compareTapesline 330 - theorem
OAI.MaxCutGames.BinaryNameSearch.compareTapes_injectiveline 333 - def
OAI.MaxCutGames.BinaryNameSearch.exitAtline 339 - def
OAI.MaxCutGames.BinaryNameSearch.finishline 344 - def
OAI.MaxCutGames.BinaryNameSearch.instructionline 347 - theorem
OAI.MaxCutGames.BinaryNameSearch.stepAux_finishline 358 - theorem
OAI.MaxCutGames.BinaryNameSearch.update_source_inline_MachineBinaryNameSearchline 362 - theorem
OAI.MaxCutGames.BinaryNameSearch.update_counter_inline_MachineBinaryNameSearchline 373 - theorem
OAI.MaxCutGames.BinaryNameSearch.joinTrace_inline_MachineBinaryNameSearchline 379 - theorem
OAI.MaxCutGames.BinaryNameSearch.signStepline 392 - theorem
OAI.MaxCutGames.BinaryNameSearch.emptyStepline 403 - theorem
OAI.MaxCutGames.BinaryNameSearch.incrementStepline 414 - theorem
OAI.MaxCutGames.BinaryNameSearch.tokenTraceline 425Source documentation
One sign is consumed, then the actual shared scan/copy/compare routine runs.
theorem tokenTrace (token : Token) (key suffix counter : List Bool) (canonical : BinaryNameMachine.canonical token.2 = true) (keyWord : base (tape 1) = key.reverse) (candidateEmpty : base (tape 2) = []) (copyEmpty : base (tape 3) = []) (scratchEmpty : base (tape 4) = []) : (advance (TM2.step program))^[1 + BinaryNameCompare.steps token.2.length key.length] (some ⟨some (labels .sign), clean ambient, tapesAt (tape 0) (tape 5) base (tokenBits token ++ suffix) counter⟩) = some ⟨if token.2 = key then foundExit else some (labels .increment), clean ambient, tapesAt (tape 0) (tape 5) base suffix counter⟩ := by …Mentions: OAI.MaxCutGames.BinaryNameSearch.Token, OAI.MaxCutGames.BinaryNameMachine.canonical, OAI.MaxCutGames.BinaryNameCompare.steps, OAI.MaxCutGames.BinaryNameSearch.clean, OAI.MaxCutGames.BinaryNameSearch.tokenBits
- theorem
OAI.MaxCutGames.BinaryNameSearch.searchTraceline 473Source documentation
Successful search returns exactly the first occurrence index. All labels are literal instruction equations, so this theorem supplies its own body runs.
theorem searchTrace (tokens : List Token) (key suffix counter : List Bool) (canonical : ∀ token ∈ tokens, BinaryNameMachine.canonical token.2 = true) (present : key ∈ payloads tokens) (keyWord : base (tape 1) = key.reverse) (candidateEmpty : base (tape 2) = []) (copyEmpty : base (tape 3) = []) (scratchEmpty : base (tape 4) = []) : (advance (TM2.step program))^[steps tokens key] (some ⟨some (labels .sign), clean ambient, tapesAt (tape 0) (tape 5) base (stream tokens ++ suffix) counter⟩) = some ⟨foundExit, clean ambient, tapesAt (tape 0) (tape 5) base (stream (afterMatch tokens key) ++ suffix) (List.replicate ((payloads tokens).idxOf key) true ++ counter)⟩ := by …Mentions: OAI.MaxCutGames.BinaryNameSearch.Token, OAI.MaxCutGames.BinaryNameMachine.canonical, OAI.MaxCutGames.BinaryNameSearch.payloads, OAI.MaxCutGames.BinaryNameSearch.steps, OAI.MaxCutGames.BinaryNameSearch.clean, OAI.MaxCutGames.BinaryNameSearch.stream, OAI.MaxCutGames.BinaryNameSearch.afterMatch
- def
OAI.MaxCutGames.BinaryNameSearch.searchInTimeline 525Source documentation
Explicit polynomial bound for the actual successful run.
def searchInTime (tokens : List Token) (key suffix counter : List Bool) (canonical : ∀ token ∈ tokens, BinaryNameMachine.canonical token.2 = true) (present : key ∈ payloads tokens) (keyWord : base (tape 1) = key.reverse) (candidateEmpty : base (tape 2) = []) (copyEmpty : base (tape 3) = []) (scratchEmpty : base (tape 4) = []) : StateTransition.EvalsToInTime (TM2.step program) ⟨some (labels .sign), clean ambient, tapesAt (tape 0) (tape 5) base (stream tokens ++ suffix) counter⟩ (some ⟨foundExit, clean ambient, tapesAt (tape 0) (tape 5) base (stream (afterMatch tokens key) ++ suffix) (List.replicate ((payloads tokens).idxOf key) true ++ counter)⟩) …Mentions: OAI.MaxCutGames.BinaryNameSearch.Token, OAI.MaxCutGames.BinaryNameMachine.canonical, OAI.MaxCutGames.BinaryNameSearch.payloads, OAI.MaxCutGames.BinaryNameSearch.clean, OAI.MaxCutGames.BinaryNameSearch.stream, OAI.MaxCutGames.BinaryNameSearch.afterMatch
- def
OAI.MaxCutGames.BinaryNameSearch.machineline 547Source documentation
Concrete finite-control instantiation; the counter is its designated output.
def machine : FinTM2 where …
- theorem
OAI.MaxCutGames.BinaryNameSearch.machine_finiteAlphabetline 560 - abbrev
OAI.MaxCutGames.BinaryLiteralMachine.Alphabetline 575 - abbrev
OAI.MaxCutGames.BinaryLiteralMachine.Stateline 576 - abbrev
OAI.MaxCutGames.BinaryLiteralMachine.cleanline 577 - inductive
OAI.MaxCutGames.BinaryLiteralMachine.Labelline 580 - def
OAI.MaxCutGames.BinaryLiteralMachine.searchTapesline 588Source documentation
Cursor, permanent stream, key, search stream, candidate, key-copy, copy scratch, index counter, reversed output.
def searchTapes (tape : Fin 9 → K) : Fin 6 → K | 0 => tape 3 | 1 => tape 2 | 2 => tape 4 | 3 => tape 5 | 4 => tape 6 | 5 => tape 7 omit [DecidableEq K] in
- theorem
OAI.MaxCutGames.BinaryLiteralMachine.searchTapes_injectiveline 597 - def
OAI.MaxCutGames.BinaryLiteralMachine.finishline 603 - def
OAI.MaxCutGames.BinaryLiteralMachine.readSignline 609 - def
OAI.MaxCutGames.BinaryLiteralMachine.emitSignline 617 - def
OAI.MaxCutGames.BinaryLiteralMachine.instructionline 623 - def
OAI.MaxCutGames.BinaryLiteralMachine.signWordline 643 - def
OAI.MaxCutGames.BinaryLiteralMachine.indexline 645 - def
OAI.MaxCutGames.BinaryLiteralMachine.outputWordline 648 - def
OAI.MaxCutGames.BinaryLiteralMachine.stepsline 651 - theorem
OAI.MaxCutGames.BinaryLiteralMachine.afterMatch_length_leline 657 - theorem
OAI.MaxCutGames.BinaryLiteralMachine.steps_leline 666 - theorem
OAI.MaxCutGames.BinaryLiteralMachine.stepAux_finishline 682 - theorem
OAI.MaxCutGames.BinaryLiteralMachine.joinTrace_inline_MachineBinaryLiteralMachineline 686 - theorem
OAI.MaxCutGames.BinaryLiteralMachine.literalTraceline 690 - def
OAI.MaxCutGames.BinaryLiteralMachine.literalInTimeline 861Source documentation
Polynomial resource bound attached to the proved literal execution.
def literalInTime (tape : Fin 9 → K) (distinct : Function.Injective tape) (labels : Label → Λ) (exit malformed : Option Λ) (program : Λ → TM2.Stmt (Alphabet (K := K)) Λ (State A)) …Mentions: OAI.MaxCutGames.BinaryLiteralMachine.Label, OAI.MaxCutGames.BinaryLiteralMachine.Alphabet, OAI.MaxCutGames.BinaryLiteralMachine.State