Multigraded Betti numbers and Poincaré series
- Multigraded polynomial modules
- Multigraded free modules and graded free resolutions
- Multigraded Betti numbers after residue-field base change
- Degree components of the base-changed multigraded resolution
- Invariance of multigraded Betti numbers across graded free resolutions
- Multigraded Poincaré-series coefficient family
- Multigraded Poincaré polynomial
TheoremFinite homogeneous generating sets#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), and let \(M\) be a multigraded polynomial module over \(R\), with degree-\(\alpha\) components \(M_\alpha\) for \(\alpha \in \mathbb{Z}^n\), that is finitely generated as an \(R\)-module. Then there is a finite set \(s \subseteq M\) of homogeneous elements, each lying in \(M_\alpha\) for some \(\alpha \in \mathbb{Z}^n\), that generates \(M\) as an \(R\)-module.
public theorem MultigradedPolynomialModule.exists_finset_homogeneous_generators
(K : Type*) [Field K] (n : ℕ) (M : Type*)
[AddCommGroup M] [Module (MvPolynomial (Fin n) K) M] [Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
[Module.Finite (MvPolynomial (Fin n) K) M] :
∃ s : Finset M,
(∀ m ∈ s, ∃ α : Fin n →₀ Int, m ∈ targetGraded.component α) ∧
Submodule.span (MvPolynomial (Fin n) K) (s : Set M) = ⊤
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
Sources
- Braun-Davis, JIS 23 (2020), span 856-877; see https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex
Uses 1
TheoremFinite bases give finite-dimensional multidegree pieces#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded polynomial module over \(R\), and let \(F\) be a multigraded free resolution of \(M\) whose term \(F_i\) has the homogeneous basis \((e_j)_{j \in \iota_i}\). Write \(K \otimes_R F\) for the chain complex of \(K\)-vector spaces obtained from \(F\) by extending scalars along the evaluation \(R \to K\) at \(x = 0\). If \(\iota_i\) is finite, then for every \(\alpha \in \mathbb{Z}^n\) the degree-\(\alpha\) piece of \((K \otimes_R F)_i\), the \(K\)-span of the vectors \(1 \otimes e_j\) with \(e_j\) of degree \(\alpha\), is finite-dimensional over \(K\).
theorem MultigradedFreeResolution.baseChangedDegreePiece_finite
(K : Type u) [Field K] (n : Nat) (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))
(ι : Nat → Type u)
(res : MultigradedFreeResolution K n M targetGraded resolution ι)
(α : Fin n →₀ Int) (i : Nat) [Finite (ι i)] :
Module.Finite K ↥(baseChangedDegreePiece (K := K) (n := n) (M := M)
targetGraded resolution ι res 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 noncomputable def baseChangedDegreePiece {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 ι)
(i : ℕ) (α : Fin n →₀ Int) :
Submodule K ↥((baseChangedComplex resolution).X i) :=
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:74
Sources
- Benjamin Braun and Brian Davis, "Antichain Simplices," Journal of Integer Sequences 23 (2020), lines 862–867, https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex.
Uses 6 · Used by 1
DefinitionMultidegree decomposition of the base-changed resolution#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded polynomial module over \(R\), and let \(F\) be a multigraded free resolution of \(M\) whose term \(F_i\) has the homogeneous basis \((e_j)_{j \in \iota_i}\). Write \(K \otimes_R F\) for the chain complex of \(K\)-vector spaces obtained from \(F\) by extending scalars along the evaluation \(R \to K\) at \(x = 0\), and for \(\alpha \in \mathbb{Z}^n\) call the \(K\)-span of the vectors \(1 \otimes e_j\) with \(e_j\) of degree \(\alpha\) the degree-\(\alpha\) piece of \((K \otimes_R F)_i\). For every \(i \ge 0\), this is the decomposition of \((K \otimes_R F)_i\) as the internal direct sum of its degree-\(\alpha\) pieces over \(\alpha \in \mathbb{Z}^n\).
MetaMathlibExt.MultigradedFreeResolution.baseChangedDegreeDecomposition · 142 lines
@[instance_reducible]
public noncomputable def MultigradedFreeResolution.baseChangedDegreeDecomposition
{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 ι)
(i : ℕ) :
DirectSum.Decomposition
(fun α => baseChangedDegreePiece targetGraded resolution ι res i α) := by
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K)
letI : Algebra (MvPolynomial (Fin n) K) K := zeroEval.toAlgebra
let b : Module.Basis (ι i) K ↥((baseChangedComplex resolution).X i) :=
(res.termFree i).basis.baseChange K
have fiberEq : ∀ a : (Fin n →₀ Int),
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i)) =
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i)) := by
intro a
apply Set.ext
intro y
constructor
· intro hy
obtain ⟨j, hjDeg, rfl⟩ := hy
exact ⟨j, hjDeg, rfl⟩
· intro hy
change ∃ j : ι i, j ∈ ({ k : ι i | (res.termFree i).degree k = a } :
Set (ι i)) ∧ b j = y at hy
obtain ⟨j, hjMem, rfl⟩ := hy
exact ⟨j, hjMem, rfl⟩
have basisInd : LinearIndependent K (⇑b) := b.linearIndependent
have hiSpan : iSupIndep (fun a : (Fin n →₀ Int) =>
Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i))) := by
intro a
change Disjoint
(Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i)))
(⨆ c : (Fin n →₀ Int), ⨆ _ : c ≠ a, Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = c ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i)))
have hDisjIdx : Disjoint
({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))
(⋃ c : (Fin n →₀ Int), ⋃ _ : c ≠ a,
({ k : ι i | (res.termFree i).degree k = c } : Set (ι i))) := by
rw [Set.disjoint_left]
intro j hjA hjRest
rw [Set.mem_iUnion] at hjRest
obtain ⟨c, hcRest⟩ := hjRest
rw [Set.mem_iUnion] at hcRest
obtain ⟨hNe, hjC⟩ := hcRest
have hjA' : (res.termFree i).degree j = a := hjA
have hjC' : (res.termFree i).degree j = c := hjC
exact hNe (hjC'.symm.trans hjA')
have hDisjSpan : Disjoint
(Submodule.span K
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i)))
(Submodule.span K
((⇑b '' (⋃ c : (Fin n →₀ Int), ⋃ _ : c ≠ a,
({ k : ι i | (res.termFree i).degree k = c } : Set (ι i)))) :
Set ↥((baseChangedComplex resolution).X i))) :=
basisInd.disjoint_span_image hDisjIdx
have hFA : Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i)) =
Submodule.span K
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i)) := by
rw [fiberEq a]
rw [hFA]
refine Disjoint.mono_right ?_ hDisjSpan
apply iSup_le
intro c
apply iSup_le
intro hc
have hNe : c ≠ a := hc
rw [fiberEq c]
apply Submodule.span_mono
apply Set.image_mono
intro j hj
rw [Set.mem_iUnion]
refine ⟨c, ?_⟩
rw [Set.mem_iUnion]
exact ⟨hNe, hj⟩
have hsSpan : (⨆ a : (Fin n →₀ Int), Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i))) = ⊤ := by
have coverEq : (⋃ a : (Fin n →₀ Int),
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i))) =
Set.range (⇑b) := by
apply Set.ext
intro y
constructor
· intro hy
rw [Set.mem_iUnion] at hy
obtain ⟨a, ha⟩ := hy
change ∃ j : ι i, j ∈ ({ k : ι i | (res.termFree i).degree k = a } :
Set (ι i)) ∧ b j = y at ha
obtain ⟨j, hjMem, hjEq⟩ := ha
exact Set.mem_range.mpr ⟨j, hjEq⟩
· intro hy
obtain ⟨j, hjEq⟩ := Set.mem_range.mp hy
rw [Set.mem_iUnion]
exact ⟨(res.termFree i).degree j, j, rfl, hjEq⟩
calc (⨆ a : (Fin n →₀ Int), Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i)))
= (⨆ a : (Fin n →₀ Int), Submodule.span K
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i))) := by
simp only [fiberEq]
_ = Submodule.span K
(⋃ a : (Fin n →₀ Int),
((⇑b '' ({ k : ι i | (res.termFree i).degree k = a } : Set (ι i))) :
Set ↥((baseChangedComplex resolution).X i))) :=
(Submodule.span_iUnion _).symm
_ = Submodule.span K (Set.range (⇑b)) := by
rw [coverEq]
_ = ⊤ := b.span_eq
have hIntSpan : DirectSum.IsInternal (fun a : (Fin n →₀ Int) =>
Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i))) :=
DirectSum.isInternal_submodule_of_iSupIndep_of_iSup_eq_top hiSpan hsSpan
have familyEq : (fun α : (Fin n →₀ Int) =>
baseChangedDegreePiece targetGraded resolution ι res i α) =
(fun a : (Fin n →₀ Int) => Submodule.span K
({ y | ∃ j : ι i, (res.termFree i).degree j = a ∧ y = b j } :
Set ↥((baseChangedComplex resolution).X i))) :=
funext (fun α => rfl)
have hInt : DirectSum.IsInternal (fun α : (Fin n →₀ Int) =>
baseChangedDegreePiece targetGraded resolution ι res i α) := by
rw [familyEq]
exact hIntSpan
exact DirectSum.IsInternal.chooseDecomposition _ hInt
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 noncomputable def baseChangedDegreePiece {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 ι)
(i : ℕ) (α : Fin n →₀ Int) :
Submodule K ↥((baseChangedComplex resolution).X i) :=
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:74
Sources
- Braun-Davis, JIS 23 (2020), lines 856-867. See https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex
Uses 6 · Used by 1
TheoremBetti numbers do not depend on the choice of base change data#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), and let \(M\) be a \(\mathbb{Z}^n\)-graded \(R\)-module with a fixed multigraded free resolution \(P_\bullet \to M\). Any two choices of multigraded base change data for \(P_\bullet\) define the same multigraded Betti numbers, in every multidegree \(\alpha \in \mathbb{Z}^n\) and every homological index \(i \in \mathbb{N}\).
public theorem multigradedBettiNumber_eq_of_baseChange
{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₁ data₂ : MultigradedBaseChange targetGraded resolution ι res)
(α : Fin n →₀ Int) (i : ℕ) :
multigradedBettiNumber 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 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
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 866--874. This covers only the fixed-resolution coherence step; independence across resolutions, finite support, Poincaré polynomiality, and Hilbert syzygy are deliberately not claimed here.
TheoremExistence of finite multigraded free resolutions#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), and let \(M\) be a multigraded \(R\)-module that is finitely generated over \(R\). Then there are a projective resolution \(P_\bullet \to M\) over \(R\), index types \(\iota_i\) for \(i \in \mathbb{N}\), a multigraded free resolution structure on \(P_\bullet\) for the given grading of \(M\) in which \(P_i\) has basis indexed by \(\iota_i\), and a number \(b \in \mathbb{N}\) such that every \(\iota_i\) is finite and \(\iota_i\) is empty for every \(i > b\).
The proof uses stagewise minimal homogeneous free covers, the determinant trick, dimension shifting, and Hilbert's syzygy theorem.
public theorem exists_finite_multigraded_free_resolution
(K : Type u) (n : ℕ) (M : Type u)
[Field K] [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
(targetGraded : MultigradedPolynomialModule K n M)
[Module.Finite (MvPolynomial (Fin n) K) M] :
∃ (resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M))
(ι : ℕ → Type u)
(res : MultigradedFreeResolution K n M targetGraded resolution ι)
(bound : ℕ),
(∀ i, Finite (ι i)) ∧ ∀ i, bound < i → IsEmpty (ι 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
Sources
- Hoffman–Wang, https://export.arxiv.org/e-print/math/0601101v1 lines 592-612 (finite free graded resolution). The Braun–Davis JIS passage https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex lines 856-876 supplies the motivating Hilbert-syzygy / Poincaré-series context only. No
≤ nbound is claimed here.
TheoremFinite support of the 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\) be base-change data for a multigraded free resolution \(F_\bullet\) of \(M\) in which \(F_i\) has a homogeneous basis indexed by \(\iota_i\). Suppose every \(\iota_i\) is finite and, for some \(b \in \mathbb{N}\), \(\iota_i\) is empty for every \(i > b\). Then the multigraded Poincaré coefficient family of \(D\) is nonzero at only finitely many \((i, \alpha) \in \mathbb{N} \times \mathbb{Z}^n\).
public theorem multigradedPoincareCoefficients_hasFiniteSupport_of_finiteResolution
{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)
(bound : ℕ)
(finiteBasis : ∀ i, Finite (ι i))
(emptyAbove : ∀ i, bound < i → IsEmpty (ι i)) :
Function.HasFiniteSupport (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 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 line 876. This is the conditional finite-resolution bridge behind that line, not the full Hilbert syzygy existence theorem: it assumes the finite terminating resolution and derives finite coefficient support, without assuming finite support, eventual Betti vanishing, or a polynomial realization, and without constructing the resolution.
Uses 9 · Used by 2
TheoremBase change of a homogeneous element along zero evaluation#✓fully proved
Let \(K\) be a field, \(R = K[x_1, \dots, x_n]\), and let \(F\) be a multigraded free \(R\)-module with basis \((b_j)_{j \in \iota}\), where each \(b_j\) is homogeneous of degree \(d_j \in \mathbb{Z}^n\). Make \(K\) an \(R\)-algebra through the zero evaluation \(R \to K\), which sends every variable to \(0\). If \(x \in F\) is homogeneous of degree \(\alpha \in \mathbb{Z}^n\), then \(1 \otimes x \in K \otimes_R F\) lies in the \(K\)-linear span of the vectors \(1 \otimes b_j\) with \(d_j = \alpha\).
theorem MultigradedFreeModule.baseChange_mem_degreeSpan
{K : Type*} [Field K] {n : ℕ} {F : Type*} [AddCommGroup F]
[Module (MvPolynomial (Fin n) K) F] [Module K F] {ι : Type*}
(free : MultigradedFreeModule K n F ι) (α : Fin n →₀ Int) {x : F}
(hx : x ∈ free.graded.component α) :
letI : Algebra (MvPolynomial (Fin n) K) K := zeroEval.toAlgebra;
(1 ⊗ₜ[MvPolynomial (Fin n) K] x : TensorProduct (MvPolynomial (Fin n) K) K F) ∈
Submodule.span K {y | ∃ j : ι, free.degree j = α ∧ y = free.basis.baseChange K j}
public structure MultigradedFreeModule (K : Type*) [Field K] (n : ℕ)
(F : Type*) [AddCommGroup F] [Module (MvPolynomial (Fin n) K) F]
[Module K F] (ι : Type*) where
/-- The underlying `ℤⁿ`-graded module structure. -/
graded : MultigradedPolynomialModule K n F
/-- The actual free basis over `MvPolynomial (Fin n) K`. -/
basis : Module.Basis ι (MvPolynomial (Fin n) K) F
/-- The prescribed homogeneous degree of each basis vector. -/
degree : ι → (Fin n →₀ Int)
/-- Each basis vector is homogeneous of its prescribed degree. -/
basis_mem : ∀ (i : ι), basis i ∈ graded.component (degree i)
MathlibExt/RingTheory/GradedAlgebra/MultigradedFreeResolution.lean:73
public noncomputable def zeroEval {K : Type u} [Field K] {n : ℕ} :
MvPolynomial (Fin n) K →+* K :=
MvPolynomial.eval₂Hom (RingHom.id K) (0 : Fin n → K)
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:57
Sources
- Benjamin Braun and Brian Davis, "Antichain Simplices," Journal of Integer Sequences 23 (2020), lines 862–867, https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex, which split a graded free resolution and take the degree-
αcomponent after tensoring withK.
Uses 4 · Used by 1
TheoremThe base-changed differential preserves multidegree#✓fully proved
Let \(K\) be a field, let \(R = K[x_1, \dots, x_n]\), let \(M\) be a multigraded polynomial module over \(R\), and let \(F\) be a multigraded free resolution of \(M\) whose term \(F_i\) has the homogeneous basis \((e_j)_{j \in \iota_i}\). Write \(K \otimes_R F\) for the chain complex of \(K\)-vector spaces obtained from \(F\) by extending scalars along the evaluation \(R \to K\) at \(x = 0\), and for \(\alpha \in \mathbb{Z}^n\) call the \(K\)-span of the vectors \(1 \otimes e_j\) with \(e_j\) of degree \(\alpha\) the degree-\(\alpha\) piece of \((K \otimes_R F)_i\). Then for every \(i \ge 0\) and every \(\alpha \in \mathbb{Z}^n\), the differential \((K \otimes_R F)_{i+1} \to (K \otimes_R F)_i\) maps the degree-\(\alpha\) piece of \((K \otimes_R F)_{i+1}\) into the degree-\(\alpha\) piece of \((K \otimes_R F)_i\).
MetaMathlibExt.MultigradedFreeResolution.baseChangedDifferential_preservesDegree · 18 lines
theorem MultigradedFreeResolution.baseChangedDifferential_preservesDegree
{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 ι)
(i : ℕ) (α : Fin n →₀ Int)
(x : ↥((baseChangedComplex (K := K) (n := n) (M := M) resolution).X (i + 1)))
(hx : x ∈ baseChangedDegreePiece (K := K) (n := n) (M := M) targetGraded
resolution ι res (i + 1) α) :
(ModuleCat.Hom.hom
((baseChangedComplex (K := K) (n := n) (M := M) resolution).d (i + 1)
i)) x ∈
baseChangedDegreePiece (K := K) (n := n) (M := M) targetGraded resolution
ι res 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 noncomputable def baseChangedComplex {K : Type u} [Field K] {n : ℕ}
{M : Type u} [AddCommGroup M]
[Module (MvPolynomial (Fin n) K) M] [Module K M]
(resolution : CategoryTheory.ProjectiveResolution
(ModuleCat.of (MvPolynomial (Fin n) K) M)) :
HomologicalComplex (ModuleCat.{u, u} K) (ComplexShape.down ℕ) :=
letI : Algebra (MvPolynomial (Fin n) K) K := zeroEval.toAlgebra
(CategoryTheory.Functor.mapHomologicalComplex
(ModuleCat.extendScalars zeroEval) (ComplexShape.down ℕ)).obj resolution.complex
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:62
public noncomputable def baseChangedDegreePiece {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 ι)
(i : ℕ) (α : Fin n →₀ Int) :
Submodule K ↥((baseChangedComplex resolution).X i) :=
letI : Module K ↥(resolution.complex.X i) :=
Module.compHom _ (MvPolynomial.C : K →+* MvPolynomial (Fin n) K)
⋯
MathlibExt/RingTheory/GradedAlgebra/MultigradedBetti.lean:74
Sources
- Benjamin Braun and Brian Davis, "Antichain Simplices," Journal of Integer Sequences 23 (2020), lines 862–867, https://cs.uwaterloo.ca/journals/JIS/VOL23/Braun/braun4.tex.
Uses 8 · Used by 3
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.