diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-04-12 15:10:31 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-12 15:10:31 -0500 |
commit | b9a903cc9a13c7bcdd334eb38730e62858321f07 (patch) | |
tree | 040863b41d21f4c14726eeb27fd0b19bc3d6cfcc /src/theory/quantifiers/sygus | |
parent | 9cd5bbf8c659d2e260bad71a841f5153f358a58b (diff) |
Fixes for extended rewriter (#4278)
Fixes #4273 and fixes #4274 .
This also removes a spurious assertion from the Node::substitute method that the result node is not equal to the domain. This is violated for f(f(x)) { f(x) -> x }.
Diffstat (limited to 'src/theory/quantifiers/sygus')
-rw-r--r-- | src/theory/quantifiers/sygus/term_database_sygus.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/theory/quantifiers/sygus/term_database_sygus.cpp b/src/theory/quantifiers/sygus/term_database_sygus.cpp index a1b250142..ee028bff0 100644 --- a/src/theory/quantifiers/sygus/term_database_sygus.cpp +++ b/src/theory/quantifiers/sygus/term_database_sygus.cpp @@ -1018,7 +1018,10 @@ Node TermDbSygus::evaluateWithUnfolding( if( childChanged ){ ret = NodeManager::currentNM()->mkNode( ret.getKind(), children ); } - ret = getExtRewriter()->extendedRewrite(ret); + if (options::sygusExtRew()) + { + ret = getExtRewriter()->extendedRewrite(ret); + } // use rewriting, possibly involving recursive functions ret = rewriteNode(ret); } |