Consider a type IntBag, with operations to insert and remove elements, as well as all the observers of IntSet. Bags are like sets except that elements can occur multiple times in a bag.
Is IntBag a legitimate subtype of IntSet? Explain by arguing that either the Liskov substitution principle is violated (for a non-subtype) or that it holds (for a subtype).