summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/theory/sets/theory_sets_private.cpp1
-rw-r--r--src/theory/theory_engine.cpp4
-rw-r--r--test/regress/CMakeLists.txt1
-rw-r--r--test/regress/regress1/sets/issue4124-need-check.smt213
4 files changed, 17 insertions, 2 deletions
diff --git a/src/theory/sets/theory_sets_private.cpp b/src/theory/sets/theory_sets_private.cpp
index 5558b95d4..0d1206dec 100644
--- a/src/theory/sets/theory_sets_private.cpp
+++ b/src/theory/sets/theory_sets_private.cpp
@@ -981,7 +981,6 @@ void TheorySetsPrivate::computeCareGraph()
// populate indices
for (TNode f1 : it.second)
{
- Assert(d_equalityEngine->hasTerm(f1));
Trace("sets-cg-debug") << "...build for " << f1 << std::endl;
Assert(d_equalityEngine->hasTerm(f1));
// break into index based on operator, and type of first argument (since
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp
index 0fd8347c8..9ba97fa77 100644
--- a/src/theory/theory_engine.cpp
+++ b/src/theory/theory_engine.cpp
@@ -504,7 +504,9 @@ void TheoryEngine::check(Theory::Effort effort) {
propagate(effort);
// We do combination if all has been processed and we are in fullcheck
- if (Theory::fullEffort(effort) && d_logicInfo.isSharingEnabled() && !d_factsAsserted && !d_lemmasAdded && !d_inConflict) {
+ if (Theory::fullEffort(effort) && d_logicInfo.isSharingEnabled()
+ && !d_factsAsserted && !needCheck() && !d_inConflict)
+ {
// Do the combination
Debug("theory") << "TheoryEngine::check(" << effort << "): running combination" << endl;
{
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index e158f629a..82ef8702a 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -1953,6 +1953,7 @@ set(regress_1_tests
regress1/sets/is_singleton1.smt2
regress1/sets/issue2568.smt2
regress1/sets/issue2904.smt2
+ regress1/sets/issue4124-need-check.smt2
regress1/sets/issue4391-card-lasso.smt2
regress1/sets/issue5271.smt2
regress1/sets/issue5309.smt2
diff --git a/test/regress/regress1/sets/issue4124-need-check.smt2 b/test/regress/regress1/sets/issue4124-need-check.smt2
new file mode 100644
index 000000000..3ad43ea98
--- /dev/null
+++ b/test/regress/regress1/sets/issue4124-need-check.smt2
@@ -0,0 +1,13 @@
+; COMMAND-LINE: --sets-infer-as-lemmas --simplification=none
+; EXPECT: sat
+(set-logic ALL)
+(declare-fun b () (Set (Tuple String Int)))
+(declare-fun c () (Set (Tuple Int String)))
+(declare-fun d () (Set (Tuple String String)))
+(declare-fun f () (Set Int))
+(declare-fun e () Int)
+(assert (= b (insert (mkTuple "" 1) (mkTuple "" 2) (singleton (mkTuple "" 4)))))
+(assert (= c (insert (mkTuple 1 "1") (mkTuple 2 "2") (singleton (mkTuple 7 "")))))
+(assert (= d (join b c)))
+(assert (= e (card f)))
+(check-sat)
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback