mirror of
https://github.com/Z3Prover/z3
synced 2025-10-05 07:23:58 +00:00
simplify_concat_equality() and easy cases there
still WIP especially wrt. model generation but what's here does work
This commit is contained in:
parent
8ed86d2f19
commit
1cdfe159b8
3 changed files with 401 additions and 5 deletions
|
@ -65,7 +65,7 @@ namespace smt {
|
|||
void assert_axiom(expr * e);
|
||||
void assert_implication(expr * premise, expr * conclusion);
|
||||
|
||||
app * mk_strlen(app * e);
|
||||
app * mk_strlen(expr * e);
|
||||
app * mk_concat(app * e1, app * e2);
|
||||
|
||||
app * mk_internal_xor_var();
|
||||
|
@ -82,6 +82,16 @@ namespace smt {
|
|||
void handle_equality(expr * lhs, expr * rhs);
|
||||
|
||||
expr * get_eqc_value(expr * n, bool & hasEqcValue);
|
||||
bool in_same_eqc(expr * n1, expr * n2);
|
||||
|
||||
bool can_two_nodes_eq(expr * n1, expr * n2);
|
||||
bool can_concat_eq_str(expr * concat, std::string str);
|
||||
bool can_concat_eq_concat(expr * concat1, expr * concat2);
|
||||
|
||||
void get_nodes_in_concat(expr * node, ptr_vector<expr> & nodeList);
|
||||
expr * simplify_concat(expr * node);
|
||||
|
||||
void simplify_parent(expr * nn, expr * eq_str);
|
||||
|
||||
void simplify_concat_equality(expr * lhs, expr * rhs);
|
||||
void solve_concat_eq_str(expr * concat, expr * str);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue