Documentation

LeanPool.FLTEichlerShimura.Definitions.Def_HeckeEis_BinaryFormRep

Binary forms: substitution action and evaluation on the projective line #

Definition: HeckeEis_BinaryFormRep (b7d27b98-8127-543a-b6fd-ba1172da24bf), by Claude, 2026-09-05.

Over a commutative ring $K$, BinaryForm K n abbreviates the degree-$n$ homogeneous component MvPolynomial.homogeneousSubmodule (Fin 2) K n, i.e. the submodule of $K[X_0,X_1]$ spanned by the monomials of total degree $n$. For an integral $2\times 2$ matrix $M$, binarySubst K M is the $K$-algebra endomorphism of $K[X_0,X_1]$ determined by $X_j \mapsto \sum_i (M_{ij} \bmod K)\,X_i$; in classical notation $F \mapsto F\bigl((X_0,X_1)M\bigr)$, the row-vector convention. It fixes constants, is the identity for $M = 1$, satisfies $\mathrm{binarySubst}(MM') = \mathrm{binarySubst}(M)\circ\mathrm{binarySubst}(M')$, and maps each BinaryForm K n into itself. Restricting it therefore gives binaryFormRepSL K n, a representation of $SL_2(\mathbb{Z})$ on the degree-$n$ binary forms (a model of $\mathrm{Sym}^n$ of the standard rank-two module), and, for a natural number $\ell$, the $K$-linear endomorphism binaryFormAlphaAdj K n ℓ given by substitution of $\mathrm{diag}(\ell,1)$, that is $F(X_0,X_1)\mapsto F(\ell X_0, X_1)$.

In the second part $p$ is a prime and $K$ a commutative ring of characteristic $p$. For $F \in K[X_0,X_1]$ and a unimodular row $v = (a,c)$ over $\mathbb{Z}/p$ (a pair with $xa+yc=1$ for some $x,y$), evalRow p K F v is the value of $F$ at the images of $a$ and $c$ in $K$ under ZMod.castHom. When $F$ is homogeneous of degree $p-1$, this value is unchanged if $v$ is rescaled by a unit of $\mathbb{Z}/p$, since such a unit satisfies $u^{p-1}=1$; accordingly binaryFormEval p K is the $K$-linear map from BinaryForm K (p-1) to functions on the projective line $\mathbb{P}^1(\mathbb{Z}/p)$ — the quotient of unimodular rows by unit scaling — whose value on the class of $v=(a,c)$ is $F(a,c)$. A general auxiliary identity records $F(c\,x) = c^n F(x)$ for $F$ homogeneous of degree $n$ over any commutative ring.

Relation to Mathlib. BinaryForm is an abbreviation for Mathlib's MvPolynomial.homogeneousSubmodule, binarySubst is Mathlib's MvPolynomial.aeval for a linear substitution, and the group actions are packaged as Mathlib Representations; the index set $\mathbb{P}^1(\mathbb{Z}/p)$ is the project's own quotient of unimodular rows, not a Mathlib projectivization.

Where it is used. These two coefficient modules, $\mathrm{Sym}^{p-1}$ in characteristic $p$ and the functions on $\mathbb{P}^1(\mathbb{F}_p)$, together with the evaluation map intertwining the $SL_2(\mathbb{Z})$-actions and the $\mathrm{diag}(\ell,1)$ operators, provide the dictionary between weight $p+1$ at level $N$ and weight $2$ at level $Np$ that is used in the mod-$p$ weight and level comparisons of the argument.

<!-- Generated by add_prove2me_provenance.py -->

theorem HeckeEis.eval_smul_of_isHomogeneous {σ : Type u_1} {R : Type u_2} [CommRing R] {φ : MvPolynomial σ R} {n : ℕ} (hφ : φ.IsHomogeneous n) (c : R) (x : σ → R) :
(MvPolynomial.eval (c • x)) φ = c ^ n * (MvPolynomial.eval x) φ
@[reducible, inline]
abbrev HeckeEis.BinaryForm (K : Type u_1) [CommRing K] (n : ℕ) :

The module of homogeneous polynomials of degree n in two variables over K.

Equations
Instances For
    noncomputable def HeckeEis.binarySubst (K : Type u_1) [CommRing K] (M : Matrix (Fin 2) (Fin 2) ℤ) :

    Substitution of the linear forms given by the columns of an integral two-by-two matrix.

    Equations
    Instances For
      theorem HeckeEis.binarySubst_X (K : Type u_1) [CommRing K] (M : Matrix (Fin 2) (Fin 2) ℤ) (j : Fin 2) :
      (binarySubst K M) (MvPolynomial.X j) = ∑ i : Fin 2, MvPolynomial.C ↑(M i j) * MvPolynomial.X i
      theorem HeckeEis.binarySubst_C (K : Type u_1) [CommRing K] (M : Matrix (Fin 2) (Fin 2) ℤ) (r : K) :
      theorem HeckeEis.binarySubst_mul (K : Type u_1) [CommRing K] (M M' : Matrix (Fin 2) (Fin 2) ℤ) :
      binarySubst K (M * M') = (binarySubst K M).comp (binarySubst K M')
      theorem HeckeEis.binarySubst_mem (K : Type u_1) [CommRing K] {n : ℕ} (M : Matrix (Fin 2) (Fin 2) ℤ) {F : MvPolynomial (Fin 2) K} (hF : F ∈ BinaryForm K n) :
      noncomputable def HeckeEis.binaryFormRepSL (K : Type u_1) [CommRing K] (n : ℕ) :

      The representation of SL(2, ℤ) on degree-n binary forms by linear substitution.

      Equations
      Instances For
        @[simp]
        theorem HeckeEis.binaryFormRepSL_apply_coe (K : Type u_1) [CommRing K] (n : ℕ) (g : Matrix.SpecialLinearGroup (Fin 2) ℤ) (F : ↥(BinaryForm K n)) :
        ↑(((binaryFormRepSL K n) g) F) = (binarySubst K ↑g) ↑F
        noncomputable def HeckeEis.binaryFormAlphaAdj (K : Type u_1) [CommRing K] (n ℓ : ℕ) :
        ↥(BinaryForm K n) →ₗ[K] ↥(BinaryForm K n)

        The linear substitution on binary forms associated to diag(ℓ, 1).

        Equations
        Instances For
          @[simp]
          theorem HeckeEis.binaryFormAlphaAdj_apply_coe (K : Type u_1) [CommRing K] (n ℓ : ℕ) (F : ↥(BinaryForm K n)) :
          ↑((binaryFormAlphaAdj K n ℓ) F) = (binarySubst K !![↑ℓ, 0; 0, 1]) ↑F
          noncomputable def HeckeEis.evalRow (p : ℕ) (K : Type u_1) [CommRing K] [CharP K p] (F : MvPolynomial (Fin 2) K) (v : ModularCurve.UnimodularRow (ZMod p)) :
          K

          Evaluation of a binary polynomial at a unimodular row modulo p, with coordinates cast into K.

          Equations
          Instances For
            theorem HeckeEis.evalRow_eq_of_unit_mul (p : ℕ) [Fact (Nat.Prime p)] (K : Type u_1) [CommRing K] [CharP K p] {F : MvPolynomial (Fin 2) K} (hF : F ∈ BinaryForm K (p - 1)) (u : (ZMod p)ˣ) (v w : ModularCurve.UnimodularRow (ZMod p)) (h1 : ↑u * (↑v).1 = (↑w).1) (h2 : ↑u * (↑v).2 = (↑w).2) :
            evalRow p K F w = evalRow p K F v
            noncomputable def HeckeEis.binaryFormEval (p : ℕ) [Fact (Nat.Prime p)] (K : Type u_1) [CommRing K] [CharP K p] :

            Evaluation of degree-p - 1 binary forms as functions on the projective line over ZMod p.

            Equations
            Instances For
              @[simp]
              theorem HeckeEis.binaryFormEval_mk (p : ℕ) [Fact (Nat.Prime p)] (K : Type u_1) [CommRing K] [CharP K p] (F : ↥(BinaryForm K (p - 1))) (v : ModularCurve.UnimodularRow (ZMod p)) :
              (binaryFormEval p K) F ⟦v⟧ = evalRow p K (↑F) v