3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-04 05:19:11 +00:00

remove ast_manager get_sort method entirely

This commit is contained in:
Nikolaj Bjorner 2021-02-02 13:57:01 -08:00
parent 489df0760f
commit 8f577d3943
72 changed files with 209 additions and 208 deletions

View file

@ -91,7 +91,7 @@ struct var_abs_rewriter : public default_rewriter_cfg {
bool get_subst(expr * s, expr * & t, proof * & t_pr) {
if (m_util.is_numeral(s)) {
t = m.mk_var(m_var_index++, m.get_sort(s));
t = m.mk_var(m_var_index++, s->get_sort());
m_substitution.insert(t, s);
m_pinned.push_back(t);
m_has_num.mark(s, true);
@ -396,7 +396,7 @@ struct mk_num_pat_rewriter : public default_rewriter_cfg {
bool get_subst(expr * s, expr * & t, proof * & t_pr) {
if (m_arith.is_numeral(s)) {
t = m.mk_var(m_subs.size(), m.get_sort(s));
t = m.mk_var(m_subs.size(), s->get_sort());
m_pinned.push_back(t);
m_subs.push_back(to_app(s));

View file

@ -467,7 +467,7 @@ void model_evaluator::eval_array_eq(app* e, expr* arg1, expr* arg2)
set_true(e);
return;
}
sort* s = m.get_sort(arg1);
sort* s = arg1->get_sort();
sort* r = get_array_range(s);
// give up evaluating finite domain/range arrays
if (!r->is_infinite() && !r->is_very_big() && !s->is_infinite() && !s->is_very_big()) {

View file

@ -110,7 +110,7 @@ void model_evaluator_array_util::eval_array_eq(model& mdl, app* e, expr* arg1, e
res = m.mk_true ();
return;
}
sort* s = m.get_sort(arg1);
sort* s = arg1->get_sort();
sort* r = get_array_range(s);
// give up evaluating finite domain/range arrays
if (!r->is_infinite() && !r->is_very_big() && !s->is_infinite() && !s->is_very_big()) {

View file

@ -124,7 +124,7 @@ namespace spacer {
return false;
}
SASSERT(lit->get_num_args() == 2);
sort* s = m.get_sort(lit->get_arg(0));
sort* s = lit->get_arg(0)->get_sort();
bool is_int = m_arith.is_int(s);
if (!is_int && m_arith.is_int_expr(lit->get_arg(0))) {
is_int = true;

View file

@ -101,7 +101,7 @@ peq::peq (app* p, ast_manager& m):
VERIFY (is_partial_eq (p));
SASSERT (m_arr_u.is_array (m_lhs) &&
m_arr_u.is_array (m_rhs) &&
ast_eq_proc() (m.get_sort (m_lhs), m.get_sort (m_rhs)));
ast_eq_proc() (m_lhs->get_sort (), m_rhs->get_sort ()));
for (unsigned i = 2; i < p->get_num_args (); i++) {
m_diff_indices.push_back (p->get_arg (i));
}
@ -120,12 +120,12 @@ peq::peq (expr* lhs, expr* rhs, unsigned num_indices, expr * const * diff_indice
{
SASSERT (m_arr_u.is_array (lhs) &&
m_arr_u.is_array (rhs) &&
ast_eq_proc() (m.get_sort (lhs), m.get_sort (rhs)));
ast_eq_proc() (lhs->get_sort (), rhs->get_sort ()));
ptr_vector<sort> sorts;
sorts.push_back (m.get_sort (m_lhs));
sorts.push_back (m.get_sort (m_rhs));
sorts.push_back (m_lhs->get_sort ());
sorts.push_back (m_rhs->get_sort ());
for (unsigned i = 0; i < num_indices; i++) {
sorts.push_back (m.get_sort (diff_indices [i]));
sorts.push_back (diff_indices[i]->get_sort ());
m_diff_indices.push_back (diff_indices [i]);
}
m_decl = m.mk_func_decl (symbol (PARTIAL_EQ), sorts.size (), sorts.c_ptr (), m.mk_bool_sort ());
@ -161,7 +161,7 @@ void peq::mk_eq (app_ref_vector& aux_consts, app_ref& result, bool stores_on_rhs
std::swap (lhs, rhs);
}
// lhs = (...(store (store rhs i0 v0) i1 v1)...)
sort* val_sort = get_array_range (m.get_sort (lhs));
sort* val_sort = get_array_range (lhs->get_sort ());
expr_ref_vector::iterator end = m_diff_indices.end ();
for (expr_ref_vector::iterator it = m_diff_indices.begin ();
it != end; it++) {
@ -241,7 +241,7 @@ namespace spacer_qe {
res = is_linear(-mul, t1, c, ts);
}
else if (a.is_numeral(t, mul1)) {
ts.push_back(a.mk_numeral(mul*mul1, m.get_sort(t)));
ts.push_back(a.mk_numeral(mul*mul1, t->get_sort()));
}
else if ((*m_var)(t)) {
IF_VERBOSE(2, verbose_stream() << "can't project:" << mk_pp(t, m) << "\n";);
@ -252,7 +252,7 @@ namespace spacer_qe {
ts.push_back(t);
}
else {
ts.push_back(a.mk_mul(a.mk_numeral(mul, m.get_sort(t)), t));
ts.push_back(a.mk_mul(a.mk_numeral(mul, t->get_sort()), t));
}
return res;
}
@ -411,7 +411,7 @@ namespace spacer_qe {
expr_ref cx (m), cxt (m), z (m), result (m);
cx = mk_mul (m_coeffs[i], eq_term);
cxt = mk_add (cx, m_terms.get(i));
z = a.mk_numeral(rational(0), m.get_sort(eq_term));
z = a.mk_numeral(rational(0), eq_term->get_sort());
if (m_eq[i]) {
// c*x + t = 0
result = a.mk_eq (cxt, z);
@ -842,7 +842,7 @@ namespace spacer_qe {
bt = mk_mul(abs(bc), t);
as = mk_mul(abs(ac), s);
ts = mk_add(bt, as);
z = a.mk_numeral(rational(0), m.get_sort(t));
z = a.mk_numeral(rational(0), t->get_sort());
expr_ref result1(m), result2(m);
if (m_strict[i] || m_strict[j]) {
result1 = a.mk_lt(ts, z);
@ -898,7 +898,7 @@ namespace spacer_qe {
return a.mk_add(t1, t2);
}
expr* mk_mul(rational const& r, expr* t2) {
expr* t1 = a.mk_numeral(r, m.get_sort(t2));
expr* t1 = a.mk_numeral(r, t2->get_sort());
return a.mk_mul(t1, t2);
}
@ -1407,7 +1407,7 @@ namespace spacer_qe {
// if a_new is select on m_v, introduce new constant
if (m_arr_u.is_select (a) &&
(args.get (0) == m_v || m_has_stores_v.is_marked (args.get (0)))) {
sort* val_sort = get_array_range (m.get_sort (m_v));
sort* val_sort = get_array_range (m_v->get_sort());
app_ref val_const (m.mk_fresh_const ("sel", val_sort), m);
m_aux_vars.push_back (val_const);
// extend M to include val_const
@ -2073,7 +2073,7 @@ namespace spacer_qe {
if (sel_terms.empty ()) return;
expr* v = sel_terms.get (0)->get_arg (0); // array variable
sort* v_sort = m.get_sort (v);
sort* v_sort = v->get_sort ();
sort* val_sort = get_array_range (v_sort);
sort* idx_sort = get_array_domain (v_sort, 0);
(void) idx_sort;