Fermat's Last Theorem in Lean 4

← all definition modules

Definitions/Def_ModularCurve_RouteBCoordRing.lean

definition module

Route-B coordinate ring: integral closure of

Fix N\ge 1 (nonzero) and recall that modularFunctionField N is the intermediate field \mathbb Q\bigl(j(q),\,j(q^N)\bigr) of \mathbb Q(\!(q)\!), obtained by adjoining to \mathbb Q the Laurent series jq and its N-fold q-substitution qExpand ℚ N jq. Three things are defined here. First, jAdjoinRingHom N is the ring homomorphism \mathbb Q(j(q))\to\mathbb Q(j(q),j(q^N)) realising the inclusion of the simple extension \mathbb Q\langlejq\rangle into modularFunctionField N provided by adjoin_jq_le; on underlying Laurent series it is the identity. Second, algebraIntPolyModularFunctionField N is the \mathbb Z[X]-algebra structure on modularFunctionField N whose structure map is evalAtJGen (evaluation of integer polynomials at jGen, the element jq of \mathbb Q\langlejq\rangle) followed by that inclusion; thus X\mapsto j(q), and the polynomial ring \mathbb Z[X] acts as \mathbb Z[j], the coordinate ring of the affine j-line over \mathbb Z. Third, with this structure in force, routeBCoordRing N is the integral closure of \mathbb Z[X] in modularFunctionField N, i.e. the subalgebra of those elements of \mathbb Q(j(q),j(q^N)) that are integral over \mathbb Z[j] — the normalisation of the j-line in the function field, the affine coordinate ring of the intended integral model of Y_0(N). Finally, for a commutative ring L and a ring homomorphism \varphi from routeBCoordRing N to L, routeBJValue φ is the element \varphi(j(q))\in L, the image under \varphi of the distinguished coordinate coming from X\in\mathbb Z[X]; this is the j-invariant attached to the L-point \varphi.

Relation to Mathlib

The integral closure itself is Mathlib's integralClosure; what is new here is the \mathbb Z[X]-algebra structure on the modular function field sending X to the q-expansion of j, supplied as a named definition (the same field is also given other polynomial-algebra structures elsewhere, e.g. via 1/j).

Where it is used

This coordinate ring is the affine model of Y_0(N) on which points valued in a commutative ring, and their j-invariants, are read off; it is the algebraic substitute used when the modularity input is turned into a statement about rational points and their j-values, as needed for the Frey curve attached to a solution of the Fermat equation.

References

  1. 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
  2. H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154

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_RouteBCoordRing.lean

Imports

Imported by

Declarations

Source

import Mathlib
import Definitions.Def_ModularCurve_X0

noncomputable section

open IntermediateField

namespace ModularCurve

section Tower

variable (N : ℕ) [NeZero N]

def jAdjoinRingHom : ℚ⟮jq⟯ →+* modularFunctionField N where
  toFun x := ⟨(x : LaurentSeries ℚ), adjoin_jq_le N x.2
  map_one' := rfl
  map_mul' _ _ := rfl
  map_zero' := rfl
  map_add' _ _ := rfl

@[reducible] def algebraIntPolyModularFunctionField : Algebra (Polynomial ℤ) (modularFunctionField N) :=
  ((jAdjoinRingHom N).comp evalAtJGen).toAlgebra

attribute [local instance] algebraIntPolyModularFunctionField

abbrev routeBCoordRing : Subalgebra (Polynomial ℤ) (modularFunctionField N) :=
  integralClosure (Polynomial ℤ) (modularFunctionField N)

def routeBJValue {N : ℕ} [NeZero N] {L : Type*} [CommRing L] (φ : ↥(routeBCoordRing N) →+* L) : L :=
  φ ⟨algebraMap (Polynomial ℤ) ↥(modularFunctionField N) Polynomial.X, Subalgebra.algebraMap_mem _ _⟩

end Tower

end ModularCurve

end

Statements phrased using this module (0)

No statement module imports it directly (it is used through other definition modules or by proofs).