Ordinals[Add]
ordinal addition
Ordinals[`+`]
&+
inert ordinal addition
Calling Sequence
Parameters
Description
Examples
Compatibility
Add(a, b, ...)
a + b + ...
a &+ b &+ ...
a, b, ...
-
ordinals, nonnegative integers, or polynomials with positive integer coefficients
The Add and + calling sequences add the given ordinal numbers according to the rules of ordinal arithmetic:
a+0=a and 0+b=b.
If degree⁡a≺degree⁡b, where ≺ denotes the strict ordering of ordinals, then a+b=b.
If a=l+ωe⋅m, where l=0 or tdegree⁡l≻e, and b=ωe⋅n+r, where e≻degree⁡r, then a+b=l+ωem+n+r.
If tdegree⁡a≻degree⁡b, then a+b is just the concatenation (formal sum) of all terms of a and b, in that order.
Mathematically, addition of two ordinals a+b corresponds to the disjoint union a⊔b of the two well-orderings represented by a and b, respectively, such that every element of b is strictly larger than every element of a.
If the arguments a,b,... 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.
with⁡Ordinals
`+`,`.`,`<`,<=,Add,Base,Dec,Decompose,Div,Eval,Factor,Gcd,Lcm,LessThan,Log,Max,Min,Mult,Ordinal,Power,Split,Sub,`^`,degree,lcoeff,log,lterm,ω,quo,rem,tcoeff,tdegree,tterm
a≔Ordinal⁡ω,1,3,2,1,4,0,5
a≔ωω+ω3⋅2+ω⋅4+5
b≔Ordinal⁡2,3,0,2
b≔ω2⋅3+2
c≔Ordinal⁡3,3,2,1,1,7
c≔ω3⋅3+ω2+ω⋅7
Add⁡a,b,c=a+b+c
ωω+ω3⋅5+ω2+ω⋅7=ωω+ω3⋅5+ω2+ω⋅7
a+c+b
ωω+ω3⋅5+ω2⋅4+2
c+b+a=a
ωω+ω3⋅2+ω⋅4+5=ωω+ω3⋅2+ω⋅4+5
The inert addition operator is useful for display purposes.
result≔a&+b&+c:
result=value⁡result
ωω+ω3⋅2+ω⋅4+5+ω2⋅3+2+ω3⋅3+ω2+ω⋅7=ωω+ω3⋅5+ω2+ω⋅7
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 ω.
b+2
ω2⋅3+4
b+2+c=c
ω3⋅3+ω2+ω⋅7=ω3⋅3+ω2+ω⋅7
Parametric examples.
d≔Ordinal⁡3,x,2,1,1,7
d≔ω3⋅x+ω2+ω⋅7
d+b
ω3⋅x+ω2⋅4+2
b+d
Error, (in Ordinals:-Add) cannot determine if x is nonzero
b+Eval⁡d,x=x+1
ω3⋅x+1+ω2+ω⋅7
The Ordinals[Add], Ordinals[`+`] and &+ commands were introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
See Also
Ordinals
Ordinals[Eval]
Ordinals[LessThan]
Ordinals[Mult]
Ordinals[Ordinal]
Ordinals[Power]
Ordinals[Sub]
value
Download Help Document