3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-13 17:36:15 +00:00

fix non-termination bug in elim-unconstrained, add parameter validation to fix #7432

This commit is contained in:
Nikolaj Bjorner 2024-10-22 09:59:12 -07:00
parent d18831c8d5
commit 253f7d7675
3 changed files with 12 additions and 8 deletions

View file

@ -225,7 +225,9 @@ class psort_app : public psort {
sort * a = m_args[i]->instantiate(m, n, s);
args_i.push_back(a);
}
r = m_decl->instantiate(m, args_i.size(), args_i.data());
r = m_decl->instantiate(m, args_i.size(), args_i.data());
if (m_num_params != n)
throw default_exception("mismatch between number of declared and supplied sort parameters");
cache(m, s, r);
return r;
}
@ -771,6 +773,8 @@ bool pdatatypes_decl::commit(pdecl_manager& m) {
for (unsigned i = 0; i < d->get_num_params(); ++i) {
ps.push_back(m.m().mk_uninterpreted_sort(symbol(i), 0, nullptr));
}
verbose_stream() << ps.size() << " " << ps << "\n";
dts.m_buffer.push_back(d->instantiate_decl(m, ps.size(), ps.data()));
}
sort_ref_vector sorts(m.m());