Frobenius determinant equals ℓ on a Hecke eigenplane
ProvedeigenPlane_det_frobenius_eq_primeFix and a prime , let be a complete discrete valuation domain of characteristic zero with finite residue field, equipped with a -algebra structure, and let be a fraction field of . Give of the level- modular function field over the Hecke action heckeModuleBar M of HeckeAlg , and let TateModule lam (JZero M) be the Hecke submodule of sequences with and . Assume a -module structure on acting levelwise through reduction mod , a finite set of naturals with , a monoid homomorphism from to -endomorphisms of induced levelwise by the Galois action on , and a ring homomorphism from HeckeAlg acting as . Let be a -subspace of of rank , stable under all , on which each with prime, , acts by a scalar , and such that every which is a Frobenius at for a valuation subring with a non-unit of (i.e. lies in the decomposition subgroup of and acts as on its residue field) has trace on . Then every such Frobenius has determinant on .
This is the determinant half of the Eichler–Shimura relation for a weight-two eigenplane: on a good Frobenius at satisfies , so its characteristic polynomial on the plane has constant term . It is the common determinant input for the ordinary-line statements attached to a newform, both in the case and when exactly divides , applied to the eigenplane produced by the pinning construction.
import Mathlib import Definitions.Def_ModularCurve_EichlerShimuraData import Definitions.Def_ModularCurve_HeckeModule import Definitions.Def_EllipticCurve_FrobeniusTrace import Definitions.Def_FLTPrelim_Ramification import Definitions.Def_GaloisRep_Adic set_option maxHeartbeats 4000000 set_option synthInstance.maxHeartbeats 400000 set_option backward.isDefEq.respectTransparency.types false set_option autoImplicit false set_option synthInstance.maxHeartbeats 400000 set_option maxHeartbeats 800000 open ModularCurve IsLocalRing TensorProduct local notation "Qbar" => AlgebraicClosure ℚ
theorem eigenPlane_det_frobenius_eq_prime
{M : ℕ} [NeZero M] (lam : ℕ) [Fact lam.Prime]
(O'' : Type) [CommRing O''] [IsDomain O''] [IsDiscreteValuationRing O'']
[IsAdicComplete (maximalIdeal O'') O''] [Finite (ResidueField O'')]
[CharZero O''] [Algebra ℤ_[lam] O'']
(K : Type) [Field K] [Algebra O'' K] [IsFractionRing O'' K] :
letI := heckeModuleBar M
∀ [Module ℤ_[lam] (TateModule lam (JZero M))]
(_hsmul : ∀ (a : ℤ_[lam]) (x : TateModule lam (JZero M)) (n : ℕ),
((a • x : TateModule lam (JZero M)) : ℕ → JZero M) n =
(PadicInt.toZModPow n a).val • (x : ℕ → JZero M) n)
(S : Finset ℕ) (_hlamS : lam ∈ S)
(ρM : (Qbar ≃ₐ[ℚ] Qbar) →* Module.End O'' (O'' ⊗[ℤ_[lam]] TateModule lam (JZero M)))
(_hρ : ∀ (σ : Qbar ≃ₐ[ℚ] Qbar) (x y : TateModule lam (JZero M)),
(y : ℕ → JZero M) = σ • (x : ℕ → JZero M) →
∀ b : O'', ρM σ (b ⊗ₜ[ℤ_[lam]] x) = b ⊗ₜ[ℤ_[lam]] y)
(TM : HeckeAlg →+* Module.End O'' (O'' ⊗[ℤ_[lam]] TateModule lam (JZero M)))
(_hT : ∀ (t : HeckeAlg) (a : O'') (x : TateModule lam (JZero M)),
TM t (a ⊗ₜ[ℤ_[lam]] x) = a ⊗ₜ[ℤ_[lam]] (t • x))
(W : Submodule K (K ⊗[O''] (O'' ⊗[ℤ_[lam]] TateModule lam (JZero M))))
(_hW2 : Module.finrank K W = 2)
(hW : ∀ σ : Qbar ≃ₐ[ℚ] Qbar, ∀ w ∈ W, (ρM σ).baseChange K w ∈ W)
(tℓ : ∀ (ℓ : ℕ), ℓ.Prime → ¬ ℓ ∣ M → ℓ ∉ S → K)
(_hHecke : ∀ (ℓ : ℕ) (hℓ : ℓ.Prime) (hℓM : ¬ ℓ ∣ M) (hℓS : ℓ ∉ S), ∀ w ∈ W,
(TM (heckeGen ⟨ℓ, hℓ⟩)).baseChange K w = tℓ ℓ hℓ hℓM hℓS • w)
(_htrace : ∀ (ℓ : ℕ) (hℓ : ℓ.Prime) (hℓM : ¬ ℓ ∣ M) (hℓS : ℓ ∉ S),
∀ B : ValuationSubring Qbar, B.LiesOverPrime ℓ →
∀ σ : Qbar ≃ₐ[ℚ] Qbar, B.IsFrobeniusAt σ ℓ →
LinearMap.trace K W (((ρM σ).baseChange K).restrict (hW σ)) = tℓ ℓ hℓ hℓM hℓS),
∀ (ℓ : ℕ), ℓ.Prime → ¬ ℓ ∣ M → ℓ ∉ S →
∀ B : ValuationSubring Qbar, B.LiesOverPrime ℓ →
∀ σ : Qbar ≃ₐ[ℚ] Qbar, B.IsFrobeniusAt σ ℓ →
LinearMap.det (M := ↥W) (((ρM σ).baseChange K).restrict (hW σ)) = (ℓ : K) := by sorry