Internally graded modules #
This file packages a ℤ-graded module as a total module together with an internal direct-sum
decomposition. The total-module presentation is convenient for DG and A∞ operations, while
DirectSum.IsInternal ensures that every element is a finite, uniquely determined sum of
homogeneous elements.
Mathlib already provides the direct-sum equivalence and its induction principle through
DirectSum.Decomposition. An InternalGrading retains the family of homogeneous submodules and
the proof that it is internal; the instance below makes Mathlib's decomposition API available
without duplicating it.
The file also records that a finitely generated internally graded module has only finitely many nonzero pieces, the Koszul twist operator used to encode Koszul signs on homogeneous elements, and the letterwise tuple operation that applies it on a half-open index interval.
Main definitions #
InternalGrading: an internalℤ-grading of a module.InternalGrading.ofDecomposition: the internal grading carried by a family of submodules with aDirectSum.Decomposition, as graded algebras store it.InternalGrading.map: transport an internal grading across a linear equivalence.InternalGrading.koszulTwist: the operator scaling degree-eelements by(-1)^(q * e).InternalGrading.quadraticTwist: multiplication of degreepby(-1)^(p choose 2).InternalGrading.twistedTuple: a tuple with a consecutive block of letters Koszul-twisted.
Main results #
TauCeti.InternalGrading.ext: internal gradings are determined by their homogeneous pieces.TauCeti.InternalGrading.linearMap_ext: linear maps agree when they agree on homogeneous elements.TauCeti.InternalGrading.finite_piece_ne_bot: a finitely generated internally graded module has only finitely many nonzero homogeneous pieces.TauCeti.InternalGrading.koszulTwist_apply_of_mem: the twist acts by the Koszul scalar on each homogeneous piece.TauCeti.InternalGrading.koszulTwist_comp: twists compose by adding the twist parameters.TauCeti.InternalGrading.quadraticTwist_involutive: the quadratic twist is an involution.TauCeti.LinearMap.IsHomogeneous.linearEquiv_symm: the inverse of a degree-zero homogeneous linear equivalence is homogeneous.TauCeti.LinearMap.IsHomogeneous.map_decompose: a homogeneous map commutes with homogeneous projection, up to the shift of degree.TauCeti.LinearMap.IsHomogeneous.isHomogeneous_kerandTauCeti.LinearMap.IsHomogeneous.isHomogeneous_range: the kernel and the image of a homogeneous map are homogeneous submodules.TauCeti.LinearMap.IsHomogeneous.koszulTwist_comp: a homogeneous linear map commutes with Koszul twists up to the sign determined by its degree.TauCeti.LinearMap.IsHomogeneous.twistedTuple_map: a degree-zero homogeneous map commutes with twisting a block of a tuple.
This is the first graded-module target in Layer 0 of the DGAInfinity roadmap. Later files use
Mathlib's decomposition API to define maps of nonzero degree, shifts, tensor-product gradings, and
signed multilinear operations.
An internal integer grading of an R-module M.
The isInternal field says that the canonical map from the external direct sum of the piece p
to M is bijective. Thus elements of M have unique finite homogeneous decompositions.
The submodule of elements of degree
p.- isInternal : DirectSum.IsInternal self.piece
The homogeneous pieces form an internal direct sum.
Instances For
Two internal gradings of the same module are equal as soon as their homogeneous pieces agree.
The decomposition attached to an internal grading.
The internal grading carried by a family of submodules with a DirectSum.Decomposition. This
is the bridge from Mathlib's decomposition typeclass, under which graded algebras are stated, to
the bundled internal grading of this file.
Equations
- TauCeti.InternalGrading.ofDecomposition ℳ = { piece := ℳ, isInternal := ⋯ }
Instances For
A submodule is homogeneous for the internal grading ofDecomposition ℳ exactly when it is
homogeneous for ℳ: the decomposition carried by ofDecomposition ℳ is the given one, as
decompositions are unique.
Two linear maps on an internally graded module agree if they agree on homogeneous elements.
The homogeneous elements of an internally graded module span it over any scalar semiring acting on the total module. No compatibility between that action and the grading is needed.
Transport an internal grading across a linear equivalence. The degree-p piece of the target
is the image of the degree-p piece of the source.
Instances For
The degree-p piece of a transported grading is the image of the original piece.
Membership in a transported piece can be checked after applying the inverse equivalence.
This is not a simp lemma: map_piece already rewrites the left-hand side to a Submodule.map,
on which the simp set fires Submodule.mem_map_equiv to reach the same right-hand side.
A linear equivalence maps a homogeneous element into the transported piece of the same
degree. This is the special case of mem_map_piece_iff that simp already reaches.
The equivalence used to transport a grading is homogeneous of degree zero.
The inverse of an equivalence used to transport a grading is homogeneous of degree zero.
Transport along the identity equivalence leaves an internal grading unchanged.
Successive transport agrees with transport along the composite equivalence.
An additive map that vanishes on every homogeneous piece except degree i sees only the
degree-i component of each argument.
The inverse of a degree-zero homogeneous linear equivalence of internally graded modules is
again homogeneous of degree zero. The equivalence may be linear over a ring S other than the
ring R over which the homogeneous pieces are submodules.
A homogeneous linear map of degree r carries the degree-p component of an element to the
degree-(p + r) component of its image. The gradings are any families of submodules with
DirectSum.Decomposition instances, so this applies to the pieces of internal gradings and to
Mathlib's graded algebras alike.
The kernel of a homogeneous linear map is a homogeneous submodule.
The image of a homogeneous linear map is a homogeneous submodule.
A finitely generated internally graded module has only finitely many nonzero homogeneous pieces.
Summing the homogeneous components over the finite set of nonzero pieces reconstructs the original element.
The Koszul twist of parameter q: on the homogeneous piece of degree e it acts as the
scalar (-1)^(q * e).
This is multiplication by the same coefficient that MultilinearMap.koszulSign records for a
single homogeneous input of degree e. Downstream modules express their Koszul signs through this
operator: the sign acquired by moving an operation of degree q past homogeneous inputs of total
degree D is the scalar by which koszulTwist G q scales those inputs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The tuple x with exactly the letters at positions in the half-open interval [a, a + p)
Koszul-twisted. Downstream, the Taylor summand collapsing the block of length d starting at
a + p is supported on this tuple: the collapse carries the Koszul sign of moving the operation
past those preceding letters, and twisting them is how that sign is encoded.
Equations
- G.twistedTuple q x a p i = if a ≤ ↑i ∧ ↑i < a + p then (G.koszulTwist q) (x i) else x i
Instances For
On a homogeneous element of degree e, the Koszul twist of parameter q acts as the scalar
(-1)^(q * e).
The Koszul twist preserves each homogeneous piece.
The Koszul twist of parameter zero is the identity.
Koszul twists compose by adding their parameters.
The Koszul twist of an even parameter is the identity.
The Koszul twist of parameter two is the identity.
The Koszul twist of any parameter is an involution.
The Koszul twist of any parameter is an involution, pointwise.
A homogeneous linear map of degree r commutes with the Koszul twist of parameter q up to
the scalar (-1)^(q * r). This is the operator form of the sign acquired by moving a degree-r
map past a homogeneous input.
Evaluation of twistedTuple on an index inside the twisted interval [a, a + p).
Evaluation of twistedTuple on an index outside the twisted interval [a, a + p).
Unfolding of twistedTuple as a branch on membership in [a, a + p).
A degree-zero homogeneous linear map commutes with twisting a consecutive block of a tuple.
Twisting an empty interval leaves the tuple unchanged.
The Koszul twist of parameter zero leaves every letter of the tuple unchanged.
The quadratic sign exponent attached to degree p, namely the generalized binomial
coefficient p choose 2.
Equations
Instances For
The quadratic exponent vanishes in degree zero.
The quadratic exponent turns addition into addition plus the bilinear cross term.
The signs associated to the quadratic exponent differ under addition by the Koszul sign.
The quadratic twist multiplies the degree-p component by (-1) ^ (p choose 2).
Transporting the ordinary opposite multiplication through this involution produces the Koszul-signed opposite multiplication.
Equations
- One or more equations did not get rendered due to their size.
Instances For
On a homogeneous element of degree p, the quadratic twist is multiplication by
(-1) ^ (p choose 2).
The quadratic twist preserves every homogeneous piece.
Applying the quadratic twist twice is the identity.
The quadratic twist as a linear involution.