summaryrefslogtreecommitdiff
path: root/src/theory/theory_inference_manager.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-08-27 21:24:16 -0500
committerGitHub <noreply@github.com>2020-08-27 21:24:16 -0500
commita0a969d7d65a778f2230ee920339541fdf380234 (patch)
tree2e8a3436a36a487f97b3bc75e473a68259fb145b /src/theory/theory_inference_manager.h
parent31f2135ad14b12e2ee9a24f5ca0da06cf5ed7b92 (diff)
Add the buffered inference manager (#4954)
This class implements a highly common pattern of buffering facts and lemmas to send on the output channel. It is planned that the inference managers of strings, sets, datatypes, (non-linear) arithmetic, sep, quantifiers will inherit from this class. This PR adds basic calls to add lemmas on the output channel from InferenceManager. It introduces a Lemma virtual class which arith::nl::NlLemma and strings::InferInfo will inherit from. This is required to begin refactoring a flexible configurable strategy for non-linear arithmetic, and will make it easier to further develop towards a configurable approach for theory combination.
Diffstat (limited to 'src/theory/theory_inference_manager.h')
-rw-r--r--src/theory/theory_inference_manager.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/theory/theory_inference_manager.h b/src/theory/theory_inference_manager.h
index 914c87d19..e52afe124 100644
--- a/src/theory/theory_inference_manager.h
+++ b/src/theory/theory_inference_manager.h
@@ -105,6 +105,11 @@ class TheoryInferenceManager
* been provided in a custom way.
*/
void trustedConflict(TrustNode tconf);
+ /** Send lemma lem with property p on the output channel. */
+ LemmaStatus lemma(TNode lem, LemmaProperty p = LemmaProperty::NONE);
+ /** Send (trusted) lemma lem with property p on the output channel. */
+ LemmaStatus trustedLemma(const TrustNode& tlem,
+ LemmaProperty p = LemmaProperty::NONE);
/**
* Assert internal fact. This is recommended method for asserting "internal"
* facts into the equality engine of the theory. In particular, this method
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback