# AbelianProductCategory AΒΆ

- A: Type

This category represents products with coordinatewise additive operations.

- 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
- from BasicType
- ~=: (%, %) -> Boolean if A has AbelianMonoid
- from BasicType
- coerce: % -> OutputForm if A has AbelianMonoid
- from CoercibleTo OutputForm
- hash: % -> SingleInteger if A has AbelianMonoid
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState if A has AbelianMonoid
- from SetCategory
- latex: % -> String if A has AbelianMonoid
- from SetCategory
- opposite?: (%, %) -> Boolean if A has AbelianMonoid
- from AbelianMonoid
- sample: % if A has AbelianMonoid
- from AbelianMonoid
- subtractIfCan: (%, %) -> Union(%, failed) if A has CancellationAbelianMonoid
- from 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

CancellationAbelianMonoid if A has CancellationAbelianMonoid

CoercibleTo OutputForm if A has AbelianMonoid

SetCategory if A has AbelianMonoid