summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/sygus/sygus_explain.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-05-14 10:29:08 -0500
committerGitHub <noreply@github.com>2018-05-14 10:29:08 -0500
commit33420e77e9f7ee7a429708db3a7f6c28aef7d0ec (patch)
treede1d33cc21a9453caf0c0c1799b375d7ab53d5c9 /src/theory/quantifiers/sygus/sygus_explain.h
parent53c73505c5aed92401cfe02b669abaf8e6a30e32 (diff)
Flag to check invariance of entire values in sygus explain (#1908)
Diffstat (limited to 'src/theory/quantifiers/sygus/sygus_explain.h')
-rw-r--r--src/theory/quantifiers/sygus/sygus_explain.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/theory/quantifiers/sygus/sygus_explain.h b/src/theory/quantifiers/sygus/sygus_explain.h
index 818f51438..056ea7ed5 100644
--- a/src/theory/quantifiers/sygus/sygus_explain.h
+++ b/src/theory/quantifiers/sygus/sygus_explain.h
@@ -182,6 +182,15 @@ class SygusExplain
* - (if applicable) exp => ( n != vnr ).
*
* This function updates sz to be the term size of [[exp]]_n.
+ *
+ * If strict is false, then we also test whether the invariance test holds
+ * independently of the entire value of vn.
+ *
+ * The argument var_count is used for tracking the variables that we introduce
+ * to generalize the shape of vn. This map is passed to
+ * TermDbSygus::getFreeVarInc. This argument should be used if we are
+ * calling this function multiple times and the generalization should not
+ * introduce variables that shadow the variables introduced on previous calls.
*/
void getExplanationFor(Node n,
Node vn,
@@ -192,7 +201,14 @@ class SygusExplain
void getExplanationFor(Node n,
Node vn,
std::vector<Node>& exp,
- SygusInvarianceTest& et);
+ SygusInvarianceTest& et,
+ bool strict = true);
+ void getExplanationFor(Node n,
+ Node vn,
+ std::vector<Node>& exp,
+ SygusInvarianceTest& et,
+ std::map<TypeNode, int>& var_count,
+ bool strict = true);
private:
/** sygus term database associated with this utility */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback