Fermat's Last Theorem in Lean 4

← all definition modules

Definitions/Def_FreyPackage_GaloisRep.lean

definition module

Mod- Galois representation of a Weierstrass curve; Frey case

For a Weierstrass curve W' in affine form over a commutative ring R, a commutative R-algebra S and a field K that is an S-algebra with R \to S \to K a scalar tower (plus a DecidableEq K instance), WeierstrassCurve.Affine.Point.galoisRep W' n is the mod-n representation attached to the n-torsion of the points of the base change W'\!\mathord{⁄}K. Concretely, the group K \simeq_{\mathrm{alg}[S]} K of S-algebra automorphisms of K acts on (W'⁄K).\mathrm{Point} by transport of coordinates along \sigma (the project's Point.map action), this action preserves the \mathbb{Z}-torsion submodule \mathrm{torsionBy}\ \mathbb{Z}\ (W'⁄K).\mathrm{Point}\ n = \{P : nP = 0\}, and that submodule carries a \mathbb{Z}/n-module structure because n annihilates it. The definition is then obtained by applying Mathlib's DistribMulAction.toModuleAut, so galoisRep W' n is a monoid homomorphism from K \simeq_{\mathrm{alg}[S]} K to the group of \mathbb{Z}/n-linear automorphisms of the n-torsion, and galoisRep_apply records that its value at \sigma is the map P \mapsto \sigma \bullet P. Nothing is asserted here about freeness of the n-torsion or finite-dimensionality, so the representation is not presented as a map into \mathrm{GL}_2(\mathbb{Z}/n); it is the abstract automorphism-group form.

FreyPackage.freyGaloisRep P is the specialisation to a Frey package P = (a,b,c,p): taking R = S = \mathbb{Q}, K = \overline{\mathbb{Q}} (an algebraic closure of \mathbb{Q}, given a classical decidable-equality instance), W' the Frey curve y^2 + xy = x^3 + \frac{b^p-1-a^p}{4}x^2 - \frac{a^pb^p}{16}x attached to P, and n = p, it is the monoid homomorphism from \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) to the \mathbb{Z}/p-linear automorphisms of the p-torsion of the Frey curve over \overline{\mathbb{Q}}.

Relation to Mathlib

Mathlib supplies the generic construction DistribMulAction.toModuleAut and the Weierstrass-curve point groups; the Galois action on points and on the n-torsion, and hence this mod-n representation of an elliptic curve, are the project's own.

Where it is used

This is the object denoted \bar\rho_{E,p} for the Frey curve: the representation whose irreducibility and ramification behaviour are the subject of the Frey–Serre–Ribet part of the argument, and which the project's predicates GaloisRepIsIrreducible and GaloisRepUnramifiedAt describe in terms of the same action.

References

  1. H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154
  2. J.-P. Serre, Propriétés galoisiennes des points d'ordre fini des courbes elliptiques, Inventiones Mathematicae 15 (1972), 259–331
  3. J. H. Silverman, The Arithmetic of Elliptic Curves, Graduate Texts in Mathematics 106, Springer, 1986, Ch. III

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

Imports

Imported by

Declarations

Source

import Definitions.Def_FLTPrelim_FreyPackage
import Definitions.Def_FLTPrelim_GaloisRep
import Definitions.Def_EllipticCurve_FrobeniusTrace
import Mathlib.LinearAlgebra.FiniteDimensional.Defs ↗

set_option autoImplicit false

universe r s v

namespace WeierstrassCurve.Affine.Point

open WeierstrassCurve

variable {R : Type r} {S : Type s} {K : Type v} [CommRing R] [CommRing S] [Field K]
  [DecidableEq K] {W' : Affine R} [Algebra R S] [Algebra R K] [Algebra S K]
  [IsScalarTower R S K]

noncomputable def galoisRep (W' : Affine R) (n : ℕ) :
    (K ≃ₐ[S] K) →*
      (Submodule.torsionBy ℤ (W'⁄K).Point n) ≃ₗ[ZMod n] (Submodule.torsionBy ℤ (W'⁄K).Point n) :=
  DistribMulAction.toModuleAut (ZMod n) (Submodule.torsionBy ℤ (W'⁄K).Point n)

@[simp]
lemma galoisRep_apply {n : ℕ} (σ : K ≃ₐ[S] K) (P : Submodule.torsionBy ℤ (W'⁄K).Point n) :
    galoisRep W' n σ P = σ • P :=
  rfl

end WeierstrassCurve.Affine.Point

namespace FreyPackage

open WeierstrassCurve.Affine.Point
open scoped WeierstrassCurve.Affine

noncomputable local instance instDecEqQbarRepresentation : DecidableEq (AlgebraicClosure ℚ) :=
  Classical.decEq _

noncomputable def freyGaloisRep (P : FreyPackage) :
    (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) →*
      (Submodule.torsionBy ℤ (P.freyCurve⁄(AlgebraicClosure ℚ)).Point P.p) ≃ₗ[ZMod P.p]
        (Submodule.torsionBy ℤ (P.freyCurve⁄(AlgebraicClosure ℚ)).Point P.p) :=
  galoisRep P.freyCurve P.p

end FreyPackage

Statements phrased using this module (0)

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