Module

TensorFrames.lean

Nyll.SchemeTheory.Modules.TensorFrames
30 declarations indexed from sourceView source ↗

Tensor products of local frames

The presheaf tensor comparison carries tensor products of generators to frames.

Declarations

AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.frameTensorPresheafModule
Source context 17 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.bijective_smul_tmul
Source context 18 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
lemma bijective_smul_tmul {R : Type*} [CommRing R] {A B : Type*} [AddCommGroup A] [AddCommGroup B]
    [Module R A] [Module R B] (a : A) (b : B)
    (ha : Function.Bijective fun r : R => r • a) (hb : Function.Bijective fun r : R => r • b) :
    Function.Bijective fun r : R => r • (a ⊗ₜ[R] b) := by
  let eA : R ≃ₗ[R] A := LinearEquiv.ofBijective (LinearMap.toSpanSingleton R A a) ha
  let eB : R ≃ₗ[R] B := LinearEquiv.ofBijective (LinearMap.toSpanSingleton R B b) hb
  let e : R ≃ₗ[R] A ⊗[R] B := (TensorProduct.lid R R).symm ≪≫ₗ TensorProduct.congr eA eB
  have he : (fun r : R => r • (a ⊗ₜ[R] b)) = e := by
    funext r
    change r • (a ⊗ₜ[R] b) = TensorProduct.congr eA eB ((TensorProduct.lid R R).symm r)
    rw [TensorProduct.lid_symm_apply, TensorProduct.congr_tmul]
    change r • (a ⊗ₜ[R] b) = ((1 : R) • a) ⊗ₜ[R] (r • b)
    rw [one_smul, TensorProduct.tmul_smul]
  rw [he]
  exact e.bijective
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.tsApp

Applies the canonical tensor comparison to a local presheaf tensor.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
def tsApp (W : X.Opens) (z : (L.val ⊗ M.val).obj (op W)) : Γ(L ⊗ M, W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.tensorSections_eq_tsApp
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
lemma tensorSections_eq_tsApp {W : X.Opens} (s : Γ(L, W)) (t : Γ(M, W)) :
    Modules.tensorSections s t = tsApp L M W ((s : L.val.obj (op W)) ⊗ₜ[Γ(X, W)] (t : M.val.obj (op
      W)))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.tsApp_smul
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
lemma tsApp_smul {W : X.Opens} (g : Γ(X, W)) (z : (L.val ⊗ M.val).obj (op W)) :
    tsApp L M W (g • z) = g • tsApp L M W z
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.tsApp_add
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
lemma tsApp_add {W : X.Opens} (z z' : (L.val ⊗ M.val).obj (op W)) :
    tsApp L M W (z + z') = tsApp L M W z + tsApp L M W z'
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.map_tsApp
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
lemma map_tsApp {W W' : X.Opens} (i : W' ⟶ W) (z : (L.val ⊗ M.val).obj (op W)) :
    (L ⊗ M).presheaf.map i.op (tsApp L M W z) = tsApp L M W' ((L.val ⊗ M.val).map i.op z)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.map_smul_tmul
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
lemma map_smul_tmul {W W' : X.Opens} (i : W' ⟶ W) (g : Γ(X, W)) (s : Γ(L, W)) (t : Γ(M, W)) :
    (L.val ⊗ M.val).map i.op (g • ((s : L.val.obj (op W)) ⊗ₜ[Γ(X, W)] (t : M.val.obj (op W)))) =
      X.presheaf.map i.op g • ((L.presheaf.map i.op s : L.val.obj (op W')) ⊗ₜ[Γ(X, W')]
        (M.presheaf.map i.op t : M.val.obj (op W')))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.W_tensorSectionsHom
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
variable (L M) in
lemma W_tensorSectionsHom :
    (Opens.grothendieckTopology X).W ((PresheafOfModules.toPresheaf _).map (tensorSectionsHom L
        M))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.isLocallySurjective_tensorSectionsHom
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
variable (L M) in
instance isLocallySurjective_tensorSectionsHom : Presheaf.IsLocallySurjective
  (Opens.grothendieckTopology X)
    ((PresheafOfModules.toPresheaf _).map (tensorSectionsHom L M))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.isLocallyInjective_tensorSectionsHom
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
variable (L M) in
instance isLocallyInjective_tensorSectionsHom : Presheaf.IsLocallyInjective
  (Opens.grothendieckTopology X)
    ((PresheafOfModules.toPresheaf _).map (tensorSectionsHom L M))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.exists_local_preimage
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
variable (L M) in
lemma exists_local_preimage {W : X.Opens} (y : Γ(L ⊗ M, W)) {x : X} (hx : x ∈ W) :
    ∃ (W' : X.Opens) (i : W' ⟶ W), x ∈ W' ∧ ∃ z : (L.val ⊗ M.val).obj (op W'),
      tsApp L M W' z = (L ⊗ M).presheaf.map i.op y
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.exists_local_eq
Source context 22 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section locbij
variable (L M : X.Modules)
variable {L M}
variable (L M) in
lemma exists_local_eq {W : X.Opens} (z₁ z₂ : (L.val ⊗ M.val).obj (op W))
    (h : tsApp L M W z₁ = tsApp L M W z₂) {x : X} (hx : x ∈ W) :
    ∃ (W' : X.Opens) (i : W' ⟶ W), x ∈ W' ∧ (L.val ⊗ M.val).map i.op z₁ = (L.val ⊗ M.val).map i.op
      z₂
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.restrictRingCatSheafHom

The identity ring-sheaf map used to restrict to an open subset.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section restrict
variable (W : X.Opens)
def restrictRingCatSheafHom : (W : Scheme.{u}).ringCatSheaf ⟶
    (W.ι.opensFunctor.sheafPushforwardContinuous RingCat.{u}
      (Opens.grothendieckTopology (W : Scheme.{u})) (Opens.grothendieckTopology X)).obj
        X.ringCatSheaf
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.restrictFunctor'

Restricts a module sheaf to an open subset by pushforward along the open inclusion.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section restrict
variable (W : X.Opens)
def restrictFunctor' : X.Modules ⥤ (W : Scheme.{u}).Modules
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.image_le
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section restrict
variable (W : X.Opens)
lemma image_le (W' : (W : Scheme.{u}).Opens) : W.ι ''ᵁ W' ≤ W
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.image_preimage_of_le
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section restrict
variable (W : X.Opens)
variable {W} in
lemma image_preimage_of_le {W₂ : X.Opens} (h : W₂ ≤ W) : W.ι ''ᵁ (W.ι ⁻¹ᵁ W₂) = W₂
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.secX

Views a function on an open subscheme as a function on its image.

Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section restrict
variable (W : X.Opens)
variable {W} in
abbrev secX (W' : (W : Scheme.{u}).Opens) (a : Γ(W, W')) : Γ(X, W.ι ''ᵁ W')
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.smulSectionHom

The map from the unit module sending functions to multiples of a section.

Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section smulHom
variable (N : X.Modules) (W : X.Opens) (τ : Γ(N, W))
def smulSectionHom : SheafOfModules.unit ((W : X.Opens) : Scheme.{u}).ringCatSheaf ⟶
    (restrictFunctor' W).obj N
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.smulSectionHom_app_apply
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section smulHom
variable (N : X.Modules) (W : X.Opens) (τ : Γ(N, W))
lemma smulSectionHom_app_apply (W' : (((W : X.Opens) : Scheme.{u}).Opens)ᵒᵖ) (a : Γ(W, W'.unop)) :
    (smulSectionHom N W τ).val.app W' a =
      secX W W'.unop a • N.presheaf.map (homOfLE (image_le W W'.unop)).op τ
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.bijective_smul_map_iff_of_eq
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section smulHom
variable (N : X.Modules) (W : X.Opens) (τ : Γ(N, W))
variable {N W τ}
lemma bijective_smul_map_iff_of_eq {A B : X.Opens} (q : A = B) (τ : Γ(N, B)) :
    (Function.Bijective fun a : Γ(X, A) => a • N.presheaf.map (homOfLE q.le).op τ) ↔
      Function.Bijective fun g : Γ(X, B) => g • τ := by
  subst q
  have e : N.presheaf.map (homOfLE (le_refl A)).op τ = τ := by
    rw [show (homOfLE (le_refl A) : A ⟶ A) = 𝟙 A from rfl, op_id, N.presheaf.map_id]
    rfl
  simp only [e]
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.bijective_smul_of_isIso
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section smulHom
variable (N : X.Modules) (W : X.Opens) (τ : Γ(N, W))
variable {N W τ}
lemma bijective_smul_of_isIso (h : IsIso (smulSectionHom N W τ)) :
    Function.Bijective fun g : Γ(X, W) => g • τ := by
  let e := asIso (smulSectionHom N W τ)
  have hb : Function.Bijective (e.hom.val.app (op ⊤)).hom := by
    refine Function.bijective_iff_has_inverse.2 ⟨(e.inv.val.app (op ⊤)).hom, fun a => ?_, fun m =>
      ?_⟩
    · exact congr($(e.hom_inv_id).val.app (op ⊤) |>.hom a)
    · exact congr($(e.inv_hom_id).val.app (op ⊤) |>.hom m)
  have hb' : Function.Bijective fun a : Γ(X, W.ι ''ᵁ ⊤) =>
      a • N.presheaf.map (homOfLE (Scheme.Opens.ι_image_top W).le).op τ := hb
  exact (bijective_smul_map_iff_of_eq (Scheme.Opens.ι_image_top W) τ).1 hb'
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.bijective_smul_tmul_res
Source context 20 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
lemma bijective_smul_tmul_res (hs : IsFrameOn s V) (ht : IsFrameOn t V) {W : X.Opens}
    (hWU : W ≤ U) (hWV : W ≤ V) :
    Function.Bijective fun g : Γ(X, W) =>
      g • ((L.presheaf.map (homOfLE hWU).op s : L.val.obj (op W)) ⊗ₜ[Γ(X, W)]
        (M.presheaf.map (homOfLE hWU).op t : M.val.obj (op W))) :=
  bijective_smul_tmul (R := Γ(X, W)) _ _ (hs hWU hWV) (ht hWU hWV)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.resL

Restricts the first frame to a smaller open subset.

Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
variable (W : X.Opens) (hWU : W ≤ U)
abbrev resL (W' : X.Opens) (h : W' ≤ W) : Γ(L, W')
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.resM

Restricts the second frame to a smaller open subset.

Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
variable (W : X.Opens) (hWU : W ≤ U)
abbrev resM (W' : X.Opens) (h : W' ≤ W) : Γ(M, W')
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.τW

The tensor product section restricted to an open subset.

Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
variable (W : X.Opens) (hWU : W ≤ U)
abbrev τW : Γ(L ⊗ M, W)
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.map_τW
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
variable (W : X.Opens) (hWU : W ≤ U)
lemma map_τW (W' : X.Opens) (h : W' ≤ W) :
    (L ⊗ M).presheaf.map (homOfLE h).op (τW (s := s) (t := t) W hWU) =
      tsApp L M W' ((resL (s := s) W hWU W' h : L.val.obj (op W')) ⊗ₜ[Γ(X, W')]
        (resM (t := t) W hWU W' h : M.val.obj (op W')))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.isIso_smulSectionHom
Source context 21 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
section main
variable {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
variable (W : X.Opens) (hWU : W ≤ U)
theorem isIso_smulSectionHom (hs : IsFrameOn s V) (ht : IsFrameOn t V) (hWV : W ≤ V) :
    IsIso (smulSectionHom (L ⊗ M) W (τW (s := s) (t := t) W hWU))
AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2.AlgebraicGeometry.Scheme.Modules.FrameTensor.isFrameOn_tensorSections
Source context 18 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
noncomputable section
namespace AlgebraicGeometry
namespace Scheme
namespace Modules
open _root_.AlgebraicGeometry.Scheme.Modules
open _root_.AlgebraicGeometry.Scheme
open _root_.AlgebraicGeometry
namespace FrameTensor
variable {X : Scheme.{u}}
private local instance frameTensorPresheafModule (P : X.PresheafOfModules) (W : X.Opens) :
    Module Γ(X, W) (P.obj (op W)) := (P.obj (op W)).isModule
theorem isFrameOn_tensorSections {L M : X.Modules} {U V : X.Opens} {s : Γ(L, U)} {t : Γ(M, U)}
    (hs : IsFrameOn s V) (ht : IsFrameOn t V) : IsFrameOn (Modules.tensorSections s t) V
AlgebraicGeometry.Scheme.Modules.IsFrameOn.tensorSections_monoidalV2
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Geometry.Sheaves.Proofs.Scheme_Modules_IsFrameOn_tensorSections_monoidalV2
universe u
open _root_.CategoryTheory
open _root_.CategoryTheory.MonoidalCategory
open _root_.Opposite
open _root_.TensorProduct
open _root_.TopologicalSpace
open _root_.AlgebraicGeometry _root_.AlgebraicGeometry.Scheme.Modules in
theorem _root_.AlgebraicGeometry.Scheme.Modules.IsFrameOn.tensorSections_monoidalV2 {X :
  AlgebraicGeometry.Scheme.{u}} {L M : X.Modules} {U V : X.Opens}
    {s : Γ(L, U)} {t : Γ(M, U)}
    (hs : AlgebraicGeometry.Scheme.Modules.IsFrameOn s V)
    (ht : AlgebraicGeometry.Scheme.Modules.IsFrameOn t V) :
    AlgebraicGeometry.Scheme.Modules.IsFrameOn (AlgebraicGeometry.Scheme.Modules.tensorSections s
      t) V