mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
z3str3: check for and re-internalize str.in.re terms
This commit is contained in:
parent
58bc2bff0b
commit
4fc64ab578
|
@ -9926,6 +9926,12 @@ namespace smt {
|
||||||
expr * str = nullptr;
|
expr * str = nullptr;
|
||||||
expr * re = nullptr;
|
expr * re = nullptr;
|
||||||
u.str.is_in_re(str_in_re, str, re);
|
u.str.is_in_re(str_in_re, str, re);
|
||||||
|
if (!ctx.b_internalized(str_in_re)) {
|
||||||
|
TRACE("str", tout << "regex term " << mk_pp(str_in_re, m) << " not internalized; fixing and continuing" << std::endl;);
|
||||||
|
ctx.internalize(str_in_re, false);
|
||||||
|
finalCheckProgressIndicator = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
lbool current_assignment = ctx.get_assignment(str_in_re);
|
lbool current_assignment = ctx.get_assignment(str_in_re);
|
||||||
TRACE("str", tout << "regex term: " << mk_pp(str, m) << " in " << mk_pp(re, m) << " : " << current_assignment << std::endl;);
|
TRACE("str", tout << "regex term: " << mk_pp(str, m) << " in " << mk_pp(re, m) << " : " << current_assignment << std::endl;);
|
||||||
if (current_assignment == l_undef) {
|
if (current_assignment == l_undef) {
|
||||||
|
|
Loading…
Reference in a new issue