summaryrefslogtreecommitdiff
path: root/src/theory
diff options
context:
space:
mode:
authorGereon Kremer <gkremer@stanford.edu>2020-12-18 08:59:43 +0100
committerGitHub <noreply@github.com>2020-12-18 08:59:43 +0100
commit8a2a526b2dab5d6efaf1435afcc1b7be113a86bf (patch)
tree135adecb0499c819ccec965721261a891be33396 /src/theory
parent0ae11d1abec9017784eefa2252d8e8ea7dfb4f74 (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.cpp16
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);
}
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback