mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
theory_str data structure refactoring
This commit is contained in:
parent
f9b3c47bf5
commit
d67f732c7c
2 changed files with 6 additions and 7 deletions
|
@ -6606,7 +6606,7 @@ void theory_str::finite_model_test(expr * testvar, expr * str) {
|
|||
}
|
||||
} else {
|
||||
bool map_effectively_empty = false;
|
||||
if (fvar_len_count_map.find(v) == fvar_len_count_map.end()) {
|
||||
if (!fvar_len_count_map.contains(v)) {
|
||||
map_effectively_empty = true;
|
||||
}
|
||||
|
||||
|
@ -6701,7 +6701,7 @@ void theory_str::finite_model_test(expr * testvar, expr * str) {
|
|||
|
||||
void theory_str::more_len_tests(expr * lenTester, std::string lenTesterValue) {
|
||||
ast_manager & m = get_manager();
|
||||
if (lenTester_fvar_map.find(lenTester) != lenTester_fvar_map.end()) {
|
||||
if (lenTester_fvar_map.contains(lenTester)) {
|
||||
expr * fVar = lenTester_fvar_map[lenTester];
|
||||
expr * toAssert = gen_len_val_options_for_free_var(fVar, lenTester, lenTesterValue);
|
||||
TRACE("t_str_detail", tout << "asserting more length tests for free variable " << mk_ismt2_pp(fVar, m) << std::endl;);
|
||||
|
@ -9952,7 +9952,7 @@ expr * theory_str::gen_len_val_options_for_free_var(expr * freeVar, expr * lenTe
|
|||
return binary_search_length_test(freeVar, lenTesterInCbEq, lenTesterValue);
|
||||
} else {
|
||||
bool map_effectively_empty = false;
|
||||
if (fvar_len_count_map.find(freeVar) == fvar_len_count_map.end()) {
|
||||
if (!fvar_len_count_map.contains(freeVar)) {
|
||||
TRACE("t_str_detail", tout << "fvar_len_count_map is empty" << std::endl;);
|
||||
map_effectively_empty = true;
|
||||
}
|
||||
|
|
|
@ -195,7 +195,6 @@ namespace smt {
|
|||
|
||||
bool finalCheckProgressIndicator;
|
||||
|
||||
// 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;
|
||||
|
@ -236,11 +235,11 @@ namespace smt {
|
|||
obj_hashtable<expr> internal_valTest_vars;
|
||||
obj_hashtable<expr> internal_unrollTest_vars;
|
||||
|
||||
std::set<expr*> input_var_in_len;
|
||||
obj_hashtable<expr> input_var_in_len;
|
||||
|
||||
std::map<expr*, unsigned int> fvar_len_count_map;
|
||||
obj_map<expr, unsigned int> fvar_len_count_map;
|
||||
std::map<expr*, ptr_vector<expr> > fvar_lenTester_map;
|
||||
std::map<expr*, expr*> lenTester_fvar_map;
|
||||
obj_map<expr, expr*> lenTester_fvar_map;
|
||||
|
||||
std::map<expr*, std::map<int, svector<std::pair<int, expr*> > > > fvar_valueTester_map;
|
||||
std::map<expr*, expr*> valueTester_fvar_map;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue