mirror of
https://github.com/Z3Prover/z3
synced 2025-08-11 21:50:52 +00:00
remove ast_manager get_sort method entirely
This commit is contained in:
parent
489df0760f
commit
8f577d3943
72 changed files with 209 additions and 208 deletions
|
@ -2405,7 +2405,7 @@ var * ast_manager::mk_var(unsigned idx, sort * s) {
|
|||
|
||||
app * ast_manager::mk_label(bool pos, unsigned num_names, symbol const * names, expr * n) {
|
||||
SASSERT(num_names > 0);
|
||||
SASSERT(get_sort(n) == m_bool_sort);
|
||||
SASSERT(n->get_sort() == m_bool_sort);
|
||||
buffer<parameter> p;
|
||||
p.push_back(parameter(static_cast<int>(pos)));
|
||||
for (unsigned i = 0; i < num_names; i++)
|
||||
|
@ -2798,7 +2798,7 @@ proof * ast_manager::mk_true_proof() {
|
|||
}
|
||||
|
||||
proof * ast_manager::mk_asserted(expr * f) {
|
||||
CTRACE("mk_asserted_bug", !is_bool(f), tout << mk_ismt2_pp(f, *this) << "\nsort: " << mk_ismt2_pp(get_sort(f), *this) << "\n";);
|
||||
CTRACE("mk_asserted_bug", !is_bool(f), tout << mk_ismt2_pp(f, *this) << "\nsort: " << mk_ismt2_pp(f->get_sort(), *this) << "\n";);
|
||||
SASSERT(is_bool(f));
|
||||
return mk_proof(m_basic_family_id, PR_ASSERTED, f);
|
||||
}
|
||||
|
@ -2958,14 +2958,14 @@ proof * ast_manager::mk_monotonicity(func_decl * R, app * f1, app * f2, unsigned
|
|||
}
|
||||
|
||||
proof * ast_manager::mk_congruence(app * f1, app * f2, unsigned num_proofs, proof * const * proofs) {
|
||||
SASSERT(get_sort(f1) == get_sort(f2));
|
||||
SASSERT(f1->get_sort() == f2->get_sort());
|
||||
sort * s = f1->get_sort();
|
||||
sort * d[2] = { s, s };
|
||||
return mk_monotonicity(mk_func_decl(m_basic_family_id, get_eq_op(f1), 0, nullptr, 2, d), f1, f2, num_proofs, proofs);
|
||||
}
|
||||
|
||||
proof * ast_manager::mk_oeq_congruence(app * f1, app * f2, unsigned num_proofs, proof * const * proofs) {
|
||||
SASSERT(get_sort(f1) == get_sort(f2));
|
||||
SASSERT(f1->get_sort() == f2->get_sort());
|
||||
sort * s = f1->get_sort();
|
||||
sort * d[2] = { s, s };
|
||||
return mk_monotonicity(mk_func_decl(m_basic_family_id, OP_OEQ, 0, nullptr, 2, d), f1, f2, num_proofs, proofs);
|
||||
|
|
|
@ -1735,7 +1735,6 @@ protected:
|
|||
}
|
||||
|
||||
public:
|
||||
sort * get_sort(expr const * n) const { return n->get_sort(); }
|
||||
void check_sort(func_decl const * decl, unsigned num_args, expr * const * args) const;
|
||||
void check_sorts_core(ast const * n) const;
|
||||
bool check_sorts(ast const * n) const;
|
||||
|
|
|
@ -376,7 +376,7 @@ namespace euf {
|
|||
|
||||
if (!n1->merge_enabled() && !n2->merge_enabled())
|
||||
return;
|
||||
SASSERT(m.get_sort(n1->get_expr()) == m.get_sort(n2->get_expr()));
|
||||
SASSERT(n1->get_expr()->get_sort() == n2->get_expr()->get_sort());
|
||||
enode* r1 = n1->get_root();
|
||||
enode* r2 = n2->get_root();
|
||||
if (r1 == r2)
|
||||
|
@ -787,8 +787,8 @@ namespace euf {
|
|||
enode* n2 = m_nodes[i];
|
||||
enode* n2t = n1t ? old_expr2new_enode[n1->get_expr_id()] : nullptr;
|
||||
SASSERT(!n1t || n2t);
|
||||
SASSERT(!n1t || src.m.get_sort(n1->get_expr()) == src.m.get_sort(n1t->get_expr()));
|
||||
SASSERT(!n1t || m.get_sort(n2->get_expr()) == m.get_sort(n2t->get_expr()));
|
||||
SASSERT(!n1t || n1->get_expr()->get_sort() == n1t->get_expr()->get_sort());
|
||||
SASSERT(!n1t || n2->get_expr()->get_sort() == n2t->get_expr()->get_sort());
|
||||
if (n1t && n2->get_root() != n2t->get_root())
|
||||
merge(n2, n2t, n1->m_justification.copy(copy_justification));
|
||||
}
|
||||
|
|
|
@ -224,7 +224,7 @@ expr_ref bv2fpa_converter::rebuild_floats(model_core * mc, sort * s, expr * e) {
|
|||
else if (is_var(e)) {
|
||||
result = e;
|
||||
}
|
||||
SASSERT(!result || m.get_sort(result) == s);
|
||||
SASSERT(!result || result->get_sort() == s);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ Revision History:
|
|||
|
||||
|
||||
void expr_safe_replace::insert(expr* src, expr* dst) {
|
||||
SASSERT(m.get_sort(src) == m.get_sort(dst));
|
||||
SASSERT(src->get_sort() == dst->get_sort());
|
||||
m_src.push_back(src);
|
||||
m_dst.push_back(dst);
|
||||
#if ALIVE_OPT
|
||||
|
@ -111,7 +111,7 @@ void expr_safe_replace::operator()(expr* e, expr_ref& res) {
|
|||
#if !ALIVE_OPT
|
||||
m_refs.push_back(b);
|
||||
#endif
|
||||
SASSERT(m.get_sort(a) == m.get_sort(b));
|
||||
SASSERT(a->get_sort() == b->get_sort());
|
||||
} else {
|
||||
b = a;
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ expr_ref func_decl_replace::operator()(expr* e) {
|
|||
if (arg_differs) {
|
||||
b = m.mk_app(c->get_decl(), m_args.size(), m_args.c_ptr());
|
||||
m_refs.push_back(b);
|
||||
SASSERT(m.get_sort(a) == m.get_sort(b));
|
||||
SASSERT(a->get_sort() == b->get_sort());
|
||||
} else {
|
||||
b = a;
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ void rewriter_core::cache_shifted_result(expr * k, unsigned offset, expr * v) {
|
|||
|
||||
TRACE("rewriter_cache_result", tout << mk_ismt2_pp(k, m()) << "\n--->\n" << mk_ismt2_pp(v, m()) << "\n";);
|
||||
|
||||
SASSERT(m().get_sort(k) == m().get_sort(v));
|
||||
SASSERT(k->get_sort() == v->get_sort());
|
||||
|
||||
m_cache->insert(k, offset, v);
|
||||
#if 0
|
||||
|
|
|
@ -26,7 +26,7 @@ template<bool ProofGen>
|
|||
void rewriter_tpl<Config>::process_var(var * v) {
|
||||
if (m_cfg.reduce_var(v, m_r, m_pr)) {
|
||||
result_stack().push_back(m_r);
|
||||
SASSERT(v->get_sort() == m().get_sort(m_r));
|
||||
SASSERT(v->get_sort() == m_r->get_sort());
|
||||
if (ProofGen) {
|
||||
result_pr_stack().push_back(m_pr);
|
||||
m_pr = nullptr;
|
||||
|
@ -43,11 +43,11 @@ void rewriter_tpl<Config>::process_var(var * v) {
|
|||
unsigned index = 0;
|
||||
expr * r;
|
||||
if (idx < m_bindings.size() && (index = m_bindings.size() - idx - 1, r = m_bindings[index])) {
|
||||
CTRACE("rewriter", v->get_sort() != m().get_sort(r),
|
||||
tout << expr_ref(v, m()) << ":" << sort_ref(v->get_sort(), m()) << " != " << expr_ref(r, m()) << ":" << sort_ref(m().get_sort(r), m());
|
||||
CTRACE("rewriter", v->get_sort() != r->get_sort(),
|
||||
tout << expr_ref(v, m()) << ":" << sort_ref(v->get_sort(), m()) << " != " << expr_ref(r, m()) << ":" << sort_ref(r->get_sort(), m());
|
||||
tout << "index " << index << " bindings " << m_bindings.size() << "\n";
|
||||
display_bindings(tout););
|
||||
SASSERT(v->get_sort() == m().get_sort(r));
|
||||
SASSERT(v->get_sort() == r->get_sort());
|
||||
if (!is_ground(r) && m_shifts[index] != m_bindings.size()) {
|
||||
unsigned shift_amount = m_bindings.size() - m_shifts[index];
|
||||
expr* c = get_cached(r, shift_amount);
|
||||
|
@ -90,10 +90,10 @@ bool rewriter_tpl<Config>::process_const(app * t0) {
|
|||
if (m_pr) tout << mk_bounded_pp(m_pr, m()) << "\n";
|
||||
);
|
||||
CTRACE("reduce_app",
|
||||
st != BR_FAILED && m().get_sort(m_r) != t->get_sort(),
|
||||
st != BR_FAILED && m_r->get_sort() != t->get_sort(),
|
||||
tout << mk_pp(t->get_sort(), m()) << ": " << mk_pp(t, m()) << "\n";
|
||||
tout << m_r->get_id() << " " << mk_pp(m().get_sort(m_r), m()) << ": " << m_r << "\n";);
|
||||
SASSERT(st != BR_DONE || m().get_sort(m_r) == t->get_sort());
|
||||
tout << m_r->get_id() << " " << mk_pp(m_r->get_sort(), m()) << ": " << m_r << "\n";);
|
||||
SASSERT(st != BR_DONE || m_r->get_sort() == t->get_sort());
|
||||
switch (st) {
|
||||
case BR_FAILED:
|
||||
if (!retried) {
|
||||
|
@ -144,7 +144,7 @@ bool rewriter_tpl<Config>::visit(expr * t, unsigned max_depth) {
|
|||
proof * new_t_pr = nullptr;
|
||||
if (m_cfg.get_subst(t, new_t, new_t_pr)) {
|
||||
TRACE("rewriter_subst", tout << "subst\n" << mk_ismt2_pp(t, m()) << "\n---->\n" << mk_ismt2_pp(new_t, m()) << "\n";);
|
||||
SASSERT(t->get_sort() == m().get_sort(new_t));
|
||||
SASSERT(t->get_sort() == new_t->get_sort());
|
||||
result_stack().push_back(new_t);
|
||||
set_new_child_flag(t, new_t);
|
||||
SASSERT(rewrites_from(t, new_t_pr));
|
||||
|
@ -171,7 +171,7 @@ bool rewriter_tpl<Config>::visit(expr * t, unsigned max_depth) {
|
|||
#endif
|
||||
expr * r = get_cached(t);
|
||||
if (r) {
|
||||
SASSERT(m().get_sort(r) == t->get_sort());
|
||||
SASSERT(r->get_sort() == t->get_sort());
|
||||
result_stack().push_back(r);
|
||||
set_new_child_flag(t, r);
|
||||
if (ProofGen) {
|
||||
|
@ -312,10 +312,10 @@ void rewriter_tpl<Config>::process_app(app * t, frame & fr) {
|
|||
);
|
||||
SASSERT(st == BR_FAILED || rewrites_to(m_r, m_pr2));
|
||||
SASSERT(st == BR_FAILED || rewrites_from(new_t, m_pr2));
|
||||
SASSERT(st != BR_DONE || m().get_sort(m_r) == t->get_sort());
|
||||
SASSERT(st != BR_DONE || m_r->get_sort() == t->get_sort());
|
||||
if (st != BR_FAILED) {
|
||||
result_stack().shrink(fr.m_spos);
|
||||
SASSERT(m().get_sort(m_r) == t->get_sort());
|
||||
SASSERT(m_r->get_sort() == t->get_sort());
|
||||
result_stack().push_back(m_r);
|
||||
if (ProofGen) {
|
||||
result_pr_stack().shrink(fr.m_spos);
|
||||
|
@ -393,7 +393,7 @@ void rewriter_tpl<Config>::process_app(app * t, frame & fr) {
|
|||
if (get_macro(f, def, def_pr)) {
|
||||
SASSERT(!f->is_associative() || !flat_assoc(f));
|
||||
SASSERT(new_num_args == t->get_num_args());
|
||||
SASSERT(m().get_sort(def) == t->get_sort());
|
||||
SASSERT(def->get_sort() == t->get_sort());
|
||||
if (is_ground(def) && !m_cfg.reduce_macro()) {
|
||||
m_r = def;
|
||||
if (ProofGen) {
|
||||
|
@ -597,7 +597,7 @@ void rewriter_tpl<Config>::process_quantifier(quantifier * q, frame & fr) {
|
|||
}
|
||||
result_stack().shrink(fr.m_spos);
|
||||
result_stack().push_back(m_r.get());
|
||||
SASSERT(m().get_sort(q) == m().get_sort(m_r));
|
||||
SASSERT(q->get_sort() == m_r->get_sort());
|
||||
SASSERT(num_decls <= m_bindings.size());
|
||||
m_bindings.shrink(m_bindings.size() - num_decls);
|
||||
m_shifts.shrink(m_shifts.size() - num_decls);
|
||||
|
@ -759,7 +759,7 @@ void rewriter_tpl<Config>::resume_core(expr_ref & result, proof_ref & result_pr)
|
|||
if (first_visit(fr) && fr.m_cache_result) {
|
||||
expr * r = get_cached(t);
|
||||
if (r) {
|
||||
SASSERT(m().get_sort(r) == t->get_sort());
|
||||
SASSERT(r->get_sort() == t->get_sort());
|
||||
result_stack().push_back(r);
|
||||
if (ProofGen) {
|
||||
proof * pr = get_cached_pr(t);
|
||||
|
|
|
@ -47,7 +47,7 @@ expr_ref sym_expr::accept(expr* e) {
|
|||
result = m.mk_not(result);
|
||||
break;
|
||||
case t_char:
|
||||
SASSERT(e->get_sort() == m.get_sort(m_t));
|
||||
SASSERT(e->get_sort() == m_t->get_sort());
|
||||
SASSERT(e->get_sort() == m_sort);
|
||||
result = m.mk_eq(e, m_t);
|
||||
break;
|
||||
|
@ -736,7 +736,7 @@ br_status seq_rewriter::mk_app_core(func_decl * f, unsigned num_args, expr * con
|
|||
st = lift_ites_throttled(f, num_args, args, result);
|
||||
}
|
||||
CTRACE("seq_verbose", st != BR_FAILED, tout << expr_ref(m().mk_app(f, num_args, args), m()) << " -> " << result << "\n";);
|
||||
SASSERT(st == BR_FAILED || m().get_sort(result) == f->get_range());
|
||||
SASSERT(st == BR_FAILED || result->get_sort() == f->get_range());
|
||||
return st;
|
||||
}
|
||||
|
||||
|
@ -2907,7 +2907,7 @@ expr_ref seq_rewriter::mk_der_cond(expr* cond, expr* ele, sort* seq_sort) {
|
|||
<< mk_pp(cond, m()) << ", " << mk_pp(ele, m()) << std::endl;);
|
||||
sort *ele_sort = nullptr;
|
||||
VERIFY(u().is_seq(seq_sort, ele_sort));
|
||||
SASSERT(ele_sort == m().get_sort(ele));
|
||||
SASSERT(ele_sort == ele->get_sort());
|
||||
expr *c1 = nullptr, *c2 = nullptr, *ch1 = nullptr, *ch2 = nullptr;
|
||||
unsigned ch = 0;
|
||||
expr_ref result(m()), r1(m()), r2(m());
|
||||
|
@ -2959,7 +2959,7 @@ expr_ref seq_rewriter::mk_derivative_rec(expr* ele, expr* r) {
|
|||
sort* seq_sort = nullptr, *ele_sort = nullptr;
|
||||
VERIFY(m_util.is_re(r, seq_sort));
|
||||
VERIFY(m_util.is_seq(seq_sort, ele_sort));
|
||||
SASSERT(ele_sort == m().get_sort(ele));
|
||||
SASSERT(ele_sort == ele->get_sort());
|
||||
expr* r1 = nullptr, *r2 = nullptr, *p = nullptr;
|
||||
auto mk_empty = [&]() { return expr_ref(re().mk_empty(r->get_sort()), m()); };
|
||||
unsigned lo = 0, hi = 0;
|
||||
|
@ -4214,7 +4214,7 @@ bool seq_rewriter::reduce_back(expr_ref_vector& ls, expr_ref_vector& rs, expr_re
|
|||
SASSERT(s.length() > 0);
|
||||
|
||||
app_ref ch(str().mk_char(s, s.length()-1), m());
|
||||
SASSERT(m().get_sort(ch) == a->get_sort());
|
||||
SASSERT(ch->get_sort() == a->get_sort());
|
||||
new_eqs.push_back(ch, a);
|
||||
ls.pop_back();
|
||||
if (s.length() == 1) {
|
||||
|
@ -4281,7 +4281,7 @@ bool seq_rewriter::reduce_front(expr_ref_vector& ls, expr_ref_vector& rs, expr_r
|
|||
else if (str().is_unit(l, a) && str().is_string(r, s)) {
|
||||
SASSERT(s.length() > 0);
|
||||
app* ch = str().mk_char(s, 0);
|
||||
SASSERT(m().get_sort(ch) == a->get_sort());
|
||||
SASSERT(ch->get_sort() == a->get_sort());
|
||||
new_eqs.push_back(ch, a);
|
||||
++head1;
|
||||
if (s.length() == 1) {
|
||||
|
|
|
@ -749,7 +749,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
p1 = m().mk_rewrite(old_q, q1);
|
||||
}
|
||||
}
|
||||
SASSERT(m().get_sort(old_q) == m().get_sort(q1));
|
||||
SASSERT(old_q->get_sort() == q1->get_sort());
|
||||
result = elim_unused_vars(m(), q1, params_ref());
|
||||
|
||||
|
||||
|
@ -762,7 +762,7 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
|
|||
p2 = m().mk_elim_unused_vars(q1, result);
|
||||
result_pr = m().mk_transitivity(p1, p2);
|
||||
}
|
||||
SASSERT(m().get_sort(old_q) == m().get_sort(result));
|
||||
SASSERT(old_q->get_sort() == result->get_sort());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue