Ordinals
Decompose
exponentially decompose an ordinal number
Calling Sequence
Parameters
Returns
Description
Examples
Compatibility
Decompose(a, output=o)
a
-
ordinal or non-negative integer
o
(optional) literal keyword; either list (default) or inert
If output=list (the default), a list of ordinals and non-negative integers is returned. Unless a=0 or a=1, any integers in the list are strictly greater than 1.
Otherwise, if output=inert is specified, an inert exponentiation of ordinal numbers using the inert operator &^ is returned.
The Decompose(a) calling sequence computes an exponential normal form a1a2⋰an of a as an iterated power of ordinals and non-negative integers a1,a2,…,an that cannot be decomposed any further as a power of strictly smaller ordinals.
The composition factors have the following additional properties, which ensure uniqueness of the decomposition.
Trivial cases: a=1⇔n=0, and if a=0, then n=1 and a1=0.
If a≥2 is an integer, then ak are all integers ≥2.
If ak≥2 is an integer, then it is not a perfect power, that is, it cannot be written as bc for integers b,c≥2.
If ak is not an integer, then either k=n=1 and a=ak=ω, or ak has at least two nonzero terms in the Cantor normal form.
If a is not an integer, then there is an index i∈1,…,n such that ai is not an integer and ai+1,…,an are all integers ≥2.
If i≥2, then a1=⋯=ai−2=2 and degree⁡ai≥1>0=tdegree⁡ai. (Moreover, either ai−1≥2 is an integer, or it has at least two nonzero terms.)
Exponential decomposition is a one-sided inverse of powering, in the sense that value⁡Decompose⁡a,output=inert=a.
The ordinal a can be parametric. However, if the complete decomposition cannot be computed in such a case, 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
Decompose⁡ωω
2,2,2,ω+1
Using output=inert. The result can be verified using value.
Decompose⁡ωω,output=inert
222ω+1
value⁡
ωω
Decompose⁡ωω+1
2,ω2+ω
Any ordinal ≠ω with a single term can be decomposed.
Decompose⁡ω·3
3,ω+1
Decompose⁡ω3
2,3,ω+1
Decompose⁡ω2·3
3,ω⋅2+1
Decompose⁡ωω+1·2,output=inert
2ω+12
ωω+1⋅2
The following equality is not a decomposition into strictly smaller ordinals, and therefore ω is indecomposable.
2&ˆω=2ω
2ω=ω
Decompose⁡ω
ω
More than one term.
b≔ω2+ω
a≔ωb+2+ωb+1
a≔ωω2+ω+2+ωω2+ω+1
Decompose⁡a,output=inert
ω2+ωω+12
c≔a+ωb·3
c≔ωω2+ω+2+ωω2+ω+1+ωω2+ω⋅3
Decompose⁡c,output=inert
ω2+ω+3ω+12
p≔ω+22
p≔ω2+ω⋅2+2
Decompose⁡p,output=inert
ω+22
q≔ω+3p
q≔ωω2+ω⋅2+2+ωω2+ω⋅2+1⋅3+ωω2+ω⋅2⋅3
Decompose⁡q,output=inert
ω+3ω+22
r≔ω+5q
r≔ωωω2+ω⋅2+2+ωω2+ω⋅2+1⋅3+ωω2+ω⋅2⋅3
Decompose⁡r,output=inert
2ω+3ω+22
f≔Ordinal⁡8,1,7,2,6,3,5,2,4,3,3,2,2,3,1,2,0,3
f≔ω8+ω7⋅2+ω6⋅3+ω5⋅2+ω4⋅3+ω3⋅2+ω2⋅3+ω⋅2+3
Decompose⁡f,output=inert
ω2+ω⋅2+322
Non-negative integers can be decomposed as well.
Decompose⁡2417851639229258349412352,output=inert
2322
Parametric examples.
u≔Ordinal⁡2,x,1,3⁢x,0,3
u≔ω2⋅x+ω⋅3⁢x+3
Decompose⁡u
Error, (in Ordinals:-Decompose) cannot determine if x is nonzero
Decompose⁡Eval⁡u,x=x+1,output=inert
ω⋅x+1+32
v≔Ordinal⁡ω+3,1,ω+2,x,ω+1,1
v≔ωω+3+ωω+2⋅x+ωω+1
Decompose⁡v,output=inert
ω3+ω2⋅x+ωω+1
The Ordinals[Decompose] command was introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
See Also
Ordinals[Factor]
Ordinals[Ordinal]
Ordinals[Power]
value
Download Help Document