3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-23 11:37:54 +00:00

more seq overhaul

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-18 17:32:28 -07:00
parent 76735476d4
commit a9c4984a16
13 changed files with 1888 additions and 1860 deletions

View file

@ -47,6 +47,12 @@ namespace smt {
expr_ref mk_concat(expr* e1, expr* e2, expr* e3) { return expr_ref(seq.str.mk_concat(e1, e2, e3), m); }
expr_ref mk_concat(expr* e1, expr* e2) { return expr_ref(seq.str.mk_concat(e1, e2), m); }
expr_ref mk_nth(expr* e, expr* i) { return expr_ref(seq.str.mk_nth_i(e, i), m); }
literal mk_ge(expr* e, int k) { return mk_ge(e, a.mk_int(k)); }
literal mk_le(expr* e, int k) { return mk_le(e, a.mk_int(k)); }
literal mk_ge(expr* e, rational const& k) { return mk_ge(e, a.mk_int(k)); }
literal mk_le(expr* e, rational const& k) { return mk_le(e, a.mk_int(k)); }
literal mk_ge(expr* x, expr* y) { return mk_literal(a.mk_ge(x, y)); }
literal mk_le(expr* x, expr* y) { return mk_literal(a.mk_le(x, y)); }
void add_axiom(literal l1, literal l2 = null_literal, literal l3 = null_literal,
literal l4 = null_literal, literal l5 = null_literal) { add_axiom5(l1, l2, l3, l4, l5); }
@ -78,12 +84,12 @@ namespace smt {
void add_nth_axiom(expr* n);
void add_itos_axiom(expr* n);
void add_stoi_axiom(expr* n);
void add_stoi_non_empty_axiom(expr* e);
void add_stoi_axiom(expr* e, unsigned k);
void add_itos_axiom(expr* s, unsigned k);
void add_lt_axiom(expr* n);
void add_le_axiom(expr* n);
void add_unit_axiom(expr* n);
literal is_digit(expr* ch);
void add_si_axiom(expr* e, expr* n, unsigned k);
expr_ref add_length_limit(expr* s, unsigned k);
};