Documentation

Lean.Meta.Tactic.Simp.BuiltinSimprocs.BitVec

structure BitVec.Literal :

A bit-vector literal

Instances For
    def BitVec.instDecidableEqLiteral.decEq (x✝ x✝¹ : Literal) :
    Decidable (x✝ = x✝¹)
    Instances For
      @[implicit_reducible]

      Try to convert OfNat.ofNat/BitVec.OfNat application into a bitvector literal.

      Instances For
        Instances For
          @[inline]
          def BitVec.reduceUnary (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec n) (e : Lean.Expr) :

          Helper function for reducing homogeneous unary bitvector operators.

          Instances For
            @[inline]
            def BitVec.reduceBin (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBitVec n) (e : Lean.Expr) :

            Helper function for reducing homogeneous binary bitvector operators.

            Instances For
              @[inline]
              def BitVec.reduceExtend (declName : Lean.Name) (op : {n : Nat} → (m : Nat) → BitVec nBitVec m) (e : Lean.Expr) :

              Simplification procedure for setWidth, zeroExtend and signExtend on BitVecs.

              Instances For
                @[inline]
                def BitVec.reduceGetBit (declName : Lean.Name) (op : {n : Nat} → BitVec nNatBool) (e : Lean.Expr) :

                Helper function for reducing bitvector functions such as getLsb and getMsb.

                Instances For
                  @[inline]
                  def BitVec.reduceShift (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nNatBitVec n) (e : Lean.Expr) :

                  Helper function for reducing bitvector functions such as shiftLeft and rotateRight.

                  Instances For
                    @[inline]

                    Helper function for reducing x <<< i and x >>> i where i is a bitvector literal, into one that is a natural number literal.

                    Instances For
                      @[inline]
                      def BitVec.reduceBinPred (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBool) (e : Lean.Expr) :

                      Helper function for reducing bitvector predicates.

                      Instances For
                        @[inline]
                        def BitVec.reduceBoolPred (declName : Lean.Name) (arity : Nat) (op : {n : Nat} → BitVec nBitVec nBool) (e : Lean.Expr) :
                        Instances For

                          Simplification procedure for negation of BitVecs.

                          Instances For

                            Simplification procedure for bitwise not of BitVecs.

                            Instances For

                              Simplification procedure for absolute value of BitVecs.

                              Instances For

                                Simplification procedure for bitwise and of BitVecs.

                                Instances For

                                  Simplification procedure for bitwise or of BitVecs.

                                  Instances For

                                    Simplification procedure for bitwise xor of BitVecs.

                                    Instances For

                                      Simplification procedure for addition of BitVecs.

                                      Instances For

                                        Simplification procedure for multiplication of BitVecs.

                                        Instances For

                                          Simplification procedure for subtraction of BitVecs.

                                          Instances For

                                            Simplification procedure for division of BitVecs.

                                            Instances For

                                              Simplification procedure for the modulo operation on BitVecs.

                                              Instances For

                                                Simplification procedure for the unsigned modulo operation on BitVecs.

                                                Instances For

                                                  Simplification procedure for unsigned division of BitVecs.

                                                  Instances For

                                                    Simplification procedure for division of BitVecs using the SMT-LIB conventions.

                                                    Instances For

                                                      Simplification procedure for the signed modulo operation on BitVecs.

                                                      Instances For

                                                        Simplification procedure for signed remainder of BitVecs.

                                                        Instances For

                                                          Simplification procedure for signed t-division of BitVecs.

                                                          Instances For

                                                            Simplification procedure for signed division of BitVecs using the SMT-LIB conventions.

                                                            Instances For

                                                              Simplification procedure for getLsb (lowest significant bit) on BitVec.

                                                              Instances For

                                                                Simplification procedure for getMsb (most significant bit) on BitVec.

                                                                Instances For

                                                                  Simplification procedure for clz (count leading zeros) on BitVec.

                                                                  Instances For

                                                                    Simplification procedure for getElem on BitVec.

                                                                    Instances For

                                                                      Simplification procedure for shift left on BitVec.

                                                                      Instances For

                                                                        Simplification procedure for unsigned shift right on BitVec.

                                                                        Instances For

                                                                          Simplification procedure for signed shift right on BitVec.

                                                                          Instances For

                                                                            Simplification procedure for shift left on BitVec.

                                                                            Instances For

                                                                              Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.

                                                                              Instances For

                                                                                Simplification procedure for shift right on BitVec.

                                                                                Instances For

                                                                                  Simplification procedure for converting a shift with a bit-vector literal into a natural number literal.

                                                                                  Instances For

                                                                                    Simplification procedure for rotate left on BitVec.

                                                                                    Instances For

                                                                                      Simplification procedure for rotate right on BitVec.

                                                                                      Instances For

                                                                                        Simplification procedure for append on BitVec.

                                                                                        Instances For

                                                                                          Simplification procedure for casting BitVecs along an equality of the size.

                                                                                          Instances For

                                                                                            Simplification procedure for BitVec.toNat.

                                                                                            Instances For

                                                                                              Simplification procedure for BitVec.toInt.

                                                                                              Instances For

                                                                                                Simplification procedure for BitVec.ofInt.

                                                                                                Instances For

                                                                                                  Simplification procedure for ensuring BitVec.ofNat literals are normalized.

                                                                                                  Instances For

                                                                                                    Simplification procedure for = on BitVecs.

                                                                                                    Instances For

                                                                                                      Simplification procedure for on BitVecs.

                                                                                                      Instances For

                                                                                                        Simplification procedure for == on BitVecs.

                                                                                                        Instances For

                                                                                                          Simplification procedure for != on BitVecs.

                                                                                                          Instances For

                                                                                                            Simplification procedure for < on BitVecs.

                                                                                                            Instances For

                                                                                                              Simplification procedure for on BitVecs.

                                                                                                              Instances For

                                                                                                                Simplification procedure for > on BitVecs.

                                                                                                                Instances For

                                                                                                                  Simplification procedure for on BitVecs.

                                                                                                                  Instances For

                                                                                                                    Simplification procedure for unsigned less than ult on BitVecs.

                                                                                                                    Instances For

                                                                                                                      Simplification procedure for unsigned less than or equal ule on BitVecs.

                                                                                                                      Instances For

                                                                                                                        Simplification procedure for signed less than slt on BitVecs.

                                                                                                                        Instances For

                                                                                                                          Simplification procedure for signed less than or equal sle on BitVecs.

                                                                                                                          Instances For

                                                                                                                            Simplification procedure for setWidth' on BitVecs.

                                                                                                                            Instances For

                                                                                                                              Simplification procedure for shiftLeftZeroExtend on BitVecs.

                                                                                                                              Instances For

                                                                                                                                Simplification procedure for extractLsb' on BitVecs.

                                                                                                                                Instances For

                                                                                                                                  Simplification procedure for replicate on BitVecs.

                                                                                                                                  Instances For

                                                                                                                                    Simplification procedure for setWidth on BitVecs.

                                                                                                                                    Instances For

                                                                                                                                      Simplification procedure for zeroExtend on BitVecs.

                                                                                                                                      Instances For

                                                                                                                                        Simplification procedure for signExtend on BitVecs.

                                                                                                                                        Instances For

                                                                                                                                          Simplification procedure for allOnes

                                                                                                                                          Instances For
                                                                                                                                            @[inline]

                                                                                                                                            Helper function for reducing (x <<< i) <<< j (and (x >>> i) >>> j) where i and j are natural number literals.

                                                                                                                                            Instances For