GapCVP proof, part 01 #
Executes the compactMachineStepTac machine-step simplifier.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.TraceGolf.oneStep source target transition = { steps := 1, evals_in_steps := transition, steps_le_m := GapCVP.TraceGolf.oneStep._proof_1 }
Instances For
Repeatedly composes supplied one-step traces while consuming a list.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Repeatedly applies a one-step transition while consuming a list.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Consumes a list and then applies one final transition.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.TraceGolf.rebound trace budget = { toEvalsTo := trace.toEvalsTo, steps_le_m := ⋯ }
Instances For
GapCVP reduction support.
Equations
- I.latticePoint z = WithLp.toLp 2 fun (i : Fin I.dimension) => ↑(∑ j : Fin I.dimension, I.basis i j * z j)
Instances For
GapCVP reduction support.
Equations
- I.targetPoint = WithLp.toLp 2 fun (i : Fin I.dimension) => ↑(I.target i)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- GapCVP.Core.GapCVPInstance.IsNo c I = decide (↑I.dimension ^ c * ↑I.radius < I.latticeDistance)
Instances For
GapCVP reduction support.
Equations
- GapCVP.Core.SquaredYes I = decide (∃ (z : Fin I.dimension → ℤ), GapCVP.Core.squaredDistance I z ≤ ↑I.radius ^ 2)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeClause = (Fin 3 → GapCVP.Literal)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.clauseHasDistinctVariables c = decide (Function.Injective fun (i : Fin 3) => (c i).1)
Instances For
GapCVP reduction support.
Equations
- GapCVP.literalSatisfied assignment l = decide (assignment l.1 = l.2)
Instances For
GapCVP reduction support.
Equations
- GapCVP.clauseSatisfied assignment c = decide (∃ (i : Fin 3), GapCVP.literalSatisfied assignment (c i) = true)
Instances For
GapCVP reduction support.
Equations
- GapCVP.threeCNFSatisfiable φ = decide ((∀ c ∈ φ, GapCVP.clauseHasDistinctVariables c = true) ∧ ∃ (assignment : ℕ → Bool), ∀ c ∈ φ, GapCVP.clauseSatisfied assignment c = true)
Instances For
GapCVP reduction support.
Equations
- GapCVP.BinaryEncoding.lengthPrefixedWord word = List.replicate word.length true ++ false :: word
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.BinaryEncoding.encodeLiteral literal = GapCVP.BinaryEncoding.lengthPrefixedWord (Computability.encodeNat literal.1) ++ [literal.2]
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode one three-literal clause and return the remaining bits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode a fixed number of clauses while preserving the unused suffix.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.BinaryEncoding.encodeFinValues 0 x_2 = []
- GapCVP.BinaryEncoding.encodeFinValues n.succ values = GapCVP.BinaryEncoding.encodeAtomic (values 0) ++ GapCVP.BinaryEncoding.encodeFinValues n fun (i : Fin n) => values i.succ
Instances For
GapCVP reduction support.
Equations
- GapCVP.BinaryEncoding.encodeMatrixRows 0 x✝¹ x✝ = []
- GapCVP.BinaryEncoding.encodeMatrixRows m.succ x✝¹ x✝ = GapCVP.BinaryEncoding.encodeFinValues x✝¹ (x✝ 0) ++ GapCVP.BinaryEncoding.encodeMatrixRows m x✝¹ fun (i : Fin m) => x✝ i.succ
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Decode the binary fields of a closest-vector instance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
GapCVP reduction support.
Equations
- GapCVP.binaryFinEncoding α = { encode := GapCVP.BinaryBitCodec.encode, decode := GapCVP.BinaryBitCodec.decode, decode_encode := ⋯ }
Instances For
GapCVP reduction support.
Equations
- GapCVP.BitLanguage = (List Bool → Bool)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Polynomial-time binary-string functions remain polynomial-time under composition.
Equations
- GapCVP.PolynomialTimeClosedUnderComposition = decide (∀ (f g : List Bool → List Bool), Nonempty (GapCVP.BitTM f) → Nonempty (GapCVP.BitTM g) → Nonempty (GapCVP.BitTM (g ∘ f)))
Instances For
GapCVP reduction support.
Equations
- GapCVP.NPHard L = decide (∀ (A : GapCVP.BitLanguage), GapCVP.IsNP A = true → Nonempty (GapCVP.PolynomialReduction A L))
Instances For
GapCVP reduction support.
Equations
- GapCVP.threeSATLanguage bits = decide (∃ (φ : GapCVP.ThreeCNF), (GapCVP.binaryFinEncoding GapCVP.ThreeCNF).encode φ = bits ∧ GapCVP.threeCNFSatisfiable φ = true)
Instances For
GapCVP reduction support.
- yes : BitLanguage
GapCVP reduction support.
- no : BitLanguage
GapCVP reduction support.
Instances For
GapCVP reduction support.
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- GapCVP.NPHardPromise P = decide (∀ (A : GapCVP.BitLanguage), GapCVP.IsNP A = true → Nonempty (GapCVP.PromiseReduction A P))
Instances For
GapCVP reduction support.
Equations
- GapCVP.gapYES I = decide (GapCVP.gapCVPWellFormed I = true ∧ ∃ (z : Fin I.dimension → ℤ), GapCVP.distanceSquared I z ≤ ↑I.radius ^ 2)
Instances For
Stack labels of the machine formed by sequential composition.
Instances For
GapCVP reduction support.
Equations
- GapCVP.TMComposition.alphabet first second (Sum.inl k) = first.Γ k
- GapCVP.TMComposition.alphabet first second (Sum.inr k) = second.Γ ↑k
Instances For
Control labels of the sequential composition machine.
Equations
- GapCVP.TMComposition.Label first second = (first.Λ ⊕ second.Λ)
Instances For
Paired internal states of the sequential composition machine.
Equations
- GapCVP.TMComposition.InternalState first second = (first.σ × second.σ)
Instances For
Maximum number of pushes along a branch of a Turing statement.
Equations
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.push k a q) = GapCVP.TMComposition.statementPushCount q + 1
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.peek k a q) = GapCVP.TMComposition.statementPushCount q
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.pop k a q) = GapCVP.TMComposition.statementPushCount q
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.load a q) = GapCVP.TMComposition.statementPushCount q
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.branch a yes no) = max (GapCVP.TMComposition.statementPushCount yes) (GapCVP.TMComposition.statementPushCount no)
- GapCVP.TMComposition.statementPushCount (Turing.TM2.Stmt.goto a) = 0
- GapCVP.TMComposition.statementPushCount Turing.TM2.Stmt.halt = 0
Instances For
GapCVP reduction support.
Equations
- GapCVP.TMComposition.maxPushPerStep tm = Finset.univ.sup fun (label : tm.Λ) => GapCVP.TMComposition.statementPushCount (tm.m label)
Instances For
GapCVP reduction support.
Equations
- GapCVP.TMComposition.evalsToInTimeMapOfStep stepA stepB translate hstep h = { steps := h.steps, evals_in_steps := ⋯, steps_le_m := ⋯ }
Instances For
GapCVP reduction support.
Equations
- GapCVP.TMComposition.outputLengthPolynomial first = Polynomial.X + Polynomial.C (GapCVP.TMComposition.maxPushPerStep first.tm) * first.time
Instances For
Time bound obtained by composing the two machine bounds.
Equations
- GapCVP.TMComposition.compositeTimePolynomial first second = first.time + second.time.comp (GapCVP.TMComposition.outputLengthPolynomial first)
Instances For
Embed a stack of the second machine into the composite stack type.
Equations
Instances For
Identify a second-machine stack alphabet with its composite counterpart.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Run a statement of the first machine inside the composite machine.
Equations
- One or more equations did not get rendered due to their size.
- GapCVP.TMComposition.liftFirstStmt first second (Turing.TM2.Stmt.goto f) = Turing.TM2.Stmt.goto fun (s : GapCVP.TMComposition.InternalState first second) => Sum.inl (f s.1)
- GapCVP.TMComposition.liftFirstStmt first second Turing.TM2.Stmt.halt = Turing.TM2.Stmt.goto fun (x : GapCVP.TMComposition.InternalState first second) => Sum.inr second.main
Instances For
Run a statement of the second machine inside the composite machine.
Equations
- One or more equations did not get rendered due to their size.
- GapCVP.TMComposition.liftSecondStmt first second (Turing.TM2.Stmt.goto p) = Turing.TM2.Stmt.goto fun (s : GapCVP.TMComposition.InternalState first.tm second.tm) => Sum.inr (p s.2)
- GapCVP.TMComposition.liftSecondStmt first second Turing.TM2.Stmt.halt = Turing.TM2.Stmt.halt
Instances For
Embed the first machine stack contents into composite stacks.
Equations
- GapCVP.TMComposition.firstStacks first second sourceStacks (Sum.inl k) = sourceStacks k
- GapCVP.TMComposition.firstStacks first second sourceStacks (Sum.inr k) = []
Instances For
Transfer a timed first-machine evaluation to the composite machine.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Embed the second machine stack contents into composite stacks.
Equations
- One or more equations did not get rendered due to their size.
- GapCVP.TMComposition.secondStacks first second sourceStacks (Sum.inr k) = sourceStacks ↑k
Instances For
Embed a second-machine configuration into the composite machine.
Equations
- GapCVP.TMComposition.secondConfiguration first second c = { l := Option.map Sum.inr c.l, var := (first.tm.initialState, c.var), stk := GapCVP.TMComposition.secondStacks first second c.stk }
Instances For
GapCVP reduction support.
Equations
- GapCVP.TMComposition.computableInPolyTime first second = GapCVP.TMComposition.computableInPolyTimeOfSeam first second
Instances For
Compose a promise reduction with a certificate-producing map.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.PromiseReduction.comp first second closed = GapCVP.PromiseReduction.compWithCertificate first second ⋯
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Position T = Fin (T + 1)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Symbol S = Fin (S + 1)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Variable T S = (GapCVP.CL.Time T × GapCVP.CL.Position T × GapCVP.CL.Symbol S)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.SignedLiteral T S = (GapCVP.CL.Variable T S × Bool)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Clause T S = Finset (GapCVP.CL.SignedLiteral T S)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Formula T S = Finset (GapCVP.CL.Clause T S)
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.atLeastOneClause t i = Finset.image (fun (s : GapCVP.CL.Symbol S) => GapCVP.CL.positive (t, i, s)) Finset.univ
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.acceptanceClause accept = Finset.image (fun (i : GapCVP.CL.Position T) => GapCVP.CL.positive (Fin.last T, i, accept)) Finset.univ
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.Window T = { ti : GapCVP.CL.Time T × GapCVP.CL.Position T // ↑ti.1 + 1 < T + 1 }
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
GapCVP reduction support.
- accept : Symbol S
GapCVP reduction support.
- allowed : WindowSymbols S → Bool
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CL.initialClauses spec = Finset.image (fun (i : GapCVP.CL.Position T) => GapCVP.CL.initialClause spec.input i) Finset.univ
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.sortedElements s = s.sort fun (a b : α) => Encodable.encode a ≤ Encodable.encode b
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.allDistinct formula = decide (∀ clause ∈ formula, GapCVP.clauseHasDistinctVariables clause = true)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.accumulatorVariable clauseIndex prefixIndex = 4 * Encodable.encode (clauseIndex, prefixIndex) + 1
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.sourceLiteral literal = (GapCVP.ThreeCNFReduction.sourceVariable literal.1, literal.2)
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.accumulatorLiteral clauseIndex prefixIndex value = (GapCVP.ThreeCNFReduction.accumulatorVariable clauseIndex prefixIndex, value)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.encodeFormulaFrom x✝ [] = []
- GapCVP.ThreeCNFReduction.encodeFormulaFrom x✝ (clause :: remaining) = GapCVP.ThreeCNFReduction.encodeClause x✝ clause ++ GapCVP.ThreeCNFReduction.encodeFormulaFrom (x✝ + 1) remaining
Instances For
Encode a finite formula as clauses for the reduction.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.ThreeCNFReduction.restrictAssignment assignment v = assignment (GapCVP.ThreeCNFReduction.sourceVariable v)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLVerifier.verifierInput machine x certificate = List.map machine.inputAlphabet.invFun (GapCVP.pairBitEncoding (x, certificate))
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLVerifier.verifierOutput machine value = List.map machine.outputAlphabet.invFun (Computability.encodeBool value)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLVerifier.witnessTimePolynomial bound machine = machine.time.comp (Polynomial.X + bound)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
GapCVP reduction support.
- transition (i : Fin steps) : tm.step (self.configuration i.castSucc) = some (self.configuration i.succ)
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
GapCVP reduction support.
- steps : ℕ
GapCVP reduction support.
- trace : ConfigurationTrace machine.tm (verifierInput machine x self.certificate) (verifierOutput machine true) self.steps
GapCVP reduction support.
Instances For
GapCVP reduction support.
- time : Polynomial ℕ
GapCVP reduction support.
- symbols : ℕ
GapCVP reduction support.
- specification (x : List Bool) : CL.Specification (Polynomial.eval x.length self.time) self.symbols
GapCVP reduction support.
- correct (x : List Bool) : (∃ (trace : CL.Time (Polynomial.eval x.length self.time) → CL.Position (Polynomial.eval x.length self.time) → CL.Symbol self.symbols), CL.ValidTrace (self.specification x) trace = true) ↔ Nonempty (AcceptedExecution bound machine x)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLVerifier.encodedTableau simulation x = (GapCVP.binaryFinEncoding GapCVP.ThreeCNF).encode (GapCVP.ThreeCNFReduction.encodeTableau (simulation.specification x))
Instances For
GapCVP reduction support.
- refl {α : Type} {transition : α → α → Type} (state : α) : FiniteRun transition state state 0
- tail {α : Type} {transition : α → α → Type} {first middle last : α} {steps : ℕ} : FiniteRun transition first middle steps → transition middle last → FiniteRun transition first last (steps + 1)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
- guessing {tm : Turing.FinTM2} (certificate : List Bool) : GuessState tm
- verifying {tm : Turing.FinTM2} (certificate : List Bool) (configuration : tm.Cfg) : GuessState tm
Instances For
GapCVP reduction support.
- guess {bound : Polynomial ℕ} {verifier : List Bool × List Bool → Bool} {machine : VerifierTM verifier} {x : List Bool} (certificate : List Bool) (bit : Bool) (hbound : certificate.length < Polynomial.eval x.length bound) : GuessStep bound machine x (GuessState.guessing certificate) (GuessState.guessing (certificate ++ [bit]))
- begin {bound : Polynomial ℕ} {verifier : List Bool × List Bool → Bool} {machine : VerifierTM verifier} {x : List Bool} (certificate : List Bool) (hbound : certificate.length ≤ Polynomial.eval x.length bound) : GuessStep bound machine x (GuessState.guessing certificate) (GuessState.verifying certificate (Turing.initList machine.tm (CLVerifier.verifierInput machine x certificate)))
- execute {bound : Polynomial ℕ} {verifier : List Bool × List Bool → Bool} {machine : VerifierTM verifier} {x : List Bool} (certificate : List Bool) (configuration next : machine.tm.Cfg) (hstep : machine.tm.step configuration = some next) : GuessStep bound machine x (GuessState.verifying certificate configuration) (GuessState.verifying certificate next)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLNondeterminism.oneStepEvalsTo tm configuration next hstep = { steps := 1, evals_in_steps := ⋯ }
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLNondeterminism.guessTimePolynomial bound machine = bound + 1 + GapCVP.CLVerifier.witnessTimePolynomial bound machine
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
GapCVP reduction support.
- steps : ℕ
GapCVP reduction support.
- run : FiniteRun (GuessStep bound machine x) (GuessState.guessing []) (GuessState.verifying self.certificate (Turing.haltList machine.tm (CLVerifier.verifierOutput machine true))) self.steps
GapCVP reduction support.
Instances For
GapCVP reduction support.
- symbols : ℕ
GapCVP reduction support.
- specification (x : List Bool) : CL.Specification (Polynomial.eval x.length (nondeterministicTableauDimensionPolynomial bound machine)) self.symbols
GapCVP reduction support.
- encode (x : List Bool) : ∀ (a : GuessingExecution bound machine x), ∃ (trace : CL.Time (Polynomial.eval x.length (nondeterministicTableauDimensionPolynomial bound machine)) → CL.Position (Polynomial.eval x.length (nondeterministicTableauDimensionPolynomial bound machine)) → CL.Symbol self.symbols), CL.ValidTrace (self.specification x) trace = true
- decode (x : List Bool) (trace : CL.Time (Polynomial.eval x.length (nondeterministicTableauDimensionPolynomial bound machine)) → CL.Position (Polynomial.eval x.length (nondeterministicTableauDimensionPolynomial bound machine)) → CL.Symbol self.symbols) : CL.ValidTrace (self.specification x) trace = true → GuessingExecution bound machine x
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
List the push locations in a Turing statement.
Equations
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.push k a q) = GapCVP.CLBoundedStates.statementPushSlots q + 1
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.peek k a q) = GapCVP.CLBoundedStates.statementPushSlots q
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.pop k a q) = GapCVP.CLBoundedStates.statementPushSlots q
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.load a q) = GapCVP.CLBoundedStates.statementPushSlots q
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.branch a yes no) = GapCVP.CLBoundedStates.statementPushSlots yes + GapCVP.CLBoundedStates.statementPushSlots no
- GapCVP.CLBoundedStates.statementPushSlots (Turing.TM2.Stmt.goto a) = 0
- GapCVP.CLBoundedStates.statementPushSlots Turing.TM2.Stmt.halt = 0
Instances For
A push location in the verifier machine.
Equations
- GapCVP.CLBoundedStates.PushSlot tm = ((label : tm.Λ) × Fin (GapCVP.CLBoundedStates.statementPushSlots (tm.m label)))
Instances For
Equations
GapCVP reduction support.
Equations
Instances For
Equations
GapCVP reduction support.
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
GapCVP reduction support.
Equations
- GapCVP.CLBoundedStates.LocalCellSymbol tm = (GapCVP.CLBoundedStates.PhaseTag × Option (tm.Λ × tm.σ) × (tm.K → GapCVP.CLBoundedStates.CellAtom tm) × Bool)
Instances For
A source location and state for a stack push.
Equations
- GapCVP.CLPushAlphabet.PushSource tm = ((stack : tm.K) × (tm.σ → tm.Γ stack))
Instances For
Collect the source locations of pushes in a statement.
Equations
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.push k a q) = ⟨k, a⟩ :: GapCVP.CLPushAlphabet.statementPushSources q
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.peek k a q) = GapCVP.CLPushAlphabet.statementPushSources q
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.pop k a q) = GapCVP.CLPushAlphabet.statementPushSources q
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.load a q) = GapCVP.CLPushAlphabet.statementPushSources q
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.branch a yes no) = GapCVP.CLPushAlphabet.statementPushSources yes ++ GapCVP.CLPushAlphabet.statementPushSources no
- GapCVP.CLPushAlphabet.statementPushSources (Turing.TM2.Stmt.goto a) = []
- GapCVP.CLPushAlphabet.statementPushSources Turing.TM2.Stmt.halt = []
Instances For
Recover the source of a push from its indexed slot.
Equations
- GapCVP.CLPushAlphabet.pushSourceOfSlot tm slot = (GapCVP.CLPushAlphabet.statementPushSources (tm.m slot.fst)).get ⟨↑slot.snd, ⋯⟩
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A complete row of encoded stack cells.
Equations
- GapCVP.CLCellRows.CellRow tm width = (Fin (width + 1) → GapCVP.CLBoundedStates.LocalCellSymbol tm)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLCellRowBounds.rowWidth bound machine x = Polynomial.eval x.length (GapCVP.CLNondeterminism.nondeterministicTableauDimensionPolynomial bound machine)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.push k a q) = GapCVP.CLLocalWindows.statementStackActions q + 1
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.peek k a q) = GapCVP.CLLocalWindows.statementStackActions q
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.pop k a q) = GapCVP.CLLocalWindows.statementStackActions q + 1
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.load a q) = GapCVP.CLLocalWindows.statementStackActions q
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.branch a yes no) = max (GapCVP.CLLocalWindows.statementStackActions yes) (GapCVP.CLLocalWindows.statementStackActions no)
- GapCVP.CLLocalWindows.statementStackActions (Turing.TM2.Stmt.goto a) = 0
- GapCVP.CLLocalWindows.statementStackActions Turing.TM2.Stmt.halt = 0
Instances For
Bound the number of stack edits made in one machine step.
Equations
- GapCVP.CLLocalWindows.maxStackEditsPerStep tm = Finset.univ.sup fun (label : tm.Λ) => GapCVP.CLLocalWindows.statementStackActions (tm.m label)
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
Equations
GapCVP reduction support.
Equations
Instances For
A row of blocks covering the encoded machine configuration.
Equations
- GapCVP.CLLocalWindows.BlockRow tm width = (Fin (width + 1) → GapCVP.CLLocalWindows.BlockCell tm)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLLocalWindows.coordinateBlock tm width index = ⟨↑index / GapCVP.CLLocalWindows.blockSize tm, ⋯⟩
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLLocalWindows.coordinateOffset tm width index = ⟨↑index % GapCVP.CLLocalWindows.blockSize tm, ⋯⟩
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLExactStackRules.canonicalCellAtom machine stack value hsupported = Classical.choose ⋯
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLExactStackRules.canonicalStackAtoms machine stack values hsupported = List.pmap (GapCVP.CLExactStackRules.canonicalCellAtom machine stack) values hsupported
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLCompleteLocalCompiler.atomBlockAt tm atoms index offset = GapCVP.CLCellRows.paddedAtom atoms (index * GapCVP.CLLocalWindows.blockSize tm + ↑offset)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLCompleteLocalCompiler.stackShiftAllowed tm hint window = decide (GapCVP.CLCompleteLocalCompiler.StackShiftAllowed tm hint window = true)
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLStackShiftSoundness2.NoBlankAtoms tm atoms = decide (∀ atom ∈ atoms, atom ≠ none)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Initial state of the bounded lookup memory.
Instances For
Update lookup memory after reading one input bit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Encode the current lookup memory as bits.
Equations
- GapCVP.CLEmittedCNFTM.lookupMemoryBits limit memory = List.take (↑memory.1) (List.ofFn memory.2.1)
Instances For
Extract the lookup result from the final memory state.
Equations
- GapCVP.CLEmittedCNFTM.lookupMemoryOutput limit table memory = if memory.2.2 = true then false else table (GapCVP.CLEmittedCNFTM.lookupMemoryBits limit memory)
Instances For
Finite machine implementing bounded lookup.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Turn a finite query into a head-position query.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
Script that pushes a prescribed prefix onto a stack.
Equations
- GapCVP.CLUnconditionalTableau.pushPrefixScript script stack value = { dropped := script.dropped, pushed := Function.update script.pushed stack (value :: script.pushed stack) }
Instances For
Script that removes a prescribed prefix from a stack.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
- GapCVP.CLUnconditionalTableau.executePrefixScript (Turing.TM2.Stmt.load update continuation) x✝² x✝¹ x✝ = GapCVP.CLUnconditionalTableau.executePrefixScript continuation (update x✝²) x✝¹ x✝
- GapCVP.CLUnconditionalTableau.executePrefixScript (Turing.TM2.Stmt.goto update) x✝² x✝¹ x✝ = (some (update x✝²), x✝², x✝)
- GapCVP.CLUnconditionalTableau.executePrefixScript Turing.TM2.Stmt.halt x✝² x✝¹ x✝ = (none, x✝², x✝)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- GapCVP.CLTableauSimulationCert.stackAtomsOfBlock tm block stack offset = (block offset).2.2.1 stack
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
Instances For
Internal support shared across GapCVP continuation modules.
Equations
- GapCVP.CLTableauSimulationCert.ScriptBlockRow tm width = (Fin (width + 1) → GapCVP.CLTableauSimulationCert.ScriptBlockCell tm)
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Default bound for a machine with one active stack.
Equations
Instances For
GapCVP reduction support.
Equations
Instances For
Internal support shared across GapCVP continuation modules.
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
- bit (value : Bool ⊕ Bool) : PairedInputTag
- marker : PairedInputTag
- blank : PairedInputTag
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
GapCVP reduction support.
Equations
- One or more equations did not get rendered due to their size.