mirror of
https://github.com/Z3Prover/z3
synced 2025-11-26 07:29:33 +00:00
fix #5297
This commit is contained in:
parent
8919fa4970
commit
2ebab021f2
5 changed files with 41 additions and 15 deletions
|
|
@ -132,13 +132,18 @@ expr * array_factory::get_fresh_value(sort * s) {
|
|||
return get_some_value(s);
|
||||
}
|
||||
sort * range = get_array_range(s);
|
||||
expr * range_val = m_model.get_fresh_value(range);
|
||||
if (range_val != nullptr) {
|
||||
// easy case
|
||||
func_interp * fi;
|
||||
expr * val = mk_array_interp(s, fi);
|
||||
fi->set_else(range_val);
|
||||
return val;
|
||||
expr* range_val = nullptr;
|
||||
|
||||
if (!m_recursive_fresh) {
|
||||
flet<bool> _recursive(m_recursive_fresh, true);
|
||||
range_val = m_model.get_fresh_value(range);
|
||||
if (range_val != nullptr) {
|
||||
// easy case
|
||||
func_interp* fi;
|
||||
expr* val = mk_array_interp(s, fi);
|
||||
fi->set_else(range_val);
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
TRACE("array_factory_bug", tout << "array fresh value: using fresh index, range: " << mk_pp(range, m_manager) << "\n";);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue