19 std::vector<exprt> &let_order)
26 seen_expressionst::iterator entry = map.find(expr);
28 if(entry != map.end())
41 map.find(expr) == map.end(),
"expression should not have been seen yet");
48 let_order.push_back(expr);
55 const std::vector<exprt> &let_order,
61 for(
auto r_it = let_order.rbegin(); r_it != let_order.rend(); r_it++)
63 const exprt ¤t = *r_it;
65 auto m_it = map.
find(current);
69 if(m_it->second.count > 1)
82 std::vector<exprt> let_order;
86 return letify(expr, let_order, map);
99 seen_expressionst::const_iterator it = map.find(expr);
102 if(it != map.end() && it->second.count > 1)
103 expr = it->second.let_symbol;