Module

SchemeArithmeticComplementCover.lean

Nyll.EtaleFundamentalGroups.Kummer.NormalCrossings.SchemeArithmeticComplementCover
12 declarations indexed from sourceView source ↗

Finite-etale covers on local normal-crossings complements

A finite-etale cover of the complement of a divisor support restricts to the principal local chart supplied by a normal-crossings boundary equation. The resulting object has exactly the base scheme used by the local finite-quotient inertia statement.

Declarations

AlgebraicGeometry.SpecMap_genericPoint_of_injective
Source context 5 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
theorem SpecMap_genericPoint_of_injective
    {R S : CommRingCat.{u}} [IsDomain R] [IsDomain S]
    (φ : R ⟶ S) (hφ : Function.Injective φ) :
    Spec.map φ (genericPoint (Spec S)) = genericPoint (Spec R)
AlgebraicGeometry.Scheme.fromSpecStalk_genericPoint_eq
Source context 5 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
theorem Scheme.fromSpecStalk_genericPoint_eq
    {X : Scheme.{u}} [IsIntegral X] (x : X) :
    X.fromSpecStalk x (genericPoint (Spec (X.presheaf.stalk x))) =
      genericPoint X
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToAmbient_isDominant

The canonical map from an away localization of a prime-localized stalk to an integral ambient scheme is dominant whenever the inverted element is nonzero.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToAmbient_isDominant
    [IsIntegral X] (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P) (hf : f ≠ 0) :
    IsDominant
      (Spec.map (CommRingCat.ofHom
          (algebraMap (Localization.AtPrime P) (Localization.Away f))) ≫
        Scheme.localizationAtPrimeTo X x P)
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToSupportComplement_isPreimmersion

The local principal-complement map is a preimmersion.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToSupportComplement_isPreimmersion
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f}) :
    IsPreimmersion
      (localizationAwayToSupportComplement I x P f hboundary)
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToSupportComplement_isDominant

The local principal-complement map is dominant over an integral ambient scheme when its boundary equation is nonzero.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToSupportComplement_isDominant
    [IsIntegral X]
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P) (hf : f ≠ 0)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f}) :
    IsDominant
      (localizationAwayToSupportComplement I x P f hboundary)
AlgebraicGeometry.Scheme.IdealSheafData.supportComplement_nonempty_of_localizationAway

A nonzero local boundary equation makes the global support complement nonempty.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem supportComplement_nonempty_of_localizationAway
    [IsIntegral X]
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P) (hf : f ≠ 0)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f}) :
    Nonempty I.supportComplement
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToSupportComplement_quasiCompact

The local principal-complement map is quasi-compact over a locally Noetherian ambient scheme.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToSupportComplement_quasiCompact
    [IsLocallyNoetherian X]
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f}) :
    QuasiCompact
      (localizationAwayToSupportComplement I x P f hboundary)
AlgebraicGeometry.Scheme.IdealSheafData.pullbackSupportComplementCoverToBoundaryAway

Pull a finite-etale cover of a support complement to the local chart obtained by inverting the normal-crossings boundary product.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
def pullbackSupportComplementCoverToBoundaryAway
    (I : X.IdealSheafData) (x : X)
    (P : PrimeSpectrum (X.presheaf.stalk x)) {r : ℕ}
    (t : Fin 2 → Localization.AtPrime P.asIdeal)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x)
            (Localization.AtPrime P.asIdeal)) =
        Ideal.span {boundaryProduct t r})
    (W : FiniteEtale I.supportComplement) :
    FiniteEtale
      (Spec (.of (Localization.Away (boundaryProduct t r))))
AlgebraicGeometry.Scheme.IdealSheafData.boundaryProduct_ne_zero_of_splitStrictNormalCrossings
Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem boundaryProduct_ne_zero_of_splitStrictNormalCrossings
    {V : Type u} [CommRing V] [IsDomain V] [IsLocalRing V]
    {r : ℕ} {t : Fin 2 → V}
    (hNC : IsSplitStrictNormalCrossingsAt
      (boundaryProduct t r) t r) :
    boundaryProduct t r ≠ 0
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToSupportComplement_pullback_isGalois

Pullback along the canonical localization-away map preserves connected Galois covers when the inverted boundary equation is nonzero.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToSupportComplement_pullback_isGalois
    [IsIntegral X] [IsNormalIntegral X] [IsLocallyNoetherian X]
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P) (hf : f ≠ 0)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f})
    [Nonempty I.supportComplement]
    [IsDomain (Localization.Away f)]
    (W : FiniteEtale I.supportComplement) (hW : IsGalois W) :
    IsGalois ((FiniteEtale.pullback
      (localizationAwayToSupportComplement I x P f hboundary)).obj W)
AlgebraicGeometry.Scheme.IdealSheafData.localizationAwayToSupportComplement_pullback_isGalois_of_ne_zero

The nonzero local equation itself supplies the connected source and nonempty target required by Galois pullback.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem localizationAwayToSupportComplement_pullback_isGalois_of_ne_zero
    [IsIntegral X] [IsNormalIntegral X] [IsLocallyNoetherian X]
    (I : X.IdealSheafData) (x : X)
    (P : Ideal (X.presheaf.stalk x)) [P.IsPrime]
    (f : Localization.AtPrime P) (hf : f ≠ 0)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x) (Localization.AtPrime P)) =
        Ideal.span {f}) :
    letI : IsDomain (Localization.Away f) :=
      IsLocalization.Away.isDomain (Localization.Away f) hf
    letI : Nonempty I.supportComplement :=
      supportComplement_nonempty_of_localizationAway
        I x P f hf hboundary
    ∀ (W : FiniteEtale I.supportComplement), IsGalois W →
      IsGalois ((FiniteEtale.pullback
        (localizationAwayToSupportComplement I x P f hboundary)).obj W) := by
  let : IsDomain (Localization.Away f) :=
    IsLocalization.Away.isDomain (Localization.Away f) hf
  let : Nonempty I.supportComplement :=
    supportComplement_nonempty_of_localizationAway
      I x P f hf hboundary
  intro W hW
  exact localizationAwayToSupportComplement_pullback_isGalois
    I x P f hf hboundary W hW
AlgebraicGeometry.Scheme.IdealSheafData.pullbackSupportComplementCoverToBoundaryAway_isGalois

Pullback from a global support complement to a local split normal-crossings chart preserves connected Galois covers.

Source context 7 commands

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

noncomputable section
open AlgebraicGeometry CategoryTheory EtaleFundamentalGroups TopologicalSpace
open CategoryTheory.PreGaloisCategory
namespace AlgebraicGeometry
universe u
namespace Scheme.IdealSheafData
variable {X : Scheme.{u}}
theorem pullbackSupportComplementCoverToBoundaryAway_isGalois
    [IsIntegral X] [IsNormalIntegral X] [IsLocallyNoetherian X]
    (I : X.IdealSheafData) (x : X)
    (P : PrimeSpectrum (X.presheaf.stalk x)) {r : ℕ}
    (t : Fin 2 → Localization.AtPrime P.asIdeal)
    (hboundary :
      (I.stalkIdeal x).map
          (algebraMap (X.presheaf.stalk x)
            (Localization.AtPrime P.asIdeal)) =
        Ideal.span {boundaryProduct t r})
    (hNC : IsSplitStrictNormalCrossingsAt
      (boundaryProduct t r) t r) :
    let hf := boundaryProduct_ne_zero_of_splitStrictNormalCrossings hNC
    letI : IsDomain (Localization.Away (boundaryProduct t r)) :=
      IsLocalization.Away.isDomain
        (Localization.Away (boundaryProduct t r)) hf
    letI : Nonempty I.supportComplement :=
      supportComplement_nonempty_of_localizationAway
        I x P.asIdeal (boundaryProduct t r) hf hboundary
    ∀ (W : FiniteEtale I.supportComplement), IsGalois W →
      IsGalois
        (pullbackSupportComplementCoverToBoundaryAway
          I x P t hboundary W) := by
  dsimp only
  let hf := boundaryProduct_ne_zero_of_splitStrictNormalCrossings hNC
  let : IsDomain (Localization.Away (boundaryProduct t r)) :=
    IsLocalization.Away.isDomain
      (Localization.Away (boundaryProduct t r)) hf
  let : Nonempty I.supportComplement :=
    supportComplement_nonempty_of_localizationAway
      I x P.asIdeal (boundaryProduct t r) hf hboundary
  intro W hW
  exact localizationAwayToSupportComplement_pullback_isGalois
    I x P.asIdeal (boundaryProduct t r) hf hboundary W hW