diff options
author | Liana Hadarean <lianahady@gmail.com> | 2012-05-08 21:54:55 +0000 |
---|---|---|
committer | Liana Hadarean <lianahady@gmail.com> | 2012-05-08 21:54:55 +0000 |
commit | 8a0c0562cb8d0e26ea019ff782b25c1997a49a0b (patch) | |
tree | 28239db9bcb26b03d893ad61dd1a7ea099391fbe /test | |
parent | 5082cb8349efbb287084293cd4bc6c3fa5a34f26 (diff) |
Merging in bvprop branch, with proper bit-vector propagation.
This should also fix bug 325.
Diffstat (limited to 'test')
-rw-r--r-- | test/regress/regress0/aufbv/fuzz00.smt | 147 | ||||
-rw-r--r-- | test/regress/regress0/bv/Makefile.am | 16 | ||||
-rw-r--r-- | test/regress/regress0/bv/fuzz10.smt | 7 | ||||
-rw-r--r-- | test/regress/regress0/bv/fuzz11.smt | 15 | ||||
-rw-r--r-- | test/regress/regress0/bv/fuzz12.smt | 57 | ||||
-rw-r--r-- | test/regress/regress0/bv/fuzz13.smt | 23 | ||||
-rw-r--r-- | test/regress/regress0/bv/fuzz14.smt | 43 | ||||
-rw-r--r-- | test/unit/theory/theory_bv_white.h | 18 |
8 files changed, 316 insertions, 10 deletions
diff --git a/test/regress/regress0/aufbv/fuzz00.smt b/test/regress/regress0/aufbv/fuzz00.smt new file mode 100644 index 000000000..36322112e --- /dev/null +++ b/test/regress/regress0/aufbv/fuzz00.smt @@ -0,0 +1,147 @@ +(benchmark fuzzsmt +:logic QF_AUFBV +:status unknown +:extrafuns ((v0 BitVec[2])) +:extrafuns ((v1 BitVec[11])) +:extrafuns ((a2 Array[5:15])) +:formula +(let (?e3 bv270[9]) +(let (?e4 bv10435[15]) +(let (?e5 (ite (bvugt ?e4 ?e4) bv1[1] bv0[1])) +(let (?e6 (bvsub (sign_extend[13] v0) ?e4)) +(let (?e7 (ite (= bv1[1] (extract[0:0] v1)) ?e4 (sign_extend[6] ?e3))) +(let (?e8 (store a2 (extract[8:4] ?e3) ?e4)) +(let (?e9 (store ?e8 (extract[7:3] ?e3) ?e6)) +(let (?e10 (select ?e8 (extract[6:2] ?e3))) +(let (?e11 (select ?e9 (extract[9:5] ?e10))) +(let (?e12 (select ?e8 (extract[6:2] v1))) +(let (?e13 (store ?e8 (extract[4:0] ?e7) (zero_extend[13] v0))) +(let (?e14 (select ?e8 (extract[4:0] ?e10))) +(let (?e15 (store a2 (extract[6:2] ?e3) ?e6)) +(let (?e16 (select ?e13 (zero_extend[4] ?e5))) +(let (?e17 (ite (= ?e4 ?e16) bv1[1] bv0[1])) +(let (?e18 (bvnor (zero_extend[6] ?e3) ?e14)) +(let (?e19 (ite (bvsgt ?e14 ?e16) bv1[1] bv0[1])) +(let (?e20 (bvashr ?e7 (zero_extend[13] v0))) +(let (?e21 (extract[12:1] ?e11)) +(let (?e22 (ite (bvuge ?e10 (sign_extend[14] ?e19)) bv1[1] bv0[1])) +(let (?e23 (bvmul (sign_extend[1] ?e5) v0)) +(let (?e24 (zero_extend[1] ?e12)) +(let (?e25 (ite (= ?e6 ?e11) bv1[1] bv0[1])) +(let (?e26 (ite (bvslt v1 (sign_extend[10] ?e5)) bv1[1] bv0[1])) +(flet ($e27 (= ?e7 (zero_extend[14] ?e17))) +(flet ($e28 (= ?e24 (zero_extend[15] ?e26))) +(flet ($e29 (= ?e19 ?e5)) +(flet ($e30 (= (sign_extend[15] ?e19) ?e24)) +(flet ($e31 (= ?e3 (zero_extend[7] ?e23))) +(flet ($e32 (= ?e11 (zero_extend[14] ?e19))) +(flet ($e33 (= ?e12 (sign_extend[4] v1))) +(flet ($e34 (= (zero_extend[14] ?e25) ?e14)) +(flet ($e35 (= ?e12 (sign_extend[14] ?e19))) +(flet ($e36 (= (zero_extend[14] ?e25) ?e12)) +(flet ($e37 (= (zero_extend[14] ?e5) ?e18)) +(flet ($e38 (= ?e16 (sign_extend[14] ?e22))) +(flet ($e39 (= ?e24 (sign_extend[4] ?e21))) +(flet ($e40 (= (zero_extend[8] ?e22) ?e3)) +(flet ($e41 (= ?e11 ?e10)) +(flet ($e42 (= (sign_extend[14] ?e26) ?e18)) +(flet ($e43 (= ?e18 ?e11)) +(flet ($e44 (= (zero_extend[10] ?e19) v1)) +(flet ($e45 (= ?e25 ?e22)) +(flet ($e46 (= ?e11 (zero_extend[14] ?e25))) +(flet ($e47 (= (zero_extend[6] ?e3) ?e6)) +(flet ($e48 (= ?e7 (zero_extend[6] ?e3))) +(flet ($e49 (= ?e24 (zero_extend[15] ?e19))) +(flet ($e50 (= (sign_extend[14] ?e19) ?e11)) +(flet ($e51 (= (sign_extend[14] ?e22) ?e6)) +(flet ($e52 (= v1 (zero_extend[2] ?e3))) +(flet ($e53 (= v1 v1)) +(flet ($e54 (= (sign_extend[1] ?e5) ?e23)) +(flet ($e55 (= ?e6 (zero_extend[4] v1))) +(flet ($e56 (= (zero_extend[14] ?e22) ?e4)) +(flet ($e57 (= ?e24 (zero_extend[15] ?e22))) +(flet ($e58 (= (zero_extend[13] v0) ?e11)) +(flet ($e59 (= ?e3 (sign_extend[7] ?e23))) +(flet ($e60 (= (zero_extend[14] ?e26) ?e10)) +(flet ($e61 (= (sign_extend[7] ?e3) ?e24)) +(flet ($e62 (= ?e23 (sign_extend[1] ?e17))) +(flet ($e63 (= (sign_extend[1] ?e10) ?e24)) +(flet ($e64 (= ?e3 (zero_extend[7] v0))) +(flet ($e65 (= (zero_extend[1] ?e11) ?e24)) +(flet ($e66 (= (sign_extend[14] ?e22) ?e14)) +(flet ($e67 (= (zero_extend[13] ?e23) ?e10)) +(flet ($e68 (= (zero_extend[6] ?e3) ?e6)) +(flet ($e69 (= ?e22 ?e25)) +(flet ($e70 (= ?e26 ?e22)) +(flet ($e71 (= ?e4 ?e7)) +(flet ($e72 (= ?e7 (zero_extend[14] ?e26))) +(flet ($e73 (= ?e14 (sign_extend[4] v1))) +(flet ($e74 (= ?e4 ?e10)) +(flet ($e75 (= ?e17 ?e5)) +(flet ($e76 (= ?e6 (sign_extend[14] ?e5))) +(flet ($e77 (= (zero_extend[14] ?e17) ?e16)) +(flet ($e78 (= ?e11 (sign_extend[14] ?e26))) +(flet ($e79 (= ?e12 (sign_extend[13] v0))) +(flet ($e80 (= ?e17 ?e5)) +(flet ($e81 (= (sign_extend[13] v0) ?e20)) +(flet ($e82 (implies $e64 $e68)) +(flet ($e83 (iff $e72 $e77)) +(flet ($e84 (and $e51 $e34)) +(flet ($e85 (implies $e76 $e80)) +(flet ($e86 (or $e59 $e58)) +(flet ($e87 (iff $e49 $e52)) +(flet ($e88 (xor $e55 $e60)) +(flet ($e89 (not $e50)) +(flet ($e90 (and $e41 $e47)) +(flet ($e91 (if_then_else $e39 $e46 $e78)) +(flet ($e92 (or $e56 $e44)) +(flet ($e93 (not $e82)) +(flet ($e94 (implies $e42 $e71)) +(flet ($e95 (if_then_else $e93 $e63 $e36)) +(flet ($e96 (if_then_else $e75 $e83 $e74)) +(flet ($e97 (iff $e30 $e29)) +(flet ($e98 (implies $e40 $e84)) +(flet ($e99 (if_then_else $e45 $e48 $e70)) +(flet ($e100 (xor $e95 $e33)) +(flet ($e101 (iff $e99 $e96)) +(flet ($e102 (xor $e81 $e98)) +(flet ($e103 (not $e62)) +(flet ($e104 (if_then_else $e90 $e31 $e90)) +(flet ($e105 (not $e61)) +(flet ($e106 (or $e37 $e102)) +(flet ($e107 (iff $e28 $e89)) +(flet ($e108 (not $e35)) +(flet ($e109 (if_then_else $e67 $e38 $e27)) +(flet ($e110 (implies $e108 $e57)) +(flet ($e111 (and $e79 $e94)) +(flet ($e112 (not $e101)) +(flet ($e113 (iff $e66 $e66)) +(flet ($e114 (not $e86)) +(flet ($e115 (iff $e85 $e112)) +(flet ($e116 (and $e54 $e111)) +(flet ($e117 (iff $e53 $e106)) +(flet ($e118 (if_then_else $e105 $e107 $e104)) +(flet ($e119 (implies $e91 $e91)) +(flet ($e120 (if_then_else $e97 $e100 $e110)) +(flet ($e121 (or $e65 $e117)) +(flet ($e122 (iff $e87 $e116)) +(flet ($e123 (if_then_else $e109 $e92 $e32)) +(flet ($e124 (iff $e103 $e73)) +(flet ($e125 (iff $e88 $e114)) +(flet ($e126 (not $e43)) +(flet ($e127 (xor $e121 $e115)) +(flet ($e128 (or $e122 $e126)) +(flet ($e129 (xor $e69 $e118)) +(flet ($e130 (if_then_else $e123 $e127 $e125)) +(flet ($e131 (or $e120 $e124)) +(flet ($e132 (implies $e113 $e113)) +(flet ($e133 (not $e132)) +(flet ($e134 (implies $e128 $e119)) +(flet ($e135 (implies $e133 $e134)) +(flet ($e136 (and $e131 $e135)) +(flet ($e137 (xor $e129 $e136)) +(flet ($e138 (or $e130 $e130)) +(flet ($e139 (or $e138 $e137)) +$e139 +)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + diff --git a/test/regress/regress0/bv/Makefile.am b/test/regress/regress0/bv/Makefile.am index 7b9ff2efc..5048ca680 100644 --- a/test/regress/regress0/bv/Makefile.am +++ b/test/regress/regress0/bv/Makefile.am @@ -14,7 +14,21 @@ MAKEFLAGS = -k # put it below in "TESTS +=" # Regression tests for SMT inputs -SMT_TESTS = +SMT_TESTS = \ + fuzz01.smt \ + fuzz02.smt \ + fuzz03.smt \ + fuzz04.smt \ + fuzz05.smt \ + fuzz06.smt \ + fuzz07.smt \ + fuzz08.smt \ + fuzz09.smt \ + fuzz10.smt \ + fuzz11.smt \ + fuzz12.smt \ + fuzz13.smt \ + fuzz14.smt # Regression tests for SMT2 inputs SMT2_TESTS = diff --git a/test/regress/regress0/bv/fuzz10.smt b/test/regress/regress0/bv/fuzz10.smt new file mode 100644 index 000000000..859c1ec5b --- /dev/null +++ b/test/regress/regress0/bv/fuzz10.smt @@ -0,0 +1,7 @@ +(benchmark fuzzsmt +:logic QF_BV +:extrafuns ((v0 BitVec[1])) +:status unsat:formula +(flet ($n1 (bvsgt v0 v0)) +$n1 +)) diff --git a/test/regress/regress0/bv/fuzz11.smt b/test/regress/regress0/bv/fuzz11.smt new file mode 100644 index 000000000..b789d40dc --- /dev/null +++ b/test/regress/regress0/bv/fuzz11.smt @@ -0,0 +1,15 @@ +(benchmark fuzzsmt +:logic QF_BV +:extrafuns ((v0 BitVec[11])) +:status unsat +:formula +(let (?n1 bv0[16]) +(let (?n2 (zero_extend[5] v0)) +(flet ($n3 (bvsge ?n1 ?n2)) +(let (?n4 bv1[1]) +(let (?n5 bv0[1]) +(let (?n6 (ite $n3 ?n4 ?n5)) +(let (?n7 (zero_extend[10] ?n6)) +(flet ($n8 (= v0 ?n7)) +$n8 +))))))))) diff --git a/test/regress/regress0/bv/fuzz12.smt b/test/regress/regress0/bv/fuzz12.smt new file mode 100644 index 000000000..017732c4d --- /dev/null +++ b/test/regress/regress0/bv/fuzz12.smt @@ -0,0 +1,57 @@ +(benchmark fuzzsmt +:logic QF_BV +:extrafuns ((v1 BitVec[9])) +:extrafuns ((v2 BitVec[10])) +:extrafuns ((v0 BitVec[3])) +:status sat +:formula +(let (?n1 bv1[3]) +(flet ($n2 (= ?n1 v0)) +(let (?n3 bv0[9]) +(let (?n4 bv1[1]) +(let (?n5 (sign_extend[2] v2)) +(let (?n6 (extract[9:9] ?n5)) +(flet ($n7 (= ?n4 ?n6)) +(let (?n8 (bvneg v1)) +(let (?n9 bv1[11]) +(let (?n10 (zero_extend[8] v0)) +(flet ($n11 (bvsgt ?n9 ?n10)) +(let (?n12 bv0[1]) +(let (?n13 (ite $n11 ?n4 ?n12)) +(let (?n14 (zero_extend[8] ?n13)) +(let (?n15 (ite $n7 ?n8 ?n14)) +(flet ($n16 (= ?n3 ?n15)) +(let (?n17 bv1[12]) +(let (?n18 (zero_extend[3] v1)) +(flet ($n19 (bvult ?n17 ?n18)) +(let (?n20 (ite $n19 ?n4 ?n12)) +(let (?n21 (zero_extend[1] v1)) +(let (?n22 (bvlshr v2 ?n21)) +(let (?n23 (zero_extend[2] ?n22)) +(let (?n24 bv0[12]) +(flet ($n25 (= ?n23 ?n24)) +(let (?n26 (ite $n25 ?n4 ?n12)) +(flet ($n27 (= ?n20 ?n26)) +(flet ($n28 (or $n16 $n27)) +(let (?n29 (sign_extend[9] v0)) +(flet ($n30 (= ?n24 ?n29)) +(let (?n31 bv0[10]) +(let (?n32 (rotate_left[3] ?n8)) +(let (?n33 (zero_extend[1] ?n32)) +(let (?n34 (bvmul ?n22 ?n33)) +(let (?n35 (bvcomp ?n31 ?n34)) +(flet ($n36 (= ?n4 ?n35)) +(let (?n37 bv1[9]) +(let (?n38 (bvadd v1 ?n37)) +(let (?n39 (zero_extend[6] v0)) +(flet ($n40 (bvsge ?n38 ?n39)) +(let (?n41 (ite $n40 ?n4 ?n12)) +(let (?n42 (bvnor ?n41 ?n41)) +(flet ($n43 (= ?n4 ?n42)) +(let (?n44 (ite $n43 ?n31 ?n22)) +(flet ($n45 (= ?n31 ?n44)) +(flet ($n46 (if_then_else $n30 $n36 $n45)) +(flet ($n47 (xor $n28 $n46)) +(flet ($n48 (implies $n2 $n47)) +$n48 +))))))))))))))))))))))))))))))))))))))))))))))))) diff --git a/test/regress/regress0/bv/fuzz13.smt b/test/regress/regress0/bv/fuzz13.smt new file mode 100644 index 000000000..6d84c00cb --- /dev/null +++ b/test/regress/regress0/bv/fuzz13.smt @@ -0,0 +1,23 @@ +(benchmark fuzzsmt +:logic QF_BV +:extrafuns ((v1 BitVec[13])) +:status sat +:formula +(let (?n1 bv1[13]) +(flet ($n2 (bvult v1 ?n1)) +(let (?n3 bv1[1]) +(let (?n4 bv0[1]) +(let (?n5 (ite $n2 ?n3 ?n4)) +(let (?n6 (zero_extend[12] ?n5)) +(flet ($n7 (bvuge ?n6 v1)) +(let (?n8 (ite $n7 ?n3 ?n4)) +(let (?n9 (zero_extend[12] ?n8)) +(flet ($n10 (bvult ?n9 ?n1)) +(let (?n11 (ite $n10 ?n3 ?n4)) +(let (?n12 (sign_extend[5] ?n5)) +(let (?n13 bv0[6]) +(flet ($n14 (bvsgt ?n12 ?n13)) +(let (?n15 (ite $n14 ?n3 ?n4)) +(flet ($n16 (= ?n11 ?n15)) +$n16 +))))))))))))))))) diff --git a/test/regress/regress0/bv/fuzz14.smt b/test/regress/regress0/bv/fuzz14.smt new file mode 100644 index 000000000..51a7b7cad --- /dev/null +++ b/test/regress/regress0/bv/fuzz14.smt @@ -0,0 +1,43 @@ +(benchmark fuzzsmt +:logic QF_BV +:extrafuns ((v2 BitVec[13])) +:extrafuns ((v1 BitVec[2])) +:status sat +:formula +(let (?n1 bv1[1]) +(let (?n2 bv0[2]) +(flet ($n3 (bvsge ?n2 v1)) +(let (?n4 bv0[1]) +(let (?n5 (ite $n3 ?n1 ?n4)) +(flet ($n6 (= ?n1 ?n5)) +(let (?n7 bv0[13]) +(flet ($n8 (bvslt ?n7 v2)) +(let (?n9 (ite $n8 ?n1 ?n4)) +(let (?n10 (bvneg ?n9)) +(let (?n11 (ite $n6 ?n10 ?n9)) +(let (?n12 (zero_extend[12] ?n11)) +(flet ($n13 (= v2 ?n12)) +(flet ($n14 (= ?n1 ?n9)) +(flet ($n15 (and $n13 $n14)) +(flet ($n16 (not $n15)) +(let (?n17 (bvashr v2 v2)) +(let (?n18 (bvshl v2 ?n17)) +(flet ($n19 (= ?n7 ?n18)) +(let (?n20 bv1[13]) +(let (?n21 (bvsub ?n20 v2)) +(flet ($n22 (= ?n17 ?n21)) +(let (?n23 bv1[10]) +(let (?n24 (sign_extend[9] ?n11)) +(flet ($n25 (= ?n23 ?n24)) +(flet ($n26 (if_then_else $n19 $n22 $n25)) +(flet ($n27 (bvult ?n10 ?n1)) +(let (?n28 (ite $n27 ?n1 ?n4)) +(flet ($n29 (= ?n11 ?n28)) +(let (?n30 bv0[4]) +(let (?n31 (sign_extend[3] ?n11)) +(flet ($n32 (= ?n30 ?n31)) +(flet ($n33 (implies $n29 $n32)) +(flet ($n34 (if_then_else $n26 $n33 $n26)) +(flet ($n35 (implies $n16 $n34)) +$n35 +)))))))))))))))))))))))))))))))))))) diff --git a/test/unit/theory/theory_bv_white.h b/test/unit/theory/theory_bv_white.h index 1a91364a4..bbc7a8f72 100644 --- a/test/unit/theory/theory_bv_white.h +++ b/test/unit/theory/theory_bv_white.h @@ -53,23 +53,23 @@ public: void setUp() { - d_ctxt = new Context(); - d_nm = new NodeManager(d_ctxt, NULL); - d_scope = new NodeManagerScope(d_nm); + // d_ctxt = new Context(); + // d_nm = new NodeManager(d_ctxt, NULL); + // d_scope = new NodeManagerScope(d_nm); } void tearDown() { - delete d_scope; - delete d_nm; - delete d_ctxt; + // delete d_scope; + // delete d_nm; + // delete d_ctxt; } void testBitblasterCore() { // ClauseManager tests - Context* ctx = new Context(); - Bitblaster* bb = new Bitblaster(ctx); + // Context* ctx = new Context(); + // Bitblaster* bb = new Bitblaster(ctx); // NodeManager* nm = NodeManager::currentNM(); // TODO: update this @@ -110,7 +110,7 @@ public: // res = bb->solve(); // TS_ASSERT(res == false); - delete bb; + //delete bb; } |