3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-05 14:56:11 +00:00

updates to tptp_frontend

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-07-04 14:34:06 -07:00
parent 0b40cfcd8e
commit 56c366009a
2 changed files with 157 additions and 19 deletions

View file

@ -405,6 +405,15 @@ struct evaluator_cfg : public default_rewriter_cfg {
polymorphism::util util(m);
util.unify(f, m.poly_root(f), subst);
expr_ref d = subst(def);
// The polymorphic interpretation body may carry type variables that the
// instance/root unification does not fully resolve (e.g. when the body was
// built with type variables distinct from the root signature's, as happens
// for reified type constructors). If the substituted definition does not
// have the instance's range sort, it would produce an ill-sorted rewrite;
// treat the function as having no usable macro instead (sound: it is then
// evaluated as uninterpreted / by model completion).
if (!d || d->get_sort() != f->get_range())
return false;
m_pinned.push_back(d);
def = d;
SASSERT(def != nullptr);