in include/PowersetAbstractDomain.h [155:169]
void difference_with(const Derived& other) {
if (this->is_bottom() || other.is_top()) {
this->set_to_bottom();
} else if (this->is_top() || other.is_bottom()) {
// Note that the difference of top with anything except top is top.
return;
} else {
auto kind = this->get_value()->difference_with(*other.get_value());
if (kind == AbstractValueKind::Bottom) {
this->set_to_bottom();
} else if (kind == AbstractValueKind::Top) {
this->set_to_top();
}
}
}