OAI/Computability/MaxCut/Machines/MachineLazyTable.lean
66 declarations, 0 contain sorry, 0 declared as axioms
The actual whole-table lazy-graph machine, with fixed positive old degree. All unbounded counts and addresses reside on unary tapes.
- inductive
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Tapeline 14 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Tape.enumListline 19 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Tape.enumList_getElem?_ctorIdx_eqline 23 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Tape.enumList_nodupline 27 - instance
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.(instance at line 29)line 29 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Stateline 33 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.cleanline 35 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean_pairline 38 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.splitRolesline 41 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.splitViewline 42 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyRolesline 46 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyViewline 47 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.oldRolesline 51 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.splitRoles_leftline 55 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.splitRoles_rightline 58 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyRoles_leftline 61 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyRoles_rightline 64 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.oldRoles_injectiveline 67 - inductive
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Labelline 69 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.programline 79 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.frameline 116 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.initialTapesline 121 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopTapesline 123 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapesline 128 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.joinTrace_inline_MachineLazyTableline 130 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyTraceline 136Source documentation
Lift the actual dummy-block routine into the full program and account for the exact preserved frame. The tail and relation are cleared in the next phase.
theorem dummyTrace (d : Nat) (positive : 0 < d) (base : Tape → List Bool) (v e : Nat) (ht : base .tail = encodeWord v) (he : base .reverse = encodeWord e) (hr : base .relation = []) (hb : base .rowBuffer = []) (hs : base .scratch = []) : (advance (TM2.step (program d positive)))^[MachineDummyRows.steps v e (base .output) d + 1] (some ⟨some (.dummy (MachineDummyRows.start d)), clean d positive, base⟩) = some ⟨some .clearDummyTail, clean d positive, Function.update (Function.update (Function.update base .reverse (encodeWord (e + d))) .relation MachineDummyRows.trueBits) .output (base .output ++ MachineDummyRows.rowsBits v e d)⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.Tape, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineDummyRows.steps, OAI.MaxCutGames.Foundations.Complexity.MachineDummyRows.start, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineDummyRows.trueBits, OAI.MaxCutGames.Foundations.Complexity.MachineDummyRows.rowsBits
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.oldTraceline 165 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.prefixStepsline 197 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.prefixTraceline 200 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.vertexBlockline 282 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.bodyStepsline 286 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.frame_old_emptyline 292 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.bodyTraceline 300Source documentation
One entire vertex body: preserve-copy its tail, append the real dummy block, clear its temporary fields, transform all old rows, and increment both counters by actual pushes. The caller supplies no execution premise.
theorem bodyTrace {n m : Nat} (d : Nat) (positive : 0 < d) (input : List Bool) (left v : Nat) (rows : Fin d → GraphTables.DartRow n m) (rest output : List Bool) : (advance (TM2.step (program d positive)))^[bodySteps d v rows output] (some ⟨some .copyVertexFirst, clean d positive, loopTapes d input n m left v (MachineLazyRows.recordsInput (List.ofFn rows) ++ rest) output⟩) = some ⟨some .guard, clean d positive, loopTapes d input n m left (v + 1) rest (output ++ vertexBlock d v rows)⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.bodySteps, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopTapes, OAI.MaxCutGames.Foundations.Complexity.MachineLazyRows.recordsInput, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.vertexBlock
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.drainPhaseline 412 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finishStepsline 423 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finishTraceline 425 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.remainingline 480 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.remaining_zeroline 482 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.remaining_doneline 483 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.remaining_consline 485 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.inputBlocksline 491 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.outputBlocksline 494 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.vertexBlock_codecline 497 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.encodeWords_flatMap_inline_MachineLazyTableline 503 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.inputBlocks_codecline 509 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.outputBlocks_codecline 516 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.input_table_codecline 522 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.output_table_codecline 533 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopStepsline 545 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopTraceline 554Source documentation
Induction over the actual unary fuel and the actual stored vertex order.
theorem loopTrace {n d : Nat} (table : PortTables.Table n d) (positive : 0 < d) (input : List Bool) (count r : Nat) (hsum : r + count = n) (output : List Bool) : (advance (TM2.step (program d positive)))^[loopSteps table r count output] (some ⟨some .guard, clean d positive, loopTapes d input n (n * d) count r (inputBlocks table (remaining n r)) output⟩) = some ⟨none, clean d positive, finalTapes input (output ++ outputBlocks table (remaining n r))⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopSteps, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopTapes, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.inputBlocks, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.remaining, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.outputBlocks
- def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.totalStepsline 595 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.tableTraceline 601Source documentation
The full table execution, including all headers, all dummy and moving rows, and complete work-tape cleanup, in the existing exact Boolean codec.
theorem tableTrace {n d : Nat} (table : PortTables.Table n d) (positive : 0 < d) : (advance (TM2.step (program d positive)))^[totalSteps table] (some ⟨some (.split .copyFirst), clean d positive, initialTapes (PortTables.tableBits table)⟩) = some ⟨none, clean d positive, finalTapes (PortTables.tableBits table) (PortTables.tableBits (PreprocessingOverlayTables.lazy table))⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.totalSteps, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.initialTapes, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.dummyRows_length_le_inline_MachineLazyTableline 616 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.bodySteps_leline 629Source documentation
A uniform bound for the actual vertex body, using the complete output size as a cap on its existing prefix. Degree is a fixed program parameter.
theorem bodySteps_le {n d : Nat} (rows : Fin d → GraphTables.DartRow n (n * d)) (v L : Nat) (output : List Bool) (hv : v ≤ n) (hn : n ≤ L) (hm : n * d ≤ L) (ho : output.length ≤ 20000 * (L + 1) ^ 2) : bodySteps d v rows output ≤ 1000000 * (d + 1) ^ 3 * (L + 1) ^ 2 := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.bodySteps
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.output_length_leline 750 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.loopSteps_leline 767 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.timePolynomialline 799 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.timePolynomial_evalline 802 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.totalSteps_leline 806 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.machineline 837 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.machine_alphabet_finiteline 848 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.initial_configurationline 854 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes_inputline 863 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes_outputline 864 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes_work_emptyline 866 - def
OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.machineInTimeline 872Source documentation
A full actual finite-machine execution with a fixed-degree polynomial budget, the exact lazy-table output, preserved original input, and clean work.
def machineInTime {n d : Nat} (table : PortTables.Table n d) (positive : 0 < d) : StateTransition.EvalsToInTime (machine d positive).step (initList (machine d positive) (PortTables.tableBits table)) (some ⟨none, clean d positive, finalTapes (PortTables.tableBits table) (PortTables.tableBits (PreprocessingOverlayTables.lazy table))⟩) ((timePolynomial d).eval (PortTables.tableBits table).length) where …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.machine, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.finalTapes, OAI.MaxCutGames.Foundations.Complexity.MachineLazyTable.timePolynomial