OAI/Computability/MaxCut/Machines/MachineExpanderFamilyAffine.lean
76 declarations, 0 contain sorry, 0 declared as axioms
Actual lookup and reversal phases of the expander row program
The Boolean phase selector chooses the first or second occurrence of the same preserving lookup. The selected word is proved to be the actual stored reverse index of the supplied graph row. All execution facts follow from the concrete program statements; no phase execution is assumed.
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affine_source_ne_scratchline 11 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affine_source_ne_destinationline 14 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affine_scratch_ne_destinationline 17 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapesline 21Source documentation
Exact final dependent tape family, with all other tape contents retained.
def affineResultTapes (d : Nat) (phase : AffinePhase) (base : (tape : Tape) → List (Alphabet tape)) (n : Nat) : (tape : Tape) → List (Alphabet tape) := …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.AffinePhase, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.Alphabet
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapes_otherline 28 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapes_sourceline 34 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapes_scratchline 39 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapes_destinationline 44 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affinePhaseBoolTraceline 54Source documentation
The concrete Boolean view is pulled into unary-affine state coordinates, executed from its actual statements, and transported back without extra steps.
theorem affinePhaseBoolTrace (positive : 0 < d) (H : Table (cloudSize d) d) (growth : 1 < cloudSize d) (phase : AffinePhase) (base : Tape → List Bool) (n : Nat) (suffix : List Bool) (sourceWord : base (affineSource phase) = encodeWord n ++ suffix) (scratchEmpty : base (.inr .unaryScratch) = []) (state : State ρ d) : (advance (TM2.step (boolView positive H growth)))^[2 * (n + 1) + 1] (some ⟨some (.inr (.affine phase .seed)), state, base⟩) = some ⟨some (affineExit d phase), clearRegister state, Function.update base (affineDestination phase) (encodeWord (affineCoefficient d phase * n) ++ base (affineDestination phase))⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.AffinePhase, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineSource, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.boolView, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineExit, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.clearRegister, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineDestination, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineCoefficient
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affinePhaseTraceline 101Source documentation
Actual family-program execution. Alphabet conversion is static equality transport; the transition count is exactly the checked unary-affine count.
theorem affinePhaseTrace (positive : 0 < d) (H : Table (cloudSize d) d) (growth : 1 < cloudSize d) (phase : AffinePhase) (base : (tape : Tape) → List (Alphabet tape)) (n : Nat) (suffix : List Bool) (sourceWord : toBoolTapes base (affineSource phase) = encodeWord n ++ suffix) (scratchEmpty : base (.inr .unaryScratch) = []) (state : State ρ d) : (advance (TM2.step (program positive H growth)))^[2 * (n + 1) + 1] (some ⟨some (.inr (.affine phase .seed)), state, base⟩) = some ⟨some (affineExit d phase), clearRegister state, affineResultTapes d phase base n⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.AffinePhase, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.Alphabet, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.toBoolTapes, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineSource, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.program, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineExit, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.clearRegister, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affineResultTapes
- def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.affinePhaseInTimeline 116 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.copyCountInTimeline 129 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderFamily.multiplySizeInTimeline 146 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.emitStepsline 171Source documentation
One scaled scan/restore, one bounded offset, the delimiter, and final jump.
def emitSteps (n : Nat) : Nat := 3 * (n + 1) + 6
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.affinePlan_bitsline 173 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.affinePlan_stepsline 184 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.emittedWordline 192Source documentation
Every tape except the accumulator is literally retained.
def emittedWord {K : Type} [DecidableEq K] (target : K) (base : K → List Bool) (value : Nat) : K → List Bool := … - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.emittedWord_targetline 196 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.emittedWord_otherline 201 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.program_firstEmitline 209 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.program_secondEmitline 215 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.program_outputEmitline 221 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.firstEmitTraceAtline 233Source documentation
The code premise identifies concrete statements in a caller's program; it does not assume any phase execution.
theorem firstEmitTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (portsInjective : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (atLabels : ∀ l, target (labels l) = statement positive H ports labels exit l) (n : Nat) (base : K → List Bool) (source : base (ports .inputVertex) = encodeWord n) (scratch : base (ports .emitScratch) = []) (ambient : Ambient ρ d × Fin (degree d)) : (MachineComposition.advance (TM2.step target))^[emitSteps n] (some ⟨some (labels (.firstEmit (Emitter.labelAt 3 _ 0 .entry))), ((ambient, ()), none), base⟩) = …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Ambient, OAI.MaxCutGames.Foundations.Complexity.MachineComposition.advance, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.emitSteps
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.secondEmitTraceAtline 264 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.outputEmitTraceAtline 295 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.firstEmitInTimeAtline 326 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.secondEmitInTimeAtline 344 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.outputEmitInTimeAtline 362 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.firstEmitTraceline 382 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.secondEmitTraceline 394 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.outputEmitTraceline 406 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.firstEmitInTimeline 418 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.secondEmitInTimeline 430 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.outputEmitInTimeline 442 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseLabelline 471 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.scanPhaseLabelline 475 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseLabelline 478 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhasePortline 481 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseAddressline 484 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseAddress_eq_rowIndexline 487 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupTape_injectiveline 495 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapesline 500Source documentation
The exact cleaned tape state produced by either lookup.
def lookupResultTapes (ports : Tape → K) (base : K → List Bool) (value : Nat) (indexSuffix : List Bool) : K → List Bool := …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_indexline 505 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_workline 513 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_outputline 519 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_otherline 526Source documentation
Every tape outside the query, work, and lookup-output roles is retained.
theorem lookupResultTapes_other (ports : Tape → K) (base : K → List Bool) (value : Nat) (indexSuffix : List Bool) (p : K) (hi : p ≠ ports .queryIndex) (hw : p ≠ ports .lookupWork) (ho : p ≠ ports .lookupOutput) : lookupResultTapes ports base value indexSuffix p = base p := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_tableline 533 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes_restoreline 539 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseTraceline 566Source documentation
Actual first/second lookup execution on a stored graph row. The selected reverse index is obtained from
rotationWords_getElem?, not a caller premise.theorem lookupPhaseTrace : (advance (TM2.step target))^[MachinePreservingLookupClean.steps (rotationWords G) (rowIndex v (degree d) x).val] (some ⟨some (labels (lookupPhaseLabel second (.run .copyFirst))), (ambient, register), base⟩) = some ⟨some (labels (scanPhaseLabel second)), (ambient, none), lookupResultTapes ports base (reverseIndex G (rowIndex v (degree d) x)).val indexSuffix⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachinePreservingLookupClean.steps, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.scanPhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes
- def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseInTimeline 590Source documentation
A linear bound in the original encoded table length for the same actual phase. This includes the copy, restore, lookup, and residual cleanup.
def lookupPhaseInTime : StateTransition.EvalsToInTime (TM2.step target) ⟨some (labels (lookupPhaseLabel second (.run .copyFirst))), (ambient, register), base⟩ (some ⟨some (labels (scanPhaseLabel second)), (ambient, none), lookupResultTapes ports base (reverseIndex G (rowIndex v (degree d) x)).val indexSuffix⟩) (6 * (encodeWords (rotationWords G)).length + 4) where …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.scanPhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupResultTapes, OAI.MaxCutGames.Foundations.Complexity.encodeWords
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseTraceline 618Source documentation
The reversal consumes the reverse query word and prepends its forward encoding to the index tape, retaining every other tape and finite state.
theorem reversePhaseTrace : (advance (TM2.step target))^[(base (ports .queryReverse)).length + 1] (some ⟨some (labels (reversePhaseLabel second)), (ambient, register), base⟩) = some ⟨some (labels (lookupPhaseLabel second (.run .copyFirst))), (ambient, none), Reduction.MachineTransfer.tapesAt (ports .queryReverse) (ports .queryIndex) base [] ((base (ports .queryReverse)).reverse ++ base (ports .queryIndex))⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseLabel, OAI.MaxCutGames.Reduction.MachineTransfer.tapesAt
- def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseInTimeline 634 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseTrace_unaryline 648Source documentation
Reversing an actual emitted unary field takes exactly
index + 2steps. This includes consuming the field's delimiter and leaving the reversal loop.theorem reversePhaseTrace_unary (index : Nat) (suffix : List Bool) (queryWord : base (ports .queryReverse) = (encodeWord index).reverse) (indexWord : base (ports .queryIndex) = suffix) : (advance (TM2.step target))^[index + 2] (some ⟨some (labels (reversePhaseLabel second)), (ambient, register), base⟩) = some ⟨some (labels (lookupPhaseLabel second (.run .copyFirst))), (ambient, none), Reduction.MachineTransfer.tapesAt (ports .queryReverse) (ports .queryIndex) base [] (encodeWord index ++ suffix)⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.encodeWord, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.reversePhaseLabel, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.lookupPhaseLabel, OAI.MaxCutGames.Reduction.MachineTransfer.tapesAt
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_zeroline 668 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_oneline 669 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_twoline 670 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_threeline 671 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_fourline 672 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape_fiveline 673 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapesline 677 - def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupStepsline 690 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupSteps_eq_sumline 699 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes_dirtyline 703 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes_otherline 710Source documentation
Every tape outside the six named work roles keeps its exact contents.
theorem cleanupTapes_other (ports : Tape → K) (base : K → List Bool) (k : K) (outside : ∀ i : Fin 6, k ≠ ports (dirtyTape i)) : cleanupTapes ports base k = base k := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes_tableline 727 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes_inputVertexline 732 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes_outputline 737 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.join_trace_inline_MachineExpanderRowCleanupline 742 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupOneTraceAtline 749Source documentation
One cleanup phase follows the actual drain instruction at its placed label.
theorem cleanupOneTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (i : Fin 6) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[((base (ports (dirtyTape i))).length + 1)] (some ⟨some (labels (.cleanup i)), state, base⟩) = some ⟨some (if hi : i.val + 1 < 6 then labels (.cleanup ⟨i.val + 1, hi⟩) else labels .done), (state.1, none), Function.update base (ports (dirtyTape i)) []⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.dirtyTape
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTraceAtline 768Source documentation
All six phases execute in the common program, with exactly the sum of the six initial word lengths plus one empty-branch transition per tape.
theorem cleanupTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[cleanupSteps ports base] (some ⟨some (labels (.cleanup 0)), state, base⟩) = some ⟨some (labels .done), (state.1, none), cleanupTapes ports base⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupSteps, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.doneStepAtline 794Source documentation
The done label transfers control without inspecting or modifying any tape.
theorem doneStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .done), state, base⟩ = some ⟨exit, state, base⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement
- theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupExitTraceAtline 805Source documentation
Cleanup followed by the actual done-to-caller transition.
theorem cleanupExitTraceAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : (advance (TM2.step target))^[cleanupSteps ports base + 1] (some ⟨some (labels (.cleanup 0)), state, base⟩) = some ⟨exit, (state.1, none), cleanupTapes ports base⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupSteps, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.cleanupTapes
- def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.initializedTapesline 822 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.initializeStepAtline 832Source documentation
Initialization physically pushes four delimiters and resets the bit register.
theorem initializeStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .initialize), state, base⟩ = some ⟨some (labels (.firstEmit (PCP.AlphabetTable.Emitter.labelAt 3 _ 0 .entry))), (state.1, none), initializedTapes ports base⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Emitter.labelAt, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.initializedTapes
- def
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.clearedQueryTapesline 845 - theorem
OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.clearQueryStepAtline 852Source documentation
The query-clear phase removes one symbol from each of its two tapes and preserves the complete finite state and every other tape.
theorem clearQueryStepAt (positive : 0 < d) (H : Table (cloudSize d) d) (ports : Tape → K) (distinct : Function.Injective ports) (labels : Label d → Λ) (exit : Option Λ) (target : Λ → TM2.Stmt (fun _ : K => Bool) Λ (State ρ d)) (code : ∀ label, target (labels label) = statement positive H ports labels exit label) (base : K → List Bool) (state : State ρ d) : TM2.step target ⟨some (labels .clearQuery), state, base⟩ = some ⟨some (labels (.secondEmit (PCP.AlphabetTable.Emitter.labelAt 3 _ 0 .entry))), state, clearedQueryTapes ports base⟩ := by …Mentions: OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Tape, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.Label, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.State, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.statement, OAI.MaxCutGames.Foundations.PCP.AlphabetTable.Emitter.labelAt, OAI.MaxCutGames.Foundations.Complexity.MachineExpanderRow.clearedQueryTapes