Removes a deprecated explain interface.
return true;
}
-void ArithCongruenceManager::explain(TNode literal, std::vector<TNode>& assumptions) {
- if (literal.getKind() != kind::NOT) {
- d_ee->explainEquality(literal[0], literal[1], true, assumptions);
- } else {
- d_ee->explainEquality(literal[0][0], literal[0][1], false, assumptions);
- }
-}
-
void ArithCongruenceManager::enqueueIntoNB(const std::set<TNode> s,
NodeBuilder& nb)
{
return trn;
}
-void ArithCongruenceManager::explain(TNode external, NodeBuilder& out)
-{
- Node internal = externalToInternal(external);
-
- std::vector<TNode> assumptions;
- explain(internal, assumptions);
- std::set<TNode> assumptionSet;
- assumptionSet.insert(assumptions.begin(), assumptions.end());
-
- enqueueIntoNB(assumptionSet, out);
-}
-
void ArithCongruenceManager::addWatchedPair(ArithVar s, TNode x, TNode y){
Assert(!isWatchedVariable(s));
void pushBack(TNode n, TNode r, TNode w);
- void explain(TNode literal, std::vector<TNode>& assumptions);
-
/** Assert this literal to the eq engine. Common functionality for
* * assertionToEqualityEngine(..)
* * equalsConstant(c)
*/
TrustNode explain(TNode literal);
- void explain(TNode lit, NodeBuilder& out);
-
void addWatchedPair(ArithVar s, TNode x, TNode y);
inline bool isWatchedVariable(ArithVar s) const {
return d_congruenceManager.explain(c->getLiteral());
}
-void ConstraintDatabase::eeExplain(ConstraintCP c, NodeBuilder& nb) const
-{
- Assert(c->hasLiteral());
- // NOTE: this is not a recommended method since it ignores proofs
- d_congruenceManager.explain(c->getLiteral(), nb);
-}
-
bool ConstraintDatabase::variableDatabaseIsSetup(ArithVar v) const {
return v < d_varDatabases.size();
}
/** Get an explanation and proof for this constraint from the equality engine
*/
TrustNode eeExplain(ConstraintCP c) const;
- /** Get an explanation for this constraint from the equality engine */
- void eeExplain(ConstraintCP c, NodeBuilder& nb) const;
/**
* Returns a constraint with the variable v, the constraint type t, and a value