diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-02-26 09:02:15 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-26 09:02:15 -0600 |
commit | abd0048cdb6cf4d2ee0a096c9f7a63a1f7f1d9c8 (patch) | |
tree | cffa12338950b4d7b5bfc43e78849684b6058e30 /src/theory/theory_model.h | |
parent | 50c31e61ab240ccd551a0aea732f8b9a88d7fb32 (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.h | 7 |
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 |