The SMT2 parser by default passes a true expression to the CheckSatCommand,
which results in checkSatisfiability (in SmtEngine) to always do an internal
push. As a consequence, the work of each check-sat was reset even though no
user level push/pop happened.
"permitted while operating in strict compliance mode.");
}
}
- | { expr = MK_CONST(bool(true)); }
+ | { expr = Expr(); }
)
{ cmd->reset(new CheckSatCommand(expr)); }
| /* check-sat-assuming */
d_assumptions = assumptions;
}
+ if (!d_assumptions.empty())
+ {
+ internalPush();
+ didInternalPush = true;
+ }
+
Result r(Result::SAT_UNKNOWN, Result::UNKNOWN_REASON);
for (Expr e : d_assumptions)
{
ensureBoolean(e);
/* Add assumption */
- internalPush();
- didInternalPush = true;
if (d_assertionList != NULL)
{
d_assertionList->push_back(e);