Documentation

TauCeti.RingTheory.KoszulComplex.Basic

The Koszul complex of a linear functional #

For a linear functional φ : M → R on a module over a commutative ring, the Koszul complex K(φ) is the chain complex ⋯ → ⋀³ M → ⋀² M → M → R with K(φ)ₙ = ⋀ⁿ M and differential the contraction by φ, d(v₀ ∧ ⋯ ∧ vₙ) = ∑ᵢ (-1) ^ i φ(vᵢ) v₀ ∧ ⋯ ∧ v̂ᵢ ∧ ⋯ ∧ vₙ. For a finite sequence x = (x₁, …, xₙ) in R, the functional v ↦ ∑ᵢ vᵢ xᵢ on Rⁿ gives the Koszul complex K(x) of the sequence, whose zeroth homology is R ⧸ (x₁, …, xₙ).

Main declarations #

References #

The interface (the Koszul complex of a linear functional with exterior-power terms, the alternating-deletion differential, koszulComplex.map along ψ ∘ g = φ, and the homotopy d(m ∧ v) + m ∧ d(v) = φ(m) v) follows the design of Nailin Guan in the Mathlib pull requests mathlib4#43708 (definition of the Koszul complex) and mathlib4#43706 (homotopy of the Koszul complex). No code from those pull requests is vendored here.

def TauCeti.koszulDifferential {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) :
↥(⋀[R]^(n + 1) M) →ₗ[R] ↥(⋀[R]^n M)

The Koszul differential ⋀ⁿ⁺¹ M → ⋀ⁿ M of a linear functional φ: the contraction by φ, v₀ ∧ ⋯ ∧ vₙ ↦ ∑ᵢ (-1) ^ i φ(vᵢ) v₀ ∧ ⋯ ∧ v̂ᵢ ∧ ⋯ ∧ vₙ (see koszulDifferential_ιMulti).

Instances For
    @[simp]
    theorem TauCeti.coe_koszulDifferential_apply {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) (x : ↥(⋀[R]^(n + 1) M)) :

    The Koszul differential is the contraction by φ.

    theorem TauCeti.koszulDifferential_ιMulti {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) (v : Fin (n + 1) → M) :
    (koszulDifferential φ n) ((exteriorPower.ιMulti R (n + 1)) v) = ∑ i : Fin (n + 1), ((-1) ^ ↑i * φ (v i)) • (exteriorPower.ιMulti R n) (i.removeNth v)

    The Koszul differential on a wedge product of vectors is the alternating sum of deletions: d(v₀ ∧ ⋯ ∧ vₙ) = ∑ᵢ (-1) ^ i φ(vᵢ) v₀ ∧ ⋯ ∧ v̂ᵢ ∧ ⋯ ∧ vₙ.

    @[simp]

    The Koszul differential squares to zero.

    @[simp]
    theorem TauCeti.koszulDifferential_koszulDifferential {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) (x : ↥(⋀[R]^(n + 2) M)) :
    (koszulDifferential φ n) ((koszulDifferential φ (n + 1)) x) = 0

    The Koszul differential squares to zero, elementwise.

    The first Koszul differential is φ: under the identifications ⋀⁰ M ≅ R and ⋀¹ M ≅ M, the differential ⋀¹ M → ⋀⁰ M is φ.

    @[simp]
    theorem TauCeti.zeroEquiv_koszulDifferential_zero {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (x : ↥(⋀[R]^1 M)) :

    The first Koszul differential is φ, elementwise.

    @[simp]

    The first Koszul differential sends a vector, viewed in ⋀¹ M, to its value under φ, viewed in ⋀⁰ M.

    @[simp]
    theorem TauCeti.oneEquiv_koszulDifferential_one {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (v : Fin 2 → M) :
    (exteriorPower.oneEquiv R M) ((koszulDifferential φ 1) ((exteriorPower.ιMulti R 2) v)) = φ (v 0) • v 1 - φ (v 1) • v 0

    In degree two, the Koszul differential sends u ∧ v to φ(u) v - φ(v) u.

    The image of the first Koszul differential, transported along ⋀⁰ M ≅ R, is the image of φ.

    theorem TauCeti.koszulDifferential_comp_map {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) {N : Type u_1} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} {g : M →ₗ[R] N} (h : ψ ∘ₗ g = φ) (n : ℕ) :

    The Koszul differential is natural: if ψ ∘ g = φ, then ⋀ g intertwines the Koszul differentials of φ and ψ.

    @[simp]
    theorem TauCeti.koszulDifferential_map {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type u_1} [AddCommGroup N] [Module R N] (ψ : Module.Dual R N) (g : M →ₗ[R] N) (n : ℕ) (x : ↥(⋀[R]^(n + 1) M)) :

    The Koszul differential is natural, elementwise: ⋀ g carries the Koszul differential of ψ ∘ g to that of ψ.

    theorem TauCeti.map_fst_koszulDifferential_coprod {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (x : R) (k : ℕ) (z : ↥(⋀[R]^(k + 1) (M × R))) :

    The ⋀ M-component of the Koszul differential of K(φ, x): writing z = a + e ∧ b, it is d a + x b.

    theorem TauCeti.exact_koszulDifferential_of_retract {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type u_1} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (g : M →ₗ[R] N) (h : N →ₗ[R] M) (hhg : h ∘ₗ g = LinearMap.id) (hψ : φ ∘ₗ h = ψ) (n : ℕ) (hex : Function.Exact ⇑(koszulDifferential ψ (n + 1)) ⇑(koszulDifferential ψ n)) :

    Exactness passes to retracts. If g : M → N has a retraction h and ψ = φ ∘ h (so that also φ = ψ ∘ g), then the Koszul complex K(φ) is a retract of K(ψ), and exactness of K(ψ) at ⋀ⁿ⁺¹ N implies exactness of K(φ) at ⋀ⁿ⁺¹ M.

    The Koszul homotopy identity in degree zero: d(m ∧ r) = φ(m) r for r ∈ ⋀⁰ M.

    The Koszul homotopy identity in positive degrees: m ∧ d(v) + d(m ∧ v) = φ(m) v.

    The Koszul complex K(φ) of a linear functional φ : M → R: the ℕ-indexed chain complex with K(φ)ₙ = ⋀ⁿ M and differential koszulDifferential φ, the contraction by φ.

    The body is exposed so that the terms of the complex are definitionally the exterior powers, and elements of (koszulComplex φ).X n can be used as elements of ⋀ⁿ M.

    Instances For
      @[simp]
      theorem TauCeti.koszulComplex_X {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) :
      (koszulComplex φ).X n = ↧↥(⋀[R]^n M)

      The terms of the Koszul complex are the exterior powers.

      theorem TauCeti.koszulComplex_d {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) :

      The differential of the Koszul complex is the Koszul differential.

      @[simp]
      theorem TauCeti.koszulComplex_d_apply {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (n : ℕ) (x : ↥(⋀[R]^(n + 1) M)) :

      The differential of the Koszul complex is the Koszul differential, elementwise.

      The Koszul complex K(φ) is exact at ⋀ᵏ⁺¹ M, i.e. Hₖ₊₁(K(φ)) = 0, exactly when the Koszul differentials ⋀ᵏ⁺² M → ⋀ᵏ⁺¹ M → ⋀ᵏ M are exact.

      noncomputable def TauCeti.koszulComplex.map {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type v} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (g : M →ₗ[R] N) (h : ψ ∘ₗ g = φ) :

      The chain map K(φ) → K(ψ) induced by a linear map g : M → N with ψ ∘ g = φ: in degree n it is ⋀ⁿ g.

      Instances For
        @[simp]
        theorem TauCeti.koszulComplex.map_f {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type v} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (g : M →ₗ[R] N) (h : ψ ∘ₗ g = φ) (n : ℕ) :

        In degree n, the chain map induced by g is ⋀ⁿ g.

        @[simp]

        The identity of M induces the identity of K(φ).

        theorem TauCeti.koszulComplex.map_comp {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N P : Type v} [AddCommGroup N] [Module R N] [AddCommGroup P] [Module R P] {ψ : Module.Dual R N} {χ : Module.Dual R P} (g : M →ₗ[R] N) (h : ψ ∘ₗ g = φ) (g' : N →ₗ[R] P) (h' : χ ∘ₗ g' = ψ) :

        The chain map induced by a composite is the composite of the induced chain maps.

        theorem TauCeti.koszulComplex.map_comp_assoc {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N P : Type v} [AddCommGroup N] [Module R N] [AddCommGroup P] [Module R P] {ψ : Module.Dual R N} {χ : Module.Dual R P} (g : M →ₗ[R] N) (h : ψ ∘ₗ g = φ) (g' : N →ₗ[R] P) (h' : χ ∘ₗ g' = ψ) {Z : ChainComplex (ModuleCat R) ℕ} (h✝ : koszulComplex χ ⟶ Z) :

        The chain map induced by a composite is the composite of the induced chain maps.

        noncomputable def TauCeti.koszulComplex.mapIso {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type v} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (e : M ≃ₗ[R] N) (h : ψ ∘ₗ ↑e = φ) :

        The isomorphism K(φ) ≅ K(ψ) induced by a linear equivalence e : M ≃ N with ψ ∘ e = φ; in degree n it is ⋀ⁿ e.

        Instances For
          @[simp]
          theorem TauCeti.koszulComplex.mapIso_hom {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type v} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (e : M ≃ₗ[R] N) (h : ψ ∘ₗ ↑e = φ) :
          (mapIso e h).hom = map (↑e) h

          The isomorphism induced by a linear equivalence e is the chain map induced by e.

          @[simp]
          theorem TauCeti.koszulComplex.mapIso_inv {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {φ : Module.Dual R M} {N : Type v} [AddCommGroup N] [Module R N] {ψ : Module.Dual R N} (e : M ≃ₗ[R] N) (h : ψ ∘ₗ ↑e = φ) :
          (mapIso e h).inv = map ↑e.symm ⋯

          The inverse of the isomorphism induced by e is the chain map induced by e.symm.

          Koszul homotopy: for m : M, exterior multiplication v ↦ m ∧ v is a null-homotopy of multiplication by φ(m) on K(φ); see koszulDifferential_comp_wedgeLeft_zero and wedgeLeft_comp_koszulDifferential_add.

          Instances For
            @[simp]
            theorem TauCeti.koszulComplex.smulHomotopy_hom {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (m : M) (n : ℕ) :

            The components of the Koszul homotopy are exterior multiplication by m.

            theorem TauCeti.koszulComplex.smul_homology_eq_zero {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] (φ : Module.Dual R M) (m : M) (n : ℕ) (z : ↑(HomologicalComplex.homology (koszulComplex φ) n)) :
            φ m • z = 0

            Every value of φ annihilates the Koszul homology: φ(m) • z = 0 for every class z in every homology module of K(φ).

            The image ideal of the functional annihilates Koszul homology.

            @[simp]

            Koszul homology is power torsion for the image ideal of the functional.

            Zeroth Koszul homology: H₀(K(φ)) ≃ R ⧸ φ(M). It is the cokernel of the first differential, transported along ⋀⁰ M ≅ R; see homologyZeroEquiv_apply.

            Instances For
              @[simp]

              homologyZeroEquiv sends the class of x ∈ ⋀⁰ M to the class of the corresponding scalar.

              Zeroth Koszul homology of a finite sequence: for x = (xᵢ) in R, the Koszul complex of the functional v ↦ ∑ᵢ vᵢ xᵢ has H₀ ≃ R ⧸ (xᵢ).

              Instances For
                @[simp]

                homologyZeroEquivSpan sends the class of y ∈ ⋀⁰ Rⁿ to the class of the corresponding scalar modulo (xᵢ).