OAI/Computability/MaxCut/Machines/MachineOverlayTable.lean
134 declarations, 0 contain sorry, 0 declared as axioms
- abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Tapeline 15 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Ambientline 16 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Stateline 17 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.graphArchiveline 19 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.graphStreamline 20 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.scratchline 21 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.vertexCountline 22 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.dartCountline 23 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderArchiveline 24 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderStreamline 25 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.fuelline 26 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.vertexline 27 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tailline 28 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldReverseline 29 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.relationline 30 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.dividedCopyline 31 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.quotientline 32 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.newReverseline 33 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.rowBufferline 34 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputline 35 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldTapesline 37 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderTapesline 41 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldTapes_injectiveline 45 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderTapes_injectiveline 51 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.cleanline 57 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderStateline 60 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderState_cleanline 69 - inductive
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.MainLabelline 74 - abbrev
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Labelline 86 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.nextline 88 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.mainInstructionline 91Source documentation
Fixed degree control, including two actual independent working streams.
def mainInstruction (d e : Nat) (hd : 0 < d) (he : 0 < e) : MainLabel d e → TM2.Stmt (fun _ : Tape => Bool) (Label d e) (State A d e) | .copyHFirst => Reduction.MachineTransfer.loopAt expanderArchive scratch id false (.inr .copyHFirst) (next .copyHSecond) | .copyHSecond => MachineCopy.forkLoop scratch expanderArchive expanderStream false (.inr .copyHSecond) (next .countSeed) | .countSeed => MachineUnaryAffineAt.seed output 0 (.inr .countScan) | .countScan => MachineUnaryAffineAt.scan vertexCount scratch output (d + e) (.inr .countScan) (.inr .countRestore) | .countRestore => Reduction.MachineTransfer.loopAt scratch vertexCount id false (.inr .countRestore) (next .headerSeed) | .headerSeed => MachineUnaryAffineAt.seed output 0 (.inr .headerScan) …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.MainLabel, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Label, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.State, OAI.MaxCutGames.Reduction.MachineTransfer.loopAt, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderArchive, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.scratch, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.next, OAI.MaxCutGames.Foundations.Complexity.MachineCopy.forkLoop, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderStream, OAI.MaxCutGames.Foundations.Complexity.MachineUnaryAffineAt.seed, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.output, OAI.MaxCutGames.Foundations.Complexity.MachineUnaryAffineAt.scan, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.vertexCount
- def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.programline 133Source documentation
The checked splitter is placed directly in five homogeneous Boolean stacks, with its actual halt replaced by the next preparation label.
def program (d e : Nat) (hd : 0 < d) (he : 0 < e) : Label d e → TM2.Stmt (fun _ : Tape => Bool) (Label d e) (State A d e) | .inl l => Placement.statement Sum.inl Sum.inl (next .copyHFirst) (MachineTableSplit.program l) | .inr l => mainInstruction d e hd he lMentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Label, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.State, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.next, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.program, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.mainInstruction
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.program_mainline 139 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.extraTapesline 142 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.splitViewline 145 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.combineline 149 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.initialTapesline 153 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.splitTapesline 156 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.placedTapesline 159 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.splitTraceline 165Source documentation
The complete existing splitter is executed, retaining both archives.
theorem splitTrace (d e : Nat) (hd : 0 < d) (he : 0 < e) (table : GraphTables.Table) (rawH : List Bool) (a : A) : (advance (TM2.step (program d e hd he)))^[MachineTableSplit.exactSteps table.vertices table.darts (MachineTableSplit.rowsBits table)] (some ⟨some (.inl .copyFirst), clean d e hd he a, initialTapes (GraphTables.tableBits table) rawH⟩) = some ⟨next .copyHFirst, clean d e hd he a, splitTapes table.vertices table.darts (MachineTableSplit.rowsBits table) rawH⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.exactSteps, OAI.MaxCutGames.Foundations.Complexity.MachineTableSplit.rowsBits, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.initialTapes, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.next, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.splitTapes
- def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memoryline 186Source documentation
Every unnamed work tape is empty at these phase boundaries.
def memory (g h gs hs n m f v t out : List Bool) : Tape → List Bool | .inl i => ![g, gs, [], n, m] i | .inr i => ![h, hs, f, v, t, [], [], [], [], [], [], out] i
Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.Tape
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_graphArchiveline 190 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_graphStreamline 192 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_scratchline 194 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_vertexCountline 196 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_dartCountline 198 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_expanderArchiveline 200 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_expanderStreamline 202 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_fuelline 204 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_vertexline 206 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_tailline 208 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_oldReverseline 210 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_relationline 212 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_dividedCopyline 214 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_quotientline 216 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_newReverseline 218 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_rowBufferline 220 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory_outputline 222 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_outputline 225 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_expanderStreamline 228 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_graphStreamline 232 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_fuelline 236 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_vertexline 239 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_tailline 242 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_vertexCountline 245 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.update_dartCountline 248 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.joinTrace_inline_MachineOverlayTableline 252 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.initialTapes_memoryline 256 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.splitTapes_memoryline 263 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.preparationStepsline 271 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.preparationTraceline 275Source documentation
Preserve and copy raw H, emit both output headers from the parsed unary vertex count, copy the actual fuel field, and initialize the physical counter.
theorem preparationTrace (d e : Nat) (hd : 0 < d) (he : 0 < e) (g h gs : List Bool) (n m : Nat) (a : A) : (advance (TM2.step (program d e hd he)))^[preparationSteps n h] (some ⟨next .copyHFirst, clean d e hd he a, memory g h gs [] (encodeWord n) (encodeWord m) [] [] [] []⟩) = some ⟨next .guard, clean d e hd he a, memory g h gs h (encodeWord n) (encodeWord m) (encodeWord n) (encodeWord 0) [] (encodeWords [n, n * (d + e)])⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.preparationSteps, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.next, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.encodeWords
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.encodeWords_flatMap_inline_MachineOverlayTableline 343 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.encodeWords_flatten_inline_MachineOverlayTableline 349 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.encodeWords_flatten_flatMap_inline_MachineOverlayTableline 355 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldRowsline 364 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderValuesline 365 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldBlockline 368 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderBlockline 370 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldOutputline 373 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderOutputline 375 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputBlockline 377 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldOutput_eqline 380 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderOutput_eqline 394 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputBlock_eqline 398 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.graphRows_blocksline 404 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderRows_blocksline 413 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tableBits_blocksline 418 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.remainingline 429 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.emittedPrefixline 431 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.remaining_stepline 434 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.prefix_stepline 442 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.remaining_zeroline 449 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.remaining_endline 451 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.prefix_zeroline 455 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.prefix_endline 457 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldFrameline 464 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderFrameline 473 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldVertexTraceline 481 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderVertexTraceline 499 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tailCopyTraceline 530 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tailFinishTraceline 547 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.pairStepsline 576 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.pairTraceline 584Source documentation
The complete old/expander pair for one actual vertex, with both physical stream suffixes and the unchanged unary fuel accounted for.
theorem pairTrace {n : Nat} (d e : Nat) (hd : 0 < d) (he : 0 < e) (G : PortTables.Table n d) (H : ExpanderTables.Table n e) (v : Fin n) (g h gs hs nv mv f out : List Bool) (a : A) : (advance (TM2.step (program d e hd he)))^[pairSteps G H v out] (some ⟨next (.old (0, none)), clean d e hd he a, memory g h (oldBlock G v ++ gs) (expanderBlock H v ++ hs) nv mv f (encodeWord v.val) [] out⟩) = some ⟨next .guard, clean d e hd he a, memory g h gs hs nv mv f (encodeWord (v.val + 1)) [] (out ++ outputBlock G H v)⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.pairSteps, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.next, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.memory, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldBlock, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderBlock, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputBlock
- def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.cleanupStepsline 604 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.cleanupTraceline 606 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.rawExpanderline 635 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputPrefixline 638 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputPrefix_stepline 641 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopBaseline 646 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopCostline 652 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopBodyTracesline 660Source documentation
Each body premise needed by the generic unary counted-loop theorem is constructed from the actual old/expander pair execution.
theorem loopBodyTraces {n : Nat} (d e : Nat) (hd : 0 < d) (he : 0 < e) (G : PortTables.Table n d) (H : ExpanderTables.Table n e) (a : A) : MachineCountedLoop.BodyTraces fuel (.inr .guard) (.inr (.old (0, none))) (program d e hd he) [] (fun _ => (clean d e hd he a).1) (fun _ => none) (loopBase G H) (loopCost G H) n := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineCountedLoop.BodyTraces, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.fuel, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.program, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.clean, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopBase, OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopCost
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopTraceline 696 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tableStepsline 730 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tableTraceline 735 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.flatMap_length_le_inline_MachineOverlayTableline 763 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.flatten_length_le_inline_MachineOverlayTableline 775 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldSizeline 779 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderSizeline 780 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.blockSizeline 781 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.oldOutput_length_leline 783 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.expanderOutput_length_leline 790 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputBlock_length_leline 803 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputCapacityline 811 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.outputPrefix_length_leline 813 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.pairBudgetline 830 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.pairSteps_leline 837 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.loopSteps_leline 875 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.phasePolynomialline 884Source documentation
Polynomial formed from the actual per-row and counted-loop transition budgets. Fixed degree parameters determine its coefficients.
noncomputable def phasePolynomial (d e : Nat) : Polynomial Nat := …
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.phasePolynomial_evalline 900 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.timePolynomialline 908 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tableSteps_leline 911 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.tableInTimeline 928 - def
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.machineline 941 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineOverlayTable.machine_alphabet_finiteline 952