Module

Scheme_Modules_IsInvertible_isIso_of_locallySurjective.lean

Nyll.AlgebraicCurves.Geometry.Sheaves.Scheme_Modules_IsInvertible_isIso_of_locallySurjective
14 declarations indexed from sourceView source ↗

Locally surjective maps between invertible module sheaves

A locally surjective morphism between invertible module sheaves is an isomorphism, using unit-module maps under local trivializations and a covering criterion.

Declarations

AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_restrictTrivOfLE

Restricts a given trivialization to a smaller open subset.

Source context 19 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {X : Scheme.{u}}
def lbF_restrictTrivOfLE {L : X.Modules} {U W : X.Opens} (h : W ≤ U)
    (e : (Modules.pullback U.ι).obj L ≅ SheafOfModules.unit U.toScheme.ringCatSheaf) :
    L.restrict W.ι ≅ (SheafOfModules.unit W.toScheme.ringCatSheaf : W.toScheme.Modules)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_unitModule

The structure sheaf as a module over itself.

Source context 19 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
abbrev lbF_unitModule (W : Scheme.{u}) : W.Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_toSec

Views a section of the structure sheaf as a section of its unit module.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
def lbF_toSec (U : W.Opens) : Γ(W, U) → Γ(𝒪[W], U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_ofSec

Views a section of the unit module as a section of the structure sheaf.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
def lbF_ofSec (U : W.Opens) : Γ(𝒪[W], U) → Γ(W, U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_ofSec_toSec
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_ofSec_toSec (U : W.Opens) (r : Γ(W, U)) : lbF_ofSec U (lbF_toSec U r) = r
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_toSec_ofSec
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_toSec_ofSec (U : W.Opens) (m : Γ(𝒪[W], U)) : lbF_toSec U (lbF_ofSec U m) =
    m
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_ofSec_injective
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_ofSec_injective (U : W.Opens) : Function.Injective (lbF_ofSec (W := W) U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_ofSec_map
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_ofSec_map (U V : W.Opens) (i : V ≤ U) (m : Γ(𝒪[W], U)) :
    lbF_ofSec V ((𝒪[W]).presheaf.map (homOfLE i).op m) = W.presheaf.map (homOfLE i).op (lbF_ofSec U
        m)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_ofSec_app_smul
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_ofSec_app_smul (ψ : 𝒪[W] ⟶ 𝒪[W]) (U : W.Opens) (r : Γ(W, U)) (m : Γ(𝒪[W], U)) :
    lbF_ofSec U (ψ.app U (r • m)) = r * lbF_ofSec U (ψ.app U m)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_smul_toSec_one
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
lemma lbF_smul_toSec_one (U : W.Opens) (r : Γ(W, U)) : r • lbF_toSec U 1 = lbF_toSec U r
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_unitEndo_isIso_of_locallySurjective
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {W : Scheme.{u}}
local notation "𝒪[" W "]" => lbF_unitModule W
theorem lbF_unitEndo_isIso_of_locallySurjective (ψ : 𝒪[W] ⟶ 𝒪[W])
    (hψ : ∀ (U : W.Opens) (s : Γ(𝒪[W], U)), ∀ x ∈ U, ∃ (V : W.Opens) (i : V ≤ U),
      x ∈ V ∧ (𝒪[W]).presheaf.map (homOfLE i).op s ∈ Set.range (ψ.app V)) :
    IsIso ψ
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.lbF_isIso_of_isIso_app_of_iSup_eq_top
Source context 19 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {X : Scheme.{u}}
theorem lbF_isIso_of_isIso_app_of_iSup_eq_top {X : Scheme.{u}} {M N : X.Modules} (φ : M ⟶ N) {ι :
  Type v}
    (U : ι → X.Opens) (hU : ⨆ i, U i = ⊤)
    (h : ∀ (i : ι) (V : X.Opens), V ≤ U i → IsIso (φ.app V)) : IsIso φ
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsInvertible_isIso_of_locallySurjective.AlgebraicGeometry.Scheme.Modules.IsInvertible.isIso_of_locallySurjective'
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
variable {X : Scheme.{u}}
open scoped _root_.AlgebraicGeometry.Scheme.Modules.IsInvertible in
theorem IsInvertible.isIso_of_locallySurjective' {L L' : X.Modules}
    (hL : Scheme.Modules.IsInvertible L) (hL' : Scheme.Modules.IsInvertible L') (φ : L ⟶ L')
    (hφ : ∀ (U : X.Opens) (s : Γ(L', U)), ∀ x ∈ U, ∃ (V : X.Opens) (i : V ≤ U),
      x ∈ V ∧ L'.presheaf.map (homOfLE i).op s ∈ Set.range (φ.app V)) : IsIso φ
AlgebraicGeometry.Scheme.Modules.IsInvertible.isIso_of_locallySurjective
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_IsInvertible_isIso_of_locallySurjective
universe u v
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
theorem _root_.AlgebraicGeometry.Scheme.Modules.IsInvertible.isIso_of_locallySurjective
    {X : Scheme.{u}} {L L' : X.Modules} (hL : Scheme.Modules.IsInvertible L)
    (hL' : Scheme.Modules.IsInvertible L') (φ : L ⟶ L')
    (hφ : ∀ (U : X.Opens) (s : Γ(L', U)), ∀ x ∈ U, ∃ (V : X.Opens) (i : V ≤ U),
      x ∈ V ∧ L'.presheaf.map (homOfLE i).op s ∈ Set.range (φ.app V)) : IsIso φ