summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers_engine.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-11-12 10:33:32 -0600
committerGitHub <noreply@github.com>2020-11-12 10:33:32 -0600
commit4f367612a386d21315cee7d377176bc83a1402c5 (patch)
tree6b572e49d2cddecf11ce8fedf74084df5c449420 /src/theory/quantifiers_engine.cpp
parentb9eee8d69e9de4641514c35d49c495bd5adead5f (diff)
(proof-new) Proofs for skolemization (#5339)
This adds support for proofs in the quantifiers module that performs skolemization. Also fixes a bug in the proof checker for skolemization.
Diffstat (limited to 'src/theory/quantifiers_engine.cpp')
-rw-r--r--src/theory/quantifiers_engine.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp
index cceb04d9f..7f0b46c99 100644
--- a/src/theory/quantifiers_engine.cpp
+++ b/src/theory/quantifiers_engine.cpp
@@ -30,7 +30,8 @@ using namespace CVC4::kind;
namespace CVC4 {
namespace theory {
-QuantifiersEngine::QuantifiersEngine(TheoryEngine* te, DecisionManager& dm,
+QuantifiersEngine::QuantifiersEngine(TheoryEngine* te,
+ DecisionManager& dm,
ProofNodeManager* pnm)
: d_te(te),
d_context(te->getSatContext()),
@@ -49,7 +50,7 @@ QuantifiersEngine::QuantifiersEngine(TheoryEngine* te, DecisionManager& dm,
d_sygus_tdb(nullptr),
d_quant_attr(new quantifiers::QuantAttributes(this)),
d_instantiate(new quantifiers::Instantiate(this, d_userContext, pnm)),
- d_skolemize(new quantifiers::Skolemize(this, d_userContext)),
+ d_skolemize(new quantifiers::Skolemize(this, d_userContext, pnm)),
d_term_enum(new quantifiers::TermEnumeration),
d_conflict_c(d_context, false),
d_quants_prereg(d_userContext),
@@ -809,16 +810,16 @@ void QuantifiersEngine::assertQuantifier( Node f, bool pol ){
}
if( !pol ){
// do skolemization
- Node lem = d_skolemize->process(f);
+ TrustNode lem = d_skolemize->process(f);
if (!lem.isNull())
{
if (Trace.isOn("quantifiers-sk-debug"))
{
- Node slem = Rewriter::rewrite(lem);
+ Node slem = Rewriter::rewrite(lem.getNode());
Trace("quantifiers-sk-debug")
<< "Skolemize lemma : " << slem << std::endl;
}
- getOutputChannel().lemma(
+ getOutputChannel().trustedLemma(
lem, LemmaProperty::PREPROCESS | LemmaProperty::NEEDS_JUSTIFY);
}
return;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback