3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00

add temporary variables to m_trail

This commit is contained in:
Murphy Berzish 2015-12-02 20:48:15 -05:00
parent 52f0277c99
commit 953a4c5437
2 changed files with 8 additions and 3 deletions

View file

@ -30,6 +30,7 @@ theory_str::theory_str(ast_manager & m):
m_autil(m),
m_strutil(m),
sLevel(0),
m_trail(m),
tmpStringVarCount(0),
tmpXorVarCount(0),
tmpLenTestVarCount(0),
@ -357,9 +358,8 @@ app * theory_str::mk_internal_xor_var() {
strcpy(new_buffer, name.c_str());
symbol sym(new_buffer);
app* a = m.mk_const(m.mk_const_decl(sym, int_sort));
// TODO ctx.save_ast_trail(a)?
app * a = m.mk_const(m.mk_const_decl(sym, int_sort));
m_trail.push_back(a);
return a;
}
@ -382,6 +382,7 @@ app * theory_str::mk_str_var(std::string name) {
SASSERT(ctx.e_internalized(a));
m_basicstr_axiom_todo.push_back(ctx.get_enode(a));
m_trail.push_back(a);
variable_set.insert(a);
internal_variable_set.insert(a);
track_variable_scope(a);
@ -424,6 +425,7 @@ app * theory_str::mk_nonempty_str_var() {
}
// add 'a' to variable sets, so we can keep track of it
m_trail.push_back(a);
variable_set.insert(a);
internal_variable_set.insert(a);
track_variable_scope(a);

View file

@ -67,6 +67,9 @@ namespace smt {
str_util m_strutil;
int sLevel;
// TODO make sure that all generated expressions are saved into the trail
expr_ref_vector m_trail; // trail for generated terms
str_value_factory * m_factory;
ptr_vector<enode> m_basicstr_axiom_todo;