Module

RadicialDescentIso.lean

Nyll.SchemeTheory.FiniteEtale.RadicialDescentIso
13 declarations indexed from sourceView source ↗

Canonical comparison for finite étale covers along a radicial morphism

The diagonal of a separated universally injective morphism is a surjective closed immersion. Its fully faithful pullback therefore lifts the canonical comparison between the two iterated pullbacks to a unique natural isomorphism. The comparison is normalized by the common pullback along the identity.

Imports5
Imported by2

Declarations

AlgebraicGeometry.FiniteEtale.finiteEtaleProperty

The morphism property of being both finite and etale.

Source context 4 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
abbrev finiteEtaleProperty : MorphismProperty Scheme.{u}
AlgebraicGeometry.FiniteEtale.finiteEtalePropertyStableUnderBaseChange
Source context 4 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u})
AlgebraicGeometry.FiniteEtale.radicialDiagonalFstIso

Pullback along the first projection followed by the diagonal is canonically pullback along the identity.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
def radicialDiagonalFstIso (f : X ⟶ Y) :
    MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (𝟙 X) ≅
      MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.fst f f) ⋙
        MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)
AlgebraicGeometry.FiniteEtale.radicialDiagonalSndIso

Pullback along the second projection followed by the diagonal is canonically pullback along the identity.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
def radicialDiagonalSndIso (f : X ⟶ Y) :
    MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (𝟙 X) ≅
      MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.snd f f) ⋙
        MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)
AlgebraicGeometry.FiniteEtale.radicialDescentIso

The two pullbacks of a finite étale cover along a separated universally injective morphism are canonically isomorphic, naturally in the cover.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
def radicialDescentIso (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] :
    MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.fst f f) ≅
      MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.snd f f)
AlgebraicGeometry.FiniteEtale.radicialDescentIso_map_hom_app

Pulling the canonical comparison back to the diagonal gives precisely the comparison through the common identity pullback.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem radicialDescentIso_map_hom_app
    (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] (V : finiteEtaleProperty.Over ⊤ X) :
    (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)).map
        ((radicialDescentIso f).hom.app V) =
      (radicialDiagonalFstIso f).inv.app V ≫ (radicialDiagonalSndIso f).hom.app V
AlgebraicGeometry.FiniteEtale.radicialDescentIso_mapIso

The isomorphism form of the diagonal comparison formula.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem radicialDescentIso_mapIso
    (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] (V : finiteEtaleProperty.Over ⊤ X) :
    (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)).mapIso
        ((radicialDescentIso f).app V) =
      ((radicialDiagonalFstIso f).app V).symm ≪≫ (radicialDiagonalSndIso f).app V
AlgebraicGeometry.FiniteEtale.radicialDescentIso_diagonal

With the canonical identifications on both sides, the diagonal restriction of the comparison is the identity.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem radicialDescentIso_diagonal
    (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] (V : finiteEtaleProperty.Over ⊤ X) :
    (radicialDiagonalFstIso f).hom.app V ≫
        (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)).map
          ((radicialDescentIso f).hom.app V) ≫
        (radicialDiagonalSndIso f).inv.app V =
      𝟙 ((MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (𝟙 X)).obj V)
AlgebraicGeometry.FiniteEtale.radicialDescentIso_hom_app_unique

Diagonal normalization characterizes the comparison on every finite étale cover; no choice of a preimage changes it.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem radicialDescentIso_hom_app_unique
    (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] (V : finiteEtaleProperty.Over ⊤ X)
    (a : (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.fst f f)).obj V ⟶
      (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.snd f f)).obj V)
    (ha : (radicialDiagonalFstIso f).hom.app V ≫
        (MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (Limits.pullback.diagonal f)).map a ≫
        (radicialDiagonalSndIso f).inv.app V =
      𝟙 ((MorphismProperty.Over.pullback finiteEtaleProperty ⊤ (𝟙 X)).obj V)) :
    a = (radicialDescentIso f).hom.app V
AlgebraicGeometry.FiniteEtale.radicialDiagonalFstSection

The diagonal section of the first pullback.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
def radicialDiagonalFstSection (f : X ⟶ Y) (V : finiteEtaleProperty.Over ⊤ X) :
    V.left ⟶ Limits.pullback V.hom (Limits.pullback.fst f f)
AlgebraicGeometry.FiniteEtale.radicialDiagonalSndSection

The diagonal section of the second pullback.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
def radicialDiagonalSndSection (f : X ⟶ Y) (V : finiteEtaleProperty.Over ⊤ X) :
    V.left ⟶ Limits.pullback V.hom (Limits.pullback.snd f f)
AlgebraicGeometry.FiniteEtale.pullbackComp_identitySection
Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem pullbackComp_identitySection
    {A B : Scheme.{u}} (j : A ⟶ B) (q : B ⟶ A) (hj : j ≫ q = 𝟙 A)
    (V : finiteEtaleProperty.Over ⊤ A) :
    Limits.pullback.lift (𝟙 V.left) V.hom (by simp) ≫
        ((MorphismProperty.Over.pullbackComp
          (P := finiteEtaleProperty) (Q := ⊤) j q (𝟙 A) hj.symm).hom.app V).left ≫
        Limits.pullback.fst (Limits.pullback.snd V.hom q) j =
      Limits.pullback.lift (𝟙 V.left) (V.hom ≫ j)
        (by simp [Category.assoc, hj]) := by
  change Limits.pullback.lift (𝟙 V.left) V.hom _ ≫
      ((Limits.pullback.congrHom (f₁ := V.hom) rfl hj.symm).hom ≫
        (pullbackLeftPullbackSndIso V.hom q j).inv) ≫
          Limits.pullback.fst (Limits.pullback.snd V.hom q) j = _
  apply Limits.pullback.hom_ext
  · simp only [Category.assoc, pullbackLeftPullbackSndIso_inv_fst,
      Limits.pullback.congrHom_hom,
      Category.comp_id, Limits.pullback.lift_fst]
  · simp only [Category.assoc, pullbackLeftPullbackSndIso_inv_fst_snd,
      Limits.pullback.congrHom_hom,
      Category.id_comp, Limits.pullback.lift_snd_assoc, Limits.pullback.lift_snd]
AlgebraicGeometry.FiniteEtale.radicialDescentIso_diagonal_section

On the actual diagonal sections, the canonical comparison is the identity on the original finite étale cover.

Source context 6 commands

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

@[expose] public noncomputable section
open CategoryTheory Limits
universe u
namespace AlgebraicGeometry.FiniteEtale

/- The intersection is used throughout the comparison. Giving it a name avoids
relying on notation expansion inside qualified names such as `P.Over`. -/
local instance finiteEtalePropertyStableUnderBaseChange :
    MorphismProperty.IsStableUnderBaseChange (finiteEtaleProperty : MorphismProperty Scheme.{u}) :=
  MorphismProperty.IsStableUnderBaseChange.inf
variable {X Y : Scheme.{u}}
theorem radicialDescentIso_diagonal_section
    (f : X ⟶ Y) [IsSeparated f] [UniversallyInjective f] (V : finiteEtaleProperty.Over ⊤ X) :
    radicialDiagonalFstSection f V ≫ ((radicialDescentIso f).hom.app V).left =
      radicialDiagonalSndSection f V