namespace cvc5 {
-ProofNodeManager::ProofNodeManager(theory::Rewriter* rr, ProofChecker* pc)
- : d_rewriter(rr), d_checker(pc)
+ProofNodeManager::ProofNodeManager(const Options& opts,
+ theory::Rewriter* rr,
+ ProofChecker* pc)
+ : d_opts(opts), d_rewriter(rr), d_checker(pc)
{
d_true = NodeManager::currentNM()->mkConst(true);
// we always allocate a proof checker, regardless of the proof checking mode
// a proof checking mode that does not eagerly check rule applications
if (!expected.isNull())
{
- if (options::proofCheck() == options::ProofCheckMode::LAZY
- || options::proofCheck() == options::ProofCheckMode::NONE)
+ if (d_opts.proof.proofCheck == options::ProofCheckMode::LAZY
+ || d_opts.proof.proofCheck == options::ProofCheckMode::NONE)
{
return expected;
}
{
Assert(pn != nullptr);
// ---------------- check for cyclic
- if (options::proofCheck() == options::ProofCheckMode::EAGER)
+ if (d_opts.proof.proofCheck == options::ProofCheckMode::EAGER)
{
std::unordered_set<const ProofNode*> visited;
for (const std::shared_ptr<ProofNode>& cpc : children)
class ProofChecker;
class ProofNode;
+class Options;
namespace theory {
class Rewriter;
class ProofNodeManager
{
public:
- ProofNodeManager(theory::Rewriter* rr, ProofChecker* pc = nullptr);
+ ProofNodeManager(const Options& opts,
+ theory::Rewriter* rr,
+ ProofChecker* pc = nullptr);
~ProofNodeManager() {}
/**
* This constructs a ProofNode with the given arguments. The expected
static ProofNode* cancelDoubleSymm(ProofNode* pn);
private:
+ /** Reference to the options */
+ const Options& d_opts;
/** The rewriter */
theory::Rewriter* d_rewriter;
/** The (optional) proof checker */
d_pchecker(new ProofChecker(
options().proof.proofCheck == options::ProofCheckMode::EAGER,
options().proof.proofPedantic)),
- d_pnm(new ProofNodeManager(env.getRewriter(), d_pchecker.get())),
+ d_pnm(new ProofNodeManager(
+ env.getOptions(), env.getRewriter(), d_pchecker.get())),
d_pppg(new PreprocessProofGenerator(
d_pnm.get(), env.getUserContext(), "smt::PreprocessProofGenerator")),
d_pfpp(nullptr),