OAI/Computability/MaxCut/Games/AddressOdometerSchedule.lean
56 declarations, 0 contain sorry, 0 declared as axioms
- abbrev
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.Tapeline 16 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.currentline 20 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remainingline 23 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.accumulatorline 26 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.currentAtline 29 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remainingAtline 32 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.current_eq_iffline 35 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remaining_eq_iffline 38 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.current_ne_remainingline 41 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remaining_ne_currentline 44 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.accumulator_ne_currentline 47 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.accumulator_ne_remainingline 50 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.current_ne_accumulatorline 53 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remaining_ne_accumulatorline 55 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigitsline 60Source 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.MaxCutGames.Reduction.AddressOdometerSchedule.Tape
- def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setAccline 68 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigitline 71 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_currentline 75 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_remainingline 80 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_otherline 86 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.digitCases_inline_AddressOdometerScheduleline 102 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_zeroline 114 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_accumulatorline 122 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setAcc_selfline 126 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setAcc_setAccline 128 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setAcc_applyline 130 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_setAccline 133 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigit_currentline 145 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigit_remainingline 150 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigit_otherline 156 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigit_accumulatorline 162 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.putDigit_setAccline 167 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_putDigitline 179 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_snocline 198 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_snoc_baseline 231 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setDigits_savedIndexline 237 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.setAcc_otherline 243 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.allBitsline 248 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.blockPrefixline 251 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.blockPrefix_eq_ofFnline 255 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.blocksline 264 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.blockPrefix_allline 267 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.configurationline 274 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.BodyTraceline 277 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.val_snocline 288 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.zeros_snocline 294 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.initialConfigurationline 299 - def
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.finalConfigurationline 303 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.exists_scheduleline 309 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.traversalInTimeline 443Source 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.MaxCutGames.Reduction.AddressOdometerSchedule.Tape, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.currentAt, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remainingAt, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.BodyTrace, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.initialConfiguration
- theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.initial_currentline 464 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.initial_remainingline 469 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.final_currentline 474 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.final_remainingline 480 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.final_accumulatorline 486 - theorem
OAI.MaxCutGames.Reduction.AddressOdometerSchedule.final_otherline 494Source 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.MaxCutGames.Reduction.AddressOdometerSchedule.Tape, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.current, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.remaining, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.accumulator, OAI.MaxCutGames.Reduction.AddressOdometerSchedule.finalConfiguration