summaryrefslogtreecommitdiff
path: root/src/theory/arrays
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2012-04-27 19:26:01 +0000
committerClark Barrett <barrett@cs.nyu.edu>2012-04-27 19:26:01 +0000
commit0168ec9f128246d1a6a0a34f7ee59aec109b7782 (patch)
treeeae4e1fbe2970feb917c1e26b3b6036152ceca28 /src/theory/arrays
parentf813ed144b0945334e03bfd769ea3c2cf8b75843 (diff)
Fixed warning in decision_engine.h, minor tweak to caregraph function in
arrays, fixed bug with equalities between constants in shared terms database
Diffstat (limited to 'src/theory/arrays')
-rw-r--r--src/theory/arrays/theory_arrays.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/theory/arrays/theory_arrays.cpp b/src/theory/arrays/theory_arrays.cpp
index c02f90bf0..a62ebed06 100644
--- a/src/theory/arrays/theory_arrays.cpp
+++ b/src/theory/arrays/theory_arrays.cpp
@@ -637,19 +637,21 @@ void TheoryArrays::computeCareGraph()
EqualityStatus eqStatusDomain = d_valuation.getEqualityStatus(x_shared, y_shared);
switch (eqStatusDomain) {
- case EQUALITY_FALSE_AND_PROPAGATED:
- case EQUALITY_FALSE:
- continue;
- break;
case EQUALITY_TRUE_AND_PROPAGATED:
- case EQUALITY_TRUE:
// Should have been propagated to us
Assert(false);
+ break;
+ case EQUALITY_FALSE_AND_PROPAGATED:
+ // TODO: eventually this should be an Assert(false), but for now, disequalities are not propagated
continue;
break;
+ case EQUALITY_FALSE:
+ case EQUALITY_TRUE:
+ // Missed propagation - need to add the pair so that theory engine can force propagation
+ Debug("arrays::sharing") << "TheoryArrays::computeCareGraph(): missed propagation" << std::endl;
+ break;
case EQUALITY_FALSE_IN_MODEL:
- Debug("arrays::sharing") << "TheoryArrays::computeCareGraph(): false in model, skipping" << std::endl;
- continue;
+ Debug("arrays::sharing") << "TheoryArrays::computeCareGraph(): false in model" << std::endl;
break;
default:
break;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback