summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/extended_rewrite.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-08-27 20:08:01 -0500
committerAndres Noetzli <andres.noetzli@gmail.com>2018-08-27 18:08:01 -0700
commitf8bda2828e5f3e984623e38ea0778d36144bd05c (patch)
tree425258145cd80aab9a537bf4042d476ec494711f /src/theory/quantifiers/extended_rewrite.h
parentfa55d0680afab5d319f393bafd3f7ecdf8870b1f (diff)
Refactor extended rewriter, move rewrites to aggressive (#2387)
This is work towards #2305. With this PR, CVC4's performance is fairly reasonable on the Kind2 BMC benchmarks with --decision=internal --ext-rew-prep --ext-rew-prep-agg.
Diffstat (limited to 'src/theory/quantifiers/extended_rewrite.h')
-rw-r--r--src/theory/quantifiers/extended_rewrite.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/theory/quantifiers/extended_rewrite.h b/src/theory/quantifiers/extended_rewrite.h
index 4d3f08b1d..29f3b7bb3 100644
--- a/src/theory/quantifiers/extended_rewrite.h
+++ b/src/theory/quantifiers/extended_rewrite.h
@@ -64,6 +64,9 @@ class ExtendedRewriter
* may be applied as a preprocessing step.
*/
bool d_aggr;
+ /** true/false nodes */
+ Node d_true;
+ Node d_false;
/** cache that the extended rewritten form of n is ret */
void setCache(Node n, Node ret);
/** add to children
@@ -213,10 +216,13 @@ class ExtendedRewriter
* (2) a variable y such that x < y based on an ordering,
* then this method adds x to vars and y to subs and return true, otherwise
* it returns false.
+ * If usePred is true, we may additionally add n -> true, or n[0] -> false
+ * is n is a negation.
*/
bool inferSubstitution(Node n,
std::vector<Node>& vars,
- std::vector<Node>& subs);
+ std::vector<Node>& subs,
+ bool usePred = false);
/** extended rewrite
*
* Prints debug information, indicating the rewrite n ---> ret was found.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback