summaryrefslogtreecommitdiff
path: root/src/theory/sets/cardinality_extension.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-11-01 18:34:41 -0500
committerGitHub <noreply@github.com>2021-11-01 23:34:41 +0000
commit8fee12bf84b4d056056baf90fd8a54c06a19637b (patch)
tree2c9b3bb00902d22ef9272c2e579008f57bd9148e /src/theory/sets/cardinality_extension.cpp
parentb57e39bab5e27b883f01818a401404736c6ce02e (diff)
Eliminate calls to Rewriter::rewrite and options:: in sets and bags (#7550)
There is 1 remaining call to Rewriter::rewrite in the bags type enumerator which is not straightforward to eliminate; it should perhaps call an intermediate call to a normal form utility instead of the full rewriter.
Diffstat (limited to 'src/theory/sets/cardinality_extension.cpp')
-rw-r--r--src/theory/sets/cardinality_extension.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/theory/sets/cardinality_extension.cpp b/src/theory/sets/cardinality_extension.cpp
index 4e4ee78a8..d2d7a636a 100644
--- a/src/theory/sets/cardinality_extension.cpp
+++ b/src/theory/sets/cardinality_extension.cpp
@@ -162,7 +162,7 @@ void CardinalityExtension::checkCardinalityExtended(TypeNode& t)
Node subset = nm->mkNode(kind::SUBSET, variable, proxy);
// subset terms are rewritten as union terms: (subset A B) implies (=
// (union A B) B)
- subset = Rewriter::rewrite(subset);
+ subset = rewrite(subset);
if (!d_state.isEntailed(subset, true))
{
d_im.assertInference(
@@ -242,7 +242,7 @@ void CardinalityExtension::checkRegister()
// if setminus, do for intersection instead
if (n.getKind() == SETMINUS)
{
- n = Rewriter::rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
+ n = rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
}
registerCardinalityTerm(n);
}
@@ -293,7 +293,7 @@ void CardinalityExtension::registerCardinalityTerm(Node n)
if (nn != nk)
{
Node lem = nm->mkNode(EQUAL, nm->mkNode(CARD, nk), nm->mkNode(CARD, nn));
- lem = Rewriter::rewrite(lem);
+ lem = rewrite(lem);
Trace("sets-card") << " " << k << " : " << lem << std::endl;
d_im.assertInference(lem, InferenceId::SETS_CARD_EQUAL, d_emp_exp, 1);
}
@@ -393,21 +393,21 @@ void CardinalityExtension::checkCardCyclesRec(Node eqc,
d_localBase[n] = n;
for (unsigned e = 0; e < 2; e++)
{
- Node sm = Rewriter::rewrite(nm->mkNode(SETMINUS, n[e], n[1 - e]));
+ Node sm = rewrite(nm->mkNode(SETMINUS, n[e], n[1 - e]));
sib.push_back(sm);
}
true_sib = 2;
}
else
{
- Node si = Rewriter::rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
+ Node si = rewrite(nm->mkNode(INTERSECTION, n[0], n[1]));
sib.push_back(si);
d_localBase[n] = si;
- Node osm = Rewriter::rewrite(nm->mkNode(SETMINUS, n[1], n[0]));
+ Node osm = rewrite(nm->mkNode(SETMINUS, n[1], n[0]));
sib.push_back(osm);
true_sib = 1;
}
- Node u = Rewriter::rewrite(nm->mkNode(UNION, n[0], n[1]));
+ Node u = rewrite(nm->mkNode(UNION, n[0], n[1]));
if (!d_state.hasTerm(u))
{
u = Node::null();
@@ -837,8 +837,7 @@ void CardinalityExtension::checkNormalForm(Node eqc,
Assert(o0 != o1);
Node kca = d_treg.getProxy(o0);
Node kcb = d_treg.getProxy(o1);
- Node intro =
- Rewriter::rewrite(nm->mkNode(INTERSECTION, kca, kcb));
+ Node intro = rewrite(nm->mkNode(INTERSECTION, kca, kcb));
Trace("sets-nf") << " Intro split : " << o0 << " against " << o1
<< ", term is " << intro << std::endl;
intro_sets.push_back(intro);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback