ModuleContinuousGaloisSet.lean
Nyll.EtaleFundamentalGroups.GeometricFiber.ContinuousGaloisSet
7 declarations indexed from sourceView source ↗ Module documentation
The geometric fiber as a continuous Galois set
This file constructs the forward functor in Stacks Project, Tag 03QR. For a separable closure K/k, an étale k-scheme is sent to its set of geometric points, with the discrete topology and the natural continuous action of K ≃ₐ[k] K by precomposition.
Declarations
AlgebraicGeometry.Scheme.Etale.geometricFiberMulAction
DocumentationThe Galois action on geometric points is precomposition by the corresponding automorphism of Spec K.
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
AlgebraicGeometry.Scheme.Etale.geometricFiber_smul_left
Source context 9 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
omit [IsSepClosure k K] in
AlgebraicGeometry.Scheme.Etale.geometricFiberTopologicalSpace
DocumentationGeometric fibers are given the discrete topology.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
AlgebraicGeometry.Scheme.Etale.geometricFiberDiscreteTopology
Source context 9 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
/-- Geometric fibers are given the discrete topology. -/
local instance geometricFiberTopologicalSpace (X : (Spec (.of k)).Etale) :
TopologicalSpace (Over.mk (ξ k K) ⟶ X.toComma) :=
⊥
AlgebraicGeometry.Scheme.Etale.exists_finiteEtale_factorization
DocumentationA geometric point of an étale scheme over a field factors through one finite étale component of the decomposition in Tag 02GL.
Source context 11 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
/-- Geometric fibers are given the discrete topology. -/
local instance geometricFiberTopologicalSpace (X : (Spec (.of k)).Etale) :
TopologicalSpace (Over.mk (ξ k K) ⟶ X.toComma) :=
⊥
local instance geometricFiberDiscreteTopology (X : (Spec (.of k)).Etale) :
DiscreteTopology (Over.mk (ξ k K) ⟶ X.toComma) :=
discreteTopology_bot _
omit [IsSepClosure k K] in
AlgebraicGeometry.Scheme.Etale.geometricFiberContinuousSMul
DocumentationThe action on the geometric fiber of an arbitrary étale scheme is continuous. Openness is reduced to the finite component through which the chosen geometric point factors.
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
/-- Geometric fibers are given the discrete topology. -/
local instance geometricFiberTopologicalSpace (X : (Spec (.of k)).Etale) :
TopologicalSpace (Over.mk (ξ k K) ⟶ X.toComma) :=
⊥
local instance geometricFiberDiscreteTopology (X : (Spec (.of k)).Etale) :
DiscreteTopology (Over.mk (ξ k K) ⟶ X.toComma) :=
discreteTopology_bot _
AlgebraicGeometry.Scheme.Etale.geometricFiber
DocumentationThe forward functor in Tag 03QR: an étale k-scheme is sent to its discrete continuous set of K-valued geometric points.
Source context 11 commands
Surrounding namespaces, section variables, and local commands at this declaration.
@[expose] public section
universe u
noncomputable section
open CategoryTheory Limits MorphismProperty
open scoped AlgebraicGeometry.FiniteEtale
namespace AlgebraicGeometry.Scheme.Etale
variable (k K : Type u) [Field k] [Field K] [Algebra k K] [IsSepClosure k K]
/-- The Galois action on geometric points is precomposition by the
corresponding automorphism of `Spec K`. -/
local instance geometricFiberMulAction
(X : (Spec (.of k)).Etale) :
MulAction (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) where
smul g x := by
let σ : (Over.mk (ξ k K)).left ⟶ (Over.mk (ξ k K)).left := by
change Spec (.of K) ⟶ Spec (.of K)
exact Spec.map (CommRingCat.ofHom (g : K →+* K))
let σOver : Over.mk (ξ k K) ⟶ Over.mk (ξ k K) :=
Over.homMk σ (by
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ ξ k K = ξ k K
rw [← Spec.map_comp, ← CommRingCat.ofHom_comp, ← AlgEquiv.toAlgHom_toRingHom,
AlgHom.comp_algebraMap])
exact σOver ≫ x
one_smul x := by
ext1
change Spec.map (CommRingCat.ofHom ((1 : K ≃ₐ[k] K) : K →+* K)) ≫ x.left = x.left
simp [AlgEquiv.aut_one]
mul_smul g h x := by
ext1
change Spec.map (CommRingCat.ofHom ((g * h : K ≃ₐ[k] K) : K →+* K)) ≫ x.left =
Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
Spec.map (CommRingCat.ofHom (h : K →+* K)) ≫ x.left
simp [AlgEquiv.aut_mul, Category.assoc]
/-- Geometric fibers are given the discrete topology. -/
local instance geometricFiberTopologicalSpace (X : (Spec (.of k)).Etale) :
TopologicalSpace (Over.mk (ξ k K) ⟶ X.toComma) :=
⊥
local instance geometricFiberDiscreteTopology (X : (Spec (.of k)).Etale) :
DiscreteTopology (Over.mk (ξ k K) ⟶ X.toComma) :=
discreteTopology_bot _
/-- The action on the geometric fiber of an arbitrary étale scheme is
continuous. Openness is reduced to the finite component through which the
chosen geometric point factors. -/
local instance geometricFiberContinuousSMul (X : (Spec (.of k)).Etale) :
ContinuousSMul (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ X.toComma) := by
rw [continuousSMul_iff_stabilizer_isOpen]
intro x
obtain ⟨Y, f, y, hy⟩ := exists_finiteEtale_factorization k K X x
rw [← hy]
let : TopologicalSpace (Over.mk (ξ k K) ⟶ Y.toComma) := ⊥
let : DiscreteTopology (Over.mk (ξ k K) ⟶ Y.toComma) :=
discreteTopology_bot _
have hyContinuous :
ContinuousSMul (K ≃ₐ[k] K) (Over.mk (ξ k K) ⟶ Y.toComma) :=
inferInstance
have hyOpen :
IsOpen (MulAction.stabilizer (K ≃ₐ[k] K) y : Set (K ≃ₐ[k] K)) :=
(continuousSMul_iff_stabilizer_isOpen.mp hyContinuous) y
apply Subgroup.isOpen_mono
(H₁ := MulAction.stabilizer (K ≃ₐ[k] K) y) ?_ hyOpen
intro g hg
rw [MulAction.mem_stabilizer_iff] at hg ⊢
have hgLeft := congrArg (fun z ↦ z.left) hg
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫ y.left = y.left at hgLeft
ext1
change Spec.map (CommRingCat.ofHom (g : K →+* K)) ≫
(y.left ≫ f.left) = y.left ≫ f.left
rw [← Category.assoc, hgLeft]