|
Calling Sequence
|
|
Add(a, b, ...)
a + b + ...
a &+ b &+ ...
|
|
Parameters
|
|
a, b, ...
|
-
|
ordinals, nonnegative integers, or polynomials with positive integer coefficients
|
|
|
|
|
Description
|
|
•
|
The Add and + calling sequences add the given ordinal numbers according to the rules of ordinal arithmetic:
|
–
|
and .
|
–
|
If , where denotes the strict ordering of ordinals, then .
|
–
|
If , where or , and , where , then .
|
–
|
If , then is just the concatenation (formal sum) of all terms of and , in that order.
|
•
|
Mathematically, addition of two ordinals corresponds to the disjoint union of the two well-orderings represented by and , respectively, such that every element of is strictly larger than every element of .
|
•
|
If the arguments contain at least one ordinal data structure, that is, an ordinal number greater or equal to , then the result is an ordinal data structure. Otherwise, the result is a nonnegative integer or a polynomial with positive integer coefficients.
|
•
|
The &+ calling sequence is the inert form of ordinal addition. No actual addition is performed, but the result will be rendered as an inert sum, with parentheses around the arguments if necessary.
|
•
|
Applying the value command will turn the inactive &+ operator into the active + operator, causing the ordinal addition to be computed as described above.
|
•
|
In general, ordinal addition is not commutative, and the order of the operands does matter, for both calling sequences.
|
•
|
If some of the arguments are parametric ordinals and it cannot be determined whether a leading coefficient is nonzero, an error will be raised.
|
|
|
Examples
|
|
| (1) |
>
|
|
| (2) |
>
|
|
>
|
|
| (4) |
>
|
|
| (5) |
| (6) |
| (7) |
The inert addition operator is useful for display purposes.
| (8) |
Any of the arguments can be a nonnegative integer. It will be absorbed if the term to the right is an ordinal greater or equal to .
| (10) |
Parametric examples.
>
|
|
| (11) |
| (12) |
| (13) |
|
|
Compatibility
|
|
•
|
The Ordinals[Add], Ordinals[`+`] and &+ commands were introduced in Maple 2015.
|
|
|
|