Major Section: PROGRAMMING
Make-ord is the ordinal constructor. Its use is recommended instead of
using cons to make ordinals. For a discussion of ordinals,
see ordinals.
For any ordinal, alpha < epsilon-0, there exist natural numbers p and
n, positive integers x1, x2, ..., xn and ordinals
a1 > a2 > ... > an > 0 such that alpha > a1 and
alpha = w^(a1)x1 + w^(a2)x2 + ... + w^(an)xn + p. We call a1 the ``first
exponent'', x1 the ``first coefficient'', and the remainder
(w^(a2)x2 + ... + w^(an)xn + p) the ``rest'' of alpha.
(Make-ord fe fco rst) corresponds to the ordinal
(w^fe)fco + rst. Thus the first infinite ordinal, w (omega), is
constructed by
(make-ord 1 1 0)and, for example, the ordinal
(w^2)5 + w2 + 7 is constructed by:
(make-ord 2 5 (make-ord 1 2 7)) .
The reason make-ord is used rather than cons is that it
allows us to reason more abstractly about the ordinals, without
having to worry about the underlying representation.