summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/candidate_rewrite_database.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2021-01-27 14:37:41 -0600
committerGitHub <noreply@github.com>2021-01-27 14:37:41 -0600
commite986a322232ac3edcd139ec7b424291ea3d5033a (patch)
treee42cff1cd563e393ee973b469f97e46e4b509add /src/theory/quantifiers/candidate_rewrite_database.h
parent2c4025e44771707ba548b6d8aa5a8a13ec3cd8f1 (diff)
Add option for whether to filter candidate rewrite pairs (#5825)
This option should be disabled for the new sygus reconstruction algorithm on #5779.
Diffstat (limited to 'src/theory/quantifiers/candidate_rewrite_database.h')
-rw-r--r--src/theory/quantifiers/candidate_rewrite_database.h11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/theory/quantifiers/candidate_rewrite_database.h b/src/theory/quantifiers/candidate_rewrite_database.h
index 41ec0677b..9f8ab8c86 100644
--- a/src/theory/quantifiers/candidate_rewrite_database.h
+++ b/src/theory/quantifiers/candidate_rewrite_database.h
@@ -32,8 +32,8 @@ namespace quantifiers {
/** CandidateRewriteDatabase
*
* This maintains the necessary data structures for generating a database
- * of candidate rewrite rules (see Reynolds et al "Rewrites for SMT Solvers
- * Using Syntax-Guided Enumeration" SMT 2018). The primary responsibilities
+ * of candidate rewrite rules (see Noetzli et al "Syntax-Guided Rewrite Rule
+ * Enumeration for SMT Solvers" SAT 2019). The primary responsibilities
* of this class are to perform the "equivalence checking" and "congruence
* and matching filtering" in Figure 1. The equivalence checking is done
* through a combination of the sygus sampler object owned by this class
@@ -51,10 +51,13 @@ class CandidateRewriteDatabase : public ExprMiner
* discovered rewrites (see option sygusRewSynthAccel()).
* @param silent Whether to silence the output of rewrites discovered by this
* class.
+ * @param filterPairs Whether to filter rewrite pairs using filtering
+ * techniques from the SAT 2019 paper above.
*/
CandidateRewriteDatabase(bool doCheck,
bool rewAccel = false,
- bool silent = false);
+ bool silent = false,
+ bool filterPairs = true);
~CandidateRewriteDatabase() {}
/** Initialize this class */
void initialize(const std::vector<Node>& var,
@@ -119,6 +122,8 @@ class CandidateRewriteDatabase : public ExprMiner
bool d_rewAccel;
/** if true, we silence the output of candidate rewrites */
bool d_silent;
+ /** if true, we filter pairs of terms to check equivalence */
+ bool d_filterPairs;
/** whether we are using sygus */
bool d_using_sygus;
/** candidate rewrite filter */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback