Skip to content
This repository has been archived by the owner on May 7, 2021. It is now read-only.
/ CVC4-archived Public archive

Commit

Permalink
Update to consistent policy for removed terms in quantifier bodies. (…
Browse files Browse the repository at this point in the history
…#4602)
  • Loading branch information
ajreynol authored Jun 12, 2020
1 parent a3efc36 commit 08f6f8c
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/smt/term_formula_removal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand All @@ -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())
Expand Down Expand Up @@ -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())
Expand Down

0 comments on commit 08f6f8c

Please sign in to comment.