mirror of
https://github.com/Z3Prover/z3
synced 2025-08-02 17:30:23 +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
|
@ -55,7 +55,7 @@ namespace smt {
|
|||
expr* e = ctx.bool_var2expr(lit.var());
|
||||
expr_ref id(a().mk_int(e->get_id()), m);
|
||||
VERIFY(str().is_in_re(e, s, r));
|
||||
sort* seq_sort = m.get_sort(s);
|
||||
sort* seq_sort = s->get_sort();
|
||||
vector<expr_ref_vector> patterns;
|
||||
auto mk_cont = [&](unsigned idx) {
|
||||
return sk().mk("seq.cont", id, a().mk_int(idx), seq_sort);
|
||||
|
@ -158,7 +158,7 @@ namespace smt {
|
|||
}
|
||||
else {
|
||||
//add the literal back
|
||||
expr_ref r_alias(m.mk_fresh_const(symbol(r->get_id()), m.get_sort(r), false), m);
|
||||
expr_ref r_alias(m.mk_fresh_const(symbol(r->get_id()), r->get_sort(), false), m);
|
||||
expr_ref s_in_r_alias(re().mk_in_re(s, r_alias), m);
|
||||
literal s_in_r_alias_lit = th.mk_literal(s_in_r_alias);
|
||||
m_const_to_expr.insert(r_alias, r, nullptr);
|
||||
|
@ -192,7 +192,7 @@ namespace smt {
|
|||
*/
|
||||
expr_ref seq_regex::get_overapprox_regex(expr* s) {
|
||||
expr_ref s_to_re(re().mk_to_re(s), m);
|
||||
expr_ref dotstar(re().mk_full_seq(m.get_sort(s_to_re)), m);
|
||||
expr_ref dotstar(re().mk_full_seq(s_to_re->get_sort()), m);
|
||||
if (m.is_value(s))
|
||||
return s_to_re;
|
||||
|
||||
|
@ -209,7 +209,7 @@ namespace smt {
|
|||
last = e_approx;
|
||||
}
|
||||
if (!s_approx)
|
||||
s_approx = re().mk_epsilon(m.get_sort(s));
|
||||
s_approx = re().mk_epsilon(s->get_sort());
|
||||
|
||||
return s_approx;
|
||||
}
|
||||
|
@ -402,7 +402,7 @@ namespace smt {
|
|||
expr_ref seq_regex::symmetric_diff(expr* r1, expr* r2) {
|
||||
expr_ref r(m);
|
||||
if (r1 == r2)
|
||||
r = re().mk_empty(m.get_sort(r1));
|
||||
r = re().mk_empty(r1->get_sort());
|
||||
else if (re().is_empty(r1))
|
||||
r = r2;
|
||||
else if (re().is_empty(r2))
|
||||
|
@ -458,7 +458,7 @@ namespace smt {
|
|||
STRACE("seq_regex", tout << "derivative(" << mk_pp(hd, m) << "): " << mk_pp(r, m) << std::endl;);
|
||||
|
||||
// Use canonical variable for head
|
||||
expr_ref hd_canon(m.mk_var(0, m.get_sort(hd)), m);
|
||||
expr_ref hd_canon(m.mk_var(0, hd->get_sort()), m);
|
||||
expr_ref result(re().mk_derivative(hd_canon, r), m);
|
||||
rewrite(result);
|
||||
|
||||
|
@ -496,7 +496,7 @@ namespace smt {
|
|||
if (re().is_empty(r))
|
||||
//trivially true
|
||||
return;
|
||||
expr_ref emp(re().mk_empty(m.get_sort(r)), m);
|
||||
expr_ref emp(re().mk_empty(r->get_sort()), m);
|
||||
expr_ref f(m.mk_fresh_const("re.char", seq_sort), m);
|
||||
expr_ref is_empty = sk().mk_is_empty(r, r, f);
|
||||
// is_empty : (re,re,seq) -> Bool is a Skolem function
|
||||
|
@ -516,7 +516,7 @@ namespace smt {
|
|||
sort* seq_sort = nullptr;
|
||||
VERIFY(u().is_re(r1, seq_sort));
|
||||
expr_ref r = symmetric_diff(r1, r2);
|
||||
expr_ref emp(re().mk_empty(m.get_sort(r)), m);
|
||||
expr_ref emp(re().mk_empty(r->get_sort()), m);
|
||||
expr_ref n(m.mk_fresh_const("re.char", seq_sort), m);
|
||||
expr_ref is_non_empty = sk().mk_is_non_empty(r, r, n);
|
||||
th.add_axiom(th.mk_eq(r1, r2, false), th.mk_literal(is_non_empty));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue