Additively-graded algebra structures on ⨁ i, A i
#
This file provides R
-algebra structures on external direct sums of R
-modules.
Recall that if A i
are a family of AddCommMonoid
s indexed by an AddMonoid
, then an instance
of DirectSum.GMonoid A
is a multiplication A i → A j → A (i + j)
giving ⨁ i, A i
the
structure of a semiring. In this file, we introduce the DirectSum.GAlgebra R A
class for the case
where all A i
are R
-modules. This is the extra structure needed to promote ⨁ i, A i
to an
R
-algebra.
Main definitions #
DirectSum.GAlgebra R A
, the typeclass.DirectSum.toAlgebra
extendsDirectSum.toSemiring
to produce anAlgHom
.
A graded version of Algebra
. An instance of DirectSum.GAlgebra R A
endows (⨁ i, A i)
with an R
-algebra structure.
- toFun : R →+ A 0
- map_one : DirectSum.GAlgebra.toFun 1 = GradedMonoid.GOne.one
- map_mul (r s : R) : GradedMonoid.mk 0 (DirectSum.GAlgebra.toFun (r * s)) = GradedMonoid.mk (0 + 0) (GradedMonoid.GMul.mul (DirectSum.GAlgebra.toFun r) (DirectSum.GAlgebra.toFun s))
- commutes (r : R) (x : GradedMonoid A) : GradedMonoid.mk 0 (DirectSum.GAlgebra.toFun r) * x = x * GradedMonoid.mk 0 (DirectSum.GAlgebra.toFun r)
Instances
Equations
- DirectSum.instAlgebra R A = Algebra.mk { toFun := ⇑((DirectSum.of A 0).comp DirectSum.GAlgebra.toFun), map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
A family of LinearMap
s preserving DirectSum.GOne.one
and DirectSum.GMul.mul
describes an AlgHom
on ⨁ i, A i
. This is a stronger version of DirectSum.toSemiring
.
Of particular interest is the case when A i
are bundled subojects, f
is the family of
coercions such as Submodule.subtype (A i)
, and the [GMonoid A]
structure originates from
DirectSum.GMonoid.ofAddSubmodules
, in which case the proofs about GOne
and GMul
can be discharged by rfl
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two AlgHom
s out of a direct sum are equal if they agree on the generators.
See note [partially-applied ext lemmas].
The piecewise multiplication from the Mul
instance, as a bundled linear homomorphism.
This is the graded version of LinearMap.mul
, and the linear version of DirectSum.gMulHom
Equations
- DirectSum.gMulLHom R A = { toFun := fun (a : A i) => { toFun := fun (b : A j) => GradedMonoid.GMul.mul a b, map_add' := ⋯, map_smul' := ⋯ }, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Concrete instances #
A direct sum of copies of an Algebra
inherits the algebra structure.
Equations
- Algebra.directSumGAlgebra = { toFun := (algebraMap R A).toAddMonoidHom, map_one := ⋯, map_mul := ⋯, commutes := ⋯, smul_def := ⋯ }