summaryrefslogtreecommitdiff
path: root/src/theory/bv
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-06-04 22:26:40 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-06-04 22:26:40 +0000
commit3609fb41d7744b3a7d74e44f7bedc4d4c522c938 (patch)
tree011a3fa796fdb98bb3b9a1b425d12c678535f294 /src/theory/bv
parent468c5bc5d8b63ec6818813270225e09383dd79ff (diff)
Added preprocessing pass that propagates unconstrained values - solves all of
the unconstrained examples in QF_AUFBV/brummayerbiere3 - should also help generally on at least BV and maybe others. Off by default for now - results are mixed and it's hard to evaluate with so many existing assertion failures and segfaults - will re-evaluate once those are fixed
Diffstat (limited to 'src/theory/bv')
-rw-r--r--src/theory/bv/theory_bv_rewrite_rules_normalization.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/theory/bv/theory_bv_rewrite_rules_normalization.h b/src/theory/bv/theory_bv_rewrite_rules_normalization.h
index 5be052947..197134b6a 100644
--- a/src/theory/bv/theory_bv_rewrite_rules_normalization.h
+++ b/src/theory/bv/theory_bv_rewrite_rules_normalization.h
@@ -405,6 +405,9 @@ Node RewriteRule<SolveEq>::apply(TNode node) {
updateCoefMap(left[i], size, leftMap, leftConst);
}
}
+ else if (left.getKind() == kind::BITVECTOR_NOT && left[0] == right) {
+ return utils::mkFalse();
+ }
else {
updateCoefMap(left, size, leftMap, leftConst);
}
@@ -415,6 +418,9 @@ Node RewriteRule<SolveEq>::apply(TNode node) {
updateCoefMap(right[i], size, rightMap, rightConst);
}
}
+ else if (right.getKind() == kind::BITVECTOR_NOT && right[0] == left) {
+ return utils::mkFalse();
+ }
else {
updateCoefMap(right, size, rightMap, rightConst);
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback