SmallOrdinal

ordinal.spad line 1 [edit on github]

SmallOrdinal implements ordinal numbers up to epsilon_0. + and * are "natural" addition and multiplication of ordinals. Available separately are "ordered" operataions.

* : (%, %) -> %
from LeftModule(%)
* : (NonNegativeInteger, %) -> %
from AbelianMonoid
* : (PositiveInteger, %) -> %
from AbelianSemiGroup
+ : (%, %) -> %
from AbelianSemiGroup
0 : () -> %
from AbelianMonoid
1 : () -> %
from MagmaWithUnit
< : (%, %) -> Boolean
from PartialOrder
<= : (%, %) -> Boolean
from PartialOrder
= : (%, %) -> Boolean
from BasicType
> : (%, %) -> Boolean
from PartialOrder
>= : (%, %) -> Boolean
from PartialOrder
^ : (%, %) -> %

o1^o2 returns o1 to power o2, where power is inductively defined using successive natural multiplication from the left

^ : (%, NonNegativeInteger) -> %
from MagmaWithUnit
^ : (%, PositiveInteger) -> %
from Magma
antiCommutator : (%, %) -> %
from NonAssociativeSemiRng
coerce : NonNegativeInteger -> %
from CoercibleFrom(NonNegativeInteger)
coerce : % -> OutputForm
from CoercibleTo(OutputForm)
hash : % -> SingleInteger
from Hashable
hashUpdate! : (HashState, %) -> HashState
from Hashable
integerPart : % -> NonNegativeInteger

integerPart(o) = n when o = l + n and l is a limit ordinal

latex : % -> String
from SetCategory
leftPower : (%, NonNegativeInteger) -> %
from MagmaWithUnit
leftPower : (%, PositiveInteger) -> %
from Magma
leftRecip : % -> Union(%, "failed")
from MagmaWithUnit
limitPart : % -> %

limitPart(o) = l when o = l + n and l is a limit ordinal and n is a nonnegative integer

max : (%, %) -> %
from OrderedSet
min : (%, %) -> %
from OrderedSet
omega : () -> %

omega() is the first infinite ordinal

omegapower : % -> %

omegapower(p) returns omega^p

one? : % -> Boolean
from MagmaWithUnit
opposite? : (%, %) -> Boolean
from AbelianMonoid
ordinalAdd : (%, %) -> %

ordinalAdd(o1, o2) returns sum of o1 and o2 as ordered sets

ordinalMul : (%, %) -> %

ordinalMul(o1, o2) returns product of o1 and o2 as ordered sets

ordinalPower : (%, %) -> %

ordinalPower(o1, o2) returns o1 to power o2, where power is inductively defined using successive ordinal multiplication from the left

recip : % -> Union(%, "failed")
from MagmaWithUnit
retract : % -> NonNegativeInteger
from RetractableTo(NonNegativeInteger)
retractIfCan : % -> Union(NonNegativeInteger, "failed")
from RetractableTo(NonNegativeInteger)
rightPower : (%, NonNegativeInteger) -> %
from MagmaWithUnit
rightPower : (%, PositiveInteger) -> %
from Magma
rightRecip : % -> Union(%, "failed")
from MagmaWithUnit
sample : () -> %
from AbelianMonoid
smaller? : (%, %) -> Boolean
from Comparable
subtractIfCan : (%, %) -> Union(%, "failed")
from CancellationAbelianMonoid
zero? : % -> Boolean
from AbelianMonoid
~= : (%, %) -> Boolean
from BasicType

OrderedSet

RightModule(%)

Monoid

CancellationAbelianMonoid

OrderedAbelianSemiGroup

RetractableTo(NonNegativeInteger)

CoercibleFrom(NonNegativeInteger)

MagmaWithUnit

NonAssociativeSemiRng

CoercibleTo(OutputForm)

SemiRing

Hashable

AbelianSemiGroup

SetCategory

Comparable

LeftModule(%)

SemiGroup

AbelianMonoid

OrderedAbelianMonoid

BiModule(%, %)

PartialOrder

BasicType

NonAssociativeSemiRing

Magma

SemiRng