/**
* Debug check closed on Trace c. Context ctx is string for debugging.
* This method throws an assertion failure if pg cannot provide a closed
- * proof for fact proven. This is checked only if --proof-eager-checking
+ * proof for fact proven. This is checked only if --proof-check=eager
* is enabled or the Trace c is enabled.
*
* @param reqGen Whether we consider a null generator to be a failure.
}
}
-void TheoryArrays::explain(TNode literal, Node& explanation)
-{
- ++d_numExplain;
- Debug("arrays") << spaces(context()->getLevel()) << "TheoryArrays::explain("
- << literal << ")" << std::endl;
- std::vector<TNode> assumptions;
- // Do the work
- bool polarity = literal.getKind() != kind::NOT;
- TNode atom = polarity ? literal : literal[0];
- if (atom.getKind() == kind::EQUAL)
- {
- d_equalityEngine->explainEquality(
- atom[0], atom[1], polarity, assumptions, nullptr);
- }
- else
- {
- d_equalityEngine->explainPredicate(atom, polarity, assumptions, nullptr);
- }
- explanation = mkAnd(assumptions);
-}
-
TrustNode TheoryArrays::explain(TNode literal)
{
return d_im.explainLit(literal);
/** Should be called to propagate the literal. */
bool propagateLit(TNode literal);
- /** Explain why this literal is true by building an explanation */
- void explain(TNode literal, Node& exp);
-
/** For debugging only- checks invariants about when things are preregistered*/
context::CDHashSet<Node> d_isPreRegistered;