}
Kind k = n.getKind();
if (k == kind::REAL_ALGEBRAIC_NUMBER || k == kind::LAMBDA
- || k == kind::WITNESS || k == kind::PI)
+ || k == kind::WITNESS)
{
// we are a value if we are one of the above kinds
return true;
finishedComputing = true;
currentReturn = true;
}
- else if (cur.getNumChildren() == 0 || rewrite(cur) != cur)
+ else if (cur.getNumChildren() == 0)
{
+ // PI is a (non-base) value. We require it as a special case here
+ // since nullary operators are represented internal as variables.
+ // All other non-constant terms with zero children are not values.
+ finishedComputing = true;
+ currentReturn = (cur.getKind() == kind::PI);
+ }
+ else if (rewrite(cur) != cur)
+ {
+ // non-rewritten terms are never model values
finishedComputing = true;
currentReturn = false;
}
regress0/nl/nta/issue8160-model-purify.smt2
regress0/nl/nta/issue8182-exact-mv-keep.smt2
regress0/nl/nta/issue8182-2-exact-mv-keep.smt2
+ regress0/nl/nta/issue8183-tc-pi.smt2
regress0/nl/nta/proj-issue460-pi-value.smt2
regress0/nl/nta/real-pi.smt2
regress0/nl/nta/sin-sym.smt2