From: Alex Ozdemir Date: Fri, 9 Oct 2020 17:48:16 +0000 (-0700) Subject: use right arith explanation fn to fix regressions (#5231) X-Git-Tag: cvc5-1.0.0~2730 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a078e193eb13e398f663eff2d0b9a2ef145ca75f;p=cvc5.git use right arith explanation fn to fix regressions (#5231) Use the Node-returning variants of Constraint::externalExplainByAssertions in TheoryArithPrivate locations that aren't computing proofs. The problem is that the TrustNode returning variant requires that arith has stored an externally valid literal for the constraint, which is not always the case. This is what we did on proof-new, I just forgot. --- diff --git a/src/theory/arith/theory_arith_private.cpp b/src/theory/arith/theory_arith_private.cpp index 760d98b1b..3abd9495e 100644 --- a/src/theory/arith/theory_arith_private.cpp +++ b/src/theory/arith/theory_arith_private.cpp @@ -1632,9 +1632,9 @@ Node TheoryArithPrivate::callDioSolver(){ Node orig = Node::null(); if(lb->isEquality()){ - orig = lb->externalExplainByAssertions().getNode(); + orig = Constraint::externalExplainByAssertions({lb}); }else if(ub->isEquality()){ - orig = ub->externalExplainByAssertions().getNode(); + orig = Constraint::externalExplainByAssertions({ub}); }else { orig = Constraint::externalExplainByAssertions(ub, lb); } @@ -1706,7 +1706,9 @@ ConstraintP TheoryArithPrivate::constraintFromFactQueue(TNode assertion) Debug("arith::constraint") << "marking as constraint as self explaining " << endl; constraint->setAssumption(inConflict); } else { - Debug("arith::constraint") << "already has proof: " << constraint->externalExplainByAssertions() << endl; + Debug("arith::constraint") + << "already has proof: " + << Constraint::externalExplainByAssertions({constraint}); } if(Debug.isOn("arith::negatedassumption") && inConflict){ @@ -5006,7 +5008,7 @@ void TheoryArithPrivate::entailmentCheckBoundLookup(std::pairexternalExplainByAssertions().getNode(); + tmp.first = Constraint::externalExplainByAssertions({c}); tmp.second = c->getValue(); } }