summaryrefslogtreecommitdiff
path: root/src/theory
diff options
context:
space:
mode:
authorlianah <lianahady@gmail.com>2014-06-15 21:33:51 -0400
committerlianah <lianahady@gmail.com>2014-06-15 21:34:19 -0400
commitf7118b28977ba3e1460456824539e97592df7960 (patch)
tree2bb81c6888ff43582c25ea52fbf159f2c9c585b6 /src/theory
parent1a9736b35db944f73a95bf98d800ebae8e435a92 (diff)
core solver fix
Diffstat (limited to 'src/theory')
-rw-r--r--src/theory/bv/bv_subtheory_core.cpp4
-rw-r--r--src/theory/bv/slicer.cpp2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/theory/bv/bv_subtheory_core.cpp b/src/theory/bv/bv_subtheory_core.cpp
index ca414a2ff..179f3a44d 100644
--- a/src/theory/bv/bv_subtheory_core.cpp
+++ b/src/theory/bv/bv_subtheory_core.cpp
@@ -172,6 +172,10 @@ bool CoreSolver::check(Theory::Effort e) {
bool ok = true;
std::vector<Node> core_eqs;
TNodeBoolMap seen;
+ // slicer does not deal with cardinality constraints yet
+ if (d_useSlicer) {
+ d_isComplete = false;
+ }
while (! done()) {
TNode fact = get();
if (d_isComplete && !isCompleteForTerm(fact, seen)) {
diff --git a/src/theory/bv/slicer.cpp b/src/theory/bv/slicer.cpp
index 0644900fa..c37c8089d 100644
--- a/src/theory/bv/slicer.cpp
+++ b/src/theory/bv/slicer.cpp
@@ -498,7 +498,7 @@ bool Slicer::isCoreTerm(TNode node) {
if (d_coreTermCache.find(node) == d_coreTermCache.end()) {
Kind kind = node.getKind();
bool not_core;
- if (options::bitvectorEqualitySlicer()) {
+ if (options::bitvectorEqualitySlicer() != BITVECTOR_SLICER_OFF) {
not_core = (kind != kind::BITVECTOR_EXTRACT && kind != kind::BITVECTOR_CONCAT);
} else {
not_core = true;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback