diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2021-11-15 09:35:27 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-15 09:35:27 -0600 |
commit | 829b3c2798c1f2c0bb313d7eff2c1e76f0184ae2 (patch) | |
tree | 6855fbf1b5bf7b11958a222f70e9301156931c0b /src/theory/arith/constraint.cpp | |
parent | 9aeb23f2ae58e4f6dd2b53dbb47cf8c173e56d83 (diff) | |
parent | 94c4d5b54e7840fa36d76e7c3d52e19c31a1dbc1 (diff) |
Merge branch 'master' into refactorEagerSolverrefactorEagerSolver
Diffstat (limited to 'src/theory/arith/constraint.cpp')
-rw-r--r-- | src/theory/arith/constraint.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/theory/arith/constraint.cpp b/src/theory/arith/constraint.cpp index 2958b5f48..cffacdc39 100644 --- a/src/theory/arith/constraint.cpp +++ b/src/theory/arith/constraint.cpp @@ -1122,10 +1122,11 @@ TrustNode Constraint::split() auto nGeqPf = d_database->d_pnm->mkAssume(geqNode.negate()); auto ltPf = d_database->d_pnm->mkNode( PfRule::MACRO_SR_PRED_TRANSFORM, {nGeqPf}, {ltNode}); - auto sumPf = d_database->d_pnm->mkNode( - PfRule::MACRO_ARITH_SCALE_SUM_UB, - {gtPf, ltPf}, - {nm->mkConst<Rational>(-1), nm->mkConst<Rational>(1)}); + auto sumPf = + d_database->d_pnm->mkNode(PfRule::MACRO_ARITH_SCALE_SUM_UB, + {gtPf, ltPf}, + {nm->mkConst(CONST_RATIONAL, Rational(-1)), + nm->mkConst(CONST_RATIONAL, Rational(1))}); auto botPf = d_database->d_pnm->mkNode( PfRule::MACRO_SR_PRED_TRANSFORM, {sumPf}, {nm->mkConst(false)}); std::vector<Node> a = {leqNode.negate(), geqNode.negate()}; @@ -1808,7 +1809,7 @@ std::shared_ptr<ProofNode> Constraint::externalExplain( std::vector<Node> farkasCoeffs; for (Rational r : *getFarkasCoefficients()) { - farkasCoeffs.push_back(nm->mkConst<Rational>(r)); + farkasCoeffs.push_back(nm->mkConst(CONST_RATIONAL, Rational(r))); } // Apply the scaled-sum rule. @@ -2088,7 +2089,8 @@ Node Constraint::getProofLiteral() const default: Unreachable() << d_type; } NodeManager* nm = NodeManager::currentNM(); - Node constPart = nm->mkConst<Rational>(d_value.getNoninfinitesimalPart()); + Node constPart = + nm->mkConst(CONST_RATIONAL, Rational(d_value.getNoninfinitesimalPart())); Node posLit = nm->mkNode(cmp, varPart, constPart); return neg ? posLit.negate() : posLit; } @@ -2112,13 +2114,13 @@ void ConstraintDatabase::proveOr(std::vector<TrustNode>& out, {d_pnm->mkAssume(lb.negate())}, {b->getNegation()->getProofLiteral()}); int sndSign = negateSecond ? -1 : 1; - auto bot_pf = - d_pnm->mkNode(PfRule::MACRO_SR_PRED_TRANSFORM, - {d_pnm->mkNode(PfRule::MACRO_ARITH_SCALE_SUM_UB, - {pf_neg_la, pf_neg_lb}, - {nm->mkConst<Rational>(-1 * sndSign), - nm->mkConst<Rational>(sndSign)})}, - {nm->mkConst(false)}); + auto bot_pf = d_pnm->mkNode( + PfRule::MACRO_SR_PRED_TRANSFORM, + {d_pnm->mkNode(PfRule::MACRO_ARITH_SCALE_SUM_UB, + {pf_neg_la, pf_neg_lb}, + {nm->mkConst(CONST_RATIONAL, Rational(-1 * sndSign)), + nm->mkConst(CONST_RATIONAL, Rational(sndSign))})}, + {nm->mkConst(false)}); std::vector<Node> as; std::transform(orN.begin(), orN.end(), std::back_inserter(as), [](Node n) { return n.negate(); |