Package-level declarations
Types
Functions
(extract (concat a b)) ==> (concat (extract a) (extract b))
Eval integer div wrt Int theory rules.
Eval integer mod wrt Int theory rules.
Eval integer rem wrt Int theory rules.
(= (concat a b) c) ==> (and (= a (extract (0, ) c)) (= b (extract (, + ) c)) )
(rotateLeft a x) ==> (concat (extract size-1-x:0 a) (extract size-1:size-x a))
(rotateRight a x) ==> (rotateLeft a (- size x))
(ite c true e) ==> (or c e) (ite c false e) ==> (and (not c) e) (ite c t true) ==> (or (not c) t) (ite c t false) ==> (and c t)
(ite c t c) ==> (and c t) (ite c c e) ==> (or c e)
(concat const1 (concat const2 a)) ==> (concat (concat const1 const2) a) (concat (concat a const1) const2) ==> (concat a (concat const1 const2))
(extracthigh:low (extract_:nestedLow x)) ==> (extracthigh+nestedLow : low+nestedLow x)
(bvlshr x shift) ==> (concat 0.shift.0 (extract size-1:shift x))
(bvnot (concat a b)) ==> (concat (bvnot a) (bvnot b))
(bvshl x shift) ==> (concat (extract size-1-shift:0 x) 0.shift.0)
(bvshl (bvshl x nestedShift) shift) ==> (ite (bvule nestedShift (+ nestedShift shift)) (bvshl x (+ nestedShift shift)) 0)
(urem a x), x == 2^n ==> (concat 0 (extract n-1:0 a))
Specialized version of simplifyExpr for expressions which are always rewritten with another expression on the preprocess stage.
Specialized version of simplifyExpr for expressions with a single argument.
Simplify an expression. preprocess Rewrite an expression before simplification of an args (top-down). simplifier Rewrite an expression after args simplification (bottom-up).
Specialized version of simplifyExpr for expressions with two arguments.
Specialized version of simplifyExpr for expressions with three arguments.
Specialized version of simplifyExpr for expressions with four arguments.
Specialized version of simplifyExpr for expressions with five arguments.
Simplify an expression.
(bvand (concat a b) c) ==> (concat (bvand (extract (0, ) c)) (bvand b (extract (, + ) c)) )
(bvor (concat a b) c) ==> (concat (bvor (extract (0, ) c)) (bvor b (extract (, + ) c)) )
(bvxor (concat a b) c) ==> (concat (bvxor (extract (0, ) c)) (bvxor b (extract (, + ) c)) )
(ite c t1 (ite c2 t1 t2)) ==> (ite (or c c2) t1 t2)
Simplify select from a chain of array store expressions.