Module

GeometricStratification.lean

Nyll.EtaleCohomology.Constructible.GeometricStratification
9 declarations indexed from sourceView source ↗

Scheme strata realizing constructible partitions

A locally closed subset is closed in its open coborder. Its vanishing ideal therefore gives an actual closed subscheme of that open subscheme, and the composite immersion into the original scheme has precisely the given image.

This construction realizes a finite locally closed constructible partition as a ConstructibleStratification. Consequently every finite family of constructible subsets admits such an actual scheme stratification subordinate to it. No noetherianity or quasi-compactness assumption is required.

Imports13
Imported by2

Declarations

EtaleCohomology.locallyClosedOpen
Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
def locallyClosedOpen (hs : IsLocallyClosed s) : X.Opens
EtaleCohomology.locallyClosedIdeal
Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
def locallyClosedIdeal (hs : IsLocallyClosed s) :
    (locallyClosedOpen hs).toScheme.IdealSheafData
EtaleCohomology.locallyClosedSubscheme

The induced subscheme of a locally closed subset, formed inside its coborder.

Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
def locallyClosedSubscheme (hs : IsLocallyClosed s) : Scheme.{u}
EtaleCohomology.locallyClosedSubschemeι

The inclusion of the induced locally closed subscheme.

Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
def locallyClosedSubschemeι (hs : IsLocallyClosed s) : locallyClosedSubscheme hs ⟶ X
EtaleCohomology.locallyClosedSubschemeι_isImmersion

The induced locally closed subscheme is immersed in the original scheme.

Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
lemma locallyClosedSubschemeι_isImmersion (hs : IsLocallyClosed s) :
    IsImmersion (locallyClosedSubschemeι hs)
EtaleCohomology.range_locallyClosedSubschemeι

The induced subscheme has exactly the prescribed locally closed image.

Source context 5 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
lemma range_locallyClosedSubschemeι (hs : IsLocallyClosed s) :
    Set.range (locallyClosedSubschemeι hs) = s
EtaleCohomology.ConstructibleStratification.ofPartition

Realize a finite locally closed constructible partition by actual scheme strata.

Source context 6 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
namespace ConstructibleStratification
def ofPartition {ι : Type u} [Finite ι] (p : ι → Set X)
    (hp : ∀ i : ι, IsLocallyClosed (p i) ∧ Topology.IsConstructible (p i))
    (hdisjoint : Pairwise (fun i j : ι => Disjoint (p i) (p j)))
    (hcover : (⋃ i : ι, p i) = Set.univ) : ConstructibleStratification X where
  I := ι
  finite := inferInstance
  stratum i := locallyClosedSubscheme (hp i).1
  map i := locallyClosedSubschemeι (hp i).1
  isImmersion i := locallyClosedSubschemeι_isImmersion (hp i).1
  constructible_range i := by
    rw [range_locallyClosedSubschemeι]
    exact (hp i).2
  disjoint := by
    intro i j hij
    rw [range_locallyClosedSubschemeι, range_locallyClosedSubschemeι]
    exact hdisjoint hij
  cover x := by
    obtain ⟨i, hi⟩ := Set.mem_iUnion.mp (hcover.symm ▸ Set.mem_univ x)
    refine ⟨i, ?_⟩
    rw [range_locallyClosedSubschemeι]
    exact hi
EtaleCohomology.ConstructibleStratification.ofPartition_range

The geometric realization preserves each individual part of the partition.

Source context 6 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
namespace ConstructibleStratification
lemma ofPartition_range {ι : Type u} [Finite ι] (p : ι → Set X)
    (hp : ∀ i : ι, IsLocallyClosed (p i) ∧ Topology.IsConstructible (p i))
    (hdisjoint : Pairwise (fun i j : ι => Disjoint (p i) (p j)))
    (hcover : (⋃ i : ι, p i) = Set.univ) (i : ι) :
    Set.range ((ofPartition p hp hdisjoint hcover).map i) = p i :=
  range_locallyClosedSubschemeι (hp i).1
EtaleCohomology.ConstructibleStratification.exists_subordinate

A finite family of constructible sets has a subordinate stratification by actual schemes.

Source context 6 commands

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

noncomputable section
universe u v
open AlgebraicGeometry CategoryTheory
namespace EtaleCohomology
variable {X : Scheme.{u}} {s : Set X}
namespace ConstructibleStratification
theorem exists_subordinate {ι : Type v} [Finite ι] (s : ι → Set X)
    (hs : ∀ i : ι, Topology.IsConstructible (s i)) :
    ∃ S : ConstructibleStratification X, ∀ k : S.I, ∀ i : ι,
      Set.range (S.map k) ⊆ s i ∨ Disjoint (Set.range (S.map k)) (s i)