The condition imposed by a
constraint
is the condition obtained after elaboration of the
constraint.
The rules defining compatibility are given for each
form of
constraint
in the appropriate subclause. These rules are such that if a
constraint
is
compatible with a subtype, then the condition imposed by the
constraint
cannot contradict any condition already imposed by the subtype on its
values.
The exception Constraint_Error is raised
if any check of compatibility fails.
4 A
scalar_constraint
may be applied to a subtype of an appropriate scalar type (see
3.5,
3.5.9, and
J.3),
even if the subtype is already constrained. On the other hand, a
composite_constraint
may be applied to a composite subtype (or an access-to-composite subtype)
only if the composite subtype is unconstrained (see
3.6.1
and
3.7.1).