# CardinalNumber¶

Members of the domain CardinalNumber are values indicating the cardinality of sets, both finite and infinite. Arithmetic operations are defined on cardinal numbers as follows. If `x = \#X`

and `y = \#Y`

then `x+y = \#(X+Y)`

disjoint union `x-y = \#(X-Y)`

relative complement `x*y = \#(X*Y)`

cartesian product `x^y = \#(X^Y)`

`X^Y = \{g| g: Y->X\}`

The non-negative integers have a natural construction as cardinals `0 = \#\{\}`

, `1 = \{0\}`

, `2 = \{0, 1\}`

, …, `n = \{i| 0 <= i < n\}`

. That `0`

acts as a zero for the multiplication of cardinals is equivalent to the axiom of choice. The generalized continuum hypothesis asserts center{`2^Aleph i = Aleph(i+1)`

} and is independent of the axioms of set theory [Goedel 1940]. Three commonly encountered cardinal numbers are `a = \#Z`

countable infinity `c = \#R`

the continuum `f = \#\{g| g: [0, 1]->R\}`

In this domain, these values are obtained using `a := Aleph 0`

, `c := 2^a`

, `f := 2^c`

.

- 0: %
- from AbelianMonoid
- 1: %
- from MagmaWithUnit
- *: (%, %) -> %
- from Magma
- *: (NonNegativeInteger, %) -> %
- from AbelianMonoid
- *: (PositiveInteger, %) -> %
- from AbelianSemiGroup
- +: (%, %) -> %
- from AbelianSemiGroup

- -: (%, %) -> Union(%, failed)
`x - y`

returns an element`z`

such that`z+y=x`

or “failed” if no such element exists.- <: (%, %) -> Boolean
- from PartialOrder
- <=: (%, %) -> Boolean
- from PartialOrder
- =: (%, %) -> Boolean
- from BasicType
- >: (%, %) -> Boolean
- from PartialOrder
- >=: (%, %) -> Boolean
- from PartialOrder

- ^: (%, %) -> %
`x^y`

returns`\#(X^Y)`

where`X^Y`

is defined as`\{g| g: Y->X\}`

.- ^: (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- ^: (%, PositiveInteger) -> %
- from Magma
- ~=: (%, %) -> Boolean
- from BasicType

- Aleph: NonNegativeInteger -> %
`Aleph(n)`

provides the named (infinite) cardinal number.- coerce: % -> OutputForm
- from CoercibleTo OutputForm
- coerce: NonNegativeInteger -> %
- from RetractableTo NonNegativeInteger

- countable?: % -> Boolean
`countable?(a)`

determines whether`a`

is a countable cardinal, i.e. an integer or`Aleph 0`

.

- finite?: % -> Boolean
`finite?(a)`

determines whether`a`

is a finite cardinal, i.e. an integer.

- generalizedContinuumHypothesisAssumed: Boolean -> Boolean
`generalizedContinuumHypothesisAssumed(bool)`

is used to dictate whether the hypothesis is to be assumed.

- generalizedContinuumHypothesisAssumed?: () -> Boolean
`generalizedContinuumHypothesisAssumed?()`

tests if the hypothesis is currently assumed.- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- latex: % -> String
- from SetCategory
- leftPower: (%, NonNegativeInteger) -> %
- from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> %
- from Magma
- leftRecip: % -> Union(%, failed)
- from MagmaWithUnit
- max: (%, %) -> %
- from OrderedSet
- min: (%, %) -> %
- from OrderedSet
- one?: % -> Boolean
- from MagmaWithUnit
- opposite?: (%, %) -> Boolean
- from AbelianMonoid
- 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 MagmaWithUnit
- smaller?: (%, %) -> Boolean
- from Comparable
- zero?: % -> Boolean
- from AbelianMonoid