Fermat's Last Theorem in Lean 4

← all definition modules

Definitions/Def_GoodReductionJacobian_RelativeGroupLawAction.lean

definition module

Action morphism of a subscheme under a relative group law

Throughout, R is a commutative ring, J a scheme and f\colon J\to\operatorname{Spec}R a morphism; L is a RelativeGroupLaw R f, i.e. the project's functor-of-points datum assigning to every t\colon T\to\operatorname{Spec}R a group structure (mul, one, inv with associativity, two-sided unit and left inverse) on the set \mathrm{SchemeHomOver}\,t\,f of morphisms T\to J over \operatorname{Spec}R, together with the naturality field mul_natural expressing compatibility of mul with precomposition along any \psi\colon T'\to T with \psi\circ t=t'. Fix in addition a morphism \iota\colon E\to J.

The pullback P of \iota followed by f against f — that is, E\times_{\operatorname{Spec}R}J — is given the structure morphism actionSource f ι, defined as the second projection followed by f. Two points of J over this base are then singled out: actionFstPoint is the first projection followed by \iota, lying over actionSource f ι by the pullback square, and actionSndPoint is the second projection, which lies over actionSource f ι by construction of the latter. The morphism action L ι : P ⟶ J is the underlying scheme morphism of the product of these two points in the group \mathrm{SchemeHomOver}\,(\mathrm{actionSource}\,f\,\iota)\,f supplied by L; on points it is (e,x)\mapsto \iota(e)\cdot x. The remaining declarations form the elementary interface: action_def restates the definition, actionFstPoint_coe and actionSndPoint_coe identify the underlying morphisms of the two points with \mathrm{pr}_1 followed by \iota and with \mathrm{pr}_2, and action_over records that action L ι followed by f equals actionSource f ι, i.e. the action morphism is a morphism over \operatorname{Spec}R, this being exactly the defining property of the product point.

Relation to Mathlib

Mathlib has no relative group law in this functor-of-points form (its group-object notions are the monoidal-category ones); RelativeGroupLaw and the action morphism built from it are the project's own. The underlying fibre products and the projections pullback.fst, pullback.snd are Mathlib's.

Where it is used

Together with the second projection, action provides the pair of morphisms E\times_R J\rightrightarrows J used to present the orbit equivalence relation for the translation action of a closed subgroup scheme E\subseteq J; this is the input for forming quotients of J by finite flat subgroup schemes in the treatment of Jacobians with good reduction and of the Néron model properties.

References

  1. S. Bosch, W. Lütkebohmert and M. Raynaud, Néron Models, Ergebnisse der Mathematik und ihrer Grenzgebiete 21, Springer, 1990
  2. M. Demazure and P. Gabriel, Groupes algébriques, Tome I, Masson / North-Holland, 1970

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

Imports

Imported by

  • no other definition module

Declarations

Source

import Mathlib
import Definitions.Def_AlgebraicGeometry_RelativeGroupLaw

set_option autoImplicit false

noncomputable section

universe u

open CategoryTheory CategoryTheory.Limits AlgebraicGeometry NeronModelInfra

namespace GoodReductionJacobian.RelativeGroupLaw

variable {R : Type u} [CommRing R] {J : Scheme.{u}} {f : J ⟶ Spec (CommRingCat.of R)}

abbrev actionSource (f : J ⟶ Spec (CommRingCat.of R)) {E : Scheme.{u}} (ι : E ⟶ J) :
    pullback (ι ≫ f) f ⟶ Spec (CommRingCat.of R) :=
  pullback.snd (ι ≫ f) ff

def actionFstPoint (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    SchemeHomOver (actionSource f ι) f :=
  ⟨pullback.fst (ι ≫ f) f ≫ ι, by rw [Category.assoc, pullback.condition]⟩

def actionSndPoint (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    SchemeHomOver (actionSource f ι) f :=
  ⟨pullback.snd (ι ≫ f) f, rfl⟩

def action (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) : pullback (ι ≫ f) f ⟶ J :=
  (L.mul (actionSource f ι) (L.actionFstPoint ι) (L.actionSndPoint ι)).1

theorem action_def (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    L.action ι = (L.mul (actionSource f ι) (L.actionFstPoint ι) (L.actionSndPoint ι)).1 := rfl

@[simp] theorem actionFstPoint_coe (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    (L.actionFstPoint ι).1 = pullback.fst (ι ≫ f) f ≫ ι := rfl

@[simp] theorem actionSndPoint_coe (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    (L.actionSndPoint ι).1 = pullback.snd (ι ≫ f) f := rfl

theorem action_over (L : RelativeGroupLaw R f) {E : Scheme.{u}} (ι : E ⟶ J) :
    L.action ι ≫ f = actionSource f ι :=
  (L.mul (actionSource f ι) (L.actionFstPoint ι) (L.actionSndPoint ι)).2

end GoodReductionJacobian.RelativeGroupLaw

end

Statements phrased using this module (31)