Module

Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.lean

Nyll.AlgebraicCurves.Geometry.Sheaves.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
98 declarations indexed from sourceView source ↗

Gluing compatible module morphisms from an open cover and their restriction equations.

Declarations

AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.op_hom_eq
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem op_hom_eq {U V : Y.Opens} (i j : op U ⟶ op V) : i = j
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.map_endo
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem map_endo (M : Y.Modules) {U : Y.Opens} (i : op U ⟶ op U) (x : Γ(M, U)) :
    M.presheaf.map i x = x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.map_map
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem map_map (M : Y.Modules) {U V W : Y.Opens} (i : op U ⟶ op V) (j : op V ⟶ op W) (x : Γ(M,
    U)) :
    M.presheaf.map j (M.presheaf.map i x) = M.presheaf.map (i ≫ j) x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.map_irrel
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem map_irrel (M : Y.Modules) {U V : Y.Opens} (i j : op U ⟶ op V) (x : Γ(M, U)) :
    M.presheaf.map i x = M.presheaf.map j x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.ring_map_endo
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem ring_map_endo {U : Y.Opens} (i : op U ⟶ op U) (x : Y.presheaf.obj (op U)) :
    Y.presheaf.map i x = x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.ring_map_map
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem ring_map_map {U V W : Y.Opens} (i : op U ⟶ op V) (j : op V ⟶ op W) (x : Y.presheaf.obj
    (op U)) :
    Y.presheaf.map j (Y.presheaf.map i x) = Y.presheaf.map (i ≫ j) x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.map_comp_eq
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem map_comp_eq (M : Y.Modules) {U V W : Y.Opens} (i : op U ⟶ op V) (j : op V ⟶ op W) (k :
    op U ⟶ op W) :
    M.presheaf.map i ≫ M.presheaf.map j = M.presheaf.map k
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.app_naturality
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem app_naturality {M N : Y.Modules} (φ : M ⟶ N) {U V : Y.Opens} (i : op U ⟶ op V) (x : Γ(M,
    U)) :
    φ.app V (M.presheaf.map i x) = N.presheaf.map i (φ.app U x)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_app_of_iso
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem bijective_app_of_iso {M N : Y.Modules} (e : M ≅ N) (U : Y.Opens) :
    Function.Bijective (e.hom.app U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_app_comp
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem bijective_app_comp {M N K : Y.Modules} (φ : M ⟶ N) (ψ : N ⟶ K) (U : Y.Opens)
    (hφ : Function.Bijective (φ.app U)) (hψ : Function.Bijective (ψ.app U)) :
    Function.Bijective ((φ ≫ ψ).app U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_map_of_eq
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem bijective_map_of_eq (M : Y.Modules) {U V : Y.Opens} (h : U = V) (i : op U ⟶ op V) :
    Function.Bijective (M.presheaf.map i)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.pushforward_map_apply
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Generic
variable {Y : Scheme.{u}}
theorem pushforward_map_apply {Z : Scheme.{u}} (f : Y ⟶ Z) (M : Y.Modules) {U V : Z.Opens} (i :
    op U ⟶ op V)
    (x : Γ((pushforward f).obj M, U)) :
    ((pushforward f).obj M).presheaf.map i x = M.presheaf.map ((Opens.map f.base).map i.unop).op
      x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.hu_app
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
include hu in
theorem hu_app (U : X.Opens) (s : Γ(M, U)) : a.app U (u₀.app U s) = b.app U (u₁.app U s)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftFun

Lift compatible sections through the given fibre product projections.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
def liftFun (U : X.Opens) (s : Γ(M, U)) : Γ(G, U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π₀_liftFun
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem π₀_liftFun (U : X.Opens) (s : Γ(M, U)) : π₀.app U (liftFun a b π₀ π₁ hlift u₀ u₁ hu U s)
    = u₀.app U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π₁_liftFun
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem π₁_liftFun (U : X.Opens) (s : Γ(M, U)) : π₁.app U (liftFun a b π₀ π₁ hlift u₀ u₁ hu U s)
    = u₁.app U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftFun_eq_of
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
include hinj in
theorem liftFun_eq_of (U : X.Opens) (s : Γ(M, U)) (t : Γ(G, U)) (h₀ : π₀.app U t = u₀.app U s)
    (h₁ : π₁.app U t = u₁.app U s) : liftFun a b π₀ π₁ hlift u₀ u₁ hu U s = t
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftFun_add
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
include hinj in
theorem liftFun_add (U : X.Opens) (s t : Γ(M, U)) :
    liftFun a b π₀ π₁ hlift u₀ u₁ hu U (s + t) =
      liftFun a b π₀ π₁ hlift u₀ u₁ hu U s + liftFun a b π₀ π₁ hlift u₀ u₁ hu U t
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftFun_smul
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
include hinj in
theorem liftFun_smul (U : X.Opens) (r : X.presheaf.obj (op U)) (s : Γ(M, U)) :
    liftFun a b π₀ π₁ hlift u₀ u₁ hu U (r • s) = r • liftFun a b π₀ π₁ hlift u₀ u₁ hu U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftFun_map
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
include hinj in
theorem liftFun_map {U V : X.Opens} (i : op U ⟶ op V) (s : Γ(M, U)) :
    liftFun a b π₀ π₁ hlift u₀ u₁ hu V (M.presheaf.map i s) =
      G.presheaf.map i (liftFun a b π₀ π₁ hlift u₀ u₁ hu U s)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.liftPresheafHom

The presheaf morphism obtained by lifting compatible sections.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
def liftPresheafHom : M.presheaf ⟶ G.presheaf where
  app U := AddCommGrpCat.ofHom
    { toFun := fun s => liftFun a b π₀ π₁ hlift u₀ u₁ hu U.unop s
      map_zero' := by
        have h := liftFun_add a b π₀ π₁ hinj hlift u₀ u₁ hu U.unop 0 0
        rw [add_zero] at h
        exact left_eq_add.mp h
      map_add' := fun s t => liftFun_add a b π₀ π₁ hinj hlift u₀ u₁ hu U.unop s t }
  naturality U V i := by
    ext s
    exact liftFun_map a b π₀ π₁ hinj hlift u₀ u₁ hu i s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift

The module morphism obtained by lifting compatible local morphisms.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
def lift : M ⟶ G
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift_app
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem lift_app (U : X.Opens) (s : Γ(M, U)) :
    (lift a b π₀ π₁ hinj hlift u₀ u₁ hu).app U s = liftFun a b π₀ π₁ hlift u₀ u₁ hu U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift_π₀
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem lift_π₀ : lift a b π₀ π₁ hinj hlift u₀ u₁ hu ≫ π₀ = u₀
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift_π₁
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem lift_π₁ : lift a b π₀ π₁ hinj hlift u₀ u₁ hu ≫ π₁ = u₁
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift_app_π₀
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem lift_app_π₀ (U : X.Opens) (s : Γ(M, U)) :
    π₀.app U ((lift a b π₀ π₁ hinj hlift u₀ u₁ hu).app U s) = u₀.app U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.lift_app_π₁
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Lift
variable {X : Scheme.{u}} {N₀ N₁ N₀₁ G M : X.Modules} (a : N₀ ⟶ N₀₁) (b : N₁ ⟶ N₀₁)
  (π₀ : G ⟶ N₀) (π₁ : G ⟶ N₁)
  (hinj : ∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s))
  (hlift : ∀ (U : X.Opens) (s₀ : Γ(N₀, U)) (s₁ : Γ(N₁, U)), a.app U s₀ = b.app U s₁ →
    ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁)
  (u₀ : M ⟶ N₀) (u₁ : M ⟶ N₁) (hu : u₀ ≫ a = u₁ ≫ b)
theorem lift_app_π₁ (U : X.Opens) (s : Γ(M, U)) :
    π₁.app U ((lift a b π₀ π₁ hinj hlift u₀ u₁ hu).app U s) = u₁.app U s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.comp_app_apply
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
theorem comp_app_apply {M N K : X.Modules} (φ : M ⟶ N) (ψ : N ⟶ K) (U : X.Opens) (x : Γ(M, U)) :
    (φ ≫ ψ).app U x = ψ.app U (φ.app U x)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.resHom

Restrict sections between pushforwards whose image opens are ordered.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
def resHom (hle : ∀ W : X.Opens, q ''ᵁ (q ⁻¹ᵁ W) ≤ p ''ᵁ (p ⁻¹ᵁ W)) (N : X.Modules) :
    (pushforward p).obj (N.restrict p) ⟶ (pushforward q).obj (N.restrict q)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.resHom_apply
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
theorem resHom_apply (hle : ∀ W : X.Opens, q ''ᵁ (q ⁻¹ᵁ W) ≤ p ''ᵁ (p ⁻¹ᵁ W)) (N : X.Modules) (W
    : X.Opens)
    (s : Γ((pushforward p).obj (N.restrict p), W)) :
    (resHom p q hle N).app W s = N.presheaf.map (homOfLE (hle W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_resHom_app
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
theorem bijective_resHom_app (hle : ∀ W : X.Opens, q ''ᵁ (q ⁻¹ᵁ W) ≤ p ''ᵁ (p ⁻¹ᵁ W)) (N :
    X.Modules)
    {W : X.Opens} (h : q ''ᵁ (q ⁻¹ᵁ W) = p ''ᵁ (p ⁻¹ᵁ W)) :
    Function.Bijective ((resHom p q hle N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.unit_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion q] in
theorem unit_apply (N : X.Modules) (W : X.Opens) (s : Γ(N, W)) :
    ((restrictAdjunction p).unit.app N).app W s = N.presheaf.map (homOfLE (p.image_preimage_le
      W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_unit_app
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion q] in
theorem bijective_unit_app (N : X.Modules) {W : X.Opens} (hW : W ≤ p.opensRange) :
    Function.Bijective (((restrictAdjunction p).unit.app N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.pushforward_app_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem pushforward_app_apply {M N : A.Modules} (φ : M ⟶ N) (W : X.Opens) (x : Γ((pushforward
    p).obj M, W)) :
    ((pushforward p).map φ).app W x = φ.app (p ⁻¹ᵁ W) x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrict_map_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion q] in
theorem restrict_map_apply (M : X.Modules) {U V : A.Opens} (i : op U ⟶ op V) (x : Γ(M.restrict
    p, U)) :
    (M.restrict p).presheaf.map i x = M.presheaf.map (p.opensFunctor.map i.unop).op x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.image_comp_eq
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem image_comp_eq {C : Scheme.{u}} (g : C ⟶ A) (f : A ⟶ X) [IsOpenImmersion g]
    [IsOpenImmersion f]
    (U : C.Opens) : (g ≫ f) ''ᵁ U = f ''ᵁ (g ''ᵁ U)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.image_eq_of_eq
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem image_eq_of_eq {p' q' : A ⟶ X} [IsOpenImmersion p'] [IsOpenImmersion q'] (h : p' = q')
    (V : A.Opens) :
    p' ''ᵁ V = q' ''ᵁ V
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.opensRange_eq_of_eq
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem opensRange_eq_of_eq {p' q' : A ⟶ X} [IsOpenImmersion p'] [IsOpenImmersion q'] (h : p' =
    q') :
    p'.opensRange = q'.opensRange
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.preimage_eq_of_eq
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem preimage_eq_of_eq {p' q' : A ⟶ X} (h : p' = q') (W : X.Opens) : p' ⁻¹ᵁ W = q' ⁻¹ᵁ W
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrictComp_hom_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion q] in
theorem restrictComp_hom_apply {C : Scheme.{u}} (g : C ⟶ A) [IsOpenImmersion g] (M : X.Modules)
    (V : C.Opens)
    (t : Γ(M.restrict (g ≫ p), V)) :
    (((restrictFunctorComp g p).hom.app M).app V t : Γ(M, p ''ᵁ (g ''ᵁ V))) =
      M.presheaf.map (eqToHom (image_comp_eq g p V).symm).op (show Γ(M, (g ≫ p) ''ᵁ V) from t)
        := rfl
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrictComp_inv_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion q] in
theorem restrictComp_inv_apply {C : Scheme.{u}} (g : C ⟶ A) [IsOpenImmersion g] (M : X.Modules)
    (V : C.Opens)
    (t : Γ((M.restrict p).restrict g, V)) :
    (((restrictFunctorComp g p).inv.app M).app V t : Γ(M, (g ≫ p) ''ᵁ V)) =
      M.presheaf.map (eqToHom (image_comp_eq g p V)).op (show Γ(M, p ''ᵁ (g ''ᵁ V)) from t) := rfl
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrictCongr_hom_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem restrictCongr_hom_apply {p' q' : A ⟶ X} [IsOpenImmersion p'] [IsOpenImmersion q'] (h :
    p' = q')
    (M : X.Modules) (V : A.Opens) (t : Γ(M.restrict p', V)) :
    (((restrictFunctorCongr h).hom.app M).app V t : Γ(M, q' ''ᵁ V)) =
      M.presheaf.map (eqToHom (image_eq_of_eq h V).symm).op (show Γ(M, p' ''ᵁ V) from t) := rfl
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrictCongr_inv_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] [IsOpenImmersion q] in
theorem restrictCongr_inv_apply {p' q' : A ⟶ X} [IsOpenImmersion p'] [IsOpenImmersion q'] (h :
    p' = q')
    (M : X.Modules) (V : A.Opens) (t : Γ(M.restrict q', V)) :
    (((restrictFunctorCongr h).inv.app M).app V t : Γ(M, p' ''ᵁ V)) =
      M.presheaf.map (eqToHom (image_eq_of_eq h V)).op (show Γ(M, q' ''ᵁ V) from t) := rfl
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrict_app_apply
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section ResHom
variable {X A B : Scheme.{u}} (p : A ⟶ X) (q : B ⟶ X) [IsOpenImmersion p] [IsOpenImmersion q]
omit [IsOpenImmersion p] in
theorem restrict_app_apply {M N : X.Modules} (φ : M ⟶ N) (V : B.Opens) (x : Γ(M.restrict q, V)) :
    ((restrictFunctor q).map φ).app V x = φ.app (q ''ᵁ V) x
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.N0

Pushforward of the module restricted to the first open subscheme.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
abbrev N0 (N : X.Modules) : X.Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.N1

Pushforward of the module restricted to the second open subscheme.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
abbrev N1 (N : X.Modules) : X.Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.N01

Pushforward of the module restricted to the overlap.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
abbrev N01 (N : X.Modules) : X.Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.le_a
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
theorem le_a (W : X.Opens) : (g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) ≤ f₀ ''ᵁ (f₀ ⁻¹ᵁ W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.le_b
Source context 24 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
include hg in
theorem le_b (W : X.Opens) : (g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) ≤ f₁ ''ᵁ (f₁ ⁻¹ᵁ W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.a

The restriction morphism from the first chart to the overlap.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
def a (N : X.Modules) : N0 f₀ N ⟶ N01 f₀ g₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.b

The restriction morphism from the second chart to the overlap.

Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
def b (N : X.Modules) : N1 f₁ N ⟶ N01 f₀ g₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.a_apply
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
theorem a_apply (N : X.Modules) (W : X.Opens) (s : Γ(N0 f₀ N, W)) :
    (a f₀ g₀ N).app W s = N.presheaf.map (homOfLE (le_a f₀ g₀ W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.b_apply
Source context 23 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
theorem b_apply (N : X.Modules) (W : X.Opens) (s : Γ(N1 f₁ N, W)) :
    (b f₀ f₁ g₀ g₁ hg N).app W s =
      N.presheaf.map (homOfLE (le_b f₀ f₁ g₀ g₁ hg W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.opensRange_g₀f₀
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
include hg hov in
theorem opensRange_g₀f₀ : (g₀ ≫ f₀).opensRange = f₀.opensRange ⊓ f₁.opensRange
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.eq_a
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
include g₁ hg hov in
theorem eq_a {W : X.Opens} (hW : W ≤ f₁.opensRange) : (g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) = f₀ ''ᵁ
    (f₀ ⁻¹ᵁ W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.eq_b
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
include g₁ hg hov in
theorem eq_b {W : X.Opens} (hW : W ≤ f₀.opensRange) : (g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) = f₁ ''ᵁ
    (f₁ ⁻¹ᵁ W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_a_app
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
include g₁ hg hov in
theorem bijective_a_app (N : X.Modules) {W : X.Opens} (hW : W ≤ f₁.opensRange) :
    Function.Bijective ((a f₀ g₀ N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_b_app
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
include hov in
theorem bijective_b_app (N : X.Modules) {W : X.Opens} (hW : W ≤ f₀.opensRange) :
    Function.Bijective ((b f₀ f₁ g₀ g₁ hg N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.glue_exists
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem glue_exists : ∃ (G : X.Modules) (π₀ : G ⟶ N0 f₀ N) (π₁ : G ⟶ N1 f₁ N),
    π₀ ≫ a f₀ g₀ N = π₁ ≫ b f₀ f₁ g₀ g₁ hg N ∧
      (∀ U : X.Opens, Function.Injective fun s : Γ(G, U) => (π₀.app U s, π₁.app U s)) ∧
      (∀ (U : X.Opens) (s₀ : Γ(N0 f₀ N, U)) (s₁ : Γ(N1 f₁ N, U)),
        (a f₀ g₀ N).app U s₀ = (b f₀ f₁ g₀ g₁ hg N).app U s₁ →
        ∃ s : Γ(G, U), π₀.app U s = s₀ ∧ π₁.app U s = s₁) :=
  Scheme.Modules.exists_fibreProduct_sections_bijective _ _
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.G

The fibre product module used to glue the two restricted modules.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def G : X.Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π₀

The first projection from the fibre product module.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def π₀ : G f₀ f₁ g₀ g₁ hg N ⟶ N0 f₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π₁

The second projection from the fibre product module.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def π₁ : G f₀ f₁ g₀ g₁ hg N ⟶ N1 f₁ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π_comm
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem π_comm : π₀ f₀ f₁ g₀ g₁ hg N ≫ a f₀ g₀ N = π₁ f₀ f₁ g₀ g₁ hg N ≫ b f₀ f₁ g₀ g₁ hg N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π_inj
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem π_inj (U : X.Opens) : Function.Injective fun s : Γ(G f₀ f₁ g₀ g₁ hg N, U) =>
    ((π₀ f₀ f₁ g₀ g₁ hg N).app U s, (π₁ f₀ f₁ g₀ g₁ hg N).app U s) :=
  (glue_exists f₀ f₁ g₀ g₁ hg N).choose_spec.choose_spec.choose_spec.2.1 U
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π_lift
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem π_lift (U : X.Opens) (s₀ : Γ(N0 f₀ N, U)) (s₁ : Γ(N1 f₁ N, U))
    (h : (a f₀ g₀ N).app U s₀ = (b f₀ f₁ g₀ g₁ hg N).app U s₁) :
    ∃ s : Γ(G f₀ f₁ g₀ g₁ hg N, U), (π₀ f₀ f₁ g₀ g₁ hg N).app U s = s₀ ∧ (π₁ f₀ f₁ g₀ g₁ hg
      N).app U s = s₁
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.π_comm_app
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem π_comm_app (W : X.Opens) (s : Γ(G f₀ f₁ g₀ g₁ hg N, W)) :
    (a f₀ g₀ N).app W ((π₀ f₀ f₁ g₀ g₁ hg N).app W s) =
      (b f₀ f₁ g₀ g₁ hg N).app W ((π₁ f₀ f₁ g₀ g₁ hg N).app W s)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_π₀_app
Source context 26 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
include hov in
theorem bijective_π₀_app {W : X.Opens} (hW : W ≤ f₀.opensRange) :
    Function.Bijective ((π₀ f₀ f₁ g₀ g₁ hg N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_π₁_app
Source context 26 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
include hov in
theorem bijective_π₁_app {W : X.Opens} (hW : W ≤ f₁.opensRange) :
    Function.Bijective ((π₁ f₀ f₁ g₀ g₁ hg N).app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.η₀

The unit of restriction and pushforward for the first chart.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def η₀ : N ⟶ N0 f₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.η₁

The unit of restriction and pushforward for the second chart.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def η₁ : N ⟶ N1 f₁ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.η₀_apply
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem η₀_apply (W : X.Opens) (s : Γ(N, W)) :
    (η₀ f₀ N).app W s = N.presheaf.map (homOfLE (f₀.image_preimage_le W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.η₁_apply
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem η₁_apply (W : X.Opens) (s : Γ(N, W)) :
    (η₁ f₁ N).app W s = N.presheaf.map (homOfLE (f₁.image_preimage_le W)).op s
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.η_comm
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem η_comm : η₀ f₀ N ≫ a f₀ g₀ N = η₁ f₁ N ≫ b f₀ f₁ g₀ g₁ hg N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.can

The canonical morphism to the fibre product of the two restrictions.

Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
def can : N ⟶ G f₀ f₁ g₀ g₁ hg N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.can_π₀
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem can_π₀ : can f₀ f₁ g₀ g₁ hg N ≫ π₀ f₀ f₁ g₀ g₁ hg N = η₀ f₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.can_π₁
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem can_π₁ : can f₀ f₁ g₀ g₁ hg N ≫ π₁ f₀ f₁ g₀ g₁ hg N = η₁ f₁ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.bijective_of_comp
Source context 25 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
theorem bijective_of_comp {A B C : X.Modules} (v : A ⟶ B) (p : B ⟶ C) (w : A ⟶ C) (h : v ≫ p =
    w) (W : X.Opens)
    (hp : Function.Bijective (p.app W)) (hw : Function.Bijective (w.app W)) : Function.Bijective
      (v.app W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.isIso_can
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
include hov hcov in
theorem isIso_can : IsIso (can f₀ f₁ g₀ g₁ hg N)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₀

Pushforward of the first local morphism composed with the restriction unit.

Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
def u₀ : M ⟶ N0 f₀ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₁

Pushforward of the second local morphism composed with the restriction unit.

Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
def u₁ : M ⟶ N1 f₁ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₀_apply
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem u₀_apply (W : X.Opens) (s : Γ(M, W)) :
    (u₀ f₀ N ψ₀).app W s = ψ₀.app (f₀ ⁻¹ᵁ W) (M.presheaf.map (homOfLE (f₀.image_preimage_le
      W)).op s)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₁_apply
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem u₁_apply (W : X.Opens) (s : Γ(M, W)) :
    (u₁ f₁ N ψ₁).app W s = ψ₁.app (f₁ ⁻¹ᵁ W) (M.presheaf.map (homOfLE (f₁.image_preimage_le
      W)).op s)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.g₀_image_le
Source context 28 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
omit [IsOpenImmersion f₀] in
theorem g₀_image_le (W : X.Opens) : g₀ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) ≤ f₀ ⁻¹ᵁ W
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.g₁_image_le
Source context 29 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
omit [IsOpenImmersion f₀] [IsOpenImmersion f₁] [IsOpenImmersion g₀] in
include hg in
theorem g₁_image_le (W : X.Opens) : g₁ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W) ≤ f₁ ⁻¹ᵁ W
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₀_a_apply
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem u₀_a_apply (W : X.Opens) (s : Γ(M, W))
    (k₁ : op W ⟶ op (f₀ ''ᵁ (g₀ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))))
    (k₂ : op (f₀ ''ᵁ (g₀ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))) ⟶ op ((g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))) :
    (u₀ f₀ N ψ₀ ≫ a f₀ g₀ N).app W s =
      N.presheaf.map k₂ (ψ₀.app (g₀ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W)) (M.presheaf.map k₁ s))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u₁_b_apply
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem u₁_b_apply (W : X.Opens) (s : Γ(M, W))
    (k₁ : op W ⟶ op (f₁ ''ᵁ (g₁ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))))
    (k₂ : op (f₁ ''ᵁ (g₁ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))) ⟶ op ((g₀ ≫ f₀) ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W))) :
    (u₁ f₁ N ψ₁ ≫ b f₀ f₁ g₀ g₁ hg N).app W s =
      N.presheaf.map k₂ (ψ₁.app (g₁ ''ᵁ ((g₀ ≫ f₀) ⁻¹ᵁ W)) (M.presheaf.map k₁ s))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.hψ_app
Source context 28 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
include hψ in
theorem hψ_app (V : Y₀₁.Opens) (t : Γ(M, (g₀ ≫ f₀) ''ᵁ V))
    (e₁ : op ((g₀ ≫ f₀) ''ᵁ V) ⟶ op (f₀ ''ᵁ (g₀ ''ᵁ V)))
    (e₂ : op (f₀ ''ᵁ (g₀ ''ᵁ V)) ⟶ op ((g₀ ≫ f₀) ''ᵁ V))
    (e₃ : op ((g₀ ≫ f₀) ''ᵁ V) ⟶ op (f₁ ''ᵁ (g₁ ''ᵁ V)))
    (e₄ : op (f₁ ''ᵁ (g₁ ''ᵁ V)) ⟶ op ((g₀ ≫ f₀) ''ᵁ V)) :
    N.presheaf.map e₂ (ψ₀.app (g₀ ''ᵁ V) (M.presheaf.map e₁ t)) =
      N.presheaf.map e₄ (ψ₁.app (g₁ ''ᵁ V) (M.presheaf.map e₃ t))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.u_comm
Source context 28 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
include hψ in
theorem u_comm : u₀ f₀ N ψ₀ ≫ a f₀ g₀ N = u₁ f₁ N ψ₁ ≫ b f₀ f₁ g₀ g₁ hg N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.v

The morphism to the fibre product induced by the compatible local morphisms.

Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
def v : M ⟶ G f₀ f₁ g₀ g₁ hg N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.v_π₀
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem v_π₀ : v f₀ f₁ g₀ g₁ hg N ψ₀ ψ₁ hψ ≫ π₀ f₀ f₁ g₀ g₁ hg N = u₀ f₀ N ψ₀
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.v_π₁
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem v_π₁ : v f₀ f₁ g₀ g₁ hg N ψ₀ ψ₁ hψ ≫ π₁ f₀ f₁ g₀ g₁ hg N = u₁ f₁ N ψ₁
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.φ

The glued morphism obtained by inverting the canonical fibre product comparison.

Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
def φ : M ⟶ N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.φ_can
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem φ_can : φ f₀ f₁ g₀ g₁ hg hov N hcov ψ₀ ψ₁ hψ ≫ can f₀ f₁ g₀ g₁ hg N = v f₀ f₁ g₀ g₁ hg N
    ψ₀ ψ₁ hψ
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.φ_η₀
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem φ_η₀ : φ f₀ f₁ g₀ g₁ hg hov N hcov ψ₀ ψ₁ hψ ≫ η₀ f₀ N = u₀ f₀ N ψ₀
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.φ_η₁
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem φ_η₁ : φ f₀ f₁ g₀ g₁ hg hov N hcov ψ₀ ψ₁ hψ ≫ η₁ f₁ N = u₁ f₁ N ψ₁
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrict_φ₀
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem restrict_φ₀ : (restrictFunctor f₀).map (φ f₀ f₁ g₀ g₁ hg hov N hcov ψ₀ ψ₁ hψ) = ψ₀
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion.AlgebraicGeometry.Scheme.Modules.GlueHom.restrict_φ₁
Source context 27 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
namespace AlgebraicGeometry
open _root_.AlgebraicGeometry
namespace Scheme
open _root_.AlgebraicGeometry.Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
namespace GlueHom
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry.Scheme.Modules
section Glue
variable {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀]
    [IsOpenImmersion f₁]
  (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
  (hg : g₀ ≫ f₀ = g₁ ≫ f₁)
variable (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
variable (N : X.Modules)
variable (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
variable {M : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
  (hψ : (restrictFunctorComp g₀ f₀).hom.app M ≫ (restrictFunctor g₀).map ψ₀ ≫
    (restrictFunctorComp g₀ f₀).inv.app N =
    (restrictFunctorCongr hg).hom.app M ≫ (restrictFunctorComp g₁ f₁).hom.app M ≫
      (restrictFunctor g₁).map ψ₁ ≫
      (restrictFunctorComp g₁ f₁).inv.app N ≫ (restrictFunctorCongr hg).inv.app N)
theorem restrict_φ₁ : (restrictFunctor f₁).map (φ f₀ f₁ g₀ g₁ hg hov N hcov ψ₀ ψ₁ hψ) = ψ₁
AlgebraicGeometry.Scheme.Modules.exists_hom_restrict_eq_of_isOpenImmersion
Source context 11 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs
namespace Scheme_Modules_exists_hom_restrict_eq_of_isOpenImmersion
universe u v
noncomputable section
open _root_.CategoryTheory
open _root_.CategoryTheory.Limits
open _root_.AlgebraicGeometry
open _root_.Opposite
open _root_.TopologicalSpace
open AlgebraicGeometry.Scheme.Modules.GlueHom in
theorem _root_.AlgebraicGeometry.Scheme.Modules.exists_hom_restrict_eq_of_isOpenImmersion
    {X Y₀ Y₁ Y₀₁ : Scheme.{u}} (f₀ : Y₀ ⟶ X) (f₁ : Y₁ ⟶ X) [IsOpenImmersion f₀] [IsOpenImmersion f₁]
    (g₀ : Y₀₁ ⟶ Y₀) (g₁ : Y₀₁ ⟶ Y₁) [IsOpenImmersion g₀] [IsOpenImmersion g₁]
    (hg : g₀ ≫ f₀ = g₁ ≫ f₁) (hcov : f₀.opensRange ⊔ f₁.opensRange = ⊤)
    (hov : f₀.opensRange ⊓ f₁.opensRange ≤ (g₀ ≫ f₀).opensRange)
    {M N : X.Modules} (ψ₀ : M.restrict f₀ ⟶ N.restrict f₀) (ψ₁ : M.restrict f₁ ⟶ N.restrict f₁)
    (hψ : (Scheme.Modules.restrictFunctorComp g₀ f₀).hom.app M ≫ (Scheme.Modules.restrictFunctor
      g₀).map ψ₀ ≫
            (Scheme.Modules.restrictFunctorComp g₀ f₀).inv.app N =
          (Scheme.Modules.restrictFunctorCongr hg).hom.app M ≫
            (Scheme.Modules.restrictFunctorComp g₁ f₁).hom.app M ≫
              (Scheme.Modules.restrictFunctor g₁).map ψ₁ ≫
            (Scheme.Modules.restrictFunctorComp g₁ f₁).inv.app N ≫
              (Scheme.Modules.restrictFunctorCongr hg).inv.app N) :
    ∃ φ : M ⟶ N, (Scheme.Modules.restrictFunctor f₀).map φ = ψ₀ ∧
      (Scheme.Modules.restrictFunctor f₁).map φ = ψ₁