OAI/Computability/UniqueGames/Machines/MachineCloudPadding.lean
59 declarations, 0 contain sorry, 0 declared as axioms
Actual cloud counting, geometric padding, and unary subtraction
One finite program places the checked cloud counter and geometric search on shared tapes. Its final phase physically subtracts the preserved cloud size from the computed power. A head test handles the empty cloud separately.
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.tapesline 26 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.labelline 32 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.configurationline 36 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.statementline 41 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.tapes_applyline 56 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.tapes_updateline 62 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.stepAux_simulationline 81 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.step_simulationline 108 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Placement.traceline 128 - inductive
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Tapeline 145 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Tape.enumListline 149 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Tape.enumList_getElem?_ctorIdx_eqline 152 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Tape.enumList_nodupline 156 - instance
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.(instance at line 158)line 158 - inductive
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Labelline 162 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Alphabetline 168 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.Stateline 169 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.memoryline 171 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.update_countline 184 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.update_scratchline 187 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.update_powerline 190 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.update_levelline 194 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countTapeline 198 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countViewline 206 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countView_leftline 215 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countView_rightline 217 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerTapeline 221 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerViewline 231 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerView_leftline 242 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerView_rightline 244 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countMemoryline 248 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerMemoryline 253 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countTapesline 258 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerTapesline 263 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.subtractLoopline 270 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.programline 278 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.appendTraceline 293 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.countTraceline 297 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.powerTraceline 313 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.subtractStep_zeroline 328 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.subtractStep_succline 338 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.subtractScanTraceline 348 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.subtractTraceline 373Source documentation
Physical unary subtraction preserves the complete count word by moving its consumed tallies to scratch and then transferring them back.
theorem subtractTrace (table query level : List Bool) (k p : Nat) (hkp : k ≤ p) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[2 * k + 2] (some ⟨some .subtract, ((ambient, false), register), memory table query (encodeWord k) [] [] [] (encodeWord p) level [] []⟩) = some ⟨none, ((ambient, false), none), memory table query (encodeWord k) [] [] [] (encodeWord (p - k)) level [] []⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.memory, OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWord
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.branchStep_zeroline 393 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.branchStep_succline 401 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.paddingline 410 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.postTimeline 412 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.postTraceline 417Source documentation
Count zero is handled by a head test. Positive counts execute the exact power search and subtraction traces on the shared count tape.
theorem postTrace (table query : List Bool) (k : Nat) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[postTime k] (some ⟨some .branch, ((ambient, false), register), memory table query (encodeWord k) [] [] [] [] [] [] []⟩) = some ⟨none, ((ambient, false), none), memory table query (encodeWord k) [] [] [] (encodeWord (padding k)) (encodeWord (PreprocessingLevels.boundedLevel k)) [] []⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.postTime, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.memory, OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWord, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.padding
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.initStepline 445 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.totalTimeline 452 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.cloudPaddingTraceline 458Source documentation
One complete concrete program returns the cloud size, geometric level, and required number of padding vertices, preserving input and query.
theorem cloudPaddingTrace (t : GraphTables.Table) (v : Fin t.vertices) (suffix : List Bool) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[totalTime t v] (some ⟨some .init, ((ambient, false), register), memory (GraphTables.tableBits t) (encodeWord v.val ++ suffix) [] [] [] [] [] [] [] []⟩) = some ⟨none, ((ambient, false), none), memory (GraphTables.tableBits t) (encodeWord v.val ++ suffix) (encodeWord (PreprocessingCloudIndex.cloudSize t v)) [] [] [] (encodeWord (padding (PreprocessingCloudIndex.cloudSize t v))) (encodeWord (PreprocessingLevels.boundedLevel (PreprocessingCloudIndex.cloudSize t v))) [] []⟩ := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.totalTime, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.memory, OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWord, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.padding
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.inputLengthline 479 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.count_length_leline 482 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.table_length_leline 489 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.postTime_leline 494 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.timePolynomialline 500 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.totalTime_leline 503 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.cloudPaddingInTimeline 520Source documentation
The bound is quadratic in the combined actual graph/query tape length. All transitions are supplied by the concrete program and its phase traces.
def cloudPaddingInTime (t : GraphTables.Table) (v : Fin t.vertices) (suffix : List Bool) (ambient : σ) (register : Option Bool) : StateTransition.EvalsToInTime (TM2.step program) ⟨some .init, ((ambient, false), register), memory (GraphTables.tableBits t) (encodeWord v.val ++ suffix) [] [] [] [] [] [] [] []⟩ (some ⟨none, ((ambient, false), none), memory (GraphTables.tableBits t) (encodeWord v.val ++ suffix) (encodeWord (PreprocessingCloudIndex.cloudSize t v)) [] [] [] (encodeWord (padding (PreprocessingCloudIndex.cloudSize t v))) (encodeWord (PreprocessingLevels.boundedLevel (PreprocessingCloudIndex.cloudSize t v))) [] []⟩) (timePolynomial.eval (inputLength t v suffix)) where …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.memory, OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWord, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.padding, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.inputLength
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineCloudPadding.count_add_paddingline 536