summaryrefslogtreecommitdiff
path: root/src/theory/valuation.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-01-28 14:01:26 -0600
committerGitHub <noreply@github.com>2021-01-28 14:01:26 -0600
commite234ff58f561ac97642df15c698962faa9d1e5e4 (patch)
treecfac18adaeb0fccc348b81e84c854400d38a01fe /src/theory/valuation.h
parent3234db430074e278258e6d687c07146a59769a92 (diff)
Simplify lemma interface (#5819)
This makes it so that TheoryEngine::lemma returns void not LemmaStatus. Currently, there was only one use of LemmaStatus by theory solvers, which was CEGQI using it as a way of getting the preprocessed form of a lemma. This makes it so that there is an explicit method in Valuation for getting the preprocessed form of a term + its skolems and their definition assertions. It also simplifies a few things, e.g. Valuation calls are forwarded to PropEngine instead of going through TheoryEngine. It fixes a few issues in TermFormulaRemoval related to getSkolems.
Diffstat (limited to 'src/theory/valuation.h')
-rw-r--r--src/theory/valuation.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/theory/valuation.h b/src/theory/valuation.h
index 065556872..9759309fa 100644
--- a/src/theory/valuation.h
+++ b/src/theory/valuation.h
@@ -159,6 +159,13 @@ public:
* @return The preprocessed form of n
*/
Node getPreprocessedTerm(TNode n);
+ /**
+ * Same as above, but also tracks the skolems and their corresponding
+ * definitions in sks and skAsserts respectively.
+ */
+ Node getPreprocessedTerm(TNode n,
+ std::vector<Node>& skAsserts,
+ std::vector<Node>& sks);
/**
* Returns whether the given lit (which must be a SAT literal) is a decision
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback