In generalization hierarchies, are you required to have disjointness and completeness constraints, or is it optional? I am assuming both must be required since it is defining the relationship between the supertype and subtype.