3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

#close 5363

Force in-lining auxiliary functions so that model values can be used by SPACER to retrieve counter-examples. This fixes the issue of terminating without a trace. It does not address inefficiency involved with invoking satisfiability checks to retrieve models during trace construction.
This commit is contained in:
Nikolaj Bjorner 2021-06-22 16:24:00 -07:00
parent 55daa2424c
commit d5c6abe14d
3 changed files with 32 additions and 29 deletions

View file

@ -369,16 +369,14 @@ expr_ref func_interp::get_array_interp_core(func_decl * f) const {
if (m_else == nullptr)
return r;
ptr_vector<sort> domain;
for (sort* s : *f) {
domain.push_back(s);
}
for (sort* s : *f)
domain.push_back(s);
bool ground = is_ground(m_else);
for (func_entry * curr : m_entries) {
ground &= is_ground(curr->get_result());
for (unsigned i = 0; i < m_arity; i++) {
ground &= is_ground(curr->get_arg(i));
}
for (unsigned i = 0; i < m_arity; i++)
ground &= is_ground(curr->get_arg(i));
}
if (!ground) {
r = get_interp();