Documentation

LeanPool.GapCVP.Part01A

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
    def GapCVP.TraceGolf.oneStep {α : Type u_1} {step : α → Option α} (source target : α) (transition : step source = some target) :
    StateTransition.EvalsToInTime step source (some target) 1

    GapCVP reduction support.

    Equations
    Instances For
      def GapCVP.TraceGolf.sweepTrace {α : Type u_1} {β : Type u_2} (step : α → Option α) (configuration : List β → α) (transition : (symbol : β) → (remaining : List β) → StateTransition.EvalsToInTime step (configuration (symbol :: remaining)) (some (configuration remaining)) 1) (symbols : List β) :
      StateTransition.EvalsToInTime step (configuration symbols) (some (configuration [])) symbols.length

      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
        def GapCVP.TraceGolf.sweep {α : Type u_1} {β : Type u_2} (step : α → Option α) (configuration : List β → α) (transition : ∀ (symbol : β) (remaining : List β), step (configuration (symbol :: remaining)) = some (configuration remaining)) (symbols : List β) :
        StateTransition.EvalsToInTime step (configuration symbols) (some (configuration [])) symbols.length

        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
          def GapCVP.TraceGolf.sweepThen {α : Type u_1} {β : Type u_2} (step : α → Option α) (configuration : List β → α) (transition : ∀ (symbol : β) (remaining : List β), step (configuration (symbol :: remaining)) = some (configuration remaining)) (symbols : List β) {target : α} (finish : step (configuration []) = some target) :
          StateTransition.EvalsToInTime step (configuration symbols) (some target) (symbols.length + 1)

          Consumes a list and then applies one final transition.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def GapCVP.TraceGolf.rebound {α : Type u_1} {step : α → Option α} {source : α} {target : Option α} {oldBudget newBudget : ℕ} (trace : StateTransition.EvalsToInTime step source target oldBudget) (budget : oldBudget ≤ newBudget) :
            StateTransition.EvalsToInTime step source target newBudget

            GapCVP reduction support.

            Equations
            Instances For

              GapCVP reduction support.

              Instances For

                GapCVP reduction support.

                Equations
                Instances For

                  GapCVP reduction support.

                  Equations
                  Instances For

                    GapCVP reduction support.

                    Equations
                    Instances For

                      GapCVP reduction support.

                      Equations
                      Instances For

                        GapCVP reduction support.

                        Equations
                        Instances For

                          GapCVP reduction support.

                          Equations
                          Instances For
                            noncomputable def GapCVP.Core.SquaredYes (I : GapCVPInstance) :

                            GapCVP reduction support.

                            Equations
                            Instances For
                              noncomputable def GapCVP.Core.SquaredNoAt (c : ℝ) (I : GapCVPInstance) :

                              GapCVP reduction support.

                              Equations
                              Instances For
                                @[reducible, inline]

                                GapCVP reduction support.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[reducible, inline]

                                  GapCVP reduction support.

                                  Equations
                                  Instances For
                                    @[reducible, inline]

                                    GapCVP reduction support.

                                    Equations
                                    Instances For
                                      @[reducible, inline]

                                      GapCVP reduction support.

                                      Equations
                                      Instances For

                                        GapCVP reduction support.

                                        Equations
                                        Instances For
                                          noncomputable def GapCVP.literalSatisfied (assignment : ℕ → Bool) (l : Literal) :

                                          GapCVP reduction support.

                                          Equations
                                          Instances For
                                            noncomputable def GapCVP.clauseSatisfied (assignment : ℕ → Bool) (c : ThreeClause) :

                                            GapCVP reduction support.

                                            Equations
                                            Instances For
                                              noncomputable def GapCVP.threeCNFSatisfiable (φ : ThreeCNF) :

                                              GapCVP reduction support.

                                              Equations
                                              Instances For

                                                GapCVP reduction support.

                                                Instances For

                                                  GapCVP reduction support.

                                                  Equations
                                                  Instances For
                                                    noncomputable def GapCVP.distanceSquared (I : GapCVPInstance) (z : Fin I.dimension → ℤ) :

                                                    GapCVP reduction support.

                                                    Equations
                                                    Instances For
                                                      class GapCVP.BinaryBitCodec (α : Type u_1) :
                                                      Type u_1

                                                      GapCVP reduction support.

                                                      Instances

                                                        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
                                                            @[simp]
                                                            theorem GapCVP.BinaryEncoding.readLiteral_append (literal : Literal) (suffix : List Bool) :
                                                            readLiteral (encodeLiteral literal ++ suffix) = some (literal, suffix)

                                                            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

                                                                    GapCVP reduction support.

                                                                    Equations
                                                                    • One or more equations did not get rendered due to their size.
                                                                    Instances For
                                                                      @[instance_reducible, instance 2000]
                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.

                                                                      GapCVP reduction support.

                                                                      Equations
                                                                      • One or more equations did not get rendered due to their size.
                                                                      Instances For
                                                                        @[simp]
                                                                        theorem GapCVP.BinaryEncoding.readAtomic_append {α : Type u_1} [Encodable α] (a : α) (suffix : List Bool) :
                                                                        readAtomic (encodeAtomic a ++ suffix) = some (a, suffix)
                                                                        def GapCVP.BinaryEncoding.encodeFinValues {α : Type u_1} [Encodable α] (n : ℕ) :
                                                                        (Fin n → α) → List Bool

                                                                        GapCVP reduction support.

                                                                        Equations
                                                                        Instances For
                                                                          def GapCVP.BinaryEncoding.readFinValues {α : Type u_1} [Encodable α] (n : ℕ) :
                                                                          List Bool → Option ((Fin n → α) × List Bool)

                                                                          GapCVP reduction support.

                                                                          Equations
                                                                          Instances For
                                                                            @[simp]
                                                                            theorem GapCVP.BinaryEncoding.readFinValues_append {α : Type u_1} [Encodable α] {n : ℕ} (values : Fin n → α) (suffix : List Bool) :
                                                                            readFinValues n (encodeFinValues n values ++ suffix) = some (values, suffix)

                                                                            GapCVP reduction support.

                                                                            Equations
                                                                            Instances For

                                                                              GapCVP reduction support.

                                                                              Equations
                                                                              Instances For
                                                                                @[simp]
                                                                                theorem GapCVP.BinaryEncoding.readMatrixRows_append {m n : ℕ} (matrix : Fin m → Fin n → ℤ) (suffix : List Bool) :
                                                                                readMatrixRows m n (encodeMatrixRows m n matrix ++ suffix) = some (matrix, suffix)

                                                                                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
                                                                                    @[instance_reducible, instance 2000]
                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.

                                                                                    GapCVP reduction support.

                                                                                    Equations
                                                                                    Instances For
                                                                                      @[reducible, inline]

                                                                                      GapCVP reduction support.

                                                                                      Equations
                                                                                      Instances For
                                                                                        @[reducible, inline]

                                                                                        GapCVP reduction support.

                                                                                        Equations
                                                                                        Instances For
                                                                                          @[reducible, inline]
                                                                                          abbrev GapCVP.BitTM (f : List Bool → List Bool) :

                                                                                          GapCVP reduction support.

                                                                                          Equations
                                                                                          Instances For
                                                                                            @[reducible, inline]
                                                                                            abbrev GapCVP.VerifierTM (verifier : List Bool × List Bool → Bool) :

                                                                                            GapCVP reduction support.

                                                                                            Equations
                                                                                            Instances For
                                                                                              noncomputable def GapCVP.IsNP (L : BitLanguage) :

                                                                                              GapCVP reduction support.

                                                                                              Equations
                                                                                              • One or more equations did not get rendered due to their size.
                                                                                              Instances For

                                                                                                GapCVP reduction support.

                                                                                                Instances For

                                                                                                  Polynomial-time binary-string functions remain polynomial-time under composition.

                                                                                                  Equations
                                                                                                  Instances For
                                                                                                    noncomputable def GapCVP.NPHard (L : BitLanguage) :

                                                                                                    GapCVP reduction support.

                                                                                                    Equations
                                                                                                    Instances For

                                                                                                      GapCVP reduction support.

                                                                                                      Equations
                                                                                                      Instances For

                                                                                                        GapCVP reduction support.

                                                                                                        Instances For

                                                                                                          GapCVP reduction support.

                                                                                                          Instances For
                                                                                                            noncomputable def GapCVP.NPHardPromise (P : PromiseProblem) :

                                                                                                            GapCVP reduction support.

                                                                                                            Equations
                                                                                                            Instances For
                                                                                                              noncomputable def GapCVP.gapYES (I : GapCVPInstance) :

                                                                                                              GapCVP reduction support.

                                                                                                              Equations
                                                                                                              Instances For
                                                                                                                @[reducible, inline]

                                                                                                                Stack labels of the machine formed by sequential composition.

                                                                                                                Equations
                                                                                                                Instances For
                                                                                                                  @[reducible, inline]
                                                                                                                  abbrev GapCVP.TMComposition.alphabet (first second : Turing.FinTM2) :
                                                                                                                  Stack first second → Type

                                                                                                                  GapCVP reduction support.

                                                                                                                  Equations
                                                                                                                  Instances For
                                                                                                                    @[reducible, inline]

                                                                                                                    Control labels of the sequential composition machine.

                                                                                                                    Equations
                                                                                                                    Instances For
                                                                                                                      @[reducible, inline]

                                                                                                                      Paired internal states of the sequential composition machine.

                                                                                                                      Equations
                                                                                                                      Instances For

                                                                                                                        GapCVP reduction support.

                                                                                                                        Equations
                                                                                                                        Instances For
                                                                                                                          theorem GapCVP.TMComposition.iterate_map_of_some {α β : Type} (stepA : α → Option α) (stepB : β → Option β) (translate : α → β) (hstep : ∀ (a a' : α), stepA a = some a' → stepB (translate a) = some (translate a')) (steps : ℕ) (a a' : α) (h : (fun (state : Option α) => state.bind stepA)^[steps] (some a) = some a') :
                                                                                                                          (fun (state : Option β) => state.bind stepB)^[steps] (some (translate a)) = some (translate a')
                                                                                                                          def GapCVP.TMComposition.evalsToInTimeMapOfStep {α β : Type} (stepA : α → Option α) (stepB : β → Option β) (translate : α → β) (hstep : ∀ (a a' : α), stepA a = some a' → stepB (translate a) = some (translate a')) {a a' : α} {budget : ℕ} (h : StateTransition.EvalsToInTime stepA a (some a') budget) :
                                                                                                                          StateTransition.EvalsToInTime stepB (translate a) (some (translate a')) budget

                                                                                                                          GapCVP reduction support.

                                                                                                                          Equations
                                                                                                                          Instances For
                                                                                                                            noncomputable def GapCVP.TMComposition.compositeTimePolynomial {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :

                                                                                                                            Time bound obtained by composing the two machine bounds.

                                                                                                                            Equations
                                                                                                                            Instances For
                                                                                                                              noncomputable def GapCVP.TMComposition.secondStack (first second : Turing.FinTM2) (k : second.K) :
                                                                                                                              Stack first second

                                                                                                                              Embed a stack of the second machine into the composite stack type.

                                                                                                                              Equations
                                                                                                                              Instances For
                                                                                                                                noncomputable def GapCVP.TMComposition.secondAlphabetEquiv {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (k : second.tm.K) :
                                                                                                                                second.tm.Γ k ≃ alphabet first.tm second.tm (secondStack first.tm second.tm k)

                                                                                                                                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
                                                                                                                                  def GapCVP.TMComposition.liftFirstStmt (first second : Turing.FinTM2) :
                                                                                                                                  Turing.TM2.Stmt first.Γ first.Λ first.σ → Turing.TM2.Stmt (alphabet first second) (Label first second) (InternalState first second)

                                                                                                                                  Run a statement of the first machine inside the composite machine.

                                                                                                                                  Equations
                                                                                                                                  Instances For
                                                                                                                                    noncomputable def GapCVP.TMComposition.liftSecondStmt {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :
                                                                                                                                    Turing.TM2.Stmt second.tm.Γ second.tm.Λ second.tm.σ → Turing.TM2.Stmt (alphabet first.tm second.tm) (Label first.tm second.tm) (InternalState first.tm second.tm)

                                                                                                                                    Run a statement of the second machine inside the composite machine.

                                                                                                                                    Equations
                                                                                                                                    Instances For
                                                                                                                                      noncomputable def GapCVP.TMComposition.machine {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :

                                                                                                                                      GapCVP reduction support.

                                                                                                                                      Equations
                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                      Instances For
                                                                                                                                        noncomputable def GapCVP.TMComposition.auxiliary {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :

                                                                                                                                        GapCVP reduction support.

                                                                                                                                        Equations
                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                        Instances For
                                                                                                                                          def GapCVP.TMComposition.firstStacks (first second : Turing.FinTM2) (sourceStacks : (k : first.K) → List (first.Γ k)) (k : Stack first second) :
                                                                                                                                          List (alphabet first second k)

                                                                                                                                          Embed the first machine stack contents into composite stacks.

                                                                                                                                          Equations
                                                                                                                                          Instances For
                                                                                                                                            noncomputable def GapCVP.TMComposition.firstConfiguration {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (c : first.tm.Cfg) :
                                                                                                                                            (machine first second).Cfg

                                                                                                                                            Embed a first-machine configuration into the composite machine.

                                                                                                                                            Equations
                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                            Instances For
                                                                                                                                              theorem GapCVP.TMComposition.firstConfiguration_step {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (c c' : first.tm.Cfg) (h : first.tm.step c = some c') :
                                                                                                                                              (machine first second).step (firstConfiguration first second c) = some (firstConfiguration first second c')
                                                                                                                                              noncomputable def GapCVP.TMComposition.firstConfigurationEvalsToInTime {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) {c c' : first.tm.Cfg} {budget : ℕ} (h : StateTransition.EvalsToInTime first.tm.step c (some c') budget) :
                                                                                                                                              StateTransition.EvalsToInTime (machine first second).step (firstConfiguration first second c) (some (firstConfiguration first second c')) budget

                                                                                                                                              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
                                                                                                                                                noncomputable def GapCVP.TMComposition.secondStacks {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (sourceStacks : (k : second.tm.K) → List (second.tm.Γ k)) (k : Stack first.tm second.tm) :
                                                                                                                                                List (alphabet first.tm second.tm k)

                                                                                                                                                Embed the second machine stack contents into composite stacks.

                                                                                                                                                Equations
                                                                                                                                                Instances For
                                                                                                                                                  noncomputable def GapCVP.TMComposition.secondConfiguration {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (c : second.tm.Cfg) :
                                                                                                                                                  (machine first second).Cfg

                                                                                                                                                  Embed a second-machine configuration into the composite machine.

                                                                                                                                                  Equations
                                                                                                                                                  Instances For
                                                                                                                                                    theorem GapCVP.TMComposition.secondConfiguration_step {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) (c c' : second.tm.Cfg) (h : second.tm.step c = some c') :
                                                                                                                                                    (machine first second).step (secondConfiguration first second c) = some (secondConfiguration first second c')
                                                                                                                                                    @[simp]
                                                                                                                                                    noncomputable def GapCVP.TMComposition.computableInPolyTimeOfSeam {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :
                                                                                                                                                    BitTM (g ∘ f)

                                                                                                                                                    Compose two polynomial-time machines across their shared seam.

                                                                                                                                                    Equations
                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                    Instances For
                                                                                                                                                      noncomputable def GapCVP.TMComposition.computableInPolyTime {f g : List Bool → List Bool} (first : BitTM f) (second : BitTM g) :
                                                                                                                                                      BitTM (g ∘ f)

                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                      Equations
                                                                                                                                                      Instances For
                                                                                                                                                        def GapCVP.PromiseReduction.compWithCertificate {A B : BitLanguage} {P : PromiseProblem} (first : PolynomialReduction A B) (second : PromiseReduction B P) (certificate : Nonempty (BitTM (second.map ∘ first.map))) :

                                                                                                                                                        Compose a promise reduction with a certificate-producing map.

                                                                                                                                                        Equations
                                                                                                                                                        Instances For

                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                          Equations
                                                                                                                                                          Instances For
                                                                                                                                                            @[reducible, inline]
                                                                                                                                                            abbrev GapCVP.CL.Time (T : ℕ) :

                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                            Equations
                                                                                                                                                            Instances For
                                                                                                                                                              @[reducible, inline]

                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                              Equations
                                                                                                                                                              Instances For
                                                                                                                                                                @[reducible, inline]
                                                                                                                                                                abbrev GapCVP.CL.Symbol (S : ℕ) :

                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                Equations
                                                                                                                                                                Instances For
                                                                                                                                                                  @[reducible, inline]
                                                                                                                                                                  abbrev GapCVP.CL.Variable (T S : ℕ) :

                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                  Equations
                                                                                                                                                                  Instances For
                                                                                                                                                                    @[reducible, inline]

                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                    Equations
                                                                                                                                                                    Instances For
                                                                                                                                                                      @[reducible, inline]
                                                                                                                                                                      abbrev GapCVP.CL.Clause (T S : ℕ) :

                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                      Equations
                                                                                                                                                                      Instances For
                                                                                                                                                                        @[reducible, inline]
                                                                                                                                                                        abbrev GapCVP.CL.Formula (T S : ℕ) :

                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                        Equations
                                                                                                                                                                        Instances For
                                                                                                                                                                          def GapCVP.CL.positive {T S : ℕ} (v : Variable T S) :

                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                          Equations
                                                                                                                                                                          Instances For
                                                                                                                                                                            def GapCVP.CL.negative {T S : ℕ} (v : Variable T S) :

                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                            Equations
                                                                                                                                                                            Instances For
                                                                                                                                                                              def GapCVP.CL.atLeastOneClause {T S : ℕ} (t : Time T) (i : Position T) :
                                                                                                                                                                              Clause T S

                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                              Equations
                                                                                                                                                                              Instances For
                                                                                                                                                                                def GapCVP.CL.atMostOneClause {T S : ℕ} (t : Time T) (i : Position T) (a b : Symbol S) :
                                                                                                                                                                                Clause T S

                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                Equations
                                                                                                                                                                                Instances For
                                                                                                                                                                                  def GapCVP.CL.initialClause {T S : ℕ} (input : Position T → Symbol S) (i : Position T) :
                                                                                                                                                                                  Clause T S

                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                  Equations
                                                                                                                                                                                  Instances For
                                                                                                                                                                                    def GapCVP.CL.acceptanceClause {T S : ℕ} (accept : Symbol S) :
                                                                                                                                                                                    Clause T S

                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                    Equations
                                                                                                                                                                                    Instances For
                                                                                                                                                                                      @[reducible, inline]
                                                                                                                                                                                      abbrev GapCVP.CL.Window (T : ℕ) :

                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                      Equations
                                                                                                                                                                                      Instances For
                                                                                                                                                                                        def GapCVP.CL.nextTime {T : ℕ} (w : Window T) :

                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                        Equations
                                                                                                                                                                                        Instances For

                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                          Equations
                                                                                                                                                                                          Instances For

                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                            Equations
                                                                                                                                                                                            Instances For
                                                                                                                                                                                              def GapCVP.CL.windowAt {T : ℕ} (t : Fin T) (i : Position T) :

                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                              Equations
                                                                                                                                                                                              Instances For
                                                                                                                                                                                                @[reducible, inline]

                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                Equations
                                                                                                                                                                                                Instances For
                                                                                                                                                                                                  def GapCVP.CL.transitionClause {T S : ℕ} (w : Window T) (symbols : WindowSymbols S) :
                                                                                                                                                                                                  Clause T S

                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                  Equations
                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                    structure GapCVP.CL.Specification (T S : ℕ) :

                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                    Instances For

                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                      Equations
                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                        def GapCVP.CL.initialClauses {T S : ℕ} (spec : Specification T S) :

                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                        Equations
                                                                                                                                                                                                        Instances For

                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                          Equations
                                                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                            noncomputable def GapCVP.CL.ValidTrace {T S : ℕ} (spec : Specification T S) (trace : Time T → Position T → Symbol S) :

                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                            Equations
                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                              theorem GapCVP.CL.atMostOneClause_mem_tableauFormula {T S : ℕ} (spec : Specification T S) (t : Time T) (i : Position T) (a b : Symbol S) (hab : a < b) :
                                                                                                                                                                                                              theorem GapCVP.CL.transitionClause_mem_tableauFormula {T S : ℕ} (spec : Specification T S) (w : Window T) (symbols : WindowSymbols S) (hforbidden : spec.allowed symbols = false) :

                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                              Equations
                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                @[simp]
                                                                                                                                                                                                                noncomputable def GapCVP.ThreeCNFReduction.allDistinct (formula : ThreeCNF) :

                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                Instances For

                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                    def GapCVP.ThreeCNFReduction.accumulatorVariable (clauseIndex prefixIndex : ℕ) :

                                                                                                                                                                                                                    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
                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                              @[simp]
                                                                                                                                                                                                                              theorem GapCVP.ThreeCNFReduction.orGate_length (a b output : Literal) :
                                                                                                                                                                                                                              List.length (orGate a b output) = 5

                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                def GapCVP.ThreeCNFReduction.accumulatorLiteral (clauseIndex prefixIndex : ℕ) (value : Bool) :

                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                  def GapCVP.ThreeCNFReduction.gateList {T S : ℕ} (clauseIndex : ℕ) :

                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                    def GapCVP.ThreeCNFReduction.encodeClause {T S : ℕ} (clauseIndex : ℕ) (clause : CL.Clause T S) :

                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                    Instances For

                                                                                                                                                                                                                                      Encode a finite formula as clauses for the reduction.

                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                          @[simp]
                                                                                                                                                                                                                                          theorem GapCVP.CLVerifier.pairBitEncoding_length (x certificate : List Bool) :
                                                                                                                                                                                                                                          (pairBitEncoding (x, certificate)).length = x.length + certificate.length
                                                                                                                                                                                                                                          def GapCVP.CLVerifier.verifierInput {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) :
                                                                                                                                                                                                                                          List (machine.tm.Γ machine.tm.k₀)

                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                            def GapCVP.CLVerifier.verifierOutput {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (value : Bool) :
                                                                                                                                                                                                                                            List (machine.tm.Γ machine.tm.k₁)

                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                              @[simp]
                                                                                                                                                                                                                                              theorem GapCVP.CLVerifier.verifierInput_length {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) :
                                                                                                                                                                                                                                              (verifierInput machine x certificate).length = x.length + certificate.length
                                                                                                                                                                                                                                              @[simp]
                                                                                                                                                                                                                                              theorem GapCVP.CLVerifier.verifierOutput_length {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (value : Bool) :
                                                                                                                                                                                                                                              (verifierOutput machine value).length = 1
                                                                                                                                                                                                                                              noncomputable def GapCVP.CLVerifier.witnessTimePolynomial (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) :

                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                theorem GapCVP.CLVerifier.witnessTimePolynomial_bounds (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) (hcertificate : certificate.length ≤ Polynomial.eval x.length bound) :
                                                                                                                                                                                                                                                def GapCVP.CLVerifier.boundedVerifierRun (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) (hcertificate : certificate.length ≤ Polynomial.eval x.length bound) :
                                                                                                                                                                                                                                                Turing.TM2OutputsInTime machine.tm (verifierInput machine x certificate) (some (verifierOutput machine (verifier (x, certificate)))) (Polynomial.eval x.length (witnessTimePolynomial bound machine))

                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                  structure GapCVP.CLVerifier.ConfigurationTrace (tm : Turing.FinTM2) (input : List (tm.Γ tm.k₀)) (output : List (tm.Γ tm.k₁)) (steps : ℕ) :

                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                    theorem GapCVP.CLVerifier.ConfigurationTrace.iterate_configuration {tm : Turing.FinTM2} {input : List (tm.Γ tm.k₀)} {output : List (tm.Γ tm.k₁)} {steps : ℕ} (trace : ConfigurationTrace tm input output steps) (i : Fin (steps + 1)) :
                                                                                                                                                                                                                                                    (flip bind tm.step)^[↑i] (some (Turing.initList tm input)) = some (trace.configuration i)
                                                                                                                                                                                                                                                    def GapCVP.CLVerifier.ConfigurationTrace.evalsToAt {tm : Turing.FinTM2} {input : List (tm.Γ tm.k₀)} {output : List (tm.Γ tm.k₁)} {steps : ℕ} (trace : ConfigurationTrace tm input output steps) (i : Fin (steps + 1)) :

                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                    • trace.evalsToAt i = { steps := ↑i, evals_in_steps := ⋯ }
                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                      def GapCVP.CLVerifier.ConfigurationTrace.evalsTo {tm : Turing.FinTM2} {input : List (tm.Γ tm.k₀)} {output : List (tm.Γ tm.k₁)} {steps : ℕ} (trace : ConfigurationTrace tm input output steps) :

                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                      • trace.evalsTo = { steps := steps, evals_in_steps := ⋯ }
                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                        theorem GapCVP.CLVerifier.ConfigurationTrace.stack_length_le {tm : Turing.FinTM2} {input : List (tm.Γ tm.k₀)} {output : List (tm.Γ tm.k₁)} {steps : ℕ} (trace : ConfigurationTrace tm input output steps) (i : Fin (steps + 1)) (stack : tm.K) :
                                                                                                                                                                                                                                                        theorem GapCVP.CLVerifier.haltList_step (tm : Turing.FinTM2) (output : List (tm.Γ tm.k₁)) :
                                                                                                                                                                                                                                                        tm.step (Turing.haltList tm output) = none
                                                                                                                                                                                                                                                        theorem GapCVP.CLVerifier.evalsTo_terminal_unique_of_steps_le {α : Type} (step : α → Option α) (initial a b : α) (ha : StateTransition.EvalsTo step initial (some a)) (hb : StateTransition.EvalsTo step initial (some b)) (hterminal : step a = none) (hle : ha.steps ≤ hb.steps) :
                                                                                                                                                                                                                                                        a = b
                                                                                                                                                                                                                                                        structure GapCVP.CLVerifier.AcceptedExecution (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x : List Bool) :

                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                          structure GapCVP.CLVerifier.TableauSimulation (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) :

                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                            noncomputable def GapCVP.CLVerifier.encodedTableau {bound : Polynomial ℕ} {verifier : List Bool × List Bool → Bool} {machine : VerifierTM verifier} (simulation : TableauSimulation bound machine) (x : List Bool) :

                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                              inductive GapCVP.CLNondeterminism.FiniteRun {α : Type} (transition : α → α → Type) :
                                                                                                                                                                                                                                                              α → α → ℕ → Type

                                                                                                                                                                                                                                                              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
                                                                                                                                                                                                                                                                noncomputable def GapCVP.CLNondeterminism.FiniteRun.single {α : Type} {transition : α → α → Type} {first last : α} (h : transition first last) :
                                                                                                                                                                                                                                                                FiniteRun transition first last 1

                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                  noncomputable def GapCVP.CLNondeterminism.FiniteRun.trans {α : Type} {transition : α → α → Type} {first middle last : α} {leftSteps rightSteps : ℕ} (left : FiniteRun transition first middle leftSteps) (right : FiniteRun transition middle last rightSteps) :
                                                                                                                                                                                                                                                                  FiniteRun transition first last (leftSteps + rightSteps)

                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                  Instances For

                                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                      inductive GapCVP.CLNondeterminism.GuessStep (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x : List Bool) :
                                                                                                                                                                                                                                                                      GuessState machine.tm → GuessState machine.tm → Type

                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                        def GapCVP.CLNondeterminism.oneStepEvalsTo (tm : Turing.FinTM2) (configuration next : tm.Cfg) (hstep : tm.step configuration = some next) :
                                                                                                                                                                                                                                                                        StateTransition.EvalsTo tm.step configuration (some next)

                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                          noncomputable def GapCVP.CLNondeterminism.guessTimePolynomial (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) :

                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                              theorem GapCVP.CLNondeterminism.verifying_stack_length_le (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) (configuration : machine.tm.Cfg) {elapsed : ℕ} (run : FiniteRun (GuessStep bound machine x) (GuessState.guessing []) (GuessState.verifying certificate configuration) elapsed) (hruntime : elapsed ≤ Polynomial.eval x.length (guessTimePolynomial bound machine)) (stack : machine.tm.K) :
                                                                                                                                                                                                                                                                              structure GapCVP.CLNondeterminism.GuessingExecution (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x : List Bool) :

                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                theorem GapCVP.CLNondeterminism.guessingExecution_accepted (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) {x : List Bool} (execution : GuessingExecution bound machine x) :
                                                                                                                                                                                                                                                                                structure GapCVP.CLNondeterminism.LocalTableauCompiler (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) :

                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                  noncomputable def GapCVP.CLNondeterminism.tableauSimulationOfLocalCompiler (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (compiler : LocalTableauCompiler bound machine) :

                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                    theorem GapCVP.CLNondeterminism.compiledTableau_iff_verifier (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (compiler : LocalTableauCompiler bound machine) (x : List Bool) :
                                                                                                                                                                                                                                                                                    threeSATLanguage (CLVerifier.encodedTableau (tableauSimulationOfLocalCompiler bound machine compiler) x) = true ↔ ∃ (certificate : List Bool), certificate.length ≤ Polynomial.eval x.length bound ∧ verifier (x, certificate) = true
                                                                                                                                                                                                                                                                                    @[reducible, inline]

                                                                                                                                                                                                                                                                                    A push location in the verifier machine.

                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                      @[reducible, inline]

                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                        @[reducible, inline]

                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                        Instances For

                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                            @[instance_reducible]
                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                            @[reducible, inline]

                                                                                                                                                                                                                                                                                            A source location and state for a stack push.

                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                            Instances For

                                                                                                                                                                                                                                                                                              Recover the source of a push from its indexed slot.

                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                def GapCVP.CLPushAlphabet.cellAtomValue {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) :
                                                                                                                                                                                                                                                                                                CLBoundedStates.CellAtom machine.tm → Option (machine.tm.Γ stack)

                                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                  @[simp]
                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLPushAlphabet.cellAtomValue_blank {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) :
                                                                                                                                                                                                                                                                                                  cellAtomValue machine stack none = none
                                                                                                                                                                                                                                                                                                  @[simp]
                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLPushAlphabet.cellAtomValue_input {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (bit : Bool ⊕ Bool) :
                                                                                                                                                                                                                                                                                                  cellAtomValue machine machine.tm.k₀ (some (Sum.inl bit)) = some (machine.inputAlphabet.invFun bit)
                                                                                                                                                                                                                                                                                                  noncomputable def GapCVP.CLPushAlphabet.StackAtomSupported {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (configuration : machine.tm.Cfg) :

                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                    theorem GapCVP.CLPushAlphabet.initialConfiguration_stackAtomSupported {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) :
                                                                                                                                                                                                                                                                                                    StackAtomSupported machine (Turing.initList machine.tm (CLVerifier.verifierInput machine x certificate)) = true

                                                                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                      theorem GapCVP.CLCellRows.paddedAtom_decode {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) {atoms : List (CLBoundedStates.CellAtom machine.tm)} {values : List (machine.tm.Γ stack)} (h : List.Forall₂ (fun (atom : CLBoundedStates.CellAtom machine.tm) (value : machine.tm.Γ stack) => CLPushAlphabet.cellAtomValue machine stack atom = some value) atoms values) (index : ℕ) :
                                                                                                                                                                                                                                                                                                      CLPushAlphabet.cellAtomValue machine stack (paddedAtom atoms index) = values[index]?

                                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                        @[reducible, inline]

                                                                                                                                                                                                                                                                                                        A complete row of encoded stack cells.

                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                          def GapCVP.CLCellRows.guessingRow (tm : Turing.FinTM2) (width : ℕ) (certificate : List Bool) :
                                                                                                                                                                                                                                                                                                          CellRow tm width

                                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                            def GapCVP.CLCellRows.configurationControl (tm : Turing.FinTM2) (configuration : tm.Cfg) :
                                                                                                                                                                                                                                                                                                            tm.Λ × tm.σ

                                                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                              @[reducible, inline]
                                                                                                                                                                                                                                                                                                              noncomputable abbrev GapCVP.CLCellRowBounds.rowWidth (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x : List Bool) :

                                                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLCellRowBounds.certificateBound_le_rowWidth (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x : List Bool) :
                                                                                                                                                                                                                                                                                                                Polynomial.eval x.length bound ≤ rowWidth bound machine x

                                                                                                                                                                                                                                                                                                                Bound the number of stack edits made in one machine step.

                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                  @[reducible, inline]

                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                    @[reducible, inline]

                                                                                                                                                                                                                                                                                                                    A row of blocks covering the encoded machine configuration.

                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                      def GapCVP.CLLocalWindows.packRow (tm : Turing.FinTM2) (width : ℕ) (row : CLCellRows.CellRow tm width) :
                                                                                                                                                                                                                                                                                                                      BlockRow tm width

                                                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                        def GapCVP.CLLocalWindows.coordinateBlock (tm : Turing.FinTM2) (width : ℕ) (index : Fin (width + 1)) :
                                                                                                                                                                                                                                                                                                                        Fin (width + 1)

                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                          def GapCVP.CLLocalWindows.coordinateOffset (tm : Turing.FinTM2) (width : ℕ) (index : Fin (width + 1)) :

                                                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                            theorem GapCVP.CLLocalWindows.packRow_cell (tm : Turing.FinTM2) (width : ℕ) (row : CLCellRows.CellRow tm width) (index : Fin (width + 1)) :
                                                                                                                                                                                                                                                                                                                            packRow tm width row (coordinateBlock tm width index) (coordinateOffset tm width index) = row index
                                                                                                                                                                                                                                                                                                                            def GapCVP.CLLocalWindows.leftBlock (width : ℕ) (index : Fin (width + 1)) :
                                                                                                                                                                                                                                                                                                                            Fin (width + 1)

                                                                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                              def GapCVP.CLLocalWindows.rightBlock (width : ℕ) (index : Fin (width + 1)) :
                                                                                                                                                                                                                                                                                                                              Fin (width + 1)

                                                                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                @[simp]

                                                                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                  def GapCVP.CLExactLocalRules.guessPhaseWindowAt (width : ℕ) (first next : List Bool) (index : Fin (width + 1)) :

                                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                    theorem GapCVP.CLExactLocalRules.certificatePhase_append_before (certificate : List Bool) (bit : Bool) (index : ℕ) (hindex : index < certificate.length) :
                                                                                                                                                                                                                                                                                                                                    CLCellRows.certificatePhase (certificate ++ [bit]) index = CLCellRows.certificatePhase certificate index
                                                                                                                                                                                                                                                                                                                                    theorem GapCVP.CLExactLocalRules.certificatePhase_after (certificate : List Bool) (index : ℕ) (hindex : certificate.length < index) :
                                                                                                                                                                                                                                                                                                                                    theorem GapCVP.CLExactLocalRules.certificatePhase_append_after (certificate : List Bool) (bit : Bool) (index : ℕ) (hindex : certificate.length + 1 < index) :
                                                                                                                                                                                                                                                                                                                                    CLCellRows.certificatePhase (certificate ++ [bit]) index = CLCellRows.certificatePhase certificate index
                                                                                                                                                                                                                                                                                                                                    theorem GapCVP.CLExactLocalRules.guessPhaseWindow_of_append (width : ℕ) (certificate : List Bool) (bit : Bool) (hspace : certificate.length < width) (index : Fin (width + 1)) :
                                                                                                                                                                                                                                                                                                                                    GuessPhaseAllowed (guessPhaseWindowAt width certificate (certificate ++ [bit]) index) = true
                                                                                                                                                                                                                                                                                                                                    noncomputable def GapCVP.CLExactStackRules.SupportedStackValue {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (value : machine.tm.Γ stack) :

                                                                                                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                                      theorem GapCVP.CLExactStackRules.stackAtomSupported_supportedValues {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (configuration : machine.tm.Cfg) (supported : CLPushAlphabet.StackAtomSupported machine configuration = true) (stack : machine.tm.K) (value : machine.tm.Γ stack) :
                                                                                                                                                                                                                                                                                                                                      value ∈ configuration.stk stack → SupportedStackValue machine stack value = true
                                                                                                                                                                                                                                                                                                                                      noncomputable def GapCVP.CLExactStackRules.canonicalCellAtom {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (value : machine.tm.Γ stack) (hsupported : SupportedStackValue machine stack value = true) :

                                                                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                        theorem GapCVP.CLExactStackRules.canonicalCellAtom_decode {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (value : machine.tm.Γ stack) (hsupported : SupportedStackValue machine stack value = true) :
                                                                                                                                                                                                                                                                                                                                        CLPushAlphabet.cellAtomValue machine stack (canonicalCellAtom machine stack value hsupported) = some value
                                                                                                                                                                                                                                                                                                                                        noncomputable def GapCVP.CLExactStackRules.canonicalStackAtoms {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (values : List (machine.tm.Γ stack)) (hsupported : ∀ value ∈ values, SupportedStackValue machine stack value = true) :

                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLExactStackRules.canonicalStackAtoms_length {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (values : List (machine.tm.Γ stack)) (hsupported : ∀ value ∈ values, SupportedStackValue machine stack value = true) :
                                                                                                                                                                                                                                                                                                                                          (canonicalStackAtoms machine stack values hsupported).length = values.length
                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLExactStackRules.canonicalStackAtoms_forall₂ {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (values : List (machine.tm.Γ stack)) (hsupported : ∀ value ∈ values, SupportedStackValue machine stack value = true) :
                                                                                                                                                                                                                                                                                                                                          List.Forall₂ (fun (atom : CLBoundedStates.CellAtom machine.tm) (value : machine.tm.Γ stack) => CLPushAlphabet.cellAtomValue machine stack atom = some value) (canonicalStackAtoms machine stack values hsupported) values
                                                                                                                                                                                                                                                                                                                                          noncomputable def GapCVP.CLExactVerifierRules.StackPrefixAgreement {K : Type} {Γ : K → Type} (radius : ℕ) (first next : (stack : K) → List (Γ stack)) :

                                                                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                                            theorem GapCVP.CLExactVerifierRules.stackPrefixAgreement_mono {K : Type} {Γ : K → Type} {small large : ℕ} {first next : (stack : K) → List (Γ stack)} (hbound : small ≤ large) (hagreement : StackPrefixAgreement large first next = true) :
                                                                                                                                                                                                                                                                                                                                            StackPrefixAgreement small first next = true

                                                                                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                                              @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                              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
                                                                                                                                                                                                                                                                                                                                                      Instances For

                                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLStackShiftSoundness2.atomSuffix_iff_paddedShift (tm : Turing.FinTM2) (first next : List (CLBoundedStates.CellAtom tm)) (hfirst : NoBlankAtoms tm first = true) (hnext : NoBlankAtoms tm next = true) (firstDrop nextDrop : ℕ) :
                                                                                                                                                                                                                                                                                                                                                          List.drop firstDrop first = List.drop nextDrop next ↔ ∀ (index : ℕ), CLCellRows.paddedAtom first (firstDrop + index) = CLCellRows.paddedAtom next (nextDrop + index)

                                                                                                                                                                                                                                                                                                                                                          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
                                                                                                                                                                                                                                                                                                                                                              theorem GapCVP.CLFiniteShiftWindows.shiftedWindowAtom_eq_old (tm : Turing.FinTM2) (width : ℕ) (first next : List (CLBoundedStates.CellAtom tm)) (hfirstLength : first.length ≤ width) (hint : CLCompleteLocalCompiler.SingleStackHint tm) (index : Fin (width + 1)) (offset : Fin (CLLocalWindows.blockSize tm)) (hnotPrefix : ¬(↑index = 0 ∧ ↑offset < ↑hint.2.1)) :
                                                                                                                                                                                                                                                                                                                                                              CLCompleteLocalCompiler.shiftedWindowAtom tm hint (CLCompleteLocalCompiler.stackShiftWindowAt tm width first next index) offset = CLCellRows.paddedAtom first (↑index * CLLocalWindows.blockSize tm + ↑offset - ↑hint.2.1 + ↑hint.1)
                                                                                                                                                                                                                                                                                                                                                              noncomputable def GapCVP.CLExactVerifierTransition.AllVerifierStackWindows {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) (hnext : CLPushAlphabet.StackAtomSupported machine next = true) (hint : FiniteVerifierHint machine.tm) :

                                                                                                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                                @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                                                Finite memory carried by the bounded lookup machine.

                                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                                Instances For

                                                                                                                                                                                                                                                                                                                                                                  Initial state of the bounded lookup memory.

                                                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                                                    def GapCVP.CLEmittedCNFTM.advanceLookupMemory (limit : ℕ) (memory : LookupMemory limit) (bit : Bool) :

                                                                                                                                                                                                                                                                                                                                                                    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
                                                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                                                        def GapCVP.CLEmittedCNFTM.lookupMemoryOutput (limit : ℕ) (table : List Bool → Bool) (memory : LookupMemory limit) :

                                                                                                                                                                                                                                                                                                                                                                        Extract the lookup result from the final memory state.

                                                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                                                                          @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                                                          Finite machine implementing bounded lookup.

                                                                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                                                                          • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                                                                            def GapCVP.CLEmittedCNFTM.boundedLookupOutput (limit : ℕ) (table : List Bool → Bool) (input : List Bool) :

                                                                                                                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                                                                              noncomputable def GapCVP.CLEmittedCNFTM.boundedLookupComputable (limit : ℕ) (table : List Bool → Bool) :
                                                                                                                                                                                                                                                                                                                                                                              BitTM fun (input : List Bool) => [boundedLookupOutput limit table input]

                                                                                                                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLWindowTruthTable.boundedLookupOutput_of_length_le (limit : ℕ) (table : List Bool → Bool) (input : List Bool) (hinput : input.length ≤ limit) :
                                                                                                                                                                                                                                                                                                                                                                                CLEmittedCNFTM.boundedLookupOutput limit table input = table input
                                                                                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLLocalTableauCompiler.filterMap_ofFn_getElem {α : Type} (values : List α) (width : ℕ) :
                                                                                                                                                                                                                                                                                                                                                                                List.filterMap id (List.ofFn fun (index : Fin width) => values[↑index]?) = List.take width values
                                                                                                                                                                                                                                                                                                                                                                                def GapCVP.CLLocalTableauCompiler.decodedAtomBlock {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (block : CLCompleteLocalCompiler.AtomBlock machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                List (machine.tm.Γ stack)

                                                                                                                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLLocalTableauCompiler.decodedAtomBlock_canonical {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (stack : machine.tm.K) (values : List (machine.tm.Γ stack)) (hsupported : ∀ value ∈ values, CLExactStackRules.SupportedStackValue machine stack value = true) :
                                                                                                                                                                                                                                                                                                                                                                                  decodedAtomBlock machine stack (CLCompleteLocalCompiler.atomBlockAt machine.tm (CLExactStackRules.canonicalStackAtoms machine stack values hsupported) 0) = List.take (CLLocalWindows.blockSize machine.tm) values
                                                                                                                                                                                                                                                                                                                                                                                  def GapCVP.CLLocalTableauCompiler.finiteHeadConfiguration {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (control : Option machine.tm.Λ × machine.tm.σ) (heads : machine.tm.K → CLCompleteLocalCompiler.AtomBlock machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                  machine.tm.Cfg

                                                                                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                                                                    noncomputable def GapCVP.CLLocalTableauCompiler.finiteHeadQueryOf {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) :

                                                                                                                                                                                                                                                                                                                                                                                    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.

                                                                                                                                                                                                                                                                                                                                                                                      • dropped : K → ℕ

                                                                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                      • pushed (stack : K) : List (Γ stack)

                                                                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                                                                        def GapCVP.CLUnconditionalTableau.scriptStacks {K : Type} {Γ : K → Type} (original : (stack : K) → List (Γ stack)) (script : PrefixScript Γ) (stack : K) :
                                                                                                                                                                                                                                                                                                                                                                                        List (Γ stack)

                                                                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                                                                        Instances For

                                                                                                                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                                                                                          Instances For
                                                                                                                                                                                                                                                                                                                                                                                            @[simp]
                                                                                                                                                                                                                                                                                                                                                                                            theorem GapCVP.CLUnconditionalTableau.scriptStacks_empty {K : Type} {Γ : K → Type} (original : (stack : K) → List (Γ stack)) :
                                                                                                                                                                                                                                                                                                                                                                                            scriptStacks original (emptyPrefixScript Γ) = original
                                                                                                                                                                                                                                                                                                                                                                                            def GapCVP.CLUnconditionalTableau.pushPrefixScript {K : Type} {Γ : K → Type} [DecidableEq K] (script : PrefixScript Γ) (stack : K) (value : Γ stack) :

                                                                                                                                                                                                                                                                                                                                                                                            Script that pushes a prescribed prefix onto a stack.

                                                                                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                                                                                              def GapCVP.CLUnconditionalTableau.popPrefixScript {K : Type} {Γ : K → Type} [DecidableEq K] (script : PrefixScript Γ) (stack : K) :

                                                                                                                                                                                                                                                                                                                                                                                              Script that removes a prescribed prefix from a stack.

                                                                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                                                                def GapCVP.CLUnconditionalTableau.executePrefixScript {K : Type} {Γ : K → Type} {Λ σ : Type} [DecidableEq K] :
                                                                                                                                                                                                                                                                                                                                                                                                Turing.TM2.Stmt Γ Λ σ → σ → ((stack : K) → List (Γ stack)) → PrefixScript Γ → Option Λ × σ × PrefixScript Γ

                                                                                                                                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLUnconditionalTableau.executePrefixScript_correct {K : Type} {Γ : K → Type} {Λ σ : Type} [DecidableEq K] (statement : Turing.TM2.Stmt Γ Λ σ) (state : σ) (original : (stack : K) → List (Γ stack)) (script : PrefixScript Γ) :
                                                                                                                                                                                                                                                                                                                                                                                                  Turing.TM2.stepAux statement state (scriptStacks original script) = { l := (executePrefixScript statement state original script).1, var := (executePrefixScript statement state original script).2.1, stk := scriptStacks original (executePrefixScript statement state original script).2.2 }
                                                                                                                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLUnconditionalTableau.executePrefixScript_of_prefix {K : Type} {Γ : K → Type} {Λ σ : Type} [DecidableEq K] (statement : Turing.TM2.Stmt Γ Λ σ) (state : σ) (first second : (stack : K) → List (Γ stack)) (script : PrefixScript Γ) (hagreement : CLExactVerifierRules.StackPrefixAgreement (CLLocalWindows.statementStackActions statement + 1) (scriptStacks first script) (scriptStacks second script) = true) :
                                                                                                                                                                                                                                                                                                                                                                                                  executePrefixScript statement state first script = executePrefixScript statement state second script
                                                                                                                                                                                                                                                                                                                                                                                                  def GapCVP.CLGlobalTableauSimulation.finiteHeadScriptRun {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (label : machine.tm.Λ) (state : machine.tm.σ) (heads : machine.tm.K → CLCompleteLocalCompiler.AtomBlock machine.tm) :

                                                                                                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                                                                                    @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                                                                                                      noncomputable def GapCVP.CLGlobalTableauSimulation.scriptVerifierAllowed {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (query : ScriptVerifierQuery machine.tm) :

                                                                                                                                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                                                                                        theorem GapCVP.CLGlobalTableauSimulation.scriptVerifierAllowed_iff {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (query : ScriptVerifierQuery machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                                        scriptVerifierAllowed machine query = true ↔ ∃ (label : machine.tm.Λ), query.1.1.1 = some label ∧ have run := finiteHeadScriptRun machine label query.1.1.2 query.1.2.1; run.1 = query.1.2.2.1 ∧ run.2.1 = query.1.2.2.2 ∧ ∀ (stack : machine.tm.K), ↑(query.2.2 stack).1 = run.2.2.dropped stack ∧ ↑(query.2.2 stack).2.1 = (run.2.2.pushed stack).length ∧ List.take (run.2.2.pushed stack).length (CLLocalTableauCompiler.decodedAtomBlock machine stack (query.2.1 stack)) = run.2.2.pushed stack
                                                                                                                                                                                                                                                                                                                                                                                                        noncomputable def GapCVP.CLGlobalTableauSimulation.scriptVerifierQueryOf {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) (hnext : CLPushAlphabet.StackAtomSupported machine next = true) (hint : CLExactVerifierTransition.FiniteVerifierHint machine.tm) :

                                                                                                                                                                                                                                                                                                                                                                                                        GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                        Equations
                                                                                                                                                                                                                                                                                                                                                                                                        • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                        Instances For
                                                                                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLGlobalTableauSimulation.configuration_eq_of_components (tm : Turing.FinTM2) (first next : tm.Cfg) (hlabel : first.l = next.l) (hstate : first.var = next.var) (hstacks : first.stk = next.stk) :
                                                                                                                                                                                                                                                                                                                                                                                                          first = next
                                                                                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLGlobalTableauSimulation.actualStep_of_stepAux (tm : Turing.FinTM2) (first next : tm.Cfg) (label : tm.Λ) (hlabel : first.l = some label) (haux : Turing.TM2.stepAux (tm.m label) first.var first.stk = next) :
                                                                                                                                                                                                                                                                                                                                                                                                          tm.step first = some next
                                                                                                                                                                                                                                                                                                                                                                                                          theorem GapCVP.CLGlobalTableauSimulation.actualStep_iff_finite_script_and_windows {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) (hnext : CLPushAlphabet.StackAtomSupported machine next = true) (hfirstLength : ∀ (stack : machine.tm.K), (first.stk stack).length ≤ width) (hnextLength : ∀ (stack : machine.tm.K), (next.stk stack).length ≤ width) :
                                                                                                                                                                                                                                                                                                                                                                                                          machine.tm.step first = some next ↔ ∃ (hint : CLExactVerifierTransition.FiniteVerifierHint machine.tm), scriptVerifierAllowed machine (scriptVerifierQueryOf machine first next hfirst hnext hint) = true ∧ CLExactVerifierTransition.AllVerifierStackWindows machine width first next hfirst hnext hint = true

                                                                                                                                                                                                                                                                                                                                                                                                          GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                          Equations
                                                                                                                                                                                                                                                                                                                                                                                                          Instances For

                                                                                                                                                                                                                                                                                                                                                                                                            GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                            Equations
                                                                                                                                                                                                                                                                                                                                                                                                            • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                            Instances For
                                                                                                                                                                                                                                                                                                                                                                                                              @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                                                                                              Internal support shared across GapCVP continuation modules.

                                                                                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                @[reducible, inline]

                                                                                                                                                                                                                                                                                                                                                                                                                GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                  def GapCVP.CLTableauSimulationCert.scriptBlockWindowAt (tm : Turing.FinTM2) (width : ℕ) (first next : ScriptBlockRow tm width) (index : Fin (width + 1)) :

                                                                                                                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                  Equations
                                                                                                                                                                                                                                                                                                                                                                                                                  • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                  Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                    noncomputable def GapCVP.CLTableauSimulationCert.canonicalVerifyingRow {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (configuration : machine.tm.Cfg) (hsupported : CLPushAlphabet.StackAtomSupported machine configuration = true) :
                                                                                                                                                                                                                                                                                                                                                                                                                    CLCellRows.CellRow machine.tm width

                                                                                                                                                                                                                                                                                                                                                                                                                    GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                    Equations
                                                                                                                                                                                                                                                                                                                                                                                                                    • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                    Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                      theorem GapCVP.CLTableauSimulationCert.stackAtomsOfBlock_pack_canonical {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (configuration : machine.tm.Cfg) (hsupported : CLPushAlphabet.StackAtomSupported machine configuration = true) (hstackLength : ∀ (stack : machine.tm.K), (configuration.stk stack).length ≤ width) (index : Fin (width + 1)) (stack : machine.tm.K) :
                                                                                                                                                                                                                                                                                                                                                                                                                      stackAtomsOfBlock machine.tm (CLLocalWindows.packRow machine.tm width (canonicalVerifyingRow machine width certificate configuration hsupported) index) stack = CLCompleteLocalCompiler.atomBlockAt machine.tm (CLExactStackRules.canonicalStackAtoms machine stack (configuration.stk stack) ⋯) ↑index
                                                                                                                                                                                                                                                                                                                                                                                                                      noncomputable def GapCVP.CLTableauSimulationCert.canonicalScriptBlockRow {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (configuration : machine.tm.Cfg) (hsupported : CLPushAlphabet.StackAtomSupported machine configuration = true) (hint : CLExactVerifierTransition.FiniteVerifierHint machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                                                      ScriptBlockRow machine.tm width

                                                                                                                                                                                                                                                                                                                                                                                                                      GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                      Equations
                                                                                                                                                                                                                                                                                                                                                                                                                      • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                      Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                        theorem GapCVP.CLTableauSimulationCert.machineControlOfBlock_pack_canonical {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (configuration : machine.tm.Cfg) (hsupported : CLPushAlphabet.StackAtomSupported machine configuration = true) :
                                                                                                                                                                                                                                                                                                                                                                                                                        machineControlOfBlock machine.tm (CLLocalWindows.packRow machine.tm width (canonicalVerifyingRow machine width certificate configuration hsupported) 0) = some (configuration.l, configuration.var)

                                                                                                                                                                                                                                                                                                                                                                                                                        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
                                                                                                                                                                                                                                                                                                                                                                                                                              noncomputable def GapCVP.CLTableauSimulationCert.scriptBlockAllowed {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (window : ScriptBlockWindow machine.tm) :

                                                                                                                                                                                                                                                                                                                                                                                                                              GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                              Equations
                                                                                                                                                                                                                                                                                                                                                                                                                              • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                              Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLTableauSimulationCert.scriptBlockAllowed_iff {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (window : ScriptBlockWindow machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                                                                scriptBlockAllowed machine window = true ↔ ScriptBlockCoherent machine.tm window = true ∧ ∃ (query : CLGlobalTableauSimulation.ScriptVerifierQuery machine.tm), scriptQueryOfBlockWindow machine window = some query ∧ CLGlobalTableauSimulation.scriptVerifierAllowed machine query = true ∧ ∀ (stack : machine.tm.K), CLCompleteLocalCompiler.stackShiftAllowed machine.tm (window.2.1.2.1 stack) (stackWindowOfScriptBlock machine.tm window stack) = true
                                                                                                                                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLTableauSimulationCert.canonicalScriptBlockWindows_iff {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) (hnext : CLPushAlphabet.StackAtomSupported machine next = true) (hfirstLength : ∀ (stack : machine.tm.K), (first.stk stack).length ≤ width) (hnextLength : ∀ (stack : machine.tm.K), (next.stk stack).length ≤ width) (firstHint nextHint : CLExactVerifierTransition.FiniteVerifierHint machine.tm) :
                                                                                                                                                                                                                                                                                                                                                                                                                                (∀ (index : Fin (width + 1)), scriptBlockAllowed machine (scriptBlockWindowAt machine.tm width (canonicalScriptBlockRow machine width certificate first hfirst firstHint) (canonicalScriptBlockRow machine width certificate next hnext nextHint) index) = true) ↔ CLGlobalTableauSimulation.scriptVerifierAllowed machine (CLGlobalTableauSimulation.scriptVerifierQueryOf machine first next hfirst hnext firstHint) = true ∧ CLExactVerifierTransition.AllVerifierStackWindows machine width first next hfirst hnext firstHint = true
                                                                                                                                                                                                                                                                                                                                                                                                                                theorem GapCVP.CLTableauSimulationCert.actualStep_iff_canonical_block_windows {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (width : ℕ) (certificate : List Bool) (first next : machine.tm.Cfg) (hfirst : CLPushAlphabet.StackAtomSupported machine first = true) (hnext : CLPushAlphabet.StackAtomSupported machine next = true) (hfirstLength : ∀ (stack : machine.tm.K), (first.stk stack).length ≤ width) (hnextLength : ∀ (stack : machine.tm.K), (next.stk stack).length ≤ width) :
                                                                                                                                                                                                                                                                                                                                                                                                                                machine.tm.step first = some next ↔ ∃ (firstHint : CLExactVerifierTransition.FiniteVerifierHint machine.tm) (nextHint : CLExactVerifierTransition.FiniteVerifierHint machine.tm), ∀ (index : Fin (width + 1)), scriptBlockAllowed machine (scriptBlockWindowAt machine.tm width (canonicalScriptBlockRow machine width certificate first hfirst firstHint) (canonicalScriptBlockRow machine width certificate next hnext nextHint) index) = true

                                                                                                                                                                                                                                                                                                                                                                                                                                Internal support shared across GapCVP continuation modules.

                                                                                                                                                                                                                                                                                                                                                                                                                                Equations
                                                                                                                                                                                                                                                                                                                                                                                                                                • One or more equations did not get rendered due to their size.
                                                                                                                                                                                                                                                                                                                                                                                                                                Instances For
                                                                                                                                                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLVerifierPhaseCert.configurationTrace_stackAtomSupported {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) (x certificate : List Bool) {output : List (machine.tm.Γ machine.tm.k₁)} {steps : ℕ} (trace : CLVerifier.ConfigurationTrace machine.tm (CLVerifier.verifierInput machine x certificate) output steps) (time : Fin (steps + 1)) :
                                                                                                                                                                                                                                                                                                                                                                                                                                  theorem GapCVP.CLVerifierPhaseCert.acceptedExecution_stack_length_le_rowWidth (bound : Polynomial ℕ) {verifier : List Bool × List Bool → Bool} (machine : VerifierTM verifier) {x : List Bool} (execution : CLVerifier.AcceptedExecution bound machine x) (time : Fin (execution.steps + 1)) (stack : machine.tm.K) :
                                                                                                                                                                                                                                                                                                                                                                                                                                  ((execution.trace.configuration time).stk stack).length ≤ CLCellRowBounds.rowWidth bound machine x

                                                                                                                                                                                                                                                                                                                                                                                                                                  GapCVP reduction support.

                                                                                                                                                                                                                                                                                                                                                                                                                                  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.
                                                                                                                                                                                                                                                                                                                                                                                                                                      Instances For