Internally-graded rings and algebras #
This file defines the typeclass GradedAlgebra 𝒜
, for working with an algebra A
that is
internally graded by a collection of submodules 𝒜 : ι → Submodule R A
.
See the docstring of that typeclass for more information.
Main definitions #
GradedRing 𝒜
: the typeclass, which is a combination ofSetLike.GradedMonoid
, andDirectSum.Decomposition 𝒜
.GradedAlgebra 𝒜
: A convenience alias forGradedRing
when𝒜
is a family of submodules.DirectSum.decomposeRingEquiv 𝒜 : A ≃ₐ[R] ⨁ i, 𝒜 i
, a more bundled version ofDirectSum.decompose 𝒜
.DirectSum.decomposeAlgEquiv 𝒜 : A ≃ₐ[R] ⨁ i, 𝒜 i
, a more bundled version ofDirectSum.decompose 𝒜
.GradedAlgebra.proj 𝒜 i
is the linear map fromA
to its degreei : ι
component, such thatproj 𝒜 i x = decompose 𝒜 x i
.
Implementation notes #
For now, we do not have internally-graded semirings and internally-graded rings; these can be
represented with 𝒜 : ι → Submodule ℕ A
and 𝒜 : ι → Submodule ℤ A
respectively, since all
Semiring
s are ℕ-algebras via Semiring.toNatAlgebra
, and all Ring
s are ℤ
-algebras via
Ring.toIntAlgebra
.
Tags #
graded algebra, graded ring, graded semiring, decomposition
An internally-graded R
-algebra A
is one that can be decomposed into a collection
of Submodule R A
s indexed by ι
such that the canonical map A → ⨁ i, 𝒜 i
is bijective and
respects multiplication, i.e. the product of an element of degree i
and an element of degree j
is an element of degree i + j
.
Note that the fact that A
is internally-graded, GradedAlgebra 𝒜
, implies an externally-graded
algebra structure DirectSum.GAlgebra R (fun i ↦ ↥(𝒜 i))
, which in turn makes available an
Algebra R (⨁ i, 𝒜 i)
instance.
Instances
If A
is graded by ι
with degree i
component 𝒜 i
, then it is isomorphic as
a ring to a direct sum of components.
Equations
- DirectSum.decomposeRingEquiv 𝒜 = (let __src := (DirectSum.decomposeAddEquiv 𝒜).symm; { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯ }).symm
Instances For
The projection maps of a graded ring
Equations
- GradedRing.proj 𝒜 i = (AddSubmonoidClass.subtype (𝒜 i)).comp ((DFinsupp.evalAddMonoidHom i).comp (DirectSum.decomposeRingEquiv 𝒜).toRingHom.toAddMonoidHom)
Instances For
A special case of GradedRing
with σ = Submodule R A
. This is useful both because it
can avoid typeclass search, and because it provides a more concise name.
Equations
- GradedAlgebra 𝒜 = GradedRing 𝒜
Instances For
A helper to construct a GradedAlgebra
when the SetLike.GradedMonoid
structure is already
available. This makes the left_inv
condition easier to prove, and phrases the right_inv
condition in a way that allows custom @[ext]
lemmas to apply.
See note [reducible non-instances].
Equations
- GradedAlgebra.ofAlgHom 𝒜 decompose right_inv left_inv = GradedRing.mk
Instances For
If A
is graded by ι
with degree i
component 𝒜 i
, then it is isomorphic as
an algebra to a direct sum of components.
Equations
- DirectSum.decomposeAlgEquiv 𝒜 = (let __src := (DirectSum.decomposeAddEquiv 𝒜).symm; { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }).symm
Instances For
The projection maps of graded algebra
Equations
- GradedAlgebra.proj 𝒜 i = (𝒜 i).subtype ∘ₗ DFinsupp.lapply i ∘ₗ (↑(DirectSum.decomposeAlgEquiv 𝒜)).toLinearMap
Instances For
If A
is graded by a canonically ordered add monoid, then the projection map x ↦ x₀
is a ring
homomorphism.
Equations
- GradedRing.projZeroRingHom 𝒜 = { toFun := fun (a : A) => ↑(((DirectSum.decompose 𝒜) a) 0), map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
The ring homomorphism from A
to 𝒜 0
sending every a : A
to a₀
.
Equations
- GradedRing.projZeroRingHom' 𝒜 = (GradedRing.projZeroRingHom 𝒜).codRestrict (SetLike.GradeZero.subsemiring 𝒜) ⋯
Instances For
The ring homomorphism GradedRing.projZeroRingHom' 𝒜
is surjective.
The canonical isomorphism of an internal direct sum with the ambient algebra
Instances For
Given an R
-algebra A
and a family ι → Submodule R A
of submodules
parameterized by an additive monoid ι
and satisfying SetLike.GradedMonoid M
(essentially, is multiplicative)
such that DirectSum.IsInternal M
(A
is the direct sum of the M i
),
we endow A
with the structure of a graded algebra.
The submodules are the homogeneous parts.
Equations
- hM.gradedAlgebra = GradedRing.mk