summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/quantifiers_attributes.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-11-29 12:09:19 -0600
committerGitHub <noreply@github.com>2018-11-29 12:09:19 -0600
commit41b38de8b059d346764cd5ca112740aa09e1d163 (patch)
tree95f440dff149399ed29b6e93c9190fe8ade65e96 /src/theory/quantifiers/quantifiers_attributes.h
parent43e02cedf0e2a2700a2ace23cf85cff9bb242f13 (diff)
Infrastructure for sygus side conditions (#2729)
Diffstat (limited to 'src/theory/quantifiers/quantifiers_attributes.h')
-rw-r--r--src/theory/quantifiers/quantifiers_attributes.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/theory/quantifiers/quantifiers_attributes.h b/src/theory/quantifiers/quantifiers_attributes.h
index 918269bbe..d3acc9434 100644
--- a/src/theory/quantifiers/quantifiers_attributes.h
+++ b/src/theory/quantifiers/quantifiers_attributes.h
@@ -73,6 +73,17 @@ struct SygusPrintProxyAttributeId
typedef expr::Attribute<SygusPrintProxyAttributeId, Node>
SygusPrintProxyAttribute;
+/** Attribute for specifying a "side condition" for a sygus conjecture
+ *
+ * A sygus conjecture of the form exists f. forall x. P[f,x] whose side
+ * condition is C[f] has the semantics exists f. C[f] ^ forall x. P[f,x].
+ */
+struct SygusSideConditionAttributeId
+{
+};
+typedef expr::Attribute<SygusSideConditionAttributeId, Node>
+ SygusSideConditionAttribute;
+
namespace quantifiers {
/** Attribute priority for rewrite rules */
@@ -109,6 +120,8 @@ struct QAttributes
Node d_fundef_f;
/** is this formula marked as a sygus conjecture? */
bool d_sygus;
+ /** side condition for sygus conjectures */
+ Node d_sygusSideCondition;
/** if a rewrite rule, then this is the priority value for the rewrite rule */
int d_rr_priority;
/** stores the maximum instantiation level allowed for this quantified formula
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback