1 0 Pizzas that could be extended - they have the given toppings, but could also have other, unspecified toppings A class that uses a functional property (hasMaterialState) twice. This is not inconsistent unless MaterialStates have been declared disjoint All IceCreams must have at least 1 topping. Any individual that has a topping must be a Pizza. Therefore all IceCreams must be Pizzas. Icecream is inferred to be a subclass of Pizza. The MaterialStates should be disjoint, but this has been left out - see LiquidSolidIceCream Pizzas that have been closed to limit what toppings they can have We have not asserted that all pizzas must have at least 1 topping