Fermat's Last Theorem in Lean 4

← all definition modules

Definitions/Def_ModularCurve_JZeroNeronIdentityComponent.lean

definition module

Néron identity component data for over

For a prime p, the structure ModularCurve.JZeroNeronIdentityComponent p packages a model over \operatorname{Spec}\mathbf Z of the group J_0(p) of the development, together with the properties of it that are used later. Its data are: a scheme G with a morphism g\colon G\to\operatorname{Spec}\mathbf Z; a term L : RelativeGroupLaw ℤ g, i.e. a group structure on the sets \{\varphi\colon T\to G\mid \varphi\text{ over }t\} for every t\colon T\to\operatorname{Spec}\mathbf Z, given by operations mul, one, inv satisfying the group axioms and compatible with base change T'\to T (no representing morphism G\times G\to G is part of the data); and a bijection pts between JZero p and the set of morphisms \operatorname{Spec}\overline{\mathbf Q}\to G over \operatorname{Spec}\mathbf Z. The fields then assert: L is commutative; g is smooth, separated, locally of finite type, quasi-compact and surjective, and each topological fibre g^{-1}(s) is preconnected; pts is additive for L and Galois-equivariant, \mathrm{pts}(\sigma\cdot x) being \operatorname{Spec}(\sigma) followed by \mathrm{pts}(x); every element t of HeckeAlg (acting on JZero p through heckeModuleBar p) is realised by some endomorphism \varphi of G over \operatorname{Spec}\mathbf Z which is additive on T-valued points for all T and satisfies \mathrm{pts}(t\cdot x)=\mathrm{pts}(x) followed by \varphi; for each n>0 the morphism L.schemeNsmul n (the underlying morphism of the n-fold L-sum of the identity point of g) is flat and surjective; the subgroup of JZero p generated by the pts-preimages of the \overline{\mathbf Q}-base changes of sections in G(\mathbf Z) meets the subgroup of Galois-fixed elements in a subgroup of finite index there; for every valuation subring A\subset\overline{\mathbf Q} lying over p and every m with p\nmid m, the m-torsion elements x whose point \mathrm{pts}(x) factors through an A-valued point of G are exactly jZeroToricTorsion p A m, namely the m-torsion elements of the form eisensteinNumerator p times an element fixed by the inertia subgroup of A over \mathbf Q; and finally the base change G\times_{\mathbf Z}\mathbf Z[1/p]\to\operatorname{Spec}\mathbf Z[1/p] (the second projection of the pullback along Localization.Away (p : ℤ)) is proper. Thus the structure records a list of properties of a chosen model, deliberately weaker than the Néron mapping property: only the consequences of it that the later arguments consume (Hecke action, integral sections of finite index, the description of torsion at p) appear.

Relation to Mathlib

Mathlib has no Néron models and no group-scheme structure of this functorial shape; RelativeGroupLaw is the project's own notion of a group law given on T-valued points over an affine base, with base-change naturality, rather than a monoid object in an over-category. The morphism properties used (Smooth, IsSeparated, LocallyOfFiniteType, QuasiCompact, Surjective, Flat, IsProper) and IsPreconnected are Mathlib's.

Where it is used

These data are the geometric input for the fppf Kummer-sequence analysis of the q-primary Eisenstein torsion of J_0(p) over \operatorname{Spec}\mathbf Z, as in Mazur's study of the Eisenstein ideal: flatness and surjectivity of multiplication by n give the Kummer sequences, the section condition bounds the group of integral points against the rational points, and the torsion condition at p identifies the part of the torsion captured by toric points. They feed the step of the argument asserting that a p-torsion rational point on a Frey curve cannot avoid the identity components at all bad primes.

References

  1. B. Mazur, Modular curves and the Eisenstein ideal, Publications Mathématiques de l'IHÉS 47 (1977), 33–186, §III.3
  2. S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990
  3. P. Deligne and M. Rapoport, Les schémas de modules de courbes elliptiques, in: Modular Functions of One Variable II, Lecture Notes in Mathematics 349, Springer, 1973, 143–316

References are suggested automatically and have not been individually verified.

English text generated automatically from the Lean source; the Lean statement is authoritative.

Source file: Definitions/Def_ModularCurve_JZeroNeronIdentityComponent.lean

Imports

Imported by

Declarations

Source

import Mathlib
import Definitions.Def_ModularCurve_JZeroNeronPrimaryTorsionSheaf
import Definitions.Def_AlgebraicGeometry_RelativeGroupLaw
import Definitions.Def_GoodReductionJacobian_RelativeGroupLawKernel
import Definitions.Def_AlgebraicGeometry_NeronModelEndomorphismExtension

set_option autoImplicit false

open CategoryTheory CategoryTheory.Limits AlgebraicGeometry AlgebraicGeometry.Scheme NeronModelInfra
  GoodReductionJacobian

noncomputable section

namespace ModularCurve

structure JZeroNeronIdentityComponent (p : ℕ) [Fact p.Prime] where

  G : Scheme.{0}

  g : G ⟶ Spec (CommRingCat.of ℤ)

  L : RelativeGroupLaw ℤ g

  pts : JZero p ≃ SchemeHomOver (Spec.map (CommRingCat.ofHom (algebraMap ℤ (AlgebraicClosure ℚ)))) g

  comm : L.IsCommutative

  smooth : Smooth g
  separated : IsSeparated g
  locallyOfFiniteType : LocallyOfFiniteType g
  quasiCompact : QuasiCompact g
  surjective : Surjective g
  fibre_preconnected : ∀ s : Spec (CommRingCat.of ℤ), _root_.IsPreconnected (g.base ⁻¹' {s})

  pts_add : ∀ x y : JZero p, pts (x + y) = L.mul _ (pts x) (pts y)

  pts_galois : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : JZero p),
    (pts (σ • x)).1 =
      Spec.map (CommRingCat.ofHom (σ : AlgebraicClosure ℚ →+* AlgebraicClosure ℚ)) ≫ (pts x).1

  hecke : letI := heckeModuleBar p
    ∀ t : HeckeAlg, ∃ φ : SchemeHomOver g g,
      (∀ {T : Scheme.{0}} (s : T ⟶ Spec (CommRingCat.of ℤ)) (x y : SchemeHomOver s g),
        NeronModelInfra.schemeHomOverComp (L.mul s x y) φ =
          L.mul s (NeronModelInfra.schemeHomOverComp x φ) (NeronModelInfra.schemeHomOverComp y φ)) ∧
      ∀ x : JZero p, (pts (t • x)).1 = (pts x).1 ≫ φ.1

  nsmul_flat : ∀ n : ℕ, 0 < n → Flat (L.schemeNsmul n)
  nsmul_surjective : ∀ n : ℕ, 0 < n → Surjective (L.schemeNsmul n)

  sections_finiteIndex :
    ((AddSubgroup.closure (Set.range fun s : SchemeHomOver (𝟙 (Spec (CommRingCat.of ℤ))) g =>
        pts.symm (GoodReductionJacobian.schemeHomOverComp (Spec.map (CommRingCat.ofHom (algebraMap ℤ (AlgebraicClosure ℚ))))
          (Category.comp_id _) s))).addSubgroupOf
      (FixedPoints.addSubgroup (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (JZero p))).FiniteIndex

  torsion_over_p : ∀ (A : ValuationSubring (AlgebraicClosure ℚ)), A.LiesOverPrime p → ∀ m : ℕ, ¬ p ∣ m →
    {x : JZero p | x ∈ jZeroTorsion p m ∧
        ∃ s : SchemeHomOver (Spec.map (CommRingCat.ofHom (algebraMap ℤ ↥A))) g,
          (pts x).1 = Spec.map (CommRingCat.ofHom A.subtype) ≫ s.1}
      = (jZeroToricTorsion p A m : Set (JZero p))

  proper_away : IsProper (pullback.snd g (Spec.map (CommRingCat.ofHom (algebraMap ℤ (Localization.Away (p : ℤ))))))

end ModularCurve

end

Statements phrased using this module (16)