Module

OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.lean

Nyll.AlgebraicCurves.Cohomology.Cech.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
14 declarations indexed from sourceView source ↗

OModule Presheaf nonempty cech Equiv of Modules of iso

Declarations

structure

LinIso

L42 ↗
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.LinIso

A family of linear equivalences on sections commuting with restriction.

Source context 15 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
structure LinIso (F G : OModulePresheaf π) where
  /-- The linear equivalence on the sections of each open. -/
  app : ∀ U : V.Opens, F.obj U ≃ₗ[R] G.obj U
  /-- The section equivalences commute with restriction maps. -/
  res_app : ∀ {U U' : V.Opens} (h : U ≤ U') (x : F.obj U'), G.res h (app U' x) = app U (F.res h x)
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.cochainEquiv

The pointwise linear equivalence induced on the ordered-cover cochains.

Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
def cochainEquiv (i : ℕ) : F.cochain K i ≃ₗ[R] G.cochain K i
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.cochainEquiv_apply
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem cochainEquiv_apply (i : ℕ) (c : F.cochain K i) (s : K.Idx i) :
    cochainEquiv φ K i c s = φ.app (K.inter s) (c s)
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.d_cochainEquiv
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem d_cochainEquiv (i : ℕ) (c : F.cochain K i) :
    G.d K i (cochainEquiv φ K i c) = cochainEquiv φ K (i + 1) (F.d K i c)
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.d_comp_cochainEquiv
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem d_comp_cochainEquiv (i : ℕ) :
    G.d K i ∘ₗ (cochainEquiv φ K i).toLinearMap = (cochainEquiv φ K (i + 1)).toLinearMap ∘ₗ F.d
      K i
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.map_ker
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem map_ker (i : ℕ) :
    Submodule.map (cochainEquiv φ K i).toLinearMap (LinearMap.ker (F.d K i)) = LinearMap.ker
      (G.d K i)
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.H0Equiv

The induced linear equivalence on degree-zero cohomology.

Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
def H0Equiv : F.H0 K ≃ₗ[R] G.H0 K
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.kerEquiv

The linear equivalence on the kernels of corresponding Čech differentials.

Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
def kerEquiv (i : ℕ) : LinearMap.ker (F.d K (i + 1)) ≃ₗ[R] LinearMap.ker (G.d K (i + 1))
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.kerEquiv_apply_coe
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem kerEquiv_apply_coe (i : ℕ) (x : LinearMap.ker (F.d K (i + 1))) :
    ((kerEquiv φ K i x : LinearMap.ker (G.d K (i + 1))) : G.cochain K (i + 1)) = cochainEquiv φ
      K (i + 1) x
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.map_boundaries
Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
theorem map_boundaries (i : ℕ) :
    Submodule.map (kerEquiv φ K i).toLinearMap
        ((LinearMap.range (F.d K i)).comap (LinearMap.ker (F.d K (i + 1))).subtype)
      = (LinearMap.range (G.d K i)).comap (LinearMap.ker (G.d K (i + 1))).subtype
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.HSuccEquiv

The induced linear equivalence on positive-degree Čech cohomology.

Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
def HSuccEquiv (i : ℕ) : F.HSucc K i ≃ₗ[R] G.HSucc K i
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.cechFinite_iff
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
include φ in
theorem cechFinite_iff : F.CechFinite K ↔ G.CechFinite K
AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso.AlgebraicGeometry.OModulePresheaf.IsoTransfer.ofIso

The restriction-compatible linear equivalences induced by an isomorphism of scheme modules.

Source context 16 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry.OModulePresheaf
open _root_.AlgebraicGeometry
namespace IsoTransfer
variable {R : Type u} [CommRing R] {V : Scheme.{u}} {π : V ⟶ Spec (.of R)}
variable {F G : OModulePresheaf π} (φ : LinIso F G) (K : V.OrderedAffineCover)
def ofIso {M M' : V.Modules} (e : M ≅ M') : LinIso (ofModules π M) (ofModules π M') where
  app U :=
    { toFun := fun x => (e.hom.app U).hom x
      invFun := fun y => (e.inv.app U).hom y
      map_add' := fun x y => (e.hom.app U).hom.map_add x y
      map_smul' := fun r x => by
        exact (congrArg (fun y : (ofModules π M).obj U => (e.hom.app U).hom y)
          (ofModules_algebraMap_smul π M U r x)).trans
          ((Scheme.Modules.Hom.app_smul e.hom
            ((Scheme.TwoAffineOpenCover.algebraOfHom π U).algebraMap r)
            (show Γ(M, U) from x)).trans
            (ofModules_algebraMap_smul π M' U r
              (show (ofModules π M').obj U from (e.hom.app U).hom x)).symm)
      left_inv := fun x => by
        change (e.hom.app U ≫ e.inv.app U).hom x = x
        rw [← Scheme.Modules.Hom.comp_app, e.hom_inv_id, Scheme.Modules.Hom.id_app]; rfl
      right_inv := fun y => by
        change (e.inv.app U ≫ e.hom.app U).hom y = y
        rw [← Scheme.Modules.Hom.comp_app, e.inv_hom_id, Scheme.Modules.Hom.id_app]; rfl }
  res_app {U U'} h x := by
    change (M'.presheaf.map (homOfLE h).op) ((e.hom.app U').hom x) = (e.hom.app U).hom
      ((M.presheaf.map (homOfLE h).op) x)
    have hnat := e.hom.mapPresheaf.naturality (homOfLE h).op
    have hx := ConcreteCategory.congr_hom hnat x
    simp only [Scheme.Modules.mapPresheaf_app] at hx
    exact hx.symm
AlgebraicGeometry.OModulePresheaf.nonempty_cechEquiv_ofModules_of_iso
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Cohomology.Cech.Proofs.OModulePresheaf_nonempty_cechEquiv_ofModules_of_iso
noncomputable section
universe u
open _root_.CategoryTheory
open _root_.AlgebraicGeometry
open _root_.Opposite
open AlgebraicGeometry.OModulePresheaf.IsoTransfer in
theorem _root_.AlgebraicGeometry.OModulePresheaf.nonempty_cechEquiv_ofModules_of_iso
    {R : Type u} [CommRing R] {V : Scheme.{u}} (π : V ⟶ Spec (.of R)) {M M' : V.Modules} (e : M
      ≅ M')
    (K : V.OrderedAffineCover) :
    Nonempty ((OModulePresheaf.ofModules π M).H0 K ≃ₗ[R] (OModulePresheaf.ofModules π M').H0 K) ∧
      (∀ i : ℕ, Nonempty ((OModulePresheaf.ofModules π M).HSucc K i ≃ₗ[R]
        (OModulePresheaf.ofModules π M').HSucc K i)) ∧
      ((OModulePresheaf.ofModules π M).CechFinite K ↔ (OModulePresheaf.ofModules π
        M').CechFinite K)