3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00

regex tracing theory_str

This commit is contained in:
Murphy Berzish 2016-12-05 20:17:43 -05:00
parent 406b622f59
commit be9cb8db82
2 changed files with 2 additions and 1 deletions

View file

@ -456,10 +456,10 @@ br_status str_rewriter::mk_re_RegexIn(expr * str, expr * re, expr_ref & result)
// fast path:
// (RegexIn E (Str2Reg S)) --> (= E S)
if (m_strutil.is_re_Str2Reg(re)) {
TRACE("t_str_rw", tout << "RegexIn fast path: " << mk_pp(str, m()) << " in " << mk_pp(re, m()) << std::endl;);
expr * regexStr = to_app(re)->get_arg(0);
ENSURE(m_strutil.is_string(regexStr));
result = m().mk_eq(str, regexStr);
TRACE("t_str_rw", tout << "RegexIn fast path: " << mk_pp(str, m()) << " in " << mk_pp(re, m()) << " ==> " << mk_pp(result, m()) << std::endl;);
return BR_REWRITE_FULL;
}

View file

@ -1708,6 +1708,7 @@ void theory_str::instantiate_axiom_RegexIn(enode * e) {
expr_ref finalAxiom(m.mk_iff(ex, rhs), m);
SASSERT(finalAxiom);
assert_axiom(finalAxiom);
TRACE("t_str", tout << "set up Str2Reg: (RegexIn " << mk_pp(str, m) << " " << mk_pp(regex, m) << ")" << std::endl;);
} else if (is_RegexConcat(regex)) {
expr_ref var1(mk_regex_rep_var(), m);
expr_ref var2(mk_regex_rep_var(), m);