diff options
author | Gereon Kremer <gkremer@stanford.edu> | 2020-12-18 08:59:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-18 08:59:43 +0100 |
commit | 8a2a526b2dab5d6efaf1435afcc1b7be113a86bf (patch) | |
tree | 135adecb0499c819ccec965721261a891be33396 /src/theory | |
parent | 0ae11d1abec9017784eefa2252d8e8ea7dfb4f74 (diff) |
(proof-new) Add proof for tangent plane lemmas (#5700)
This PR adds a proof for the tangent plane lemmas from nl-ext.
As this lemma uses some insight about the tangent plane of a multiplication term, this PR adds a new proof rule.
Diffstat (limited to 'src/theory')
-rw-r--r-- | src/theory/arith/nl/ext/tangent_plane_check.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/theory/arith/nl/ext/tangent_plane_check.cpp b/src/theory/arith/nl/ext/tangent_plane_check.cpp index de6176272..18c31368f 100644 --- a/src/theory/arith/nl/ext/tangent_plane_check.cpp +++ b/src/theory/arith/nl/ext/tangent_plane_check.cpp @@ -132,8 +132,22 @@ void TangentPlaneCheck::check(bool asWaitingLemmas) Kind::AND, nm->mkNode(Kind::GEQ, a, a_v), b2))); Trace("nl-ext-tplanes") << "Tangent plane lemma : " << tlem << std::endl; + CDProof* proof = nullptr; + if (d_data->isProofEnabled()) + { + proof = d_data->getProof(); + proof->addStep(tlem, + PfRule::ARITH_MULT_TANGENT, + {}, + {t, + a, + b, + a_v, + b_v, + nm->mkConst(Rational(d == 0 ? -1 : 1))}); + } d_data->d_im.addPendingArithLemma( - tlem, InferenceId::NL_TANGENT_PLANE, nullptr, asWaitingLemmas); + tlem, InferenceId::NL_TANGENT_PLANE, proof, asWaitingLemmas); } } } |