Product(A, B)ΒΆ
product.spad line 1 [edit on github]
A: SetCategory
B: SetCategory
This domain implements cartesian product. If the underlying domains are both Finite then the resulting Product is also Finite and can be enumerated via size(), index(), location(), etc. The index of the second component (B
) varies most quickly.
- 0: % if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianMonoid
- *: (%, %) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from Magma
- *: (Integer, %) -> % if A has AbelianGroup and B has AbelianGroup
from AbelianGroup
- *: (NonNegativeInteger, %) -> % if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianMonoid
- *: (PositiveInteger, %) -> % if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianSemiGroup
- +: (%, %) -> % if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianSemiGroup
- -: % -> % if A has AbelianGroup and B has AbelianGroup
from AbelianGroup
- -: (%, %) -> % if A has AbelianGroup and B has AbelianGroup
from AbelianGroup
- <=: (%, %) -> Boolean if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from PartialOrder
- <: (%, %) -> Boolean if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from PartialOrder
- >=: (%, %) -> Boolean if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from PartialOrder
- >: (%, %) -> Boolean if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from PartialOrder
- ^: (%, Integer) -> % if B has Group and A has Group
from Group
- ^: (%, NonNegativeInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- ^: (%, PositiveInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from Magma
- coerce: % -> OutputForm
from CoercibleTo OutputForm
- commutator: (%, %) -> % if B has Group and A has Group
from Group
- construct: (A, B) -> %
construct(a, b)
creates element of the product with components a andb
.
- first: % -> A
first(x)
selects first component of the product
- hash: % -> SingleInteger if A has Finite and B has Finite or A has Hashable and B has Hashable
from Hashable
- hashUpdate!: (HashState, %) -> HashState if A has Finite and B has Finite or A has Hashable and B has Hashable
from Hashable
- index: PositiveInteger -> % if A has Finite and B has Finite
from Finite
- inf: (%, %) -> % if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
- latex: % -> String
from SetCategory
- leftPower: (%, NonNegativeInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- leftPower: (%, PositiveInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from Magma
- leftRecip: % -> Union(%, failed) if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- lookup: % -> PositiveInteger if A has Finite and B has Finite
from Finite
- max: (%, %) -> % if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from OrderedSet
- min: (%, %) -> % if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from OrderedSet
- one?: % -> Boolean if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- opposite?: (%, %) -> Boolean if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianMonoid
- recip: % -> Union(%, failed) if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- rightPower: (%, NonNegativeInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- rightPower: (%, PositiveInteger) -> % if B has Group and A has Group or B has Monoid and A has Monoid
from Magma
- rightRecip: % -> Union(%, failed) if B has Group and A has Group or B has Monoid and A has Monoid
from MagmaWithUnit
- sample: % if B has Group and A has Group or B has Monoid and A has Monoid or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianMonoid
- second: % -> B
second(x)
selects second component of the product
- size: () -> NonNegativeInteger if A has Finite and B has Finite
from Finite
- smaller?: (%, %) -> Boolean if A has Finite and B has Finite or B has OrderedSet and A has OrderedSet or A has Comparable and B has Comparable or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from Comparable
- subtractIfCan: (%, %) -> Union(%, failed) if B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
- sup: (%, %) -> % if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
- zero?: % -> Boolean if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
from AbelianMonoid
AbelianGroup if A has AbelianGroup and B has AbelianGroup
AbelianMonoid if A has AbelianGroup and B has AbelianGroup or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup or B has AbelianMonoid and A has AbelianMonoid or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid
AbelianSemiGroup if B has AbelianMonoid and A has AbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
CancellationAbelianMonoid if B has CancellationAbelianMonoid and A has CancellationAbelianMonoid or A has AbelianGroup and B has AbelianGroup or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
Comparable if A has Finite and B has Finite or B has OrderedSet and A has OrderedSet or A has Comparable and B has Comparable or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
ConvertibleTo InputForm if A has Finite and B has Finite
Finite if A has Finite and B has Finite
Group if B has Group and A has Group
Hashable if A has Finite and B has Finite or A has Hashable and B has Hashable
Magma if B has Group and A has Group or B has Monoid and A has Monoid
MagmaWithUnit if B has Group and A has Group or B has Monoid and A has Monoid
Monoid if B has Group and A has Group or B has Monoid and A has Monoid
OrderedAbelianMonoid if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
OrderedAbelianMonoidSup if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
OrderedAbelianSemiGroup if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
OrderedCancellationAbelianMonoid if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
OrderedSet if B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup or B has OrderedSet and A has OrderedSet
PartialOrder if B has OrderedSet and A has OrderedSet or B has OrderedAbelianMonoidSup and A has OrderedAbelianMonoidSup
SemiGroup if B has Group and A has Group or B has Monoid and A has Monoid
TwoSidedRecip if B has Group and A has Group
unitsKnown if B has Group and A has Group