This function was equivalent to asserting an equality. Removing it for the sake of simplicity.
first = false;
}
else {
- Trace("model-builder-assertions") << "(assert (= " << *eqc_i << " " << rep << "));" << endl;
- d_equalityEngine->mergePredicates(*eqc_i, rep, Node::null());
+ Node eq = (*eqc_i).eqNode(rep);
+ Trace("model-builder-assertions")
+ << "(assert " << eq << ");" << std::endl;
+ d_equalityEngine->assertEquality(eq, true, Node::null());
if (!d_equalityEngine->consistent())
{
return false;
propagate();
}
-void EqualityEngine::mergePredicates(TNode p, TNode q, TNode reason) {
- Debug("equality") << d_name << "::eq::mergePredicates(" << p << "," << q << ")" << std::endl;
- assertEqualityInternal(p, q, reason);
- propagate();
-}
-
void EqualityEngine::assertEquality(TNode eq, bool polarity, TNode reason, unsigned pid) {
Debug("equality") << d_name << "::eq::addEquality(" << eq << "," << (polarity ? "true" : "false") << ")" << std::endl;
if (polarity) {
*/
void assertPredicate(TNode p, bool polarity, TNode reason, unsigned pid = MERGED_THROUGH_EQUALITY);
- /**
- * Adds predicate p and q and makes them equal.
- */
- void mergePredicates(TNode p, TNode q, TNode reason);
-
/**
* Adds an equality eq with the given polarity to the database.
*