OAI/Computability/UniqueGames/Machines/MachineSubroutineLemmas.lean
105 declarations, 0 contain sorry, 0 declared as axioms
Concrete finite-alphabet serialization primitives. A natural word n is n
one-bits followed by a zero delimiter. These are size and decoding theorems, not
running-time certificates. In particular, output length is never called runtime.
- def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.labelline 15 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.configurationline 19 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.statementline 22 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.stepAux_simulationline 36 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.step_simulationline 57 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.traceline 73 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineSubroutine.executionline 83 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameStatementline 106Source documentation
Same code and stacks, with an untouched caller-register component.
def frameStatement : TM2.Stmt Γ Λ σ → TM2.Stmt Γ Λ (σ × τ) | .push k f next => .push k (fun state => f state.1) (frameStatement next) | .peek k f next => .peek k (fun state bit => (f state.1 bit, state.2)) (frameStatement next) | .pop k f next => .pop k (fun state bit => (f state.1 bit, state.2)) (frameStatement next) | .load f next => .load (fun state => (f state.1, state.2)) (frameStatement next) | .branch f yes no => .branch (fun state => f state.1) (frameStatement yes) (frameStatement no) | .goto f => .goto (fun state => f state.1) | .halt => .halt - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfigurationline 118 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameProgramline 121 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfiguration_stateline 124 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfiguration_metadataline 127 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfiguration_tapesline 130 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameStatement_pushBoundline 133 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.statementline 138Source documentation
Optional continuation and labels use the existing subroutine semantics.
def statement (labels : Λ → Λ') (exit : Option Λ') (q : TM2.Stmt Γ Λ σ) : TM2.Stmt Γ Λ' (σ × τ) := … - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.configurationline 142 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.configuration_stateline 146 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.configuration_metadataline 150 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.configuration_tapesline 154 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.statement_pushBoundline 158 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frame_stepAuxline 168 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frame_stepline 190Source documentation
This identity also covers the final halted configuration.
theorem frame_step (source : Λ → TM2.Stmt Γ Λ σ) (ambient : τ) (c : TM2.Cfg Γ Λ σ) : TM2.step (frameProgram source) (frameConfiguration ambient c) = (TM2.step source c).map (frameConfiguration ambient) := by …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameProgram, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfiguration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frame_advanceline 202 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frame_iterateline 211 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameExecutionline 224Source documentation
Actual execution with the same step count, budget, and tapes.
def frameExecution (source : Λ → TM2.Stmt Γ Λ σ) (ambient : τ) {start : TM2.Cfg Γ Λ σ} {finish : Option (TM2.Cfg Γ Λ σ)} {budget : ℕ} (run : StateTransition.EvalsToInTime (TM2.step source) start finish budget) : StateTransition.EvalsToInTime (TM2.step (frameProgram source)) (frameConfiguration ambient start) (finish.map (frameConfiguration ambient)) budget where …Mentions: OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameProgram, OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameConfiguration
- theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.frameExecution_stepsline 238 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.stepAux_simulationline 243 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.step_simulationline 250 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.traceline 263 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.executionline 274 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.MachineStateFrame.execution_stepsline 284 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeWordsAuxline 305 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeWordsline 311 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeWordsAux_wordline 313 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeWords_encodeWordsline 323 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWords_injectiveline 331 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWord_lengthline 336 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWords_appendline 339 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWords_lengthline 345 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.encodeWords_length_leline 351 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.literalWordsline 365 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.clauseWordsline 368 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.formulaWordsline 371 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.formulaBitsline 374 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.literalWords_lengthline 376 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.clauseWords_lengthline 379 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.clausesWords_lengthline 382 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.formulaWords_lengthline 391 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.literalBits_length_leline 396 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.clauseBits_length_leline 401 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.clausesBits_length_leline 409 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.formulaBits_length_leline 419 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseLiteralline 441 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseLiteral_encodedline 450 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseClauseline 456 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.clause_three_entriesline 462 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseClause_encodedline 469 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseClausesline 474 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseClauses_encodedline 481 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeFormulaWordsline 488 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeFormulaWords_encodedline 494 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeFormulaBitsline 502 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeFormulaBits_encodedline 505 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.formulaBits_injectiveline 509 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseLabelline 528 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseLabel_valueline 531 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseLabels_valuesline 534 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseImagesline 540 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseImages_valuesline 546 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.findPreimageline 553 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.findPreimage_permutationline 556 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.searchedInverseline 575 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.searchedInverse_permutationline 578 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parsePermutationline 584 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parsePermutation_encodedline 593 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.tableWords_lengthline 600 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseConstraintline 603 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseConstraint_encodedline 612 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.parseConstraintsline 621 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.parseConstraints_encodedline 629 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeGameWordsline 638 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeGameWords_encodedline 648 - def
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeGameBitsline 656 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.decodeGameBits_encodedline 659 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.gameBits_injectiveline 663 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.constraintWords_lengthline 668 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.constraintsWords_lengthline 671 - theorem
OAI.UniqueGamesTheorem.Foundations.Complexity.gameWords_lengthline 680 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubleConstraintline 699 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubleInstanceline 704 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rowBitsline 709 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubledRowBitsline 712 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rowsBitsline 715 - def
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubledRowsBitsline 718 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rowBits_eqline 721 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubledRowBits_eqline 726 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rowsBits_nilline 731 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubledRowsBits_nilline 732 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rowsBits_consline 735 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubledRowsBits_consline 739 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.gameBits_eqline 744 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.doubled_gameBits_eqline 749 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.input_length_eqline 755 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.vertices_le_input_lengthline 763 - theorem
OAI.UniqueGamesTheorem.Explicit.MachineSingleOrbitCodec.rows_le_input_lengthline 768