File tree 2 files changed +7
-6
lines changed
2 files changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -49,7 +49,8 @@ namespace smt {
49
49
m_iteration_idx (0 ),
50
50
m_has_rec_fun (false ),
51
51
m_curr_model (nullptr ),
52
- m_pinned_exprs (m) {
52
+ m_pinned_exprs (m),
53
+ m_fresh_exprs (m) {
53
54
}
54
55
55
56
model_checker::~model_checker () {
@@ -79,15 +80,14 @@ namespace smt {
79
80
}
80
81
81
82
expr * model_checker::get_type_compatible_term (expr * val) {
82
- for (auto const & kv : m_value2expr) {
83
- if (m.get_sort (kv.m_key ) == m.get_sort (val) &&
84
- !contains_model_value (kv.m_value )) {
85
- return kv.m_value ;
83
+ for (expr* f : m_fresh_exprs) {
84
+ if (m.get_sort (f) == m.get_sort (val)) {
85
+ return f;
86
86
}
87
87
}
88
88
app* fresh_term = m.mk_fresh_const (" sk" , m.get_sort (val));
89
89
m_context->ensure_internalized (fresh_term);
90
- m_value2expr. insert (val, fresh_term);
90
+ m_fresh_exprs. push_back ( fresh_term);
91
91
return fresh_term;
92
92
}
93
93
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ namespace smt {
54
54
bool m_has_rec_fun;
55
55
proto_model * m_curr_model;
56
56
obj_map<expr, expr *> m_value2expr;
57
+ expr_ref_vector m_fresh_exprs;
57
58
58
59
friend class instantiation_set ;
59
60
You can’t perform that action at this time.
0 commit comments