mirror of
https://github.com/Z3Prover/z3
synced 2025-10-05 07:23:58 +00:00
solve_concat_eq_str() case 4 WIP
This commit is contained in:
parent
871b08bd8c
commit
f473b92d5c
2 changed files with 177 additions and 2 deletions
|
@ -57,6 +57,9 @@ namespace smt {
|
|||
|
||||
ptr_vector<enode> m_basicstr_axiom_todo;
|
||||
svector<std::pair<enode*,enode*> > m_str_eq_todo;
|
||||
|
||||
int tmpXorVarCount;
|
||||
std::map<std::pair<expr*, expr*>, std::map<int, expr*> > varForBreakConcat;
|
||||
protected:
|
||||
void assert_axiom(expr * e);
|
||||
void assert_implication(expr * premise, expr * conclusion);
|
||||
|
@ -64,6 +67,8 @@ namespace smt {
|
|||
app * mk_strlen(app * e);
|
||||
app * mk_concat(app * e1, app * e2);
|
||||
|
||||
app * mk_internal_xor_var();
|
||||
|
||||
bool is_concat(app const * a) const { return a->is_app_of(get_id(), OP_STRCAT); }
|
||||
bool is_concat(enode const * n) const { return is_concat(n->get_owner()); }
|
||||
bool is_string(app const * a) const { return a->is_app_of(get_id(), OP_STR); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue