35
35
#include < set>
36
36
37
37
bool is_subsumed (
38
- const std::vector <exprt> &a1,
39
- const std::vector <exprt> &a2,
38
+ const std::unordered_set <exprt, irep_hash > &a1,
39
+ const std::unordered_set <exprt, irep_hash > &a2,
40
40
const exprt &b,
41
41
const std::unordered_set<symbol_exprt, irep_hash> &address_taken,
42
42
bool verbose,
@@ -45,13 +45,11 @@ bool is_subsumed(
45
45
if (b.is_true ())
46
46
return true ; // anything subsumes 'true'
47
47
48
- for (auto &a_conjunct : a1)
49
- if (a_conjunct.is_false ())
50
- return true ; // 'false' subsumes anything
48
+ if (a1.find (false_exprt ()) != a1.end ())
49
+ return true ; // 'false' subsumes anything
51
50
52
- for (auto &a_conjunct : a1)
53
- if (a_conjunct == b)
54
- return true ; // b is subsumed by a conjunct in a
51
+ if (a1.find (b) != a1.end ())
52
+ return true ; // b is subsumed by a conjunct in a
55
53
56
54
cout_message_handlert message_handler;
57
55
#if 0
@@ -183,8 +181,8 @@ void solver(
183
181
std::cout << " trivial\n " ;
184
182
}
185
183
else if (is_subsumed (
186
- f.invariants ,
187
- f.auxiliaries ,
184
+ f.invariants_set ,
185
+ f.auxiliaries_set ,
188
186
invariant,
189
187
address_taken,
190
188
solver_options.verbose ,
0 commit comments