Documentation

SSA.Experimental.Bits.AutoStructs.FormulaToAuto

@[reducible, inline]
abbrev Alphabet (arity : Type) [FinEnum arity] :
Equations
Instances For
    def finFunToBitVec {carry : Type u_1} (c : carryBool) [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)) :
      arBool
      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 2Fin (n + 2)
                        Equations
                        Instances For
                          def liftExcecpt2 (n : ) :
                          Fin nFin (n + 2)
                          Equations
                          Instances For
                            def liftMax1 (n : ) (m : ) :
                            Fin nFin (max n m)
                            Equations
                            Instances For
                              def liftMax2 (n : ) (m : ) :
                              Fin mFin (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