assertPredicate(*eqc_i, false);
}
else {
- d_equalityEngine.addTerm(*eqc_i);
+ d_equalityEngine.mergePredicates(*eqc_i, eqc, Node::null());
}
} else {
assertEquality(*eqc_i, eqc, true);
retNode = NodeManager::currentNM()->mkNode( r.getKind(), children );
if (childrenConst) {
retNode = Rewriter::rewrite(retNode);
+ Assert(retNode.getKind() == kind::APPLY_UF || retNode.isConst());
}
}
d_normalizedCache[r] = retNode;
void EqualityEngine::mergePredicates(TNode p, TNode q, TNode reason) {
Debug("equality") << d_name << "::eq::mergePredicats(" << p << "," << q << ")" << std::endl;
- Assert(p.getKind() != kind::EQUAL, "Use assertEquality instead");
- Assert(q.getKind() != kind::EQUAL, "Use assertEquality instead");
assertEqualityInternal(p, q, reason);
propagate();
}