diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-03-27 14:37:01 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-27 14:37:01 -0500 |
commit | d8c56098916be16ba80c79933c2e6fc7850024b7 (patch) | |
tree | ed849e57a2523946eb0bf84859b1e5dcd5b55bc6 /src/theory/quantifiers/sygus_sampler.cpp | |
parent | a035836d07e831cca30eef800fdf0b3ad88e0ede (diff) |
Fix for --sygus-rr-synth (#1723)
Diffstat (limited to 'src/theory/quantifiers/sygus_sampler.cpp')
-rw-r--r-- | src/theory/quantifiers/sygus_sampler.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/theory/quantifiers/sygus_sampler.cpp b/src/theory/quantifiers/sygus_sampler.cpp index 99494657f..f9ae0b553 100644 --- a/src/theory/quantifiers/sygus_sampler.cpp +++ b/src/theory/quantifiers/sygus_sampler.cpp @@ -717,15 +717,18 @@ Node SygusSamplerExt::registerTerm(Node n, bool forceKeep) // 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 @@ -884,6 +887,7 @@ bool MatchTrie::getMatches(Node n, NotifyMatch* ntm) smap.erase(vars.back()); vars.pop_back(); subs.pop_back(); + visit_bound_var[index] = false; } if (vindex == static_cast<int>(curr->d_vars.size())) |