ModuleRelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.lean
Nyll.AlgebraicCurves.Geometry.AbelianSchemes.Theorems.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
12 declarations indexed from sourceView source ↗ Module documentation
Relative Group Law is Finite end Ker Str and nat Card eq end Degree of etale
Declarations
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.locallyQuasiFinite_of_etale
Source context 7 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.isClosedImmersion_one
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.isClosedImmersion_endKerι
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.isProper_endKerStr
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.isFinite_endKerStr
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.KerPts
DocumentationThe points sent to the unit section by the given endomorphism.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.kerPtsEquiv
DocumentationIdentify points of the scheme theoretic kernel with points sent to the unit section.
Source context 8 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.evalAlgHom_bijective
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
section Alg
variable (K : Type u) [Field K]
Lean source · full declarationtheorem evalAlgHom_bijective (I : Type u) [Finite I] :
Function.Bijective (fun i : I => Pi.evalAlgHom K (fun _ : I => K) i) := by
classical
let : Fintype I := Fintype.ofFinite I
let e : I → (I → K) := fun i => Pi.single i 1
have he : ∀ i k, e i k = if k = i then 1 else 0 := fun i k => by
simp only [e, Pi.single_apply]
constructor
· intro i j hij
by_contra hne
have h := congrArg (fun ψ : (I → K) →ₐ[K] K => ψ (e i)) hij
simp only [Pi.evalAlgHom_apply, he, ite_eq_right (Ne.symm hne)] at h
exact one_ne_zero h
· intro ψ
have hmul : ∀ i j, e i * e j = if i = j then e i else 0 := fun i j => by
funext k
simp only [Pi.mul_apply, he]
split_ifs <;> simp_all
have hsum1 : ∑ i, e i = 1 := by
funext k
rw [Finset.sum_apply, Pi.one_apply, Finset.sum_eq_single k]
· rw [he, ite_eq_left rfl]
· intro i _ hik; rw [he, ite_eq_right (Ne.symm hik)]
· intro h; exact absurd (Finset.mem_univ k) h
have hsum : ∑ i, ψ (e i) = 1 := by rw [← map_sum, hsum1, map_one]
obtain ⟨i₀, hi₀⟩ : ∃ i₀, ψ (e i₀) ≠ 0 := by
by_contra hall
push Not at hall
rw [Finset.sum_eq_zero (fun i _ => hall i)] at hsum
exact zero_ne_one hsum
have h1 : ψ (e i₀) = 1 := by
have h : ψ (e i₀) * ψ (e i₀) = ψ (e i₀) * 1 :=
by rw [← map_mul, hmul, ite_eq_left rfl, mul_one]
exact mul_left_cancel₀ hi₀ h
have h0 : ∀ i, i ≠ i₀ → ψ (e i) = 0 := fun i hi => by
have h : ψ (e i) * ψ (e i₀) = 0 := by rw [← map_mul, hmul, ite_eq_right hi, map_zero]
rwa [h1, mul_one] at h
refine ⟨i₀, ?_⟩
apply AlgHom.ext
intro v
have hv : v = ∑ i, v i • e i := by
funext k
rw [Finset.sum_apply, Finset.sum_eq_single k]
· rw [Pi.smul_apply, he, ite_eq_left rfl, smul_eq_mul, mul_one]
· intro i _ hik; rw [Pi.smul_apply, he, ite_eq_right (Ne.symm hik), smul_zero]
· intro h; exact absurd (Finset.mem_univ k) h
change v i₀ = ψ v
conv_rhs => rw [hv]
rw [map_sum, Finset.sum_eq_single i₀]
· rw [map_smul, h1, smul_eq_mul, mul_one]
· intro i _ hi; rw [map_smul, h0 i hi, smul_zero]
· intro h; exact absurd (Finset.mem_univ _) h
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.finite_and_natCard_algHom_eq_finrank
Source context 11 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
section Alg
variable (K : Type u) [Field K]
variable [IsAlgClosed K]
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.finite_and_natCard_schemeHomOver_eq_finrank
Source context 10 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
section Count
variable {K : Type u} [Field K]
AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs.RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale.P2mSepKer.main
Source context 9 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u
namespace P2mSepKer
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
variable {K : Type u} [Field K] {A : Scheme.{u}} {f : A ⟶ Spec (CommRingCat.of K)}
GoodReductionJacobian.RelativeGroupLaw.isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
Source context 6 commands
Surrounding namespaces, section variables, and local commands at this declaration.
section ProofImplementation
namespace AlgebraicCurves.Geometry.AbelianSchemes.Theorems.Proofs
namespace RelativeGroupLaw_isFinite_endKerStr_and_natCard_eq_endDegree_of_etale
noncomputable section
open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra GoodReductionJacobian
universe u