git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1160
e59a4935-1847-0410-ae03-
e826735625c1
--- /dev/null
+(set-logic QF_BV)
+(set-info :smt-lib-version 2.0)
+(set-info :category "check")
+(set-info :status sat)
+(declare-fun x () (_ BitVec 15))
+(declare-fun y () (_ BitVec 15))
+(declare-fun z () (_ BitVec 15))
+
+
+
+(assert (= y (bvadd x (_ bv1 15))))
+(assert (= z (bvadd y (_ bv1 15))))
+
+(assert (= (bvmul y y ) (bvadd (_ bv1 15) (bvmul x z))))
+
+
+
+(check-sat)
+(exit)
+
--- /dev/null
+(set-logic QF_BV)
+(set-info :smt-lib-version 2.0)
+(set-info :category "check")
+(set-info :status sat)
+(declare-fun x () (_ BitVec 15))
+(declare-fun y () (_ BitVec 15))
+
+
+
+; This is always true.
+(assert
+ (bvuge
+ (_ bv9 15)
+ (bvurem (bvand x y) (_ bv10 15))
+ )
+)
+
+; So unconstrained variables don't eliminate immediately.
+(assert (not (= x y)))
+
+
+
+(check-sat)
+(exit)
+
--- /dev/null
+
+(set-logic QF_BV)
+(set-info :smt-lib-version 2.0)
+(set-info :category "check")
+(set-info :status sat)
+(declare-fun v0 () (_ BitVec 20))
+(declare-fun v1 () Bool)
+
+
+(assert (or v1 (= (bvsmod v0 (bvnot v0)) (_ bv23211 20) )))
+
+
+
+
+(check-sat)
+(exit)
+
+