|
Calling Sequence
|
|
Ordinals:-command(arguments)
command(arguments)
|
|
Description
|
|
•
|
The Ordinals package is a collection of commands for computing with ordinal numbers in Cantor normal form. Mathematically, an ordinal number, or ordinal for short, represents an isomorphism class of well-orderings. The Ordinals package can represent and handle all ordinals less than , that is, ordinal numbers that can be obtained from non-negative integers and , the ordinal for the standard ordering of the natural numbers , in a finite number of steps by ordinal addition, multiplication and exponentiation.
|
•
|
Every non-negative integer is an ordinal, representing the finite well-ordered set of numbers less than . Infinite ordinals can be created using the Ordinal constructor. The constant omega represents the ordinal .
|
•
|
The ordinals themselves are well-ordered by the relation meaning that the well-ordering represented by is order-isomorphic to an initial segment of the well-ordering represented by . See LessThan for more details.
|
•
|
The data structure for an infinite ordinal is basically a list of pairs encoding its Cantor normal form , where is an integer, are ordinals (that is, non-negative integers, or recursively, ordinal data structures) and are positive integers. See Ordinal for more details.
|
•
|
The arithmetic operators +, ., ^ and the relational operators < and <= are overloaded for ordinals, and they cause the corresponding commands Add, Mult, Power and LessThan, respectively, to be executed. Note that + is not a commutative operator for ordinals. In addition, the package also recognizes inactive or inert versions of these operators, namely, &+, &., &^, &-, &<, &>, &<=, and &>=. Such inactive operators do not result in any computations and are useful for display purposes. The value command turns these inert operators into their active forms.
|
•
|
The Ordinals package allows ordinals to be parametric. This means that the coefficients in the Cantor normal form may contain variables, such as or , and depend on these polynomially with positive integer coefficients. For example, is a valid parametric coefficient, but , , and are not. Currently, only the coefficients can be parametric; the exponents cannot contain any parameters.
|
•
|
All parameters are implicitly assumed to represent non-negative integers. Each command in the Ordinals package guarantees that the results it returns are correct when arbitrary non-negative integers are substituted for some or all of the parameters. If such a universally valid result cannot be computed, an error will be raised. For example, if is a parameter, then is correct for all non-negative integer values of , but neither nor are universally valid, since and .
|
•
|
The Eval command can be used to substitute integer values or polynomial expressions for some or all of the parameters in a parametric ordinal.
|
|
|
Accessing Ordinals Package Commands
|
|
•
|
Each command in the Ordinals package can be accessed by using either the long form or the short form of the command name in the command calling sequence.
|
|
The long form, Ordinals:-command, is always available. The short form can be used after loading the package.
|
|
|
List of Ordinals Package Commands
|
|
•
|
The following is a list of commands available in the Ordinals package.
|
|
|
Examples
|
|
Creating ordinals.
Extracting components.
Ordinal addition.
Using inert operators for display. The inert addition operator &+ is rendered as a regular + but in grey. Also note that addition is non-commutative.
Adding more than two ordinals.
Comparing and subtracting ordinals.
Verify the result.
Multiplication and exponentiation.
Division, greatest common divisors.
Verify the divisibility.
Verify the gcd property by factorization.
Parametric ordinals. The variables below are parameters implicitly assumed to represent non-negative integers. Unless there is an error, the results below remain correct for arbitrary non-negative integer values of the parameters.
Substitute a value for x.
Indeed, the result when looks very different:
|
|
Compatibility
|
|
•
|
The Ordinals package was introduced in Maple 2015.
|
|
|
|