OAI/Computability/UniqueGames/Machines/MachineCompositionLemmas.lean
103 declarations, 0 contain sorry, 0 declared as axioms
Execution transport and polynomial budget arithmetic for genuine TM2 sequential composition. These lemmas preserve actual transition witnesses. The four-phase lemma requires all phases to be executions of the same combined program; it is not a replacement for constructing that program and proving its tape handoffs.
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advanceline 17 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance_noneline 20 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance_someline 23 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance_iterate_noneline 26 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.liftSuccessfulTraceline 32 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.liftExecutionInTimeline 56 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.liftExecutionInTime_stepsline 70 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.embeddedExecutionline 79Source documentation
The checked disjoint-stack embedding transports a complete successful run with no additional transitions, including its final jump to a bridge label.
def embeddedExecution {K E Λ Λextra σ τ : Type} {Γ : K → Type} {Δ : E → Type} [DecidableEq K] [DecidableEq E] (haltTarget : Option (Λ ⊕ Λextra)) (extraState : τ) (extraTapes : ∀ e, List (Δ e)) (source : Λ → Turing.TM2.Stmt Γ Λ σ) (extra : Λextra → Turing.TM2.Stmt (MachineEmbedding.Alphabet Γ Δ) (Λ ⊕ Λextra) (σ × τ)) {start finish : Turing.TM2.Cfg Γ Λ σ} {budget : Nat} (execution : StateTransition.EvalsToInTime (Turing.TM2.step source) start (some finish) budget) : StateTransition.EvalsToInTime (Turing.TM2.step (MachineEmbedding.program haltTarget source extra)) (MachineEmbedding.configuration haltTarget extraState extraTapes start) …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineEmbedding.Alphabet, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineEmbedding.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineEmbedding.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.natPolynomial_eval_monoline 97 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.compositionPolynomialline 107Source documentation
Two reversal transfers each consume
intermediateLength + 1transitions.noncomputable def compositionPolynomial (first second intermediate : Polynomial Nat) : Polynomial Nat := …
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.compositionBudget_leline 110 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.fourPhaseExecutionline 121 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.tapesline 160 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.statementline 162 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configurationline 164 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.programline 166 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.castStatementline 169 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.castConfigurationline 170 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.castProgramline 171 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.tapes_rflline 173 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.statement_rflline 174 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_rflline 175 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.program_rflline 176 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.program_applyline 178 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.statement_roundtripline 181 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.statement_symm_roundtripline 184 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_roundtripline 187 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_symm_roundtripline 190 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.program_roundtripline 193 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.program_symm_roundtripline 196 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.tapes_roundtripline 199 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.tapes_symm_roundtripline 202 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_labelline 205 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_stateline 208 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_tapesline 211 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration_mkline 214 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.map_configuration_rflline 218 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.stepAux_simulationline 223 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.step_simulationline 228 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.trace_transportline 235Source documentation
Exact conjugacy of every finite trace, including a
noneendpoint.theorem trace_transport (h : Γ = Δ) (source : Λ → Stmt Γ Λ σ) (n : Nat) (start : Option (Cfg Γ Λ σ)) : (MachineComposition.advance (step (program h source)))^[n] (start.map (configuration h)) = ((MachineComposition.advance (step source))^[n] start).map (configuration h) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.successfulTraceline 243 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.executionInTimeline 251 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.executionInTime_stepsline 263 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.successfulExecutionInTimeline 268 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineAlphabetTransport.successfulExecutionInTime_stepsline 274 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.Labelline 296 - instance
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.labelFintypeline 300 - instance
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.labelDecidableEqline 308 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.entryline 319 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.instructionline 326 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.resultOfline 337 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.stepsline 341 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.traceline 349Source documentation
This generic composition lemma retains the local execution obligations. Concrete callers discharge them with the rotor, comparison and row programs.
theorem trace (program : Λ → TM2.Stmt Γ Λ σ) (invariant : Data → Prop) (state : Data → σ) (tapes : Data → ∀ k, List (Γ k)) (commands : List Command) (localInvariant : ∀ command ∈ commands, ∀ data, invariant data → invariant (result command data)) (localTrace : ∀ command ∈ commands, ∀ (labels : LocalLabel command → Λ) (exit : Option Λ), (∀ l, program (labels l) = localInstruction command labels exit l) → ∀ data, invariant data → (advance (TM2.step program))^[cost command data] (some ⟨some (labels (main command)), state data, tapes data⟩) = some ⟨exit, state (result command data), tapes (result command data)⟩) (labels : Label LocalLabel commands → Λ) (exit : Option Λ) …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFiniteSequence.Label
- abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Bufferline 410 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.emptyBufferline 412 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.readSlotsline 418 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.fillline 428Source documentation
Proof-level description of the finite register updates.
def fill (slots : List (Fin N)) (bits buffer : Buffer N) : Buffer N := …
Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.fill_applyline 431 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.fill_allline 442 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.stepAux_readSlotsline 450Source documentation
The input symbols are physically popped; the remaining suffix is exact.
theorem stepAux_readSlots (src : K) (slots : List (Fin N)) (next : TM2.Stmt (fun _ : K => Bool) Λ (σ × Buffer N)) (ambient : σ) (bits buffer : Buffer N) (tapes : K → List Bool) (suffix : List Bool) : TM2.stepAux (readSlots src slots next) (ambient, buffer) (Function.update tapes src (slots.map bits ++ suffix)) = TM2.stepAux next (ambient, fill slots bits buffer) (Function.update tapes src suffix) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.readSlots, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.fill
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.stepAux_readAllline 466 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.statementPushBound_readSlotsline 480 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.writeSlotsline 490Source documentation
The slot list is a fixed part of the syntax; each instruction reads only the finite internal state. Push order is reversed on the stack.
def writeSlots {M : Nat} (dst : K) (emit : σ → Buffer M) : List (Fin M) → TM2.Stmt (fun _ : K => Bool) Λ σ → TM2.Stmt (fun _ : K => Bool) Λ σ | [], next => next | i :: slots, next => .push dst (fun state => emit state i) (writeSlots dst emit slots next)Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.stepAux_writeSlotsline 495 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.statementPushBound_writeSlotsline 510 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.blockStmtline 528Source documentation
Read a fixed block, write its fixed finite transformation, reset the local register, and execute the next finite statement.
def blockStmt (src dst : K) (F : Buffer N → Buffer M) (next : TM2.Stmt (fun _ : K => Bool) Λ (σ × Buffer N)) : TM2.Stmt (fun _ : K => Bool) Λ (σ × Buffer N) := …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.finishAtline 535 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.blockMapAtline 540 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.statementPushBound_blockStmtline 544 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.statementPushBound_blockMapAtline 551 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.stepAux_blockStmtline 559 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.stepAux_blockMapAtline 575Source documentation
The suffix and all unmentioned tapes are preserved, and the local register is reset, in the actual transition semantics.
theorem stepAux_blockMapAt (src dst : K) (F : Buffer N → Buffer M) (exit : Option Λ) (hne : src ≠ dst) (bits : Buffer N) (suffix : List Bool) (state : σ × Buffer N) (tapes : K → List Bool) (hinput : tapes src = List.ofFn bits ++ suffix) : TM2.stepAux (blockMapAt src dst F exit) state tapes = { l := exit, var := (state.1, emptyBuffer N), …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.blockMapAt, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.emptyBuffer
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.step_blockMapAtline 587Source documentation
Placement in an arbitrary program gives one actual TM2 transition.
theorem step_blockMapAt (src dst : K) (F : Buffer N → Buffer M) (exit : Option Λ) (program : Λ → TM2.Stmt (fun _ : K => Bool) Λ (σ × Buffer N)) (label : Λ) (hprogram : program label = blockMapAt src dst F exit) (hne : src ≠ dst) (bits : Buffer N) (suffix : List Bool) (state : σ × Buffer N) (tapes : K → List Bool) (hinput : tapes src = List.ofFn bits ++ suffix) : TM2.step program { l := some label, var := state, stk := tapes } = …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.blockMapAt
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.machineline 606Source documentation
The fixed block map is also a concrete machine with two Boolean tapes and a finite register, independently of any ambient placement.
def machine {N M : Nat} (F : Buffer N → Buffer M) : FinTM2 where …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.Buffer
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineFixedBlockMap.machine_statementPushBoundline 617 - abbrev
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statementline 645Source documentation
Translate instructions using the checked recursive translator, keeping every tape and destination label unchanged.
abbrev statement (e : σ ≃ τ) : Stmt Γ Λ σ → Stmt Γ Λ τ := …
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statement_symm_statementline 650Source documentation
Translating every instruction back restores the original statement, including its state-dependent instruction functions.
@[simp] theorem statement_symm_statement (e : σ ≃ τ) (q : Stmt Γ Λ σ) : statement e.symm (statement e q) = q := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statement
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configurationline 656 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration_labelline 659 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration_stateline 662 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration_tapesline 665 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration_symm_configurationline 668 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration_configuration_symmline 673 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configurationEquivline 679Source documentation
This is a bijection on actual machine configurations, not just on states.
def configurationEquiv (e : σ ≃ τ) : Cfg Γ Λ σ ≃ Cfg Γ Λ τ where …
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configurationEquiv_applyline 685 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.control_configurationline 688 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.programline 693 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program_symm_programline 696 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statementPushBoundline 702Source documentation
The register change does not alter the finite statement's push bound.
theorem statementPushBound (e : σ ≃ τ) (q : Stmt Γ Λ σ) : Runtime.statementPushBound (statement e q) = Runtime.statementPushBound q := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.Runtime.statementPushBound, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statement
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.supportsStmt_iffline 708Source documentation
Exactly the same finite label set supports the translated statement.
theorem supportsStmt_iff (e : σ ≃ τ) (S : Finset Λ) (q : Stmt Γ Λ σ) : SupportsStmt S (statement e q) ↔ SupportsStmt S q := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statement
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.supports_iffline 730 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.stepAux_transportline 738Source documentation
The actual recursively interpreted statement commutes with the register equivalence, with exactly the same tape updates.
theorem stepAux_transport (e : σ ≃ τ) (q : Stmt Γ Λ σ) (state : σ) (tapes : ∀ k, List (Γ k)) : stepAux (statement e q) (e state) tapes = configuration e (stepAux q state tapes) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.statement, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.stepAux_transport_symmline 745 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.step_transportline 753Source documentation
Exact conjugacy also covers the halted configuration and the
nonestep.theorem step_transport (e : σ ≃ τ) (source : Λ → Stmt Γ Λ σ) (c : Cfg Γ Λ σ) : step (program e source) (configuration e c) = (step source c).map (configuration e) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.step_iffline 765 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.advance_transportline 777 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.iterate_transportline 787Source documentation
Every intermediate configuration is transported at its original time index. This includes traces whose option-valued result is
none.theorem iterate_transport (e : σ ≃ τ) (source : Λ → Stmt Γ Λ σ) (n : Nat) (c : Option (Cfg Γ Λ σ)) : (MachineComposition.advance (step (program e source)))^[n] (c.map (configuration e)) = ((MachineComposition.advance (step source))^[n] c).map (configuration e) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.trace_iffline 800Source documentation
A successful running trace exists for exactly the same number of steps in the translated and original program.
theorem trace_iff (e : σ ≃ τ) (source : Λ → Stmt Γ Λ σ) (n : Nat) (a b : Cfg Γ Λ σ) : (MachineComposition.advance (step (program e source)))^[n] (some (configuration e a)) = some (configuration e b) ↔ (MachineComposition.advance (step source))^[n] (some a) = some b := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineComposition.advance, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.traceline 816 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.executionline 825Source documentation
Transport an actual runtime witness without changing its step count or budget; the final option may be either a configuration or
none.def execution (e : σ ≃ τ) (source : Λ → Stmt Γ Λ σ) {start : Cfg Γ Λ σ} {finish : Option (Cfg Γ Λ σ)} {budget : Nat} (run : StateTransition.EvalsToInTime (step source) start finish budget) : StateTransition.EvalsToInTime (step (program e source)) (configuration e start) (finish.map (configuration e)) budget where …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.execution_stepsline 839 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.execution_reflectline 846Source documentation
Conversely, a translated runtime witness determines the original witness at exactly the same number of transitions.
def execution_reflect (e : σ ≃ τ) (source : Λ → Stmt Γ Λ σ) {start : Cfg Γ Λ σ} {finish : Option (Cfg Γ Λ σ)} {budget : Nat} (run : StateTransition.EvalsToInTime (step (program e source)) (configuration e start) (finish.map (configuration e)) budget) : StateTransition.EvalsToInTime (step source) start finish budget where …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.program, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.configuration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateEquiv.execution_reflect_stepsline 861