Multigraded Poincaré-series coefficient family
DefinitionMultigraded Poincaré coefficients#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded \(R\)-module, and let \(D\) be base-change data for a multigraded free resolution of \(M\). The multigraded Poincaré coefficient family of \(D\) is the function \(\mathbb{N} \times \mathbb{Z}^n \to \mathbb{N}\) sending \((i, \alpha)\) to the multigraded Betti number \(\beta_{i,\alpha}(D)\) of \(D\) in homological degree \(i\) and multidegree \(\alpha\).
A plain function records every coefficient without asserting finite support, convergence, polynomiality, or rationality.
public noncomputable def multigradedPoincareCoefficients
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res) :
ℕ × (Fin n →₀ Int) → ℕ :=
fun p => multigradedBettiNumber data p.2 p.1
public structure MultigradedPolynomialModule (M : Type*) [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M] where
/-- The homogeneous `K`-submodule in degree `α`. -/
component : (Fin n →₀ ℤ) → Submodule K M
/-- The homogeneous pieces decompose `M` as a direct sum. -/
decomposition : DirectSum.Decomposition component
/-- Scalar multiplication by `k : K` agrees with the `MvPolynomial.C k` action. -/
smul_via_C : ∀ (k : K) (m : M), k • m = ((MvPolynomial.C k : MvPolynomial (Fin n) K)) • m
/-- Monomials shift homogeneous degrees by the embedded exponent. -/
monomial_mem : ∀ (a : Fin n →₀ ℕ) (c : K) (α : Fin n →₀ ℤ) (m : M),
m ∈ component α →
((MvPolynomial.monomial a c : MvPolynomial (Fin n) K)) • m ∈
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedPolynomialModule.lean:65
public structure MultigradedFreeResolution (K : Type*) [Field K] (n : ℕ)
(M : Type*) [AddCommGroup M] [Module (MvPolynomial (Fin n) K) M]
[Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type*) where
/-- Each resolution term carries a multigraded free module structure. -/
termFree : ∀ (i : ℕ),
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K);
MultigradedFreeModule K n ↥(resolution.complex.X i) (ι i)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedFreeResolution.lean:90
public structure MultigradedBaseChange {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type u)
(res : MultigradedFreeResolution K n M targetGraded resolution ι) where
/-- Direct-sum decomposition of each base-changed term over the degree pieces. -/
decomposition : ∀ (i : ℕ), DirectSum.Decomposition
(fun β => baseChangedDegreePiece targetGraded resolution ι res i β)
/-- Successor differentials preserve each degree piece. -/
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:95
public noncomputable def multigradedBettiNumber {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res)
(α : Fin n →₀ Int) (i : ℕ) : ℕ :=
haveI := data.hasHom α i
haveI := data.finiteDim α i
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:135
Uses 4 · Used by 5
TheoremMultigraded Poincaré coefficients are Betti numbers#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded \(R\)-module, and let \(D\) be base-change data for a multigraded free resolution of \(M\). For every \(i \in \mathbb{N}\) and \(\alpha \in \mathbb{Z}^n\), the multigraded Poincaré coefficient family of \(D\) takes the value \(\beta_{i,\alpha}(D)\) at \((i, \alpha)\), where \(\beta_{i,\alpha}(D)\) is the multigraded Betti number of \(D\) in homological degree \(i\) and multidegree \(\alpha\).
public theorem multigradedPoincareCoefficients_apply
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res)
(i : ℕ) (α : Fin n →₀ Int) :
multigradedPoincareCoefficients data (i, α) =
multigradedBettiNumber data α i
public structure MultigradedPolynomialModule (M : Type*) [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M] where
/-- The homogeneous `K`-submodule in degree `α`. -/
component : (Fin n →₀ ℤ) → Submodule K M
/-- The homogeneous pieces decompose `M` as a direct sum. -/
decomposition : DirectSum.Decomposition component
/-- Scalar multiplication by `k : K` agrees with the `MvPolynomial.C k` action. -/
smul_via_C : ∀ (k : K) (m : M), k • m = ((MvPolynomial.C k : MvPolynomial (Fin n) K)) • m
/-- Monomials shift homogeneous degrees by the embedded exponent. -/
monomial_mem : ∀ (a : Fin n →₀ ℕ) (c : K) (α : Fin n →₀ ℤ) (m : M),
m ∈ component α →
((MvPolynomial.monomial a c : MvPolynomial (Fin n) K)) • m ∈
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedPolynomialModule.lean:65
public structure MultigradedFreeResolution (K : Type*) [Field K] (n : ℕ)
(M : Type*) [AddCommGroup M] [Module (MvPolynomial (Fin n) K) M]
[Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type*) where
/-- Each resolution term carries a multigraded free module structure. -/
termFree : ∀ (i : ℕ),
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K);
MultigradedFreeModule K n ↥(resolution.complex.X i) (ι i)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedFreeResolution.lean:90
public structure MultigradedBaseChange {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type u)
(res : MultigradedFreeResolution K n M targetGraded resolution ι) where
/-- Direct-sum decomposition of each base-changed term over the degree pieces. -/
decomposition : ∀ (i : ℕ), DirectSum.Decomposition
(fun β => baseChangedDegreePiece targetGraded resolution ι res i β)
/-- Successor differentials preserve each degree piece. -/
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:95
public noncomputable def multigradedPoincareCoefficients
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res) :
ℕ × (Fin n →₀ Int) → ℕ :=
fun p => multigradedBettiNumber data p.2 p.1
MathlibExt/RingTheory/GradedAlgebra/MultigradedPoincareCoefficients.lean:59
public noncomputable def multigradedBettiNumber {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res)
(α : Fin n →₀ Int) (i : ℕ) : ℕ :=
haveI := data.hasHom α i
haveI := data.finiteDim α i
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:135
Uses 5 · Used by 1
TheoremResolution comparisons preserve multigraded Poincaré coefficients#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded \(R\)-module, and let \(D\) and \(D'\) be base-change data for two multigraded free resolutions of \(M\). Given a multigraded resolution comparison between \(D\) and \(D'\), that is, for every \(\alpha \in \mathbb{Z}^n\) a chain-homotopy equivalence between the degree-\(\alpha\) component complexes of \(D\) and \(D'\), the multigraded Poincaré coefficient families of \(D\) and \(D'\) are equal.
MetaMathlibExt.multigradedPoincareCoefficients_eq_of_resolutionComparison · 15 lines
public theorem multigradedPoincareCoefficients_eq_of_resolutionComparison
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution₁ resolution₂ : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι₁ ι₂ : ℕ → Type u}
{res₁ : MultigradedFreeResolution K n M targetGraded resolution₁ ι₁}
{res₂ : MultigradedFreeResolution K n M targetGraded resolution₂ ι₂}
{data₁ : MultigradedBaseChange targetGraded resolution₁ ι₁ res₁}
{data₂ : MultigradedBaseChange targetGraded resolution₂ ι₂ res₂}
(comparison : MultigradedResolutionComparison data₁ data₂) :
multigradedPoincareCoefficients data₁ =
multigradedPoincareCoefficients data₂
public structure MultigradedPolynomialModule (M : Type*) [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M] where
/-- The homogeneous `K`-submodule in degree `α`. -/
component : (Fin n →₀ ℤ) → Submodule K M
/-- The homogeneous pieces decompose `M` as a direct sum. -/
decomposition : DirectSum.Decomposition component
/-- Scalar multiplication by `k : K` agrees with the `MvPolynomial.C k` action. -/
smul_via_C : ∀ (k : K) (m : M), k • m = ((MvPolynomial.C k : MvPolynomial (Fin n) K)) • m
/-- Monomials shift homogeneous degrees by the embedded exponent. -/
monomial_mem : ∀ (a : Fin n →₀ ℕ) (c : K) (α : Fin n →₀ ℤ) (m : M),
m ∈ component α →
((MvPolynomial.monomial a c : MvPolynomial (Fin n) K)) • m ∈
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedPolynomialModule.lean:65
public structure MultigradedFreeResolution (K : Type*) [Field K] (n : ℕ)
(M : Type*) [AddCommGroup M] [Module (MvPolynomial (Fin n) K) M]
[Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type*) where
/-- Each resolution term carries a multigraded free module structure. -/
termFree : ∀ (i : ℕ),
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K);
MultigradedFreeModule K n ↥(resolution.complex.X i) (ι i)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedFreeResolution.lean:90
public structure MultigradedBaseChange {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type u)
(res : MultigradedFreeResolution K n M targetGraded resolution ι) where
/-- Direct-sum decomposition of each base-changed term over the degree pieces. -/
decomposition : ∀ (i : ℕ), DirectSum.Decomposition
(fun β => baseChangedDegreePiece targetGraded resolution ι res i β)
/-- Successor differentials preserve each degree piece. -/
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:95
public structure MultigradedResolutionComparison
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution₁ resolution₂ :
CategoryTheory.ProjectiveResolution (ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι₁ ι₂ : ℕ → Type u}
{res₁ : MultigradedFreeResolution K n M targetGraded resolution₁ ι₁}
{res₂ : MultigradedFreeResolution K n M targetGraded resolution₂ ι₂}
(data₁ : MultigradedBaseChange targetGraded resolution₁ ι₁ res₁)
(data₂ : MultigradedBaseChange targetGraded resolution₂ ι₂ res₂) where
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBettiResolutionInvariance.lean:66
public noncomputable def multigradedPoincareCoefficients
{K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
{targetGraded : MultigradedPolynomialModule K n M}
{resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)}
{ι : ℕ → Type u}
{res : MultigradedFreeResolution K n M targetGraded resolution ι}
(data : MultigradedBaseChange targetGraded resolution ι res) :
ℕ × (Fin n →₀ Int) → ℕ :=
fun p => multigradedBettiNumber data p.2 p.1
MathlibExt/RingTheory/GradedAlgebra/MultigradedPoincareCoefficients.lean:59
Sources
- Benjamin Braun and Brian Davis, “Antichain Simplices,” Journal of Integer Sequences 23 (2020), https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex, exact lines 870--874. This is conditional only: it assumes the comparison and claims no existence, unconditional independence, finite support, polynomiality, rationality, or convergence.
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.