summaryrefslogtreecommitdiff
path: root/src/theory/sets/theory_sets.cpp
diff options
context:
space:
mode:
authorAndres Noetzli <andres.noetzli@gmail.com>2020-04-08 14:38:09 -0700
committerGitHub <noreply@github.com>2020-04-08 16:38:09 -0500
commita48cafdd09c3ff8cb9984bad930343958c30ce56 (patch)
tree6394a01dc7dbd296b4d1cc7cf3bbdd9cddfd68f7 /src/theory/sets/theory_sets.cpp
parent24357fea07bf1eb6b1156a8e455c58faee96b604 (diff)
Perform theory widening eagerly (#4044)
Fixes #3971 and fixes #3991. In incremental mode, the logic can change from one (check-sat) call to another. In the reported issue, we start with QF_NIA but then switch to QF_UFNIA because there is a div term (which has a UF in its expanded form). Dealing with this issue is challenging in general. As a result, we have decided not to allow theory widening in Theory::expandDefinitions() anymore but instead to do it eagerly in SmtEngine::setDefaults().
Diffstat (limited to 'src/theory/sets/theory_sets.cpp')
-rw-r--r--src/theory/sets/theory_sets.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/theory/sets/theory_sets.cpp b/src/theory/sets/theory_sets.cpp
index f4b265d98..8430987f2 100644
--- a/src/theory/sets/theory_sets.cpp
+++ b/src/theory/sets/theory_sets.cpp
@@ -95,7 +95,8 @@ void TheorySets::preRegisterTerm(TNode node) {
d_internal->preRegisterTerm(node);
}
-Node TheorySets::expandDefinition(LogicRequest &logicRequest, Node n) {
+Node TheorySets::expandDefinition(Node n)
+{
Kind nk = n.getKind();
if (nk == UNIVERSE_SET || nk == COMPLEMENT || nk == JOIN_IMAGE
|| nk == COMPREHENSION)
@@ -118,7 +119,7 @@ Node TheorySets::expandDefinition(LogicRequest &logicRequest, Node n) {
throw LogicException(ss.str());
}
}
- return d_internal->expandDefinition(logicRequest, n);
+ return d_internal->expandDefinition(n);
}
Theory::PPAssertStatus TheorySets::ppAssert(TNode in, SubstitutionMap& outSubstitutions) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback