@@ -35,8 +35,8 @@ Author: Daniel Kroening, dkr@amazon.com
3535#include < set>
3636
3737bool 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,
4040 const exprt &b,
4141 const std::unordered_set<symbol_exprt, irep_hash> &address_taken,
4242 bool verbose,
@@ -45,13 +45,11 @@ bool is_subsumed(
4545 if (b.is_true ())
4646 return true ; // anything subsumes 'true'
4747
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
5150
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
5553
5654 cout_message_handlert message_handler;
5755#if 0
@@ -183,8 +181,8 @@ void solver(
183181 std::cout << " trivial\n " ;
184182 }
185183 else if (is_subsumed (
186- f.invariants ,
187- f.auxiliaries ,
184+ f.invariants_set ,
185+ f.auxiliaries_set ,
188186 invariant,
189187 address_taken,
190188 solver_options.verbose ,
0 commit comments