# IndexedDirectProductCategory(A, S)ΒΆ

indexedp.spad line 81 [edit on github]

A: SetCategory

S: SetCategory

This category represents the direct product of some set with respect to an ordered indexing set. The ordered set `S`

is considered as the `basis elements\ ``''`

and the elements from `A`

as `coefficients\ ``''`

.

- 0: % if A has AbelianMonoid
from AbelianMonoid

- *: (Integer, %) -> % if A has AbelianGroup
from AbelianGroup

- *: (NonNegativeInteger, %) -> % if A has AbelianMonoid
from AbelianMonoid

- *: (PositiveInteger, %) -> % if A has AbelianMonoid
from AbelianSemiGroup

- +: (%, %) -> % if A has AbelianMonoid
from AbelianSemiGroup

- -: % -> % if A has AbelianGroup
from AbelianGroup

- -: (%, %) -> % if A has AbelianGroup
from AbelianGroup

- =: (%, %) -> Boolean if A has AbelianMonoid or A has Comparable and S has Comparable
from BasicType

- ~=: (%, %) -> Boolean if A has AbelianMonoid or A has Comparable and S has Comparable
from BasicType

- coerce: % -> OutputForm if A has AbelianMonoid or A has Comparable and S has Comparable
from CoercibleTo OutputForm

- construct: List Record(k: S, c: A) -> %
from IndexedProductCategory(A, S)

- constructOrdered: List Record(k: S, c: A) -> % if S has Comparable
from IndexedProductCategory(A, S)

- latex: % -> String if A has AbelianMonoid or A has Comparable and S has Comparable
from SetCategory

- leadingCoefficient: % -> A if S has Comparable
from IndexedProductCategory(A, S)

- leadingMonomial: % -> % if S has Comparable
from IndexedProductCategory(A, S)

- leadingSupport: % -> S if S has Comparable
from IndexedProductCategory(A, S)

- leadingTerm: % -> Record(k: S, c: A) if S has Comparable
from IndexedProductCategory(A, S)

- listOfTerms: % -> List Record(k: S, c: A)
`listOfTerms(x)`

returns a list`lt`

of terms with type`Record(k: S, c: R)`

such that`x`

equals`construct(lt)`

. If`S has Comparable`

than`x`

equals`constructOrdered(lt)`

.

- map: (A -> A, %) -> %
from IndexedProductCategory(A, S)

- monomial?: % -> Boolean
from IndexedProductCategory(A, S)

- monomial: (A, S) -> %
from IndexedProductCategory(A, S)

- numberOfMonomials: % -> NonNegativeInteger
`numberOfMonomials(x)`

returns the number of monomials of`x`

.

- opposite?: (%, %) -> Boolean if A has AbelianMonoid
from AbelianMonoid

- reductum: % -> % if S has Comparable
from IndexedProductCategory(A, S)

- sample: % if A has AbelianMonoid
from AbelianMonoid

- smaller?: (%, %) -> Boolean if A has Comparable and S has Comparable
from Comparable

- subtractIfCan: (%, %) -> Union(%, failed) if A has CancellationAbelianMonoid

- zero?: % -> Boolean if A has AbelianMonoid
from AbelianMonoid

AbelianGroup if A has AbelianGroup

AbelianMonoid if A has AbelianMonoid

AbelianSemiGroup if A has AbelianMonoid

BasicType if A has AbelianMonoid or A has Comparable and S has Comparable

CancellationAbelianMonoid if A has CancellationAbelianMonoid

CoercibleTo OutputForm if A has AbelianMonoid or A has Comparable and S has Comparable

Comparable if A has Comparable and S has Comparable

IndexedProductCategory(A, S)

SetCategory if A has AbelianMonoid or A has Comparable and S has Comparable