Module

Restriction.lean

Nyll.EtaleCohomology.Constructible.Restriction
5 declarations indexed from sourceView source ↗

Restriction of constructible étale sheaves

Finite adapted stratifications transport along scheme isomorphisms. This identifies affine-local constructibility with finite stratifiability on an affine scheme and proves restriction to an arbitrary open subscheme preserves constructibility. No noetherianity or quasi-compactness of the open immersion is required.

Imports13
Imported by3

Declarations

EtaleCohomology.ConstructibleStratification.mapIso

Transport a finite stratification along an actual scheme isomorphism.

Source context 5 commands

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

noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}
def ConstructibleStratification.mapIso (S : ConstructibleStratification X) (e : X ≅ Y) :
    ConstructibleStratification Y where
  I := S.I
  finite := S.finite
  stratum := S.stratum
  map i := S.map i ≫ e.hom
  isImmersion i := by
    have : IsImmersion (S.map i) := S.isImmersion i
    infer_instance
  constructible_range i := by
    change Topology.IsConstructible (Set.range (e.hom ∘ S.map i))
    rw [Set.range_comp]
    apply (S.constructible_range i).image_of_isOpenEmbedding e.hom.isOpenEmbedding
    rw [Set.range_eq_univ.mpr e.hom.surjective]
    exact IsRetrocompact.univ
  disjoint := by
    intro i j hij
    apply Set.disjoint_left.mpr
    rintro y ⟨x, hx⟩ ⟨z, hz⟩
    have hxz : S.map i x = S.map j z :=
      e.hom.isOpenEmbedding.injective (hx.trans hz.symm)
    exact (S.disjoint hij).notMem_of_mem_left ⟨x, rfl⟩ ⟨z, hxz.symm⟩
  cover y := by
    obtain ⟨i, x, hx⟩ := S.cover (e.inv y)
    refine ⟨i, x, ?_⟩
    change e.hom (S.map i x) = y
    rw [hx]
    exact congrArg (fun f : Y ⟶ Y => f y) e.inv_hom_id
EtaleCohomology.HasFiniteConstructibleStratification.of_pullbackIso

Transport an adapted stratification back from the inverse image by an isomorphism.

Source context 6 commands

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

noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}
variable {R : Type u} [CommRing R]
lemma HasFiniteConstructibleStratification.of_pullbackIso
    (e : X ≅ Y) {G : Sheaf Y.smallEtaleTopology (ModuleCat.{u} R)}
    (hG : HasFiniteConstructibleStratification R ((etalePullback e.hom R).obj G)) :
    HasFiniteConstructibleStratification R G
EtaleCohomology.HasFiniteConstructibleStratification.pullbackIso

Finite stratifiability is preserved by inverse image along an isomorphism.

Source context 6 commands

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

noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}
variable {R : Type u} [CommRing R]
lemma HasFiniteConstructibleStratification.pullbackIso
    (e : X ≅ Y) {G : Sheaf Y.smallEtaleTopology (ModuleCat.{u} R)}
    (hG : HasFiniteConstructibleStratification R G) :
    HasFiniteConstructibleStratification R ((etalePullback e.hom R).obj G)
EtaleCohomology.isEtaleConstructible_iff_hasFiniteConstructibleStratification

On an affine scheme, the affine-local definition is equivalent to one finite adapted stratification of the whole scheme.

Source context 6 commands

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

noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}
variable {R : Type u} [CommRing R]
theorem isEtaleConstructible_iff_hasFiniteConstructibleStratification [IsAffine X]
    (G : Sheaf X.smallEtaleTopology (ModuleCat.{u} R)) :
    IsEtaleConstructible R G ↔ HasFiniteConstructibleStratification R G
EtaleCohomology.IsEtaleConstructible.restrict

Restriction to any open subscheme preserves affine-local constructibility.

Source context 6 commands

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

noncomputable section
universe u
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X Y : Scheme.{u}}
variable {R : Type u} [CommRing R]
lemma IsEtaleConstructible.restrict
    {G : Sheaf X.smallEtaleTopology (ModuleCat.{u} R)}
    (hG : IsEtaleConstructible R G) (U : X.Opens) :
    IsEtaleConstructible R ((etalePullback U.ι R).obj G)