summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/dynamic_rewrite.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-02-12 16:14:29 -0600
committerGitHub <noreply@github.com>2018-02-12 16:14:29 -0600
commit04114df7dd58bd7391704a94fe98e2935b39130d (patch)
tree26b403b9368c9cfeea0775ec94cc2dcb01b930ca /src/theory/quantifiers/dynamic_rewrite.cpp
parentc9e58c9cf4b90e42d314b92054a010513da1502a (diff)
Minor improvements to sygus sampler (#1598)
Diffstat (limited to 'src/theory/quantifiers/dynamic_rewrite.cpp')
-rw-r--r--src/theory/quantifiers/dynamic_rewrite.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/theory/quantifiers/dynamic_rewrite.cpp b/src/theory/quantifiers/dynamic_rewrite.cpp
index a19695770..3462a4d10 100644
--- a/src/theory/quantifiers/dynamic_rewrite.cpp
+++ b/src/theory/quantifiers/dynamic_rewrite.cpp
@@ -25,7 +25,8 @@ namespace quantifiers {
DynamicRewriter::DynamicRewriter(const std::string& name, QuantifiersEngine* qe)
: d_qe(qe),
- d_equalityEngine(qe->getUserContext(), "DynamicRewriter::" + name, true)
+ d_equalityEngine(qe->getUserContext(), "DynamicRewriter::" + name, true),
+ d_rewrites(qe->getUserContext())
{
d_equalityEngine.addFunctionKind(kind::APPLY_UF);
}
@@ -42,20 +43,26 @@ bool DynamicRewriter::addRewrite(Node a, Node b)
// add to the equality engine
Node ai = toInternal(a);
Node bi = toInternal(b);
+ Trace("dyn-rewrite-debug") << "Internal : " << ai << " " << bi << std::endl;
d_equalityEngine.addTerm(ai);
d_equalityEngine.addTerm(bi);
+ Trace("dyn-rewrite-debug") << "get reps..." << std::endl;
// may already be equal by congruence
Node air = d_equalityEngine.getRepresentative(ai);
Node bir = d_equalityEngine.getRepresentative(bi);
+ Trace("dyn-rewrite-debug") << "Reps : " << air << " " << bir << std::endl;
if (air == bir)
{
Trace("dyn-rewrite") << "...fail, congruent." << std::endl;
return false;
}
+ Trace("dyn-rewrite-debug") << "assert eq..." << std::endl;
Node eq = ai.eqNode(bi);
+ d_rewrites.push_back(eq);
d_equalityEngine.assertEquality(eq, true, eq);
+ Trace("dyn-rewrite-debug") << "Finished" << std::endl;
return true;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback