Ordinals[Mult]
ordinal multiplication
Ordinals[`.`]
&.
inert ordinal multiplication
Calling Sequence
Parameters
Description
Examples
Compatibility
Mult(a, b, ...)
a . b . ...
a &. b &. ...
a, b, ...
-
ordinals, nonnegative integers, or polynomials with positive integer coefficients
The Mult and . calling sequences multiply the given ordinal numbers according to the rules of ordinal arithmetic. Let a=ωe⋅c+r, where c is a positive integer and r=0 or e≻degree⁡r in the strict ordering ≻ of ordinals.
a⋅0=0⋅b=0.
If b is a positive integer, then a⋅b=ωe⋅c⁢b+r.
If b=ωf1⋅d1+⋯+ωfk⋅dk, where k≥1 and f1≻⋯≻fk≻0, then a⋅b=ωe+f1⋅d1+⋯+ωe+fk⋅dk.
If b=b1+b2, then a⋅b=a⋅b1+a⋅b2.
Mathematically, multiplication of two ordinals a⋅b corresponds to the cartesian product a×b of the two well-orderings represented by a and b, respectively, together with the lexicographic ordering:
∀x1,x2∈a∀y1,y2∈b:x1,y1≺x2,y2⇔y1≺by2∨y1=y2∧x1≺ax2
If the arguments a,b,... are all nonzero and 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 multiplication. No actual multiplication is performed, but the result will be rendered as an inert product, with parentheses around the arguments if necessary.
Applying the value command will turn the inactive &. operator into the active . operator, causing the ordinal multiplication to be computed as described above.
In general, ordinal multiplication 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 or trailing 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
Mult⁡ω+2,3=ω+2·3
ω⋅3+2=ω⋅3+2
3·ω+2≠ω+2·3
ω+6≠ω⋅3+2
a≔Ordinal⁡ω,1,2,3
a≔ωω+ω2⋅3
b≔a+5
b≔ωω+ω2⋅3+5
b+b=b·2
ωω⋅2+ω2⋅3+5=ωω⋅2+ω2⋅3+5
ω·b·2
ωω⋅2+ω3⋅3+ω⋅5
b·b=b·a+b·5
ωω⋅2+ωω+2⋅3+ωω⋅5+ω2⋅3+5=ωω⋅2+ωω+2⋅3+ωω⋅5+ω2⋅3+5
The inert multiplication operator is useful for display purposes:
result≔ω&.b&.2:
result=value⁡result
ω⋅ωω+ω2⋅3+5⋅2=ωω⋅2+ω3⋅3+ω⋅5
Multiplication by a positive integer from the right only affects the leading coefficient, and from the left only affects the constant coefficient:
c≔Ordinal⁡3,1,1,2,0,4
c≔ω3+ω⋅2+4
c·5
ω3⋅5+ω⋅2+4
5·c
ω3+ω⋅2+20
Parametric examples:
u≔Ordinal⁡1,w,0,x
u≔ω⋅w+x
v≔Ordinal⁡1,y,0,z
v≔ω⋅y+z
u·v
Error, (in Ordinals:-Mult) unable to multiply
u1≔ω+u+1
u1≔ω⋅1+w+x+1
v1≔ω+v+1
v1≔ω⋅1+y+z+1
u1·v1
ω2⋅1+y+ω⋅w⁢z+w+z+1+x+1
v1·u1
ω2⋅1+w+ω⋅y⁢x+x+y+1+z+1
t≔Ordinal⁡2,x+1,1,y,0,z+1
t≔ω2⋅x+1+ω⋅y+z+1
t·t·t
ω6⋅x+1+ω5⋅y+ω4⋅x⁢z+x+z+1+ω3⋅y+ω2⋅x⁢z+x+z+1+ω⋅y+z+1
The Ordinals[Mult], Ordinals[`.`] and &. commands were introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
See Also
Ordinals
Ordinals[Add]
Ordinals[Div]
Ordinals[LessThan]
Ordinals[Ordinal]
Ordinals[Power]
value
Download Help Document