Fermat's Last Theorem in Lean 4

← all definition modules

Definitions/Def_ModularCurve_HeckeInputsAll.lean

definition module

Hecke correspondence inputs at every prime level

This module defines a single predicate, ModularCurve.HeckeInputsAll N (for N with NeZero N), asserting that for every prime \ell — with the instance \ell\neq 0 installed from primality — the project's predicate HeckeInputsAlong (AlgebraicClosure ℚ) N ℓ holds. The latter is a (dependent) conjunction of the data needed to realise the Hecke correspondence as an endomorphism of \mathrm{Pic}^0 of the base-changed modular function field. Concretely, write \bar F_M for laurentBaseChange (AlgebraicClosure ℚ) (modularFunctionFieldFull M), the \overline{\mathbb Q}-subfield of \overline{\mathbb Q}-Laurent series generated coefficientwise by the field \mathbb Q(q^{d}\text{-expansions } j(d\tau) : d\mid M); its degree-zero divisor class group is JZero M. The two maps are \alpha= heckeAlphaBar, the inclusion \bar F_N\subseteq\bar F_{N\ell} coming from N\mid N\ell, and \beta= heckeBetaBar, induced by the substitution q\mapsto q^{\ell} on Laurent series (i.e. f(\tau)\mapsto f(\ell\tau)). The conjuncts are: integrality of \bar F_{N\ell} over \bar F_N along \alpha and along \beta; the instance HasPrincipalDivisors for \bar F_{N\ell}, i.e. each nonzero function admits a finitely supported divisor of its orders at all places, of degree 0; module-finiteness along \alpha; the fundamental identity along \beta, \sum_{w\mid v} e_w\deg w=[\bar F_{N\ell}:\bar F_N]\deg v for every place v; and the pushforward norm formula along \alpha, expressing \alpha_*(\mathrm{div}\,g) at each place v as v(\mathrm{N}_{\bar F_N}g). These are exactly the hypotheses consumed by heckePic0Bar, which builds T_\ell=\alpha_*\circ\beta^{*} on JZero N. Nothing is asserted here beyond the definition; HeckeInputsAll is a hypothesis to be supplied.

Relation to Mathlib

Mathlib has no notion of places, divisors or \mathrm{Pic}^0 for function fields in this form; the surrounding AlgebraicCurve layer (Place, Divisor, Pic0, HasPrincipalDivisors, FundamentalIdentity, PushforwardNormFormula) is the project's own, built on Mathlib's valuation subrings, Algebra.IsIntegral, Module.Finite and Algebra.norm.

Where it is used

The total Hecke operator heckeOperatorAlong is defined by case distinction and is 0 when these inputs fail, so every substantive assertion about T_\ell acting on J_0(N) in the Frey curve–Mazur's principle–level-lowering part of the argument carries HeckeInputsAll (at the levels used) as a hypothesis.

References

  1. G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Publications of the Mathematical Society of Japan 11, Princeton University Press, 1971, Chapter 7
  2. F. Diamond and J. Shurman, A First Course in Modular Forms, Graduate Texts in Mathematics 228, Springer, 2005, Chapters 5 and 7
  3. 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_HeckeInputsAll.lean

Imports

Imported by

Declarations

Source

import Mathlib
import Definitions.Def_ModularCurve_HeckeOperatorTotal

set_option autoImplicit false

namespace ModularCurve

def HeckeInputsAll (N : ℕ) [NeZero N] : Prop :=
  ∀ ℓ : Nat.Primes,
    haveI : NeZero (ℓ : ℕ) := ⟨ℓ.2.ne_zero⟩
    HeckeInputsAlong (AlgebraicClosure ℚ) N ℓ

end ModularCurve

Statements phrased using this module (32)