summaryrefslogtreecommitdiff
path: root/src/smt/expand_definitions.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-12-02 09:41:31 -0600
committerGitHub <noreply@github.com>2020-12-02 09:41:31 -0600
commit5151238c98492fe332a2603c05752f3319ae8035 (patch)
treefd4310fa51ccc59983d9d2d9adb9ed491ab0642c /src/smt/expand_definitions.h
parent901cea314c4dc3be411c345e42c858063fe5aa1b (diff)
(proof-new) Proofs for expand definitions (#5562)
Diffstat (limited to 'src/smt/expand_definitions.h')
-rw-r--r--src/smt/expand_definitions.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/smt/expand_definitions.h b/src/smt/expand_definitions.h
index f40ee4a4e..5b75ddadd 100644
--- a/src/smt/expand_definitions.h
+++ b/src/smt/expand_definitions.h
@@ -20,6 +20,7 @@
#include <unordered_map>
#include "expr/node.h"
+#include "expr/term_conversion_proof_generator.h"
#include "preprocessing/assertion_pipeline.h"
#include "smt/smt_engine_stats.h"
#include "util/resource_manager.h"
@@ -61,13 +62,30 @@ class ExpandDefs
void expandAssertions(preprocessing::AssertionPipeline& assertions,
bool expandOnly = false);
+ /**
+ * Set proof node manager, which signals this class to enable proofs using the
+ * given proof node manager.
+ */
+ void setProofNodeManager(ProofNodeManager* pnm);
+
private:
+ /**
+ * Helper function for above, called to specify if we want proof production
+ * based on the optional argument tpg.
+ */
+ theory::TrustNode expandDefinitions(
+ TNode n,
+ std::unordered_map<Node, Node, NodeHashFunction>& cache,
+ bool expandOnly,
+ TConvProofGenerator* tpg);
/** Reference to the SMT engine */
SmtEngine& d_smt;
/** Reference to resource manager */
ResourceManager& d_resourceManager;
/** Reference to the SMT stats */
SmtEngineStatistics& d_smtStats;
+ /** A proof generator for the term conversion. */
+ std::unique_ptr<TConvProofGenerator> d_tpg;
};
} // namespace smt
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback