OAI/Computability/MaxCut/Games/FinalCNFHeader.lean
79 declarations, 0 contain sorry, 0 declared as axioms
The concrete final-CNF machine's entry phase. It archives its complete input, reads the two unary size fields, emits the exact formula header, and reaches the row guard. The transition witness is assembled from actual program calls.
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerFrameline 20Source documentation
Explicit tape frame used during the header phase; all unlisted work tapes are empty. The archive is separate from the unread input.
def headerFrame (input archive vertices darts rowIndex tail head accumulator : List Bool) : Tape → List Bool | .input => input | .archive => archive | .vertices => vertices | .darts => darts | .rowIndex => rowIndex | .tail => tail | .head => head | .accumulator => accumulator | _ => []Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerInputTapesline 32 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapesline 37Source documentation
Exact row-guard handoff: the original table is protected in
archive, the output header is accumulated in reverse, and the row index is unary zero.def headerResultTapes (n m : Nat) (rowsBits : List Bool) : Tape → List Bool := …
Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes_inputline 42 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes_archiveline 45 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes_accumulatorline 48 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes_rowIndexline 52 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerTimePolynomialline 56Source documentation
A fixed polynomial in the complete encoded input length.
noncomputable def headerTimePolynomial : Polynomial Nat := …
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerTimePolynomial_evalline 59 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerInTimeline 65Source documentation
An actual entry-to-guard trace, valid for any unread row suffix and every finite ambient buffer. No execution premise is supplied by the caller.
def headerInTime (rowPlan : Plan) (n m : Nat) (rowsBits : List Bool) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan rowPlan)) ⟨some .copyFirst, ((ambient, ()), none), headerInputTapes (encodeWords [n, m] ++ rowsBits)⟩ (some ⟨some .guard, ((ambient, ()), none), headerResultTapes n m rowsBits⟩) (headerTimePolynomial.eval (encodeWords [n, m] ++ rowsBits).length) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerInputTapes, OAI.MaxCutGames.Foundations.Complexity.encodeWords, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guard, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.tableRowsBitsline 195Source documentation
The unread graph rows in the actual graph codec.
def tableRowsBits (table : PCP.GenericGraphTables.Table 64) : List Bool := …
Mentions: OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.tableBits_header_rowsline 198 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.tableHeaderInTimeline 205Source documentation
Specialization to the entire input of the actual numbered graph codec.
def tableHeaderInTime (rowPlan : Plan) (table : PCP.GenericGraphTables.Table 64) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan rowPlan)) ⟨some .copyFirst, ((ambient, ()), none), headerInputTapes (PCP.GenericGraphTables.tableBits table)⟩ (some ⟨some .guard, ((ambient, ()), none), headerResultTapes table.vertices table.darts (tableRowsBits table)⟩) (headerTimePolynomial.eval (PCP.GenericGraphTables.tableBits table).length) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerInputTapes, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guard, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.tableRowsBits
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerInput_configurationline 216 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.initializedTableHeaderInTimeline 226Source documentation
The same bounded phase begins at the machine's genuine initial configuration.
def initializedTableHeaderInTime (rowPlan : Plan) (table : PCP.GenericGraphTables.Table 64) : StateTransition.EvalsToInTime (machine headerPlan rowPlan).step (initList (machine headerPlan rowPlan) (PCP.GenericGraphTables.tableBits table)) (some ⟨some .guard, ((((), fun _ => false), ()), none), headerResultTapes table.vertices table.darts (tableRowsBits table)⟩) (headerTimePolynomial.eval (PCP.GenericGraphTables.tableBits table).length) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.Table, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.machine, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.PCP.GenericGraphTables.tableBits, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guard, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerResultTapes, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.tableRowsBits
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.endpointTapesline 247 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.endpointsInTimeline 254Source documentation
Read the two fields actually stored in a graph row: tail and reverse dart.
def endpointsInTime (headerPlan plan : Plan) (base : Tape → List Bool) (tail reverse : Nat) (rest : List Bool) (hinput : base .input = encodeWord tail ++ encodeWord reverse ++ rest) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan plan)) ⟨some .startTail, ((ambient, ()), none), base⟩ (some ⟨some .headTableFirst, ((ambient, ()), none), endpointTapes base tail reverse rest⟩) (tail + reverse + 4) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.endpointTapes
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.relationInTimeline 280Source documentation
The fixed unary relation reader occupies one finite TM2 statement.
def relationInTime (headerPlan plan : Plan) (base : Tape → List Bool) (relation : GraphTables.RelationTable) (rest : List Bool) (hinput : base .input = encodeWords (GraphTables.relationWords relation) ++ rest) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan plan)) ⟨some .readRelation, ((ambient, ()), none), base⟩ (some ⟨some (.row (Emitter.labelAt plan.length 36864 0 .entry)), ((((), fun i => relation[i]), ()), none), Function.update base .input rest⟩) 1 where …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWords, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.emitInTimeline 295Source documentation
Execute the complete fixed row emission plan against physical unary tapes.
def emitInTime (headerPlan plan : Plan) (base : Tape → List Bool) (operands : Fin 5 → Nat) (hoperands : ∀ i, base (source i) = encodeWord (operands i)) (hscratch : base .scratch = []) (ambient : Ambient) (N : Nat) (hbounded : ∀ i, operands i ≤ N) : StateTransition.EvalsToInTime (TM2.step (program headerPlan plan)) ⟨some (.row (Emitter.labelAt plan.length 36864 0 .entry)), ((ambient, ()), none), base⟩ (some ⟨some .clearTail, ((ambient, ()), none), Function.update base .accumulator ((plan.flatMap (Emitter.commandBits operands ambient)).reverse ++ base .accumulator)⟩) (plan.length * (3 * (N + 1) + 3) + 1) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.source, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.finishTapesline 312 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.finishInTimeline 319Source documentation
Clear precisely the three isolated temporary fields and increment the physical row counter before returning to the input guard.
def finishInTime (headerPlan plan : Plan) (base : Tape → List Bool) (tail head reverse row : Nat) (htail : base .tail = encodeWord tail) (hhead : base .head = encodeWord head) (hreverse : base .reverseIndex = encodeWord reverse) (hrow : base .rowIndex = encodeWord row) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan plan)) ⟨some .clearTail, ((ambient, ()), none), base⟩ (some ⟨some .guard, ((ambient, ()), none), finishTapes base row⟩) (tail + head + reverse + 4) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guard, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.finishTapes
- def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRowline 369 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRow_tailline 373 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRow_reverseIndexline 376 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRow_relationline 379 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRowsline 382 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRows_getline 385 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRows_reverseAtline 389 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRows_acceptsAtline 396 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRows_validline 403 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTableline 412Source documentation
No row is recomputed, reordered, or selected by an abstract enumeration.
def genericTable (table : GraphTables.Table) : GenericGraphTables.Table 64 where …
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_verticesline 418 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_dartsline 421 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_rowline 424 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_tailline 427 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_reverseIndexline 432 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_relationline 437 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericRow_wordsline 442 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_rowListline 445 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_tableWordsline 451 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_tableBitsline 458Source documentation
The shared lookup machine consumes exactly the original serialized input.
@[simp] theorem genericTable_tableBits (table : GraphTables.Table) : GenericGraphTables.tableBits (genericTable table) = GraphTables.tableBits table := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_semantics_tailline 462 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_semantics_reverseline 466 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_semantics_headline 471 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_semantics_acceptsline 477 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_headIndexline 482 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_headValueline 486 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_headValue_tableGraphline 492 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFTableAdapter.genericTable_pattern_relationline 498 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_zeroline 513 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_oneline 514 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_twoline 515 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_threeline 516 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_fourline 517 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headRoles_fiveline 518 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowOperandsline 520 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowRelationline 524 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowRestline 527 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.preparedTapesline 530 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_inputline 536 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_headline 542 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_tailline 550 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_reverseline 556 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_frameline 563 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.emittedTapesline 571 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResultTapesline 577 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_inputline 581 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_tailline 586 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_headline 591 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_reverseline 596 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_indexline 601 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_accumulatorline 606 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowResult_frameline 613 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guardRowInTimeline 624 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guardEndInTimeline 637 - theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.prepared_operandsline 650Source documentation
All five unbounded operands remain isolated encoded naturals after the row parser and head lookup, including both independently retrieved endpoints.
theorem prepared_operands (base : Tape → List Bool) (table : GraphTables.Table) (e : Fin table.darts) (rest : List Bool) (hn : base .vertices = encodeWord table.vertices) (hm : base .darts = encodeWord table.darts) (hr : base .rowIndex = encodeWord e.val) (ht : base .tail = []) : ∀ i, (Function.update (preparedTapes base table e rest) Tape.input rest) (source i) = encodeWord (rowOperands table e i) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.preparedTapes, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.source, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowOperands
- theorem
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowOperands_boundedline 679 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowTimeline 690 - def
OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowInTimeline 696Source documentation
Run one complete stored row, including the actual table-based head lookup. The only hypotheses describe the physical input tapes; no execution or serialization correctness of a caller-provided body is assumed.
noncomputable def rowInTime (headerPlan plan : Plan) (base : Tape → List Bool) (table : GraphTables.Table) (e : Fin table.darts) (rest : List Bool) (hinput : base .input = encodeWords (GraphTables.rowWords table.rows[e]) ++ rest) (harchive : base .archive = GraphTables.tableBits table) (hn : base .vertices = encodeWord table.vertices) (hm : base .darts = encodeWord table.darts) (hrow : base .rowIndex = encodeWord e.val) (ht : base .tail = []) (hh : base .head = []) (hr : base .reverseIndex = []) (hscratch : base .scratch = []) (ambient : Ambient) : StateTransition.EvalsToInTime (TM2.step (program headerPlan plan)) ⟨some .startTail, ((ambient, ()), none), base⟩ (some ⟨some .guard, ((rowRelation table e, ()), none), …Mentions: OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.headerPlan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Plan, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWords, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.Ambient, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.program, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.guard, OAI.MaxCutGames.Foundations.Complexity.FinalCNFMachine.Program.rowRelation