--- ai05s/ai05-0153-2.txt 2010/04/02 23:42:26 1.8 +++ ai05s/ai05-0153-2.txt 2010/10/19 03:51:17 1.9 @@ -75,20 +75,13 @@ The *lower bound* of a set_constraint is the smallest value used in an expression or the lower bound of a discrete range in the -discrete_choice_list of the constraint, unless the list only contains null range -choices, in which case it is the largest value used in the lower bound of -a discrete range. The *upper bound* of a set_constraint is the largest value -used in an expression or the lower bound of a discrete range in the -discrete_choice_list of the constraint, unless the list only contains null range -choices, in which case it is the smallest value used in the upper bound of -a discrete range. +discrete_choice_list of the constraint. The *upper bound* of a set_constraint +is the largest value used in an expression or the lower bound of a discrete range in the +discrete_choice_list of the constraint. AARM Reason: We define upper and lower bounds for set_constraints so that the existing assumption that all discrete subtypes have such bounds is maintained. -We have the special case for all null range choices so that the bounds in that -case represent a null range as well. For instance, for Natural when 3 .. 1 | 11 .. 10, -the basic rules give bounds of 3 .. 10, which would be annoying; the special rules -give given bounds of 11 .. 1 (which make more sense). +We don't have to deal with null ranges as those are made illegal elsewhere. End AARM Reason. A scalar subtype is a *set subtype* if it has a set_constraint, or is a subtype

Questions? Ask the ACAA Technical Agent