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
- subtype requirements --
preservation of behavioral properties
- behavioral properties --
invariance, history
- duality --
static versus dynamic constraints
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].