OAI/Computability/UniqueGames/Reduction/MachineAddressHeaders.lean
96 declarations, 0 contain sorry, 0 declared as axioms
- inductive
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.Labelline 21 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.readStartline 25 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.readLoopline 26 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.destinationline 30 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.statementline 32 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.atReadStartline 46 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.atReadLoopline 53 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.atReadDoneline 61 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.copiedline 66 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.readTapesline 69 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapesline 74 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.clear_readTapesline 78 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.readTapes_workline 98 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes_otherline 103 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes_sourceline 107 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes_workline 111 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes_nline 114 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes_mline 118 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.inTimeline 123Source documentation
Actual copying, two-field extraction, and complete disposal of the work copy.
def inTime (slots : Fin 5 ↪ K) (labels : Label → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ)) (atLabels : ∀ label, program (labels label) = statement slots labels exit label) (base : K → List Bool) (n m : Nat) (suffix : List Bool) (hinput : base (slots 0) = encodeWords [n, m] ++ suffix) (hwork : base (slots 1) = []) (hscratch : base (slots 4) = []) (ambient : σ) (register : Option Bool) : StateTransition.EvalsToInTime (TM2.step program) ⟨some (labels .copyOut), ((ambient, ()), register), base⟩ (some ⟨exit, ((ambient, ()), none), resultTapes slots base n m⟩) (3 * (base (slots 0)).length + 6) := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.Label, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.statement, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes
- def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.baseConstantline 173 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.radixline 174 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.capacityline 175 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.edgeFactorline 176 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.edgeCountline 178 - inductive
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Kindline 182 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Kind.enumListline 186 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Kind.enumList_getElem?_ctorIdx_eqline 188 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Kind.enumList_nodupline 192 - instance
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.(instance at line 194)line 194 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.polynomialline 198 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.polynomial_capacity_evalline 202 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.polynomial_edges_evalline 206 - inductive
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Controlline 212 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Control.enumListline 217 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Control.enumList_getElem?_ctorIdx_eqline 220 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Control.enumList_nodupline 224 - instance
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.(instance at line 226)line 226 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Coefficientsline 230 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layoutline 234 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.inputControlline 236 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.outputControlline 239 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.controlSlotsline 242 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.coefficientBlockline 250 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.localSlotsline 257 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.controlline 278 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlotsline 280 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control_eq_iffline 284 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_radixline 287 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_accAline 289 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_accBline 291 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_destinationline 293 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_counterline 295 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_scratchline 297 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalSlots_digitline 299 - inductive
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Labelline 303 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalStartline 309 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.afterEvalline 312 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.statementline 318Source documentation
The fixed arithmetic program never captures input counts in its code.
def statement (slots : Layout k s d noiseCount ↪ K) (labels : Label k s d noiseCount → Λ) (exit : Option Λ) : Label k s d noiseCount → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ) | .copyNOut => MachineTransfer.loopAt (control slots .variableCount) (control slots .scratch) id false (labels .copyNOut) (some (labels .copyNBack)) | .copyNBack => MachineCopy.forkLoop (control slots .scratch) (control slots .variableCount) (control slots .baseValue) false (labels .copyNBack) (some (labels .copyMOut)) | .copyMOut => MachineTransfer.loopAt (control slots .occurrenceCount) (control slots .scratch) id false (labels .copyMOut) (some (labels .copyMBack)) | .copyMBack => MachineCopy.forkLoop (control slots .scratch) (control slots .occurrenceCount) (control slots .temporary) false (labels .copyMBack) (some (labels .addM)) | .addM => MachineUnaryAddAt.loop (control slots .temporary) (control slots .baseValue) …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Label, OAI.UniqueGamesTheorem.Reduction.MachineTransfer.loopAt, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control
- structure
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.WorkCleanline 349 - structure
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Cleanline 356 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.WorkClean.update_controlline 362 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalPhaseTraceline 375Source documentation
One placed invocation of the already checked preserving polynomial evaluator.
theorem evalPhaseTrace (slots : Layout k s d noiseCount ↪ K) (labels : Label k s d noiseCount → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ)) (atLabels : ∀ label, program (labels label) = statement slots labels exit label) (kind : Kind) (base : K → List Bool) (value : Nat) (hinput : base (control slots (inputControl kind)) = encodeWord value) (hdest : base (control slots (outputControl kind)) = []) (clean : WorkClean slots base) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[SourceHeaderCounts.Eval.steps (polynomial k s d noiseCount kind) value] (some ⟨some (labels (evalStart kind)), ((ambient, ()), register), base⟩) = some ⟨some (labels (afterEval kind)), ((ambient, ()), none), Function.update base (control slots (outputControl kind)) …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Label, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.statement, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Kind, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.inputControl, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.outputControl, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.WorkClean, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.polynomial, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalStart, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.afterEval
- def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.headerBitsline 398 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.resultTapesline 401 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.stepsline 408 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.trace_transline 414 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.preparedBaseline 418 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.prepareBaseTraceline 423Source documentation
Copies preserve both operands; addition consumes only the temporary copy.
theorem prepareBaseTrace (slots : Layout k s d noiseCount ↪ K) (labels : Label k s d noiseCount → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ)) (atLabels : ∀ label, program (labels label) = statement slots labels exit label) (base : K → List Bool) (n m : Nat) (hn : base (control slots .variableCount) = encodeWord n) (hm : base (control slots .occurrenceCount) = encodeWord m) (clean : Clean slots base) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[2 * n + 3 * m + 10] (some ⟨some (labels .copyNOut), ((ambient, ()), register), base⟩) = some ⟨some (labels (evalStart .capacity)), ((ambient, ()), none), preparedBase slots base n m⟩ := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Label, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.statement, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Clean, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.evalStart, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.capacity, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.preparedBase
- theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.doubleTraceline 496Source documentation
Physical doubling emits the vertex-count word and restores the capacity.
theorem doubleTrace (slots : Layout k s d noiseCount ↪ K) (labels : Label k s d noiseCount → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ)) (atLabels : ∀ label, program (labels label) = statement slots labels exit label) (base : K → List Bool) (value : Nat) (hcap : base (control slots .capacity) = encodeWord value) (hscratch : base (control slots .scratch) = []) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[3 * value + 5] (some ⟨some (labels .doubleScan), ((ambient, ()), register), base⟩) = some ⟨some (labels .alphabet), ((ambient, ()), none), Function.update base (control slots .reversed) ((encodeWord (2 * value)).reverse ++ base (control slots .reversed))⟩ := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Label, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.statement, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.capacity
- theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.traceline 522Source documentation
All arithmetic and header emission, with exact composed transition count.
theorem trace (slots : Layout k s d noiseCount ↪ K) (labels : Label k s d noiseCount → Λ) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (MachineHorner.State σ)) (atLabels : ∀ label, program (labels label) = statement slots labels exit label) (base : K → List Bool) (n m : Nat) (hn : base (control slots .variableCount) = encodeWord n) (hm : base (control slots .occurrenceCount) = encodeWord m) (clean : Clean slots base) (ambient : σ) (register : Option Bool) : (advance (TM2.step program))^[steps k s d noiseCount n m] (some ⟨some (labels .copyNOut), ((ambient, ()), register), base⟩) = some ⟨exit, ((ambient, ()), none), resultTapes slots base n m⟩ := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Label, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.statement, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Clean, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.steps, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.resultTapes
- def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.inTimeline 604 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.timePolynomialline 621Source documentation
A fixed polynomial in the serialized input length bounds actual steps.
def timePolynomial (k s d noiseCount : Nat) : Polynomial Nat := …
- theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.steps_le_timePolynomialline 628 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Layoutline 651 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.arithmeticSlotsline 655 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixLocalline 660 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixLocal_applyline 668 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixSlotsline 677 - abbrev
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Labelline 680 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.statementline 682 - structure
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Cleanline 689 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixResult_controlline 696Source documentation
Prefix writes only the read-copy and the two designated count tapes.
theorem prefixResult_control (slots : Layout k s d noiseCount ↪ K) (base : K → List Bool) (n m : Nat) (c : Arithmetic.Control) (hn : c ≠ .variableCount) (hm : c ≠ .occurrenceCount) : Prefix.resultTapes (prefixSlots slots) base n m (Arithmetic.control (arithmeticSlots slots) c) = base (Arithmetic.control (arithmeticSlots slots) c) := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.Control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Prefix.resultTapes, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixSlots, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.arithmeticSlots
- theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.prefixResult_coefficientline 706 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Clean.afterPrefixline 713 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapesline 727 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.inTimeline 732 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.timePolynomialline 778 - def
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.inPolynomialTimeline 781 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_sourceline 802 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_nline 808 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_mline 815 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_baseline 822 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_capacityline 827 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_reversedline 832 - theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_otherline 841Source documentation
No slot other than the read-copy, saved counts, B, cap, and output is changed.
theorem resultTapes_other (slots : Layout k s d noiseCount ↪ K) (base : K → List Bool) (n m : Nat) (tape : K) (hread : tape ≠ slots (.inl 1)) (hn : tape ≠ Arithmetic.control (arithmeticSlots slots) .variableCount) (hm : tape ≠ Arithmetic.control (arithmeticSlots slots) .occurrenceCount) (hB : tape ≠ Arithmetic.control (arithmeticSlots slots) .baseValue) (hcap : tape ≠ Arithmetic.control (arithmeticSlots slots) .capacity) (hout : tape ≠ Arithmetic.control (arithmeticSlots slots) .reversed) : resultTapes slots base n m tape = base tape := by …Mentions: OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Layout, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.Arithmetic.control, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.arithmeticSlots, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.capacity, OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes
- theorem
OAI.UniqueGamesTheorem.Reduction.MachineAddressHeaders.resultTapes_readCopyline 854