Objectives

This section discusses the requirements for subtyping. Ideally, these requirements include the preservation of behavioral properties, both invariance properties and history properties. We also show that, under the interpretation of types as constraints, there is a duality between expressing constraints as static types and as conditions that are imposed dynamically.

Points to emphasize

Hints

Both invariance and history properties are important for the interpretation of types. In particular, history properties may be hard to establish when not specified at design time.

Questions

    .so q1

Comments

The duality of static and dynamic constraints may need some explanation. It is related to the notion of maximal types as for examples employed in Z, which allows one to move type information to additional conditions. See section zed.