Additively-graded algebra structures on ⨁ i, A i #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file provides R-algebra structures on external direct sums of R-modules.
Recall that if A i are a family of add_comm_monoids indexed by an add_monoid, then an instance
of direct_sum.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 direct_sum.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 #
direct_sum.galgebra R A, the typeclass.direct_sum.galgebra.of_submodules, for creating the above instance from a collection of submodules.direct_sum.to_algebraextendsdirect_sum.to_semiringto produce analg_hom.
- to_fun : R →+ A 0
- map_one : ⇑direct_sum.galgebra.to_fun 1 = graded_monoid.ghas_one.one
- map_mul : ∀ (r s : R), graded_monoid.mk 0 (⇑direct_sum.galgebra.to_fun (r * s)) = ⟨0 + 0, graded_monoid.ghas_mul.mul (⇑direct_sum.galgebra.to_fun r) (⇑direct_sum.galgebra.to_fun s)⟩
- commutes : ∀ (r : R) (x : graded_monoid A), graded_monoid.mk 0 (⇑direct_sum.galgebra.to_fun r) * x = x * ⟨0, ⇑direct_sum.galgebra.to_fun r⟩
- smul_def : ∀ (r : R) (x : graded_monoid A), graded_monoid.mk x.fst (r • x.snd) = ⟨0, ⇑direct_sum.galgebra.to_fun r⟩ * x
A graded version of algebra. An instance of direct_sum.galgebra R A endows (⨁ i, A i)
with an R-algebra structure.
Instances of this typeclass
Instances of other typeclasses for direct_sum.galgebra
- direct_sum.galgebra.has_sizeof_inst
Equations
- direct_sum.algebra R A = {to_has_smul := smul_zero_class.to_has_smul smul_with_zero.to_smul_zero_class, to_ring_hom := {to_fun := ⇑((direct_sum.of A 0).comp direct_sum.galgebra.to_fun), map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}, commutes' := _, smul_def' := _}
A family of linear_maps preserving direct_sum.ghas_one.one and direct_sum.ghas_mul.mul
describes an alg_hom on ⨁ i, A i. This is a stronger version of direct_sum.to_semiring.
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
direct_sum.gmonoid.of_add_submodules, in which case the proofs about ghas_one and ghas_mul
can be discharged by rfl.
Equations
- direct_sum.to_algebra R A f hone hmul hcommutes = {to_fun := ⇑(direct_sum.to_semiring (λ (i : ι), (f i).to_add_monoid_hom) hone hmul), map_one' := _, map_mul' := _, map_zero' := _, map_add' := _, commutes' := _}
Two alg_homs out of a direct sum are equal if they agree on the generators.
Concrete instances #
A direct sum of copies of a algebra inherits the algebra structure.
Equations
- algebra.direct_sum_galgebra = {to_fun := (algebra_map R A).to_add_monoid_hom, map_one := _, map_mul := _, commutes := _, smul_def := _}