OAI/Computability/MaxCut/Machines/MachineRegularTableRuntime.lean
125 declarations, 0 contain sorry, 0 declared as axioms
A fixed five-tape machine physically copies a graph table, preserves the original input, and splits its two unary header fields from the copied rows. The exact trace is ambient-state polymorphic for static machine placement.
- def
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.rawProgramline 14 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.sourceMachine_eqline 22 - def
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.cleanupTapesline 26 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.cleanup_completeline 29 - def
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.terminalRunline 33 - def
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.computableInPolyTimeline 53Source documentation
The literal canonical output configuration computes the shared regular preprocessing map, with the actual complete raw execution as its witness.
noncomputable def computableInPolyTime (H : PreprocessingRegularTables.BaseTable) : TM2ComputableInPolyTime GraphTables.tableBits (PortTables.inputBits (ports := PreprocessingRegularTables.internalDegree + 1)) … - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.finite_alphabetline 62Source documentation
Finiteness refers to the exact machine in the preceding certificate.
theorem finite_alphabet (H : PreprocessingRegularTables.BaseTable) : ∀ k, Finite ((computableInPolyTime H).tm.Γ k) := …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineRegularTableRuntime.computableInPolyTime
- abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Tapeline 80 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Stateline 81 - inductive
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Labelline 83 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Label.enumListline 87 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Label.enumList_getElem?_ctorIdx_eqline 90 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Label.enumList_nodupline 94 - instance
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.(instance at line 96)line 96 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.tapesline 102Source documentation
Tape 0 is protected input, 1 is the working row stream, 2 is scratch, and 3 and 4 hold the extracted vertex and dart counts.
def tapes (original work vertices darts : List Bool) : Tape → List Bool := …
Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Tape
- def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.initialTapesline 106 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapesline 108 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes_originalline 111 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes_workline 115 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes_scratchline 118 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes_verticesline 121 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes_dartsline 124 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.programline 128Source documentation
Six finite control labels, independent of all input sizes and contents.
def program {σ : Type} : Label → TM2.Stmt (fun _ : Tape => Bool) Label (State σ) | .copyFirst => Reduction.MachineTransfer.loopAt 0 2 id false .copyFirst (some .copySecond) | .copySecond => MachineCopy.forkLoop 2 0 1 false .copySecond (some .startVertices) | .startVertices => Hastad.SourceMachine.fieldStart 3 .readVertices | .readVertices => Hastad.SourceMachine.fieldLoop 1 3 .readVertices (some .startDarts) | .startDarts => Hastad.SourceMachine.fieldStart 4 .readDarts | .readDarts => Hastad.SourceMachine.fieldLoop 1 4 .readDarts noneMentions: OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Label, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.State, OAI.MaxCutGames.Reduction.MachineTransfer.loopAt, OAI.MaxCutGames.Foundations.Complexity.MachineCopy.forkLoop, OAI.MaxCutGames.Foundations.Hastad.SourceMachine.fieldStart, OAI.MaxCutGames.Foundations.Hastad.SourceMachine.fieldLoop
- def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.exactStepsline 136 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.splitTraceline 139 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.timePolynomialline 209 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.timePolynomial_evalline 211 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.exactSteps_leline 214 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.splitInTimeline 221 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.machineline 231 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.initial_configurationline 242 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.rowsBitsline 251 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.tableBits_header_rowsline 254 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.tableTraceline 258 - def
OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.initializedTableInTimeline 268Source documentation
The concrete machine starts at its genuine initial configuration on a full graph table and leaves every output field on the stated physical tape.
def initializedTableInTime (table : PCP.GraphTables.Table) : StateTransition.EvalsToInTime machine.step (initList machine (PCP.GraphTables.tableBits table)) (some ⟨none, ((), none), resultTapes table.vertices table.darts (rowsBits table)⟩) (timePolynomial.eval (PCP.GraphTables.tableBits table).length) := by …Mentions: OAI.MaxCutGames.Foundations.PCP.GraphTables.Table, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.machine, OAI.MaxCutGames.Foundations.PCP.GraphTables.tableBits, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.resultTapes, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.rowsBits
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowsBits_length_leline 284Source documentation
All rows in a fixed block are bounded by its last possible index.
theorem rowsBits_length_le (v e count : Nat) : (MachineDummyRows.rowsBits v e count).length ≤ count * (v + e + count + 8194) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineDummyRows.rowsBits
- def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowBoundline 300Source documentation
A common row-size bound for all remaining vertices and ports.
def rowBound (d v e count : Nat) : Nat := v + count + e + (count + 1) * d + 8194
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowBound_nextline 304Source documentation
This bound is invariant when one vertex and its
dreverse indices have been consumed from the remaining outer-loop count.theorem rowBound_next (d v e count : Nat) : rowBound d (v + 1) (e + d) count = rowBound d v e (count + 1) := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowBound
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.blockRow_le_rowBoundline 309 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.steps_le_boundline 316Source documentation
The actual outer-loop cost is bounded by the number of vertices times a uniform bound on its actual row bodies and two control transitions.
theorem steps_le_bound (d v e : Nat) (output : List Bool) (count : Nat) : MachinePaddingRows.steps d v e output count ≤ count * (d * (4 * rowBound d v e count + 2 * (output.length + count * d * rowBound d v e count) + 10) + 2) + 1 := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachinePaddingRows.steps, OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowBound
- def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.inputSizeline 367Source documentation
Exact variable-size input: two unary fields, unary fuel, and old output.
def inputSize (v e count : Nat) (output : List Bool) : Nat := …
- def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowCapline 370 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowBound_le_capline 372 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.rowPolynomialline 385 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.timePolynomialline 390Source documentation
A cubic polynomial for fixed degree, including the final zero-fuel guard. The one-time relation initializer can be accounted for separately.
noncomputable def timePolynomial (d : Nat) : Polynomial Nat := …
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingBounds.timePolynomial_boundsline 396 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingCertificate.timePolynomialline 427 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingCertificate.executionline 430 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingTable.initialOutputline 455 - def
OAI.MaxCutGames.Foundations.Complexity.MachinePaddingTable.executionline 458 - inductive
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Tapeline 497 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Tape.enumListline 502 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Tape.enumList_getElem?_ctorIdx_eqline 505 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Tape.enumList_nodupline 509 - instance
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.(instance at line 511)line 511 - inductive
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Labelline 515 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Alphabetline 524 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Stateline 525 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.memoryline 528Source documentation
All unnamed work stacks are empty at the phase boundaries below.
def memory (input output vertex edge power level fuel relation : List Bool) : Tape → List Bool | .original => input | .output => output | .vertex => vertex | .edge => edge | .power => power | .level => level | .fuel => fuel | .relation => relation | _ => []
Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.Tape
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_outputline 539 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_vertexline 542 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_edgeline 545 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_powerline 548 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_fuelline 551 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.update_relationline 554 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitTapeline 558 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitViewline 559 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitView_leftline 567 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitView_rightline 569 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerTapeline 573 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerViewline 582 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerView_leftline 593 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerView_rightline 595 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractTapeline 599 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractViewline 610 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractView_leftline 623 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractView_rightline 625 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowTapeline 629 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowViewline 632 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowView_leftline 642 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowView_rightline 646 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowAlphabet_eqline 652 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowStateEquivline 655 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowProgramline 661 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.programline 668 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.appendTrace_inline_MachineVertexPaddingline 694 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.tableBits_splitline 698 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitInitialTapesline 704 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitResultTapesline 710 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.splitTraceline 716 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerTapesline 733 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.powerTraceline 738 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.affineTapesline 752 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.affineOutputTraceline 759 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.headersTraceline 801 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.copyPowerTraceline 817 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractTapesline 831 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.subtractTraceline 838 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowBoolTapesline 853 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.transport_tapes_apply_inline_MachineVertexPaddingline 858 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowCastTapesline 865 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowInitialTapesline 871 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowFinalTapesline 878 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowTimeline 886 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.frameTrace_inline_MachineVertexPaddingline 889 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowsTraceline 900Source documentation
The checked padding-row machine is transported through alphabet/state equalities and a static tape placement. No row execution is assumed.
theorem rowsTrace {σ : Type} {n d m : Nat} (hd : 0 < d) (t : PortTables.Table n d) (hnm : n ≤ m) (input power level : List Bool) (ambient : σ) : (advance (TM2.step (program d hd)))^[rowTime (m := m) t] …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.program, OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rowTime
- def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.cleanupTimeline 934 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.cleanupTraceline 936 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.otherTimeline 971 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.totalTimeline 978 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.vertexPaddingTraceline 983Source documentation
The whole table transformation begins with only its original encoding. Every row-emitter counter and the updated prefix are produced by this run.
theorem vertexPaddingTrace {σ : Type} {n d : Nat} (hd : 0 < d) (t : PortTables.Table n d) (ambient : σ) (register : Option Bool) : (advance (TM2.step (program d hd)))^[totalTime t] (some ⟨some (.splitCode .copyFirst), ((ambient, false), register), memory (PortTables.tableBits t) [] [] [] [] [] [] []⟩) = some ⟨none, ((ambient, false), none), memory (PortTables.tableBits t) (PortTables.tableBits (PreprocessingPaddingTables.pad t (PreprocessingLevels.le_paddedSize n))) [] [] [] (encodeWord (PreprocessingLevels.boundedLevel n)) [] []⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.program, OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.totalTime, OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.memory, OAI.MaxCutGames.Foundations.Complexity.encodeWord
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.rows_length_leline 1019 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.darts_length_leline 1024 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.power_length_boundline 1028 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.initialOutput_lengthline 1033 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.intermediateCoefficientline 1040 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.intermediatePolynomialline 1042 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.intermediate_boundline 1045 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.otherPolynomialline 1060 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.otherTime_leline 1064 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.timePolynomialline 1080 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.totalTime_leline 1083 - def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.vertexPaddingInTimeline 1096Source documentation
Complete runtime certificate from the original input alone, with an explicit clean final frame and an actual polynomial in its encoded length.
def vertexPaddingInTime {σ : Type} {n d : Nat} (hd : 0 < d) (t : PortTables.Table n d) (ambient : σ) (register : Option Bool) : StateTransition.EvalsToInTime (TM2.step (program d hd)) ⟨some (.splitCode .copyFirst), ((ambient, false), register), memory (PortTables.tableBits t) [] [] [] [] [] [] []⟩ (some ⟨none, ((ambient, false), none), memory (PortTables.tableBits t) (PortTables.tableBits (PreprocessingPaddingTables.pad t (PreprocessingLevels.le_paddedSize n))) [] [] [] (encodeWord (PreprocessingLevels.boundedLevel n)) [] []⟩) ((timePolynomial d).eval (PortTables.tableBits t).length) where …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.program, OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.memory, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.timePolynomial
- def
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.machineline 1110 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineVertexPadding.alphabet_finiteline 1121