diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-06-12 18:30:19 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-12 18:30:19 -0500 |
commit | 08f6f8cc6118b1e6c057a294d1ddb60e2e45b5ed (patch) | |
tree | de37ebe313376112c41646f206a03e4b8029308f | |
parent | a3efc3697434902c5b147ee16c34d7291734206f (diff) |
Update to consistent policy for removed terms in quantifier bodies. (#4602)
-rw-r--r-- | src/smt/term_formula_removal.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/smt/term_formula_removal.cpp b/src/smt/term_formula_removal.cpp index 1ae125e03..c3f0fabc4 100644 --- a/src/smt/term_formula_removal.cpp +++ b/src/smt/term_formula_removal.cpp @@ -89,8 +89,8 @@ Node RemoveTermFormulas::run(TNode node, std::vector<Node>& output, if (node.getKind() == kind::ITE && !nodeType.isBoolean()) { // Here, we eliminate the ITE if we are not Boolean and if we do not contain - // a bound variable. - if (!inQuant || !expr::hasBoundVar(node)) + // a free variable. + if (!inQuant || !expr::hasFreeVar(node)) { skolem = getSkolemForNode(node); if (skolem.isNull()) @@ -111,7 +111,7 @@ Node RemoveTermFormulas::run(TNode node, std::vector<Node>& output, else if (node.getKind() == kind::LAMBDA) { // if a lambda, do lambda-lifting - if (!inQuant) + if (!inQuant || !expr::hasFreeVar(node)) { skolem = getSkolemForNode(node); if (skolem.isNull()) @@ -143,7 +143,7 @@ Node RemoveTermFormulas::run(TNode node, std::vector<Node>& output, // If a witness choice // For details on this operator, see // http://planetmath.org/hilbertsvarepsilonoperator. - if (!inQuant) + if (!inQuant || !expr::hasFreeVar(node)) { skolem = getSkolemForNode(node); if (skolem.isNull()) |