mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 18:31:49 +00:00
patch to fix #5110
This commit is contained in:
parent
d91eac24b7
commit
44156f9f55
|
@ -641,13 +641,13 @@ namespace datatype {
|
|||
}
|
||||
|
||||
bool util::is_considered_uninterpreted(func_decl * f, unsigned n, expr* const* args) {
|
||||
if (is_accessor(f)) {
|
||||
func_decl* c = get_accessor_constructor(f);
|
||||
SASSERT(n == 1);
|
||||
if (is_constructor(args[0]))
|
||||
return to_app(args[0])->get_decl() != c;
|
||||
if (!is_accessor(f))
|
||||
return false;
|
||||
}
|
||||
func_decl* c = get_accessor_constructor(f);
|
||||
SASSERT(n == 1);
|
||||
std::cout << f->get_name() << " " << mk_pp(args[0], m) << "\n";
|
||||
if (is_constructor(args[0]))
|
||||
return to_app(args[0])->get_decl() != c;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -363,12 +363,17 @@ struct evaluator_cfg : public default_rewriter_cfg {
|
|||
result = m.get_some_value(f->get_range());
|
||||
return BR_DONE;
|
||||
}
|
||||
else if (m_dt.is_accessor(f) && !is_ground(args[0])) {
|
||||
result = m.mk_app(f, num, args);
|
||||
return BR_DONE;
|
||||
}
|
||||
if (fi) {
|
||||
if (fi->is_partial())
|
||||
fi->set_else(m.get_some_value(f->get_range()));
|
||||
|
||||
var_subst vs(m, false);
|
||||
result = vs(fi->get_interp(), num, args);
|
||||
std::cout << result << "\n";
|
||||
return BR_REWRITE_FULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue