OAI/Computability/UniqueGames/Machines/MachineProductHeadersFrameLemmas.lean
57 declarations, 0 contain sorry, 0 declared as axioms
Concrete header and initialized work-tape frames for the product machine.
- def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frameline 18Source 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.UniqueGamesTheorem.Explicit.ProductMachineSemantics.inputTable, OAI.UniqueGamesTheorem.Explicit.MachineProductPower.digits
- def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.headerBitsline 28 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.baseTapesline 32Source documentation
Canonical frame before the odometer digits are filled.
def baseTapes {q : Nat} (H : Instance q) (t : Nat) : Tape t → List Bool := … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_accumulatorline 35 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_outputline 38 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_radixline 41 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_digitline 47 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.power_outsideline 52 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_power_cleanline 58 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_power_outputline 62 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.frame_appendline 66 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.initialized_eqline 79Source 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.UniqueGamesTheorem.Explicit.MachineProductHeaders.baseTapes
- def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.powerExitline 107 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.powerInTimeline 110 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.alphabetInTimeline 126 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.powersInTimeline 137 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.inputTapesline 176 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.afterVerticesline 180 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.afterAlphabetline 185 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.rawResultTapesline 190 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.resultTapesline 196 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.initList_eqline 202 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.first_resultline 210 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.second_resultline 223 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.third_resultline 236 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.rawHeadersInTimeline 249 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.headersInTimeline 288Source 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.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.resultTapes
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeadersRead.headers_budgetline 302 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.seedCommands_nodupline 323 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.seed_resultline 329 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.seedBridgeline 357 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.seedInTimeline 372 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.initializeInTimeline 404 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.stepsline 418 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.prepareInTimeline 425Source 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.UniqueGamesTheorem.Explicit.MachineProductHeaders.timePolynomialline 441 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.steps_leline 446 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductHeaders.inPolynomialTimeline 462Source 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) … - structure
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.BaseReadyline 492 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.tupleTapesline 498 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.tupleTapes_frameline 503 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.tupleTapes_currentline 515 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.tupleTapes_accumulatorline 520 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.tupleTapes_readyline 525 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.rowBitsline 576 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.input_lengthline 580 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.bodyBoundline 587 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.bodyTraceline 592Source documentation
The actual row execution supplies the local obligation of the generic odometer schedule. Its cost is uniformly polynomial in the original bits.
theorem bodyTrace (H : Target.Instance q) (base : Tape t → List Bool) (ready : BaseReady H base) : SourceOdometerSchedule.BodyTrace (program q t) (rowMain q t) (nextCheck q t 0) ((), ()) (Sum.inl (6 : Fin 10)) base (rowBits (t := t) H) (bodyBound H t) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.BaseReady, OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.rowBits, OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.bodyBound
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.traversalInTimeline 645Source documentation
Complete positive-radix tuple traversal with actual row bodies discharged.
theorem traversalInTime (H : Target.Instance q) (base : Tape t → List Bool) (ready : BaseReady H base) : Nonempty (StateTransition.EvalsToInTime (TM2.step (program q t)) (SourceOdometerSchedule.initialConfiguration (m := H.constraints.length) t (rowMain q t) ((), ()) base) …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineProductLoop.BaseReady
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.base_readyline 684 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.afterRowsline 694 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.afterRows_outputline 698 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.allRows_eqline 705 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.afterRows_accumulatorline 711 - def
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.finishInTimeline 724Source documentation
The entry hop reaches the actual cleanup list, then all work is drained, the accumulator is reversed, and the final finite register is reset.
def finishInTime (base : Tape t → List Bool) (emptyOutput : base (output t) = []) : StateTransition.EvalsToInTime (TM2.step (program q t)) ⟨some .finishStart, (((), ()), none), base⟩ (some ⟨none, (((), ()), none), SourceRuntimeFinish.canonicalTapes (output t) (base (accumulator t)).reverse⟩) (1 + SourceRuntimeFinish.finishCost (clearKeys t) (accumulator t) base) := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.finishCost_le_uniformline 746Source documentation
A uniform bound on the real cleanup work, from bounds on actual stacks.
theorem finishCost_le_uniform (base : Tape t → List Bool) (bound : Nat) (bounded : ∀ k, (base k).length ≤ bound) : SourceRuntimeFinish.finishCost (clearKeys t) (accumulator t) base ≤ ((clearKeys t).length + 1) * bound + (clearKeys t).length + 2 := by … - theorem
OAI.UniqueGamesTheorem.Explicit.MachineProductFinish.finish_afterRowsline 757