OAI/Computability/MaxCut/Machines/MachineProductProgram.lean
70 declarations, 0 contain sorry, 0 declared as axioms
Concrete header and initialized work-tape frames for the product machine.
- abbrev
OAI.MaxCutGames.Explicit.MachineProductProgram.Extraline 15 - abbrev
OAI.MaxCutGames.Explicit.MachineProductProgram.Tapeline 16 - abbrev
OAI.MaxCutGames.Explicit.MachineProductProgram.Stateline 17 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.auxiliaryline 19 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.constantDigitline 20 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.accumulatorline 21 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.outputline 22 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.rowRoleline 24 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.decodeRow_inline_MachineProductProgramline 34 - theorem
OAI.MaxCutGames.Explicit.MachineProductProgram.decodeRow_role_inline_MachineProductProgramline 45 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.rowSlotsline 54 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.powerRoleline 61 - theorem
OAI.MaxCutGames.Explicit.MachineProductProgram.powerRole_injectiveline 70 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.powerSlotsline 82 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.initRoleline 85 - theorem
OAI.MaxCutGames.Explicit.MachineProductProgram.initRole_injectiveline 91 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.seedCommandsline 95 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.clearKeysline 98 - theorem
OAI.MaxCutGames.Explicit.MachineProductProgram.mem_clearKeysline 101 - inductive
OAI.MaxCutGames.Explicit.MachineProductProgram.Labelline 107 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.headerDestinationline 122 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.rowMainline 127 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.nextCheckline 130 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.resetAtline 132 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.headerNextline 134 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.programline 137 - def
OAI.MaxCutGames.Explicit.MachineProductProgram.machineline 163 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.frameline 188Source documentation
All permanent input fields and fixed Horner digits are explicit tape words. The argument is the forward-order emitted already emitted.
def frame {q : Nat} (H : Instance q) (t : Nat) (emitted : List Bool) : Tape t → List Bool | .formula => encodeWords (ProductMachineSemantics.inputTable H) | .extra (.inl i) => if i = 0 then encodeWord H.vertices else if i = 7 then encodeWord q else if i = 8 then encodeWord H.constraints.length else if i = 6 then emitted.reverse else [] | .extra (.inr i) => encodeWord (MachineProductPower.digits i.val) | _ => []Mentions: OAI.MaxCutGames.Explicit.ProductMachineSemantics.inputTable, OAI.MaxCutGames.Explicit.MachineProductPower.digits
- def
OAI.MaxCutGames.Explicit.MachineProductHeaders.headerBitsline 198 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.baseTapesline 202Source documentation
Canonical frame before the odometer digits are filled.
def baseTapes {q : Nat} (H : Instance q) (t : Nat) : Tape t → List Bool := … - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_accumulatorline 205 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_outputline 208 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_radixline 211 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_digitline 217 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.power_outsideline 222 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_power_cleanline 228 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_power_outputline 232 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.frame_appendline 236 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.initialized_eqline 249Source documentation
The generic odometer initializer has exactly the scheduler's concrete digit frame; all permanent headers and output-emitted bits retain their identity.
theorem initialized_eq {q : Nat} (H : Instance q) (t : Nat) : MachineOdometerInit.stageTapes (initRole t) H.constraints.length (baseTapes H t) t = SourceOdometerSchedule.setDigits H.constraints.length (fun _ : Fin t => 0) (baseTapes H t) := by …Mentions: OAI.MaxCutGames.Explicit.MachineProductHeaders.baseTapes
- def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.inputTapesline 281 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.afterVerticesline 285 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.afterAlphabetline 290 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.rawResultTapesline 295 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.resultTapesline 301 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.initList_eqline 307 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.first_resultline 315 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.second_resultline 328 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.third_resultline 341 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.rawHeadersInTimeline 354 - def
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.headersInTimeline 393Source documentation
The exact runtime machine starts on the complete ordinary target game codec and reaches the seed phase with its untouched row table and three unary headers.
def headersInTime {q : Nat} (H : Target.Instance q) (t : Nat) : StateTransition.EvalsToInTime (machine q t).step (initList (machine q t) (gameBits H)) (some ⟨some .seedStart, (((), ()), none), resultTapes H t⟩) (H.vertices + q + H.constraints.length + 6) := by …Mentions: OAI.MaxCutGames.Explicit.MachineProductHeadersRead.resultTapes
- theorem
OAI.MaxCutGames.Explicit.MachineProductHeadersRead.headers_budgetline 407 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.seedCommands_nodupline 425 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.seed_resultline 431 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.seedBridgeline 459 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.seedInTimeline 476 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.powerExitline 512 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.powerInTimeline 515 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.alphabetInTimeline 531 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.powersInTimeline 542 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.initializeInTimeline 576 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.stepsline 590 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.prepareInTimeline 597Source documentation
Header reading, literal seed setup, actual Horner power computation, and all odometer digits are supplied by real execution traces of the same program.
def prepareInTime {q : Nat} (H : Instance q) (t : Nat) : StateTransition.EvalsToInTime (machine q t).step (initList (machine q t) (gameBits H)) (some (SourceOdometerSchedule.initialConfiguration (m := H.constraints.length) … - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.timePolynomialline 613 - theorem
OAI.MaxCutGames.Explicit.MachineProductHeaders.steps_leline 618 - def
OAI.MaxCutGames.Explicit.MachineProductHeaders.inPolynomialTimeline 634Source documentation
Polynomial initialization in the literal incoming instance-code length.
def inPolynomialTime {q : Nat} (H : Instance q) (t : Nat) : StateTransition.EvalsToInTime (machine q t).step (initList (machine q t) (gameBits H)) (some (SourceOdometerSchedule.initialConfiguration (m := H.constraints.length) … - def
OAI.MaxCutGames.Explicit.MachineProductBounds.fieldPolynomialline 655 - theorem
OAI.MaxCutGames.Explicit.MachineProductBounds.fieldPolynomial_evalline 660 - theorem
OAI.MaxCutGames.Explicit.MachineProductBounds.field_steps_leline 666 - def
OAI.MaxCutGames.Explicit.MachineProductBounds.rowCostline 689 - theorem
OAI.MaxCutGames.Explicit.MachineProductBounds.row_steps_leline 697