Module

RepresentableMatching.lean

Nyll.AlgebraicCurves.Geometry.Descent.RepresentableMatching
9 declarations indexed from sourceView source ↗

Points of an effective descent as matching local points

This identifies points of a descended scheme with the compatible elements of the presheaf represented after base change. The presheaf is not assumed to be a sheaf.

Declarations

AlgebraicGeometry.DescentAction.Matching

The descent compatibility condition for a local presheaf element.

Source context 5 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
def Matching (T : Over S)
    (z : G.obj (op ((Over.map s).obj ((Over.pullback s).obj T)))) : Prop
AlgebraicGeometry.DescentAction.localPoint

The local presheaf element attached to a point of the descended scheme.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
def localPoint {T : Over S} (m : T ⟶ Over.mk f) :
    G.obj (op ((Over.map s).obj ((Over.pullback s).obj T)))
AlgebraicGeometry.DescentAction.localPoint_eq_map_univBC
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
theorem localPoint_eq_map_univBC {T : Over S} (m : T ⟶ Over.mk f) :
    localPoint s G x' hX' f e he m =
      G.map ((Over.map s).map ((Over.pullback s).map m)).op
        (univBC s G x' hX' f e he)
AlgebraicGeometry.DescentAction.localPoint_injective
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
theorem localPoint_injective {T : Over S} [Epi (pullback.fst T.hom s)] :
    Function.Injective (localPoint s G x' hX' f e he (T := T))
AlgebraicGeometry.DescentAction.localPoint_matching
Source context 8 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
variable (hcompat : eRel s x' f e he ≫ repAct s G x' hX' =
  (canonical s f).act ≫ e.hom)
include hcompat in
theorem localPoint_matching {T : Over S} (m : T ⟶ Over.mk f) :
    Matching s G T (localPoint s G x' hX' f e he m)
AlgebraicGeometry.DescentAction.matching_flip
Source context 7 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
variable (hcompat : eRel s x' f e he ≫ repAct s G x' hX' =
  (canonical s f).act ≫ e.hom)
theorem matching_flip {T : Over S}
    (z : G.obj (op ((Over.map s).obj ((Over.pullback s).obj T))))
    (hz : Matching s G T z) :
    flipMap s T.hom ≫ leftHom s x' (hX'.homEquiv.symm z) =
      nRel s x' (hX'.homEquiv.symm z) ≫ repAct s G x' hX'
AlgebraicGeometry.DescentAction.matching_desc_condition
Source context 7 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
variable (hcompat : eRel s x' f e he ≫ repAct s G x' hX' =
  (canonical s f).act ≫ e.hom)
theorem matching_desc_condition
    (hcompat : eRel s x' f e he ≫ repAct s G x' hX' = (canonical s f).act ≫ e.hom)
    {T : Over S}
    (z : G.obj (op ((Over.map s).obj ((Over.pullback s).obj T))))
    (hz : Matching s G T z) {W : Scheme.{u}} (g₁ g₂ : W ⟶ pullback T.hom s)
    (hg : g₁ ≫ pullback.fst T.hom s = g₂ ≫ pullback.fst T.hom s) :
    g₁ ≫ (leftHom s x' (hX'.homEquiv.symm z) ≫ e.inv ≫ pullback.fst f s) =
      g₂ ≫ (leftHom s x' (hX'.homEquiv.symm z) ≫ e.inv ≫ pullback.fst f s)
AlgebraicGeometry.DescentAction.exists_localPoint_of_matching
Source context 7 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
variable (hcompat : eRel s x' f e he ≫ repAct s G x' hX' =
  (canonical s f).act ≫ e.hom)
theorem exists_localPoint_of_matching
    (hcompat : eRel s x' f e he ≫ repAct s G x' hX' = (canonical s f).act ≫
  e.hom)
    {T : Over S} [EffectiveEpi (pullback.fst T.hom s)]
    (z : G.obj (op ((Over.map s).obj ((Over.pullback s).obj T))))
    (hmatch : Matching s G T z) :
    ∃ m : T ⟶ Over.mk f, localPoint s G x' hX' f e he m = z
AlgebraicGeometry.DescentAction.matchingEquiv

Effective descent identifies scheme points with matching local presheaf elements.

Source context 7 commands

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

universe u
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry Opposite
noncomputable section
namespace AlgebraicGeometry.DescentAction
variable {S S' : Scheme.{u}} (s : S' ⟶ S)
  (G : (Over S)ᵒᵖ ⥤ Type (u + 1))
variable {X' : Scheme.{u}} (x' : X' ⟶ S')
  (hX' : ((Over.map s).op ⋙ G).RepresentableBy (Over.mk x'))
  {X : Scheme.{u}} (f : X ⟶ S) (e : pullback f s ≅ X')
  (he : e.hom ≫ x' = pullback.snd f s)
variable (hcompat : eRel s x' f e he ≫ repAct s G x' hX' =
  (canonical s f).act ≫ e.hom)
def matchingEquiv {T : Over S} [EffectiveEpi (pullback.fst T.hom s)] :
    (T ⟶ Over.mk f) ≃
      {z : G.obj (op ((Over.map s).obj ((Over.pullback s).obj T))) // Matching s G T z}