default = "false"
help = "use sygus to enumerate candidate rewrite rules via sampling"
+[[option]]
+ name = "sygusRewSynthFilter"
+ category = "regular"
+ long = "sygus-rr-synth-filter"
+ type = "bool"
+ default = "true"
+ help = "filter candidate rewrites based on techniques like matching"
+
[[option]]
name = "sygusRewVerify"
category = "regular"
// whether we will keep this pair
bool keep = true;
- // ----- check matchable
- // check whether the pair is matchable with a previous one
- d_curr_pair_rhs = beq_n;
- Trace("sse-match") << "SSE check matches : " << n << " [rhs = " << eq_n
- << "]..." << std::endl;
- if (!d_match_trie.getMatches(bn, &d_ssenm))
+ if( options::sygusRewSynthFilter() )
{
- keep = false;
- Trace("sygus-synth-rr-debug") << "...redundant (matchable)" << std::endl;
+ // ----- check matchable
+ // check whether the pair is matchable with a previous one
+ d_curr_pair_rhs = beq_n;
+ Trace("sse-match") << "SSE check matches : " << n << " [rhs = " << eq_n
+ << "]..." << std::endl;
+ if (!d_match_trie.getMatches(bn, &d_ssenm))
+ {
+ keep = false;
+ Trace("sygus-synth-rr-debug") << "...redundant (matchable)" << std::endl;
+ }
}
// ----- check rewriting redundancy
smap.erase(vars.back());
vars.pop_back();
subs.pop_back();
+ visit_bound_var[index] = false;
}
if (vindex == static_cast<int>(curr->d_vars.size()))