Node psk;
if (itp == d_ho_fun_op_purify.end())
{
- psk = sm->mkDummySkolem("pfun",
- curr.getType(),
- "purify for function operator term indexing");
+ psk = sm->mkPurifySkolem(
+ curr, "pfun", "purify for function operator term indexing");
d_ho_fun_op_purify[curr] = psk;
// we do not add it to d_ops since it is an internal operator
}
eq = itpe->second;
}
Trace("quant-ho") << "- assert purify equality : " << eq << std::endl;
- ee->assertEquality(eq, true, eq);
+ // Note that ee may be the central equality engine, in which case this
+ // equality is explained trivially with "true", since both sides of
+ // eq are HOL and FOL encodings of the same thing.
+ ee->assertEquality(eq, true, d_true);
if (!ee->consistent())
{
// In some rare cases, purification functions (in the domain of