diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-04-06 07:28:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-06 07:28:59 -0500 |
commit | da03399e50e33acd4d4a6534205a67d03f44f4c1 (patch) | |
tree | 31f5fac566100968cb64267b0ce2b7ba9220fe44 | |
parent | 7f0ea0fafaca1bc40dd1f6f5891526956de857b1 (diff) |
Fix issue with lemma during equality engine iterator in sets (#6289)
Fixes #4370.
-rw-r--r-- | src/theory/sets/theory_sets_private.cpp | 4 | ||||
-rw-r--r-- | test/regress/CMakeLists.txt | 2 | ||||
-rw-r--r-- | test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 | 7 | ||||
-rw-r--r-- | test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 | 8 |
4 files changed, 21 insertions, 0 deletions
diff --git a/src/theory/sets/theory_sets_private.cpp b/src/theory/sets/theory_sets_private.cpp index ea7e773b7..bb4080578 100644 --- a/src/theory/sets/theory_sets_private.cpp +++ b/src/theory/sets/theory_sets_private.cpp @@ -286,6 +286,10 @@ void TheorySetsPrivate::fullEffortCheck() d_card_enabled = true; // register it with the cardinality solver d_cardSolver->registerTerm(n); + if (d_im.hasSent()) + { + break; + } // if we do not handle the kind, set incomplete Kind nk0 = n[0].getKind(); // some kinds of cardinality we cannot handle diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt index 6bff05bdb..49b7b0543 100644 --- a/test/regress/CMakeLists.txt +++ b/test/regress/CMakeLists.txt @@ -1969,6 +1969,8 @@ set(regress_1_tests regress1/sets/issue2568.smt2 regress1/sets/issue2904.smt2 regress1/sets/issue4124-need-check.smt2 + regress1/sets/issue4370-2-lemma-ee-iter.smt2 + regress1/sets/issue4370-4-lemma-ee-iter.smt2 regress1/sets/issue4391-card-lasso.smt2 regress1/sets/issue5271.smt2 regress1/sets/issue5309.smt2 diff --git a/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 b/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 new file mode 100644 index 000000000..aa7349261 --- /dev/null +++ b/test/regress/regress1/sets/issue4370-2-lemma-ee-iter.smt2 @@ -0,0 +1,7 @@ +(set-logic ALL) +(set-info :status unsat) +(declare-fun st1 () (Set Int)) +(declare-fun st7 () (Set Int)) +(assert (> 0 (card (intersection st1 (union st7 st1))))) +(assert (subset st1 st7)) +(check-sat) diff --git a/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 b/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 new file mode 100644 index 000000000..95425709d --- /dev/null +++ b/test/regress/regress1/sets/issue4370-4-lemma-ee-iter.smt2 @@ -0,0 +1,8 @@ +(set-logic ALL) +(set-info :status unsat) +(declare-fun st3 () (Set String)) +(declare-fun st9 () (Set String)) +(assert (is_singleton (intersection st3 st9))) +(assert (< 1 (card (intersection st3 st9)))) +(assert (is_singleton st9)) +(check-sat) |