Module

ClopenFull.lean

Nyll.SchemeTheory.FiniteEtale.ClopenFull
8 declarations indexed from sourceView source ↗

Clopen descent from fullness of finite étale pullback

A clopen subset is represented by its characteristic section of the trivial cover with two sheets. Fullness descends that section, without any hypothesis that arbitrary finite étale covers descend. Lifting inclusions of clopen subschemes proves uniqueness. For quasi-compact quasi-separated schemes, this gives a homeomorphism on connected components.

This proves, in particular, the connected-component consequence of full faithfulness discussed in Stacks Project, Section 58.19, Tag 0BLE.

Imports14
Imported by1

Declarations

AlgebraicGeometry.FiniteEtale.section_descent_of_pullback_full
Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem section_descent_of_pullback_full
    {X Y : Scheme.{u}} (f : X ⟶ Y) [(FiniteEtale.pullback f).Full]
    (W : FiniteEtale Y) (a : X ⟶ W.left) (ha : a ≫ W.hom = f) :
    ∃ s : Y ⟶ W.left, s ≫ W.hom = 𝟙 Y ∧ f ≫ s = a
AlgebraicGeometry.FiniteEtale.exists_characteristic_morphism
Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem exists_characteristic_morphism
    {X Y : Scheme.{u}} (f : X ⟶ Y) (U : Clopens X) :
    ∃ a : X ⟶ Y ⨿ Y,
      a ≫ coprod.desc (𝟙 Y) (𝟙 Y) = f ∧
        a ⁻¹' Set.range (coprod.inl : Y ⟶ Y ⨿ Y) = (U : Set X)
AlgebraicGeometry.FiniteEtale.isFiniteEtale_double
Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem isFiniteEtale_double (Y : Scheme.{u}) :
    IsFiniteEtale (coprod.desc (𝟙 Y) (𝟙 Y))
AlgebraicGeometry.FiniteEtale.isClopen_range_inl
Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem isClopen_range_inl (Y : Scheme.{u}) :
    IsClopen (Set.range (coprod.inl : Y ⟶ Y ⨿ Y))
AlgebraicGeometry.FiniteEtale.existsUnique_clopen_preimage_of_pullback_full

Fullness alone descends every clopen subset uniquely. The cover used to construct the descent is the trivial two-sheeted cover.

Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem existsUnique_clopen_preimage_of_pullback_full
    {X Y : Scheme.{u}} (f : X ⟶ Y) [(FiniteEtale.pullback f).Full]
    (U : Clopens X) :
    ∃! V : Clopens Y, f ⁻¹' (V : Set Y) = (U : Set X)
AlgebraicGeometry.FiniteEtale.bijective_clopen_preimage_of_pullback_full

Fullness of finite étale pullback gives a bijection on clopen subsets.

Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem bijective_clopen_preimage_of_pullback_full
    {X Y : Scheme.{u}} (f : X ⟶ Y) [(FiniteEtale.pullback f).Full] :
    Function.Bijective (fun U : Clopens Y =>
      (⟨f ⁻¹' (U : Set Y), U.isClopen.preimage f.continuous⟩ : Clopens X)) := by
  constructor
  · intro U V h
    have hpre : f ⁻¹' (U : Set Y) = f ⁻¹' (V : Set Y) :=
      congrArg (fun C : Clopens X => (C : Set X)) h
    apply Clopens.ext
    exact Set.Subset.antisymm
      (clopen_subset_of_preimage_subset f U V hpre.subset)
      (clopen_subset_of_preimage_subset f V U hpre.symm.subset)
  · intro U
    obtain ⟨V, hV, _⟩ := existsUnique_clopen_preimage_of_pullback_full f U
    exact ⟨V, Clopens.ext hV⟩
AlgebraicGeometry.FiniteEtale.connectedSpace_iff_of_pullback_full

Fullness of finite étale pullback preserves and reflects connectedness.

Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem connectedSpace_iff_of_pullback_full
    {X Y : Scheme.{u}} (f : X ⟶ Y) [(FiniteEtale.pullback f).Full] :
    ConnectedSpace X ↔ ConnectedSpace Y
AlgebraicGeometry.FiniteEtale.connectedComponentsMap_isHomeomorph_of_pullback_full

For qcqs schemes, fullness of finite étale pullback identifies their actual spaces of connected components. Essential surjectivity is unnecessary.

Source context 4 commands

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

noncomputable section
open CategoryTheory CategoryTheory.Limits TopologicalSpace
universe u
namespace AlgebraicGeometry.FiniteEtale
theorem connectedComponentsMap_isHomeomorph_of_pullback_full
    {X Y : Scheme.{u}} [CompactSpace X] [QuasiSeparatedSpace X]
    [CompactSpace Y] [QuasiSeparatedSpace Y]
    (f : X ⟶ Y) [(FiniteEtale.pullback f).Full] :
    IsHomeomorph f.continuous.connectedComponentsMap