OAI/Computability/UniqueGames/Reduction/AddressOdometerSchedule.lean
56 declarations, 0 contain sorry, 0 declared as axioms
- abbrev
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.Tapeline 17 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.currentline 21 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remainingline 24 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.accumulatorline 27 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.currentAtline 30 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remainingAtline 33 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.current_eq_iffline 36 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remaining_eq_iffline 39 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.current_ne_remainingline 42 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remaining_ne_currentline 45 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.accumulator_ne_currentline 48 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.accumulator_ne_remainingline 51 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.current_ne_accumulatorline 54 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remaining_ne_accumulatorline 56 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigitsline 61Source documentation
Odometer coordinate zero is the low coordinate; physical saved positions are reversed to match the actual occurrence-tuple enumeration.
def setDigits (m : ℕ) {q : ℕ} (digits : Fin q → ℕ) (base : Tape k s d noiseCount → List Bool) : Tape k s d noiseCount → List Bool | .savedIndex i => if h : i.rev.val < q then encodeWord (digits ⟨i.rev.val, h⟩) else base (.savedIndex i) | .extra (.inr (.inr (.inl i))) => if h : i.val < q then encodeWord (m - 1 - digits ⟨i.val, h⟩) else base (.extra (.inr (.inr (.inl i)))) | tape => base tapeMentions: OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.Tape
- def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setAccline 69 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigitline 72 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_currentline 76 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_remainingline 81 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_otherline 87 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.digitCasesline 103 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_zeroline 115 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_accumulatorline 123 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setAcc_selfline 127 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setAcc_setAccline 129 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setAcc_applyline 131 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_setAccline 134 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigit_currentline 146 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigit_remainingline 151 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigit_otherline 157 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigit_accumulatorline 163 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.putDigit_setAccline 168 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_putDigitline 180 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_snocline 199 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_snoc_baseline 232 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setDigits_savedIndexline 238 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.setAcc_otherline 244 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.allBitsline 249 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.blockPrefixline 252 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.blockPrefix_eq_ofFnline 256 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.blocksline 265 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.blockPrefix_allline 268 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.configurationline 275 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.BodyTraceline 278 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.val_snocline 289 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.zeros_snocline 295 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.initialConfigurationline 300 - def
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.finalConfigurationline 304 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.exists_scheduleline 310 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.traversalInTimeline 444Source documentation
The time bound is derived from the concrete schedule, not from the number of tuples alone. Dimension zero consists of its single actual body trace.
theorem traversalInTime (program : Λ → TM2.Stmt (fun _ : Tape k s d noiseCount => Bool) Λ (σ × Option Bool)) (bodyLabel : Λ) (next resetLabel : ℕ → Λ) (canonical : σ) (positive : 0 < m) (B : ℕ) (base : Tape k s d noiseCount → List Bool) (bits : (Fin k → Fin m) → List Bool) (atCheck : ∀ i, i < k → program (next i) = increment (currentAt k s d noiseCount i) (remainingAt k s d noiseCount i) bodyLabel (resetLabel i)) (atReset : ∀ i, i < k → program (resetLabel i) = reset (currentAt k s d noiseCount i) (remainingAt k s d noiseCount i) (resetLabel i) (next (i + 1))) (bodies : BodyTrace program bodyLabel (next 0) canonical base bits B) : Nonempty (StateTransition.EvalsToInTime (TM2.step program) (initialConfiguration (m := m) k bodyLabel canonical base) …Mentions: OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.Tape, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.currentAt, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remainingAt, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.BodyTrace, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.initialConfiguration
- theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.initial_currentline 465 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.initial_remainingline 470 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.final_currentline 475 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.final_remainingline 481 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.final_accumulatorline 487 - theorem
OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.final_otherline 495Source documentation
Traversal frames every tape outside the digits and reversed output.
theorem final_other (base : Tape k s d noiseCount → List Bool) (exitLabel : Λ) (canonical : σ) (bits : (Fin k → Fin m) → List Bool) (tape : Tape k s d noiseCount) (hc : ∀ i, tape ≠ current k s d noiseCount i) (hr : ∀ i, tape ≠ remaining k s d noiseCount i) (ha : tape ≠ accumulator k s d noiseCount) : (finalConfiguration exitLabel canonical base bits).stk tape = base tape := by …Mentions: OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.Tape, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.current, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.remaining, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.accumulator, OAI.UniqueGamesTheorem.Reduction.AddressOdometerSchedule.finalConfiguration