Module

CoherentBaseChange_TwoTermComplex_exists_nonempty_H0_linearEquiv_annihilator_of_fibreH0_le_one.lean

Nyll.AlgebraicCurves.Cohomology.Cech.CoherentBaseChange_TwoTermComplex_exists_nonempty_H0_linearEquiv_annihilator_of_fibreH0_le_one
40 declarations indexed from sourceView source ↗

Coherent Base Change Two Term Complex exists nonempty H0 linear Equiv annihilator of fibre

H0 le one

Imports26
  • Mathlib.Algebra.Exact.Basic
  • Mathlib.Algebra.GroupWithZero.Units.Basic
  • Mathlib.Algebra.Module.Submodule.Equiv
  • Mathlib.LinearAlgebra.Dimension.Constructions
  • Mathlib.LinearAlgebra.Dimension.RankNullity
  • Mathlib.LinearAlgebra.FiniteDimensional.Basic
  • Mathlib.LinearAlgebra.FiniteDimensional.Lemmas
  • Mathlib.LinearAlgebra.FreeModule.Basic
  • Mathlib.LinearAlgebra.FreeModule.Finite.Basic
  • Mathlib.LinearAlgebra.Matrix.Rank
  • Mathlib.LinearAlgebra.Matrix.ToLin
  • Mathlib.LinearAlgebra.Quotient.Defs
  • Mathlib.LinearAlgebra.Span.Basic
  • Mathlib.LinearAlgebra.TensorProduct.RightExactness
  • Mathlib.LinearAlgebra.TensorProduct.Tower
  • Mathlib.RingTheory.Finiteness.Basic
  • Mathlib.RingTheory.Ideal.Maps
  • Mathlib.RingTheory.LocalRing.Module
  • Mathlib.RingTheory.LocalRing.ResidueField.Ideal
  • Mathlib.RingTheory.Support
  • Mathlib.RingTheory.TensorProduct.Finite
  • Mathlib.RingTheory.TensorProduct.Free
  • Mathlib.Tactic.Choose
  • Mathlib.Tactic.Push
  • Mathlib.Tactic.Ring
  • Nyll.SchemeTheory.Cohomology.Sheaves.CoherentBaseChange
Imported by2

Declarations

AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.span_one_tmul_eq_top
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Nakayama
variable {V : Type u} [AddCommGroup V] [Module R V]
theorem span_one_tmul_eq_top (K : Type u) [CommRing K] [Algebra R K] (Q : Type u) [AddCommGroup Q]
    [Module R Q] : Submodule.span K (Set.range (TensorProduct.mk R K Q 1)) = ⊤
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.exists_span_singleton
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Nakayama
variable {V : Type u} [AddCommGroup V] [Module R V]
theorem exists_span_singleton (W : Submodule R V) (𝔭 : PrimeSpectrum R)
    (hle : Module.finrank 𝔭.asIdeal.ResidueField (𝔭.asIdeal.ResidueField ⊗[R] (V ⧸ W)) ≤ 1)
    [Module.Finite R V] :
    ∃ q : V, ∀ w : 𝔭.asIdeal.ResidueField ⊗[R] (V ⧸ W), ∃ c : 𝔭.asIdeal.ResidueField,
      c • ((1 : 𝔭.asIdeal.ResidueField) ⊗ₜ[R] Submodule.Quotient.mk q) = w
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.exists_generator
Source context 9 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Nakayama
variable {V : Type u} [AddCommGroup V] [Module R V]
theorem exists_generator (W : Submodule R V) (𝔭 : PrimeSpectrum R) [Module.Finite R V]
    (hle : Module.finrank 𝔭.asIdeal.ResidueField (𝔭.asIdeal.ResidueField ⊗[R] (V ⧸ W)) ≤ 1) :
    ∃ (q : V) (h : R), h ∉ 𝔭.asIdeal ∧ ∀ v : V, ∃ r : R, h • v - r • q ∈ W
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.ι0

The index type of the chosen basis of the degree-zero term.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
abbrev ι0 : Type u
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.ι1

The index type of the chosen basis of the degree-one term.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
abbrev ι1 : Type u
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.b0

The chosen basis of the degree-zero term.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
abbrev b0 : Module.Basis (ι0 G) R G.C0
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.b1

The chosen basis of the degree-one term.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
abbrev b1 : Module.Basis (ι1 G) R G.C1
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Dm

The matrix of the differential in the chosen bases.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
def Dm : Matrix (ι1 G) (ι0 G) R
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.W

The row span of the differential matrix, expressed as the range of its transpose.

Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
def W : Submodule R (ι0 G → R)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.row_mem_W
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
theorem row_mem_W (j : ι1 G) : (fun i => Dm G j i) ∈ W G := by
  classical
  refine LinearMap.mem_range.mpr ⟨Pi.single j 1, ?_⟩
  funext i
  rw [Matrix.mulVecLin_apply, Matrix.mulVec_single_one]
  rfl
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.mem_W_iff
Source context 10 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
theorem mem_W_iff (y : ι0 G → R) : y ∈ W G ↔ ∃ w : ι1 G → R, ∀ i, y i = ∑ j, Dm G j i * w j
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Kmat

The kernel of the differential matrix after extension of scalars.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
def Kmat : Submodule B (ι0 G → B)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.mem_Kmat_iff
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem mem_Kmat_iff (x : ι0 G → B) :
    x ∈ Kmat G B ↔ ∀ j, ∑ i, algebraMap R B (Dm G j i) * x i = 0
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.β0

The basis of the degree-zero term after extension of scalars.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
abbrev β0 : Module.Basis (ι0 G) B (B ⊗[R] G.C0)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.β1

The basis of the degree-one term after extension of scalars.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
abbrev β1 : Module.Basis (ι1 G) B (B ⊗[R] G.C1)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Dm_map_eq
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem Dm_map_eq : (Dm G).map (algebraMap R B) = LinearMap.toMatrix (β0 G B) (β1 G B)
  (G.d.baseChange B)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.repr_baseChange
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem repr_baseChange (y : B ⊗[R] G.C0) :
    ((β1 G B).repr (G.d.baseChange B y) : ι1 G → B) = ((Dm G).map (algebraMap R B)) *ᵥ ((β0 G
      B).repr y)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.mem_H0_iff
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem mem_H0_iff (y : B ⊗[R] G.C0) : y ∈ G.H0 B ↔ ((β0 G B).repr y : ι0 G → B) ∈ Kmat G B
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.H0Equiv

Identify zeroth cohomology with the kernel of the base-changed matrix.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
def H0Equiv : G.H0 B ≃ₗ[B] Kmat G B
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.baseChangeCokerEquiv

Identify the cokernel after base change with the base change of the cokernel.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
def baseChangeCokerEquiv {P Q : Type u} [AddCommGroup P] [Module R P] [AddCommGroup Q] [Module R Q]
    (φ : P →ₗ[R] Q) (A : Type u) [CommRing A] [Algebra R A] :
    ((A ⊗[R] Q) ⧸ LinearMap.range (φ.baseChange A)) ≃ₗ[A] A ⊗[R] (Q ⧸ LinearMap.range φ)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.finrank_fibre_eq
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Coordinates
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem finrank_fibre_eq (𝔭 : PrimeSpectrum R) :
    Module.finrank 𝔭.asIdeal.ResidueField (𝔭.asIdeal.ResidueField ⊗[R] ((ι0 G → R) ⧸ W G)) =
      G.fibreH0 𝔭
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair

The coordinate pairing after mapping coefficients into the extension ring.

Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
def pair (v : ι0 G → R) (x : ι0 G → B) : B
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_add_left
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_add_left (v v' : ι0 G → R) (x : ι0 G → B) : pair G B (v + v') x = pair G B v x +
  pair G B v' x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_smul_left
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_smul_left (r : R) (v : ι0 G → R) (x : ι0 G → B) :
    pair G B (r • v) x = algebraMap R B r * pair G B v x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_sub_left
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_sub_left (v v' : ι0 G → R) (x : ι0 G → B) : pair G B (v - v') x = pair G B v x -
  pair G B v' x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_single
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_single (i : ι0 G) (x : ι0 G → B) : pair G B (Pi.single i 1) x = x i
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_add_right
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_add_right (v : ι0 G → R) (x x' : ι0 G → B) : pair G B v (x + x') = pair G B v x +
  pair G B v x'
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_smul_right
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_smul_right (b : B) (v : ι0 G → R) (x : ι0 G → B) : pair G B v (b • x) = b * pair G
  B v x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_eq_zero_of_mem_W
Source context 11 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
theorem pair_eq_zero_of_mem_W {y : ι0 G → R} (hy : y ∈ W G) {x : ι0 G → B} (hx : x ∈ Kmat G B) :
    pair G B y x = 0
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.J

The ideal of scalars sending the chosen vector into the row span.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
def J : Ideal R
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.mem_J_iff
Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
theorem mem_J_iff (r : R) : r ∈ J G q ↔ r • q ∈ W G
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Φ

Evaluation of the coordinate pairing against the chosen vector on the matrix kernel.

Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
def Φ : Kmat G B →ₗ[B] B where
  toFun x := pair G B q x
  map_add' x x' := pair_add_right G B q x x'
  map_smul' b x := pair_smul_right G B b q x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Φ_apply
Source context 12 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
theorem Φ_apply (x : Kmat G B) : Φ G B q x = pair G B q x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.pair_eq
Source context 16 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
variable {q h}
variable (hE : ∀ v : ι0 G → R, ∃ r : R, h • v - r • q ∈ W G) (hu : IsUnit (algebraMap R B h))
include hE hu
omit hE hu in
theorem pair_eq (v : ι0 G → R) (r : R) (hr : h • v - r • q ∈ W G) (x : Kmat G B) :
    algebraMap R B h * pair G B v x = algebraMap R B r * Φ G B q x
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Φ_injective
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
variable {q h}
variable (hE : ∀ v : ι0 G → R, ∃ r : R, h • v - r • q ∈ W G) (hu : IsUnit (algebraMap R B h))
include hE hu
theorem Φ_injective : Function.Injective (Φ G B q)
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Φ_mem
Source context 16 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
variable {q h}
variable (hE : ∀ v : ι0 G → R, ∃ r : R, h • v - r • q ∈ W G) (hu : IsUnit (algebraMap R B h))
include hE hu
omit hE in
theorem Φ_mem (x : Kmat G B) : Φ G B q x ∈ ((J G q).map (algebraMap R B)).annihilator
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.Φ_surjective
Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
variable {q h}
variable (hE : ∀ v : ι0 G → R, ∃ r : R, h • v - r • q ∈ W G) (hu : IsUnit (algebraMap R B h))
include hE hu
theorem Φ_surjective (b : B) (hb : b ∈ ((J G q).map (algebraMap R B)).annihilator) :
    ∃ x : Kmat G B, Φ G B q x = b
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.KmatEquivAnn

Identify the matrix kernel with the annihilator of the extended ideal.

Source context 15 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Pairing
open Matrix
variable (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
variable (B : Type u) [CommRing B] [Algebra R B]
variable (q : ι0 G → R) (h : R)
variable {q h}
variable (hE : ∀ v : ι0 G → R, ∃ r : R, h • v - r • q ∈ W G) (hu : IsUnit (algebraMap R B h))
include hE hu
def KmatEquivAnn : Kmat G B ≃ₗ[B] ((J G q).map (algebraMap R B)).annihilator
AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator.P2mTwoTermH0Ann.main
Source context 8 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
universe u
open TensorProduct
noncomputable section
namespace P2mTwoTermH0Ann
variable {R : Type u} [CommRing R]
section Main
theorem main (G : CoherentBaseChange.TwoTermComplex.{u, u} R) (𝔭 : PrimeSpectrum R) (h𝔭 :
  G.fibreH0 𝔭 ≤ 1) :
    ∃ (h : R) (J : Ideal R), h ∉ 𝔭.asIdeal ∧
      ∀ (B : Type u) [CommRing B] [Algebra R B], IsUnit (algebraMap R B h) →
        Nonempty (G.H0 B ≃ₗ[B] (J.map (algebraMap R B)).annihilator)
CoherentBaseChange.TwoTermComplex.exists_nonempty_H0_linearEquiv_annihilator_of_fibreH0_le_one
Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

section ProofImplementation
section PublicStatement
universe u
open _root_.TensorProduct
open _root_.AlgebraicCurves.Cohomology.Cech.Proofs.TwoTermH0Annihilator
namespace CoherentBaseChange.TwoTermComplex
theorem exists_nonempty_H0_linearEquiv_annihilator_of_fibreH0_le_one
    {R : Type u} [CommRing R] (G : CoherentBaseChange.TwoTermComplex.{u, u} R)
    (𝔭 : PrimeSpectrum R) (h𝔭 : G.fibreH0 𝔭 ≤ 1) :
    ∃ (h : R) (J : Ideal R), h ∉ 𝔭.asIdeal ∧
      ∀ (B : Type u) [CommRing B] [Algebra R B], IsUnit (algebraMap R B h) →
        Nonempty (G.H0 B ≃ₗ[B] (J.map (algebraMap R B)).annihilator)