summaryrefslogtreecommitdiff
path: root/src/smt
diff options
context:
space:
mode:
authorHaniel Barbosa <hanielbbarbosa@gmail.com>2021-04-05 15:47:40 -0300
committerGitHub <noreply@github.com>2021-04-05 18:47:40 +0000
commitb75f48683c08e66e0d47d29c5262f32f33b36c49 (patch)
tree0a76b276add9a8d0acd3a52167747e5664f12569 /src/smt
parentca5fd891038a93bd63b3863faa8c5e39fff88ed0 (diff)
[proof-new] Registering proof checkers uniformly from the SMT solver (#6275)
Each theory has its own proof checker, responsible for checking the rules pertaining to that theory. The main proof checker uses these specialized checkers. Previously the main proof checker (of the proof node manager used across the SMT solver) was connected to these theory proof checkers during initialization of the theory. This commit adds an interface to the theories for retrieving its proof checker (analogous to how one retrieves the rewriter of a theory) which is used by a new method in the theory engine to register a theory proof checker to a given proof checker according to a theory id. This is in preparation for the new unsat cores based on proofs.
Diffstat (limited to 'src/smt')
-rw-r--r--src/smt/smt_solver.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/smt/smt_solver.cpp b/src/smt/smt_solver.cpp
index 3f663726c..fbb21034a 100644
--- a/src/smt/smt_solver.cpp
+++ b/src/smt/smt_solver.cpp
@@ -65,7 +65,11 @@ void SmtSolver::finishInit(const LogicInfo& logicInfo)
{
theory::TheoryConstructor::addTheory(d_theoryEngine.get(), id);
}
-
+ // Add the proof checkers for each theory
+ if (d_pnm)
+ {
+ d_theoryEngine->initializeProofChecker(d_pnm->getChecker());
+ }
Trace("smt-debug") << "Making prop engine..." << std::endl;
/* force destruction of referenced PropEngine to enforce that statistics
* are unregistered by the obsolete PropEngine object before registered
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback