summaryrefslogtreecommitdiff
path: root/src/proof/proof_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/proof/proof_manager.cpp')
-rw-r--r--src/proof/proof_manager.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/proof/proof_manager.cpp b/src/proof/proof_manager.cpp
index fa4c1ecb5..fd563a92e 100644
--- a/src/proof/proof_manager.cpp
+++ b/src/proof/proof_manager.cpp
@@ -58,8 +58,11 @@ std::string append(const std::string& str, uint64_t num) {
return os.str();
}
-ProofManager::ProofManager(context::Context* context, ProofFormat format)
- : d_context(context),
+ProofManager::ProofManager(Environment* env,
+ context::Context* context,
+ ProofFormat format)
+ : d_env(env),
+ d_context(context),
d_satProof(NULL),
d_cnfProof(NULL),
d_theoryProof(NULL),
@@ -88,6 +91,7 @@ const Proof& ProofManager::getProof(SmtEngine* smt)
{
Assert(currentPM()->d_format == LFSC);
currentPM()->d_fullProof.reset(new LFSCProof(
+ currentPM()->d_env,
smt,
static_cast<CoreSatProof*>(getSatProof()),
static_cast<LFSCCnfProof*>(getCnfProof()),
@@ -177,7 +181,7 @@ void ProofManager::initCnfProof(prop::CnfStream* cnfStream,
void ProofManager::initTheoryProofEngine() {
Assert(currentPM()->d_theoryProof == NULL);
Assert(currentPM()->d_format == LFSC);
- currentPM()->d_theoryProof = new LFSCTheoryProofEngine();
+ currentPM()->d_theoryProof = new LFSCTheoryProofEngine(currentPM()->d_env);
}
std::string ProofManager::getInputClauseName(ClauseId id,
@@ -549,11 +553,13 @@ void ProofManager::setLogic(const LogicInfo& logic) {
d_logic = logic;
}
-LFSCProof::LFSCProof(SmtEngine* smtEngine,
+LFSCProof::LFSCProof(Environment* env,
+ SmtEngine* smtEngine,
CoreSatProof* sat,
LFSCCnfProof* cnf,
LFSCTheoryProofEngine* theory)
- : d_satProof(sat),
+ : d_env(env),
+ d_satProof(sat),
d_cnfProof(cnf),
d_theoryProof(theory),
d_smtEngine(smtEngine)
@@ -658,7 +664,7 @@ void LFSCProof::toStream(std::ostream& out) const
{
// For arithmetic: these literals are not normalized, causing an error
// in Arith.
- if (theory::Theory::theoryOf(*it) == theory::THEORY_ARITH)
+ if (d_env->theoryOf(*it) == theory::THEORY_ARITH)
{
d_cnfProof->ensureLiteral(
*it,
@@ -680,7 +686,7 @@ void LFSCProof::toStream(std::ostream& out) const
it != used_assertions.end();
++it)
{
- utils::collectAtoms(*it, atoms);
+ utils::collectAtoms(d_env, *it, atoms);
}
std::set<Node>::iterator atomIt;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback