# GradedAlgebra(R, E)ΒΆ

- R: CommutativeRing
- E: AbelianMonoid

GradedAlgebra(`R`

, `E`

) denotes `E-graded \ ``R`

-algebra`''`

. A graded algebra is a graded module together with a degree preserving `R`

-linear map, called the *product*. The name `product\ ``''`

is written out in full so inner and outer products with the same mapping type can be distinguished by name.

- 0: %
- from GradedModule(R, E)

- 1: %
- 1 is the identity for
`product`

. - *: (%, R) -> %
- from GradedModule(R, E)
- *: (R, %) -> %
- from GradedModule(R, E)
- +: (%, %) -> %
- from GradedModule(R, E)
- -: % -> %
- from GradedModule(R, E)
- -: (%, %) -> %
- from GradedModule(R, E)
- =: (%, %) -> Boolean
- from BasicType
- ~=: (%, %) -> Boolean
- from BasicType
- coerce: % -> OutputForm
- from CoercibleTo OutputForm
- coerce: R -> %
- from RetractableTo R
- degree: % -> E
- from GradedModule(R, E)
- hash: % -> SingleInteger
- from SetCategory
- hashUpdate!: (HashState, %) -> HashState
- from SetCategory
- latex: % -> String
- from SetCategory

- product: (%, %) -> %
`product(a, b)`

is the degree-preserving`R`

-linear product:`degree product(a, b) = degree a + degree b`

`product(a1+a2, b) = product(a1, b) + product(a2, b)`

`product(a, b1+b2) = product(a, b1) + product(a, b2)`

`product(r*a, b) = product(a, r*b) = r*product(a, b)`

`product(a, product(b, c)) = product(product(a, b), c)`

- retract: % -> R
- from RetractableTo R
- retractIfCan: % -> Union(R, failed)
- from RetractableTo R

GradedModule(R, E)