summaryrefslogtreecommitdiff
path: root/src/theory/theory_model.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-02-26 09:02:15 -0600
committerGitHub <noreply@github.com>2020-02-26 09:02:15 -0600
commitabd0048cdb6cf4d2ee0a096c9f7a63a1f7f1d9c8 (patch)
treecffa12338950b4d7b5bfc43e78849684b6058e30 /src/theory/theory_model.h
parent50c31e61ab240ccd551a0aea732f8b9a88d7fb32 (diff)
Support for witnessing choice in models (#3781)
Fixes #3300. This adds an option --model-witness-choice that ensures that choices in models are of the form (choice ((x Int)) (or (= x c) P)), which is helpful if the user wants to know a potential value in the range of the choice.
Diffstat (limited to 'src/theory/theory_model.h')
-rw-r--r--src/theory/theory_model.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/theory/theory_model.h b/src/theory/theory_model.h
index 0914987cc..d2ce63ac5 100644
--- a/src/theory/theory_model.h
+++ b/src/theory/theory_model.h
@@ -215,6 +215,13 @@ public:
* construction process.
*/
void recordApproximation(TNode n, TNode pred);
+ /**
+ * Same as above, but with a witness constant. This ensures that the
+ * approximation predicate is of the form (or (= n witness) pred). This
+ * is useful if the user wants to know a possible concrete value in
+ * the range of the predicate.
+ */
+ void recordApproximation(TNode n, TNode pred, Node witness);
/** set unevaluate/semi-evaluated kind
*
* This informs this model how it should interpret applications of terms with
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback