OAI/Computability/UniqueGames/Machines/MachineSubdivisionDynamicRowsLemmas.lean
86 declarations, 0 contain sorry, 0 declared as axioms
Four-edge subdivision row emission with a physical permutation-table field.
The program depends only on the fixed identity table. Five saved endpoint words
and the entire final forward permutation table are physical tape contents. In
particular an input-dependent permutation is not inserted into a program label
or literal instruction. The last row is oriented v → r; for binary-vector
translations its table equals the inverse table of the original u → v edge.
- def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.rowsline 30Source documentation
The last table is the actual table for the left-to-right
v → rrow.def rows {n q : Nat} (vertices : Fin 5 → Fin n) (p : PermutationTable q) : List (Constraint n q) := … - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.tokensline 37 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.tokens_lengthline 43 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.fieldsline 46 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.rowBitsline 52 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.templateOutput_rowsline 55 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.fieldline 64Source documentation
Six preserved fields, scratch, and a reversed-output accumulator.
def field (j : Fin 6) : Fin 8 := ⟨j.val, by omega⟩
- def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.scratchline 66 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.outputline 67 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.field_ne_scratchline 69 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.field_ne_outputline 75 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.scratch_ne_outputline 81 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.machineline 83 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.machine_finiteAlphabetline 94 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.phaseInTimeline 101Source documentation
Literal execution of the fixed program; all six input fields are preserved.
def phaseInTime (identity : List Bool) (base : Fin 8 → List Bool) (emptyScratch : base scratch = []) (state : MachineFieldTemplate.State Unit) : StateTransition.EvalsToInTime (machine identity).step ⟨some (MachineFieldTemplate.startAt (tokens identity).length 0), state, base⟩ (some ⟨none, MachineFieldTemplate.reset state, MachineFieldTemplate.outputTapes base output (MachineFieldTemplate.templateOutput (tokens identity) (fun j => base (field j)))⟩) (3 * MachineFieldTemplate.copiedLength (tokens identity) (fun j => base (field j)) + 37) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.scratch, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.machine, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.tokens, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.output, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.field
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.phase_budgetline 118Source documentation
The variable permutation table is read once; vertex words are read according to their explicit occurrences in the four rows.
theorem phase_budget (identity : List Bool) (base : Fin 8 → List Bool) : 3 * MachineFieldTemplate.copiedLength (tokens identity) (fun j => base (field j)) + 37 = 3 * ((base (field 0)).length + 2 * (base (field 1)).length + 2 * (base (field 2)).length + 2 * (base (field 3)).length + (base (field 4)).length + (base (field 5)).length) + 37 := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.tokens, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.field
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.translation_inverseline 128Source documentation
The inverse table of a binary translation is literally the same table.
theorem translation_inverse {s : Nat} (a b : UniqueGamesTheorem.Integration.BinaryLinear.Vector s) : inverseTable (Encoding.translationTable a b) = Encoding.translationTable a b := rflMentions: OAI.UniqueGamesTheorem.Integration.BinaryLinear.Vector
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.translation_rowsline 134Source documentation
Therefore the dynamic emitter serializes the same left-to-right rows as the general subdivision emitter, including the reversed final edge.
theorem translation_rows {n s : Nat} (vertices : Fin 5 → Fin n) (a b : UniqueGamesTheorem.Integration.BinaryLinear.Vector s) : rows vertices (Encoding.translationTable a b) = MachineSubdivisionRows.rows vertices (Encoding.translationTable a b) := by …Mentions: OAI.UniqueGamesTheorem.Integration.BinaryLinear.Vector, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionDynamicRows.rows, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionRows.rows
- inductive
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Tapeline 149 - abbrev
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Tape.enumListline 156 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Tape.enumList_getElem?_ctorIdx_eqline 160 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Tape.enumList_nodupline 164 - instance
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.(instance at line 166)line 166 - abbrev
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Stateline 170 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.initialStateline 172 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.headerFieldline 174 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.rowFieldline 179 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.rowTokensline 187 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.headerTokensline 190 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.newHeaderFieldline 193 - structure
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.InitOpline 199Source documentation
Nine fixed affine passes initialize headers, the loop counter, and all three private vertex indices.
nonemeans accumulate into the existing unary word.structure InitOp where …
- def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.initOpline 205 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.clearKeysline 216 - inductive
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Labelline 221 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.headerNextline 237 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.initNextline 240 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.rowEntryline 244 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.programline 249Source documentation
A fixed finite program: the table reader counts only
qdelimiters in finite control, while all unbounded integers are physical unary tape contents.def program (q : Nat) : Label q → TM2.Stmt (fun _ : Tape => Bool) (Label q) State | .headerStart i => SourceMachine.fieldStart (headerField i) (.headerRead i) | .headerRead i => SourceMachine.fieldLoop .input (headerField i) (.headerRead i) (some (headerNext i)) | .initialize i 0 => match (initOp i).seed with | some offset => MachineUnaryAffineAt.seed (initOp i).destination offset (.initialize i 1) | none => .goto (fun _ => .initialize i 1) | .initialize i 1 => MachineUnaryAffineAt.scan (initOp i).source .affineScratch (initOp i).destination (initOp i).coefficient (.initialize i 1) (.initialize i 2) | .initialize i 2 => MachineTransfer.loopAt .affineScratch (initOp i).source id false (.initialize i 2) (some (initNext i)) …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Label, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.Tape, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.State, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.headerField, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.headerNext, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.initOp, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.initNext
- def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.machineline 293 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.machine_finiteAlphabetline 304 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.rowField_injectiveline 310 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.clearKeys_coversline 314 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.accumulator_not_mem_clearKeysline 318 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionProgram.output_not_mem_clearKeysline 319 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionFinish.timePolynomialline 332 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionFinish.haltList_eqline 335 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionFinish.finishStartInTimeline 343 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionFinish.coversline 355 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionFinish.completePrefixline 362 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.inputTapesline 404 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.afterVerticesline 407 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.afterAlphabetline 410 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.resultTapesline 414 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.initList_eqline 419 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.first_resultline 425 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.second_resultline 433 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.third_resultline 441 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.headersInTimeline 451Source documentation
The input headers are consumed literally; all unread constraint bits retain their original order and no tape contains an implicit runtime number.
def headersInTime (q n Q : Nat) (body : List Bool) : StateTransition.EvalsToInTime (machine q).step (initList (machine q) (encodeWords [n, q, Q] ++ body)) (some ⟨some (.initialize 0 0), initialState, resultTapes n q Q body⟩) (n + q + Q + 6) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.resultTapes
- theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.headers_budgetline 485 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.source_ne_scratchline 502 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.source_ne_destinationline 505 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.scratch_ne_destinationline 508 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.priorWordline 511 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.operationTraceline 516 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.sourceValueline 563 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.beforeValueline 574 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.afterValueline 585 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.frameline 588 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.frame_sourceline 595 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.frame_scratchline 600 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.frame_destinationline 604 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.atStageline 610 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.initNext_eq_atStageline 614 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.stageCostline 618 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.sourceValue_leline 620 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.prefixInTimeline 623 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.resultTapesline 665 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.final_frameline 679 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.initializeInTimeline 689Source documentation
The actual initialized loop counters and fresh numeric vertex IDs are proved outputs of unary arithmetic, including the runtime vertex header.
def initializeInTime (q n Q : Nat) (body : List Bool) : StateTransition.EvalsToInTime (machine q).step ⟨some (.initialize 0 0), initialState, MachineSubdivisionHeaders.resultTapes n q Q body⟩ (some ⟨some (.emitHeader (MachineFieldTemplate.startAt (headerTokens q).length 0)), initialState, resultTapes n q Q body⟩) (9 * stageCost n Q) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionHeaders.resultTapes, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.resultTapes, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.stageCost
- def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.headerBitsline 709 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.resultTapesline 711 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.header_templateline 715 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.header_copiedLengthline 723 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.header_resultline 731 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.headerInTimeline 737 - def
OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.prepareInTimeline 756Source documentation
From raw input headers to the running occurrence loop, including all finite arithmetic phases and literal output-header emission.
def prepareInTime (q n Q : Nat) (body : List Bool) : StateTransition.EvalsToInTime (machine q).step (initList (machine q) (encodeWords [n, q, Q] ++ body)) (some ⟨some .guard, initialState, resultTapes n q Q body⟩) (n + q + Q + 6 + 9 * MachineSubdivisionInit.stageCost n Q + (3 * (n + 7 * Q + 2) + 10)) := by …Mentions: OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionEmission.resultTapes, OAI.UniqueGamesTheorem.Explicit.MachineSubdivisionInit.stageCost