mirror of
https://github.com/Z3Prover/z3
synced 2025-04-10 19:27:06 +00:00
parent
b6bf299b8b
commit
35e8decdb1
src
|
@ -106,8 +106,8 @@ extern "C" {
|
|||
SET_ERROR_CODE(Z3_INVALID_ARG, "expression is not a string literal");
|
||||
return "";
|
||||
}
|
||||
std::string result = str.encode();
|
||||
return mk_c(c)->mk_external_string(result);
|
||||
std::string s = str.encode();
|
||||
return mk_c(c)->mk_external_string(s);
|
||||
Z3_CATCH_RETURN("");
|
||||
}
|
||||
|
||||
|
|
|
@ -9914,6 +9914,8 @@ class SeqRef(ExprRef):
|
|||
|
||||
def as_string(self):
|
||||
"""Return a string representation of sequence expression."""
|
||||
if self.is_string_value():
|
||||
return Z3_get_string(self.ctx_ref(), self.as_ast())
|
||||
return Z3_ast_to_string(self.ctx_ref(), self.as_ast())
|
||||
|
||||
|
||||
|
|
|
@ -386,7 +386,6 @@ eautomaton* re2automaton::seq2aut(expr* e) {
|
|||
|
||||
br_status seq_rewriter::mk_app_core(func_decl * f, unsigned num_args, expr * const * args, expr_ref & result) {
|
||||
SASSERT(f->get_family_id() == get_fid());
|
||||
TRACE("seq", tout << f->get_name() << "\n";);
|
||||
br_status st = BR_FAILED;
|
||||
switch(f->get_decl_kind()) {
|
||||
|
||||
|
|
|
@ -449,7 +449,7 @@ void asserted_formulas::propagate_values() {
|
|||
m_expr2depth.reset();
|
||||
m_scoped_substitution.push();
|
||||
unsigned prop = num_prop;
|
||||
TRACE("propagate_values", tout << "before:\n"; display(tout););
|
||||
TRACE("propagate_values", display(tout << "before:\n"););
|
||||
unsigned i = m_qhead;
|
||||
unsigned sz = m_formulas.size();
|
||||
for (; i < sz; i++) {
|
||||
|
@ -482,15 +482,13 @@ unsigned asserted_formulas::propagate_values(unsigned i) {
|
|||
expr_ref new_n(m);
|
||||
proof_ref new_pr(m);
|
||||
m_rewriter(n, new_n, new_pr);
|
||||
TRACE("propagate_values", tout << n << "\n" << new_n << "\n";);
|
||||
if (m.proofs_enabled()) {
|
||||
proof * pr = m_formulas[i].get_proof();
|
||||
new_pr = m.mk_modus_ponens(pr, new_pr);
|
||||
}
|
||||
justified_expr j(m, new_n, new_pr);
|
||||
m_formulas[i] = j;
|
||||
if (m_formulas[i].get_fml() != new_n) {
|
||||
std::cout << "NOT updated\n";
|
||||
}
|
||||
if (m.is_false(j.get_fml())) {
|
||||
m_inconsistent = true;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue