summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/extended_rewrite.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-02-12 18:16:59 -0600
committerGitHub <noreply@github.com>2018-02-12 18:16:59 -0600
commit1b0aa1c39ff7abe15bbd9305d376d10b007d69d0 (patch)
tree987d3afa7231f9a21b22bd20afcdb62ed5c87743 /src/theory/quantifiers/extended_rewrite.h
parent04114df7dd58bd7391704a94fe98e2935b39130d (diff)
Option to use extended rewriter as a preprocessing pass (#1600)
Diffstat (limited to 'src/theory/quantifiers/extended_rewrite.h')
-rw-r--r--src/theory/quantifiers/extended_rewrite.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/theory/quantifiers/extended_rewrite.h b/src/theory/quantifiers/extended_rewrite.h
index 3a9fdb918..25d710a6b 100644
--- a/src/theory/quantifiers/extended_rewrite.h
+++ b/src/theory/quantifiers/extended_rewrite.h
@@ -43,12 +43,23 @@ namespace quantifiers {
class ExtendedRewriter
{
public:
- ExtendedRewriter();
+ ExtendedRewriter(bool aggr = true);
~ExtendedRewriter() {}
/** return the extended rewritten form of n */
Node extendedRewrite(Node n);
private:
+ /**
+ * Whether this extended rewriter applies aggressive rewriting techniques,
+ * which are more expensive. Examples of aggressive rewriting include:
+ * - conditional rewriting,
+ * - condition merging,
+ * - sorting childing of commutative operators with more than 5 children.
+ *
+ * Aggressive rewriting is applied for SyGuS, whereas non-aggressive rewriting
+ * may be applied as a preprocessing step.
+ */
+ bool d_aggr;
/** true and false nodes */
Node d_true;
Node d_false;
@@ -62,6 +73,8 @@ class ExtendedRewriter
* where ---->^E denotes extended rewriting.
*/
Node extendedRewritePullIte(Node n);
+ /** extended rewrite aggressive */
+ Node extendedRewriteAggr(Node n);
};
} /* CVC4::theory::quantifiers namespace */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback