Documentation

SSA.Experimental.Bits.AutoStructs.FormulaToAuto

@[reducible, inline]
abbrev Alphabet (arity : Type) [FinEnum arity] :
Equations
Instances For
    def finFunToBitVec {carry : Type u_1} (c : carry → Bool) [FinEnum carry] :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def bitVecToFinFun {ar : Sort u_1} [FinEnum ar] (bv : BitVec (FinEnum.card ar)) :
      ar → Bool
      Equations
      Instances For
        def NFA.ofFSM {arity : Type} [FinEnum arity] (p : AutoStructs.FSM arity) [FinEnum p.α] :
        NFA (Alphabet arity)

        Transforms an FSM of arity k to an NFA of arity k+1. This correponds to transforming a function with k inputs and one output to a k+1-ary relation. By convention, the output is the MSB of the alphabet.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          partial def NFA.ofFSM.go {arity : Type} [FinEnum arity] (p : AutoStructs.FSM arity) [FinEnum p.α] (st : fsm.State (FinEnum.card p.α)) :
          NFA (Alphabet arity)
          def NFA.ofConst {w : ℕ} (bv : BitVec w) :
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            Equations
            • NFA.autEq = match NFA.empty.newState with | (s, m) => let m := m.addInitial s; let m := m.addFinal s; let m := m.addTrans 0 s s; let m := m.addTrans 3 s s; m
            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    def liftMaxSucc1 (n : ℕ) (m : ℕ) :
                    Fin (n + 1) → Fin (max n m + 2)
                    Equations
                    Instances For
                      def liftMaxSucc2 (n : ℕ) (m : ℕ) :
                      Fin (m + 1) → Fin (max n m + 2)
                      Equations
                      Instances For
                        def liftLast2 (n : ℕ) :
                        Fin 2 → Fin (n + 2)
                        Equations
                        Instances For
                          def liftExcecpt2 (n : ℕ) :
                          Fin n → Fin (n + 2)
                          Equations
                          Instances For
                            def liftMax1 (n : ℕ) (m : ℕ) :
                            Fin n → Fin (max n m)
                            Equations
                            Instances For
                              def liftMax2 (n : ℕ) (m : ℕ) :
                              Fin m → Fin (max n m)
                              Equations
                              Instances For
                                @[simp]
                                theorem finEnumCardFin (n : ℕ) :
                                def unopNfa {A : Type} [BEq A] [FinEnum A] [Hashable A] (op : AutoStructs.Unop) (m : NFA A) :
                                NFA A
                                Equations
                                Instances For
                                  def binopNfa {A : Type} [BEq A] [FinEnum A] [Hashable A] (op : AutoStructs.Binop) (m1 : NFA A) (m2 : NFA A) :
                                  NFA A
                                  Equations
                                  Instances For
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        axiom decision_procedure_is_correct {w : ℕ} (φ : AutoStructs.Formula) (env : ℕ → BitVec w) :
                                        formulaIsUniversal φ = true → φ.sat' env