Definitions/Def_CerednikDrinfeld_ShimuraCurve.lean
Shimura curve models over and their Jacobian torsion
For a rational quaternion algebra B=\mathbb{H}[\mathbb{Q},a,b], QuaternionAlgebra.IsIndefiniteRamifiedExactlyAt a b q q' asserts that a>0 or b>0, and that for every height-one prime v of \mathbb{Z} the completion B\otimes_{\mathbb{Q}}\mathbb{Q}_v is a division ring (every nonzero element a unit) exactly when q or q' lies in v. For a \mathbb{Z}-lattice R\subseteq B, unitGroup R is the subgroup of B^\times generated by those u satisfying the predicate IsUnitOf R, and fuchsianGroup R ι is the intersection of its image under a \mathbb{Q}-algebra map \iota\colon B\to M_2(\mathbb{R}) with the kernel of \det in \mathrm{GL}_2(\mathbb{R}).
ShimuraCurveModel R ι 𝒮, for a family \mathcal{S} of subsets of (B\otimes_{\mathbb{Q}}\mathbb{A}_f)^\times indexed by naturals, is a structure packaging a model: function fields F/\mathbb{Q}, \bar F/\overline{\mathbb{Q}}, F_{\mathbb{C}}/\mathbb{C} which are curves in the project's sense (IsCurveOver together with Algebra.EssFiniteType), with \mathbb{Q} algebraically closed in F; ring maps F\to\bar F\to F_{\mathbb{C}} over a chosen embedding \overline{\mathbb{Q}}\to\mathbb{C}, required to generate the target over the new base field and to preserve linear independence of finite subsets (base change, stated elementwise); a homomorphism from \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) to semilinear automorphisms of \bar F inducing \sigma on \overline{\mathbb{Q}} and fixing the image of F; a UniformizedHeckeCurve structure for fuchsianGroup R ι on F_{\mathbb{C}}, whose multiset of Hecke points at each prime \ell is pinned to be \iota applied to a finite set S of elements of R of reduced norm \ell lying in \mathcal{S}(\ell) adelically, S being a system of representatives for left multiplication by norm-one units of R on all such elements; a place map and divisor correspondences over \overline{\mathbb{Q}} compatible with the complex ones; induced endomorphisms heckePic0 of \mathrm{Pic}^0(\bar F), commuting with each other and with the Galois action; and finiteness of each n-torsion subgroup together with a finite field of definition for it.
Derived material turns J=\mathrm{Pic}^0(\bar F/\overline{\mathbb{Q}}) into a module over HeckeAlg =\mathbb{Z}[X_\ell]_{\ell\ \mathrm{prime}}: heckeJ is the ring map sending heckeGen ℓ to heckePic0 ℓ (the image lies in the commutative subalgebra generated by these), galJ the Galois action, and J_comm their commutation; signTwist ε rescales each generator by a unit \varepsilon(\ell)\in\mathbb{Z}^\times, giving heckeJSigned. Tors p is the p-torsion of J with its restricted Hecke and Galois actions, finite when p is prime, trivialised by a finite extension of \mathbb{Q}. GoodReductionOutside p S is the conjunction of: inertia at every prime \ell\nmid S acts trivially on elements killed by p, and the Eichler–Shimura relation \sigma^2-T_\ell\sigma+\ell=0 holds on them for Frobenius elements \sigma at \ell. Finally IsTorsionOf p T hecke gal says that an abstract Hecke–Galois module T embeds additively into J with image exactly the p-torsion, equivariantly for the Galois action and for each Hecke generator; RealizesJPrime and RealizesTwoPlace apply this to a JPrimeTorsionDatum resp. a TwoPlaceTorsionDatum, and isTorsionOf_self records that Tors p itself is such a realisation.
Relation to Mathlib
Mathlib has no Shimura curves, quaternionic Fuchsian groups or models of curves over \mathbb{Q}; this module is the project's own packaging, resting on the project's notions of function-field curve (IsCurveOver), places, divisors and \mathrm{Pic}^0, semilinear Galois actions, the reduced norm nrd on \mathbb{H}[R,a,b], and the free commutative \mathbb{Z}-algebra HeckeAlg on the primes. The quaternion algebra type itself, the finite adele ring and \mathrm{GL}_2(\mathbb{R}) are Mathlib's.
Where it is used
These definitions provide the one pinned record for the Shimura curve attached to an Eichler order in an indefinite rational quaternion algebra ramified at two primes, the curve used in the (q,q')-exchange step of level lowering. Its Jacobian's p-torsion, with the Hecke and Galois structure defined here, is what a two-place torsion datum is required to realise, so that the Čerednik–Drinfeld description at the two ramified primes and the Eichler–Shimura congruence away from the level can be stated about a single model.
References
- K. A. Ribet, On modular representations of \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) arising from modular forms, Inventiones Mathematicae 100 (1990), 431–476
- J.-F. Boutot and H. Carayol, Uniformisation p-adique des courbes de Shimura: les théorèmes de Čerednik et de Drinfeld, Astérisque 196–197 (1991), 45–158
- H. Darmon, F. Diamond and R. Taylor, Fermat's Last Theorem, in: Current Developments in Mathematics 1995, International Press, 1995, 1–154, §4
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 357 lines
- 76 declarations
- used in the statements of 264 theorems and imported by 280 proofs
- imports 7 definition modules
Source file: Definitions/Def_CerednikDrinfeld_ShimuraCurve.lean
Imports
Imported by
Declarations
- def
QuaternionAlgebra.IsIndefiniteRamifiedExactlyAt - def
CerednikDrinfeld.unitGroup - def
CerednikDrinfeld.fuchsianGroup - structure
CerednikDrinfeld.ShimuraCurveModel - field
CerednikDrinfeld.ShimuraCurveModel.F - field
CerednikDrinfeld.ShimuraCurveModel.Fbar - field
CerednikDrinfeld.ShimuraCurveModel.Fc - field
CerednikDrinfeld.ShimuraCurveModel.algebraic_mem_range - field
CerednikDrinfeld.ShimuraCurveModel.toBar - field
CerednikDrinfeld.ShimuraCurveModel.toBar_algebraMap - field
CerednikDrinfeld.ShimuraCurveModel.toBar - field
CerednikDrinfeld.ShimuraCurveModel.closure_toBar - field
CerednikDrinfeld.ShimuraCurveModel.linearIndependent_toBar - field
CerednikDrinfeld.ShimuraCurveModel.LinearIndependent - field
CerednikDrinfeld.ShimuraCurveModel.emb - field
CerednikDrinfeld.ShimuraCurveModel.toC - field
CerednikDrinfeld.ShimuraCurveModel.toC_algebraMap - field
CerednikDrinfeld.ShimuraCurveModel.toC - field
CerednikDrinfeld.ShimuraCurveModel.closure_toC - field
CerednikDrinfeld.ShimuraCurveModel.linearIndependent_toC - field
CerednikDrinfeld.ShimuraCurveModel.LinearIndependent - field
CerednikDrinfeld.ShimuraCurveModel.gal - field
CerednikDrinfeld.ShimuraCurveModel.baseAut_gal - field
CerednikDrinfeld.ShimuraCurveModel.gal_smul_toBar - field
CerednikDrinfeld.ShimuraCurveModel.unif - field
CerednikDrinfeld.ShimuraCurveModel.heckePoints_eq - field
CerednikDrinfeld.ShimuraCurveModel.bcPlace - field
CerednikDrinfeld.ShimuraCurveModel.mem_bcPlace_iff - field
CerednikDrinfeld.ShimuraCurveModel.corrBar - field
CerednikDrinfeld.ShimuraCurveModel.Divisor - field
CerednikDrinfeld.ShimuraCurveModel.corr_mapDomain - field
CerednikDrinfeld.ShimuraCurveModel.heckePic0 - field
CerednikDrinfeld.ShimuraCurveModel.heckePic0_mk - field
CerednikDrinfeld.ShimuraCurveModel.hD - field
CerednikDrinfeld.ShimuraCurveModel.heckePic0_comm - field
CerednikDrinfeld.ShimuraCurveModel.gal_smul_heckePic0 - field
CerednikDrinfeld.ShimuraCurveModel.c - field
CerednikDrinfeld.ShimuraCurveModel.finite_torsion - field
CerednikDrinfeld.ShimuraCurveModel.finiteLevel_torsion - abbrev
CerednikDrinfeld.ShimuraCurveModel.J - def
CerednikDrinfeld.ShimuraCurveModel.heckeGenJ - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeGenJ_apply - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeGenJ_comm - theorem
CerednikDrinfeld.ShimuraCurveModel.isMulCommutative_adjoin_heckeGenJ - def
CerednikDrinfeld.ShimuraCurveModel.commRingAdjoinJ - def
CerednikDrinfeld.ShimuraCurveModel.heckeJAux - def
CerednikDrinfeld.ShimuraCurveModel.heckeJ - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeJ_mem_adjoin - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeJ_heckeGen - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeJ_heckeGen_apply - def
CerednikDrinfeld.ShimuraCurveModel.galJ - theorem
CerednikDrinfeld.ShimuraCurveModel.galJ_apply - theorem
CerednikDrinfeld.ShimuraCurveModel.J_comm - def
CerednikDrinfeld.ShimuraCurveModel.signTwist - theorem
CerednikDrinfeld.ShimuraCurveModel.signTwist_heckeGen - abbrev
CerednikDrinfeld.ShimuraCurveModel.heckeJSigned - theorem
CerednikDrinfeld.ShimuraCurveModel.heckeJSigned_heckeGen_apply - theorem
CerednikDrinfeld.ShimuraCurveModel.J_comm_signed - theorem
CerednikDrinfeld.ShimuraCurveModel.finiteLevel_J - def
CerednikDrinfeld.ShimuraCurveModel.GoodReductionOutside - abbrev
CerednikDrinfeld.ShimuraCurveModel.Tors - theorem
CerednikDrinfeld.ShimuraCurveModel.torsion_pTorsion - instance
CerednikDrinfeld.ShimuraCurveModel.instFiniteTors - def
CerednikDrinfeld.ShimuraCurveModel.restrictTors - theorem
CerednikDrinfeld.ShimuraCurveModel.coe_restrictTors_apply - def
CerednikDrinfeld.ShimuraCurveModel.torsionHecke - theorem
CerednikDrinfeld.ShimuraCurveModel.coe_torsionHecke_apply - theorem
CerednikDrinfeld.ShimuraCurveModel.coe_torsionHecke_heckeGen_apply - def
CerednikDrinfeld.ShimuraCurveModel.torsionGal - theorem
CerednikDrinfeld.ShimuraCurveModel.coe_torsionGal_apply - theorem
CerednikDrinfeld.ShimuraCurveModel.torsion_comm - theorem
CerednikDrinfeld.ShimuraCurveModel.torsion_finiteLevel - def
CerednikDrinfeld.ShimuraCurveModel.IsTorsionOf - def
CerednikDrinfeld.ShimuraCurveModel.RealizesJPrime - def
CerednikDrinfeld.ShimuraCurveModel.RealizesTwoPlace - theorem
CerednikDrinfeld.ShimuraCurveModel.isTorsionOf_self
Source
import Definitions.Def_QuaternionAlgebra_EichlerOrder import Definitions.Def_QuaternionAlgebra_ReducedNorm import Definitions.Def_ModularCurve_UniformizedHeckeCurve import Definitions.Def_AlgebraicCurve_BaseChangeGalois import Definitions.Def_AlgebraicCurve_IsCurveOver import Definitions.Def_CerednikDrinfeld_TwoPlaceTorsionDatum import Definitions.Def_Compat_Mathlib430 set_option autoImplicit false noncomputable section open scoped Quaternion TensorProduct MatrixGroups open IsDedekindDomain NumberField AlgebraicCurve namespace QuaternionAlgebra variable (a b : ℚ) def IsIndefiniteRamifiedExactlyAt (q q' : ℕ) : Prop := (0 < a ∨ 0 < b) ∧ ∀ v : HeightOneSpectrum (𝓞 ℚ), (∀ x : ℍ[ℚ, a, b] ⊗[ℚ] v.adicCompletion ℚ, x ≠ 0 → IsUnit x) ↔ ((q : 𝓞 ℚ) ∈ v.asIdeal ∨ (q' : 𝓞 ℚ) ∈ v.asIdeal) end QuaternionAlgebra namespace CerednikDrinfeld open QuaternionAlgebra ModularCurve variable {a b : ℚ} def unitGroup (R : Submodule ℤ ℍ[ℚ, a, b]) : Subgroup (ℍ[ℚ, a, b])ˣ := Subgroup.closure {u : (ℍ[ℚ, a, b])ˣ | IsUnitOf R (u : ℍ[ℚ, a, b])} def fuchsianGroup (R : Submodule ℤ ℍ[ℚ, a, b]) (ι : ℍ[ℚ, a, b] →ₐ[ℚ] Matrix (Fin 2) (Fin 2) ℝ) : Subgroup (GL (Fin 2) ℝ) := (unitGroup R).map (Units.map (ι : ℍ[ℚ, a, b] →* Matrix (Fin 2) (Fin 2) ℝ)) ⊓ (Matrix.GeneralLinearGroup.det : GL (Fin 2) ℝ →* ℝˣ).ker structure ShimuraCurveModel (R : Submodule ℤ ℍ[ℚ, a, b]) (ι : ℍ[ℚ, a, b] →ₐ[ℚ] Matrix (Fin 2) (Fin 2) ℝ) (𝒮 : ℕ → Set (ℍ[ℚ, a, b] ⊗[ℚ] FiniteAdeleRing (𝓞 ℚ) ℚ)ˣ) : Type 1 where F : Type [instFieldF : Field F] [instAlgebraF : Algebra ℚ F] Fbar : Type [instFieldFbar : Field Fbar] [instAlgebraFbar : Algebra (AlgebraicClosure ℚ) Fbar] Fc : Type [instFieldFc : Field Fc] [instAlgebraFc : Algebra ℂ Fc] [isCurveOverF : IsCurveOver ℚ F] [essFiniteTypeF : Algebra.EssFiniteType ℚ F] [isCurveOverBar : IsCurveOver (AlgebraicClosure ℚ) Fbar] [essFiniteTypeBar : Algebra.EssFiniteType (AlgebraicClosure ℚ) Fbar] [isCurveOverC : IsCurveOver ℂ Fc] [essFiniteTypeC : Algebra.EssFiniteType ℂ Fc] algebraic_mem_range : ∀ x : F, IsAlgebraic ℚ x → x ∈ Set.range (algebraMap ℚ F) toBar : F →+* Fbar toBar_algebraMap : ∀ r : ℚ, toBar (algebraMap ℚ F r) = algebraMap (AlgebraicClosure ℚ) Fbar (algebraMap ℚ (AlgebraicClosure ℚ) r) closure_toBar : Subfield.closure (Set.range (algebraMap (AlgebraicClosure ℚ) Fbar) ∪ Set.range toBar) = ⊤ linearIndependent_toBar : ∀ s : Finset F, LinearIndependent ℚ (fun x : s => (x : F)) → LinearIndependent (AlgebraicClosure ℚ) (fun x : s => toBar (x : F)) emb : AlgebraicClosure ℚ →+* ℂ toC : Fbar →+* Fc toC_algebraMap : ∀ z : AlgebraicClosure ℚ, toC (algebraMap (AlgebraicClosure ℚ) Fbar z) = algebraMap ℂ Fc (emb z) closure_toC : Subfield.closure (Set.range (algebraMap ℂ Fc) ∪ Set.range toC) = ⊤ linearIndependent_toC : ∀ s : Finset Fbar, LinearIndependent (AlgebraicClosure ℚ) (fun x : s => (x : Fbar)) → LinearIndependent ℂ (fun x : s => toC (x : Fbar)) gal : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) →* SemilinearAut (AlgebraicClosure ℚ) Fbar baseAut_gal : ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, SemilinearAut.baseAut (gal σ) = (σ : AlgebraicClosure ℚ ≃+* AlgebraicClosure ℚ) gal_smul_toBar : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : F), gal σ • toBar x = toBar x unif : UniformizedHeckeCurve (fuchsianGroup R ι) Fc heckePoints_eq : ∀ (ℓ : ℕ) (hℓ : ℓ.Prime), ∃ S : Finset ℍ[ℚ, a, b], (∀ x ∈ S, x ∈ R ∧ nrd x = ℓ ∧ ∃ h ∈ 𝒮 ℓ, (h : ℍ[ℚ, a, b] ⊗[ℚ] FiniteAdeleRing (𝓞 ℚ) ℚ) = x ⊗ₜ[ℚ] (1 : FiniteAdeleRing (𝓞 ℚ) ℚ)) ∧ (∀ y : ℍ[ℚ, a, b], y ∈ R → nrd y = ℓ → (∃ h ∈ 𝒮 ℓ, (h : ℍ[ℚ, a, b] ⊗[ℚ] FiniteAdeleRing (𝓞 ℚ) ℚ) = y ⊗ₜ[ℚ] (1 : FiniteAdeleRing (𝓞 ℚ) ℚ)) → ∃! x, x ∈ S ∧ ∃ u : ℍ[ℚ, a, b], IsUnitOf R u ∧ nrd u = 1 ∧ u * x = y) ∧ (unif.heckePoints ℓ hℓ).map (fun g => (g : Matrix (Fin 2) (Fin 2) ℝ)) = S.val.map ι bcPlace : Place (AlgebraicClosure ℚ) Fbar → Place ℂ Fc mem_bcPlace_iff : ∀ (P : Place (AlgebraicClosure ℚ) Fbar) (x : Fbar), toC x ∈ (bcPlace P).toValuationSubring ↔ x ∈ P.toValuationSubring corrBar : ∀ ℓ : ℕ, ℓ.Prime → (Divisor (AlgebraicClosure ℚ) Fbar →+ Divisor (AlgebraicClosure ℚ) Fbar) corr_mapDomain : ∀ (ℓ : ℕ) (hℓ : ℓ.Prime) (D : Divisor (AlgebraicClosure ℚ) Fbar), unif.corr ℓ hℓ (Finsupp.mapDomain bcPlace D) = Finsupp.mapDomain bcPlace (corrBar ℓ hℓ D) heckePic0 : ∀ ℓ : ℕ, ℓ.Prime → (Pic0 (AlgebraicClosure ℚ) Fbar →+ Pic0 (AlgebraicClosure ℚ) Fbar) heckePic0_mk : ∀ (ℓ : ℕ) (hℓ : ℓ.Prime) (D : Divisor.degZero (K := AlgebraicClosure ℚ) (F := Fbar)) (hD : corrBar ℓ hℓ (D : Divisor (AlgebraicClosure ℚ) Fbar) ∈ Divisor.degZero (K := AlgebraicClosure ℚ) (F := Fbar)), heckePic0 ℓ hℓ (Pic0.mk D) = Pic0.mk ⟨corrBar ℓ hℓ (D : Divisor (AlgebraicClosure ℚ) Fbar), hD⟩ heckePic0_comm : ∀ (ℓ ℓ' : ℕ) (hℓ : ℓ.Prime) (hℓ' : ℓ'.Prime), (heckePic0 ℓ hℓ).comp (heckePic0 ℓ' hℓ') = (heckePic0 ℓ' hℓ').comp (heckePic0 ℓ hℓ) gal_smul_heckePic0 : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (ℓ : ℕ) (hℓ : ℓ.Prime) (c : Pic0 (AlgebraicClosure ℚ) Fbar), gal σ • heckePic0 ℓ hℓ c = heckePic0 ℓ hℓ (gal σ • c) finite_torsion : ∀ n : ℕ, 0 < n → Finite (Pic0.torsion (AlgebraicClosure ℚ) Fbar n) finiteLevel_torsion : ∀ n : ℕ, 0 < n → ∃ L : IntermediateField ℚ (AlgebraicClosure ℚ), FiniteDimensional ℚ L ∧ ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, (∀ y ∈ L, σ y = y) → ∀ c : Pic0 (AlgebraicClosure ℚ) Fbar, c ∈ Pic0.torsion (AlgebraicClosure ℚ) Fbar n → gal σ • c = c attribute [instance] ShimuraCurveModel.instFieldF ShimuraCurveModel.instAlgebraF ShimuraCurveModel.instFieldFbar ShimuraCurveModel.instAlgebraFbar ShimuraCurveModel.instFieldFc ShimuraCurveModel.instAlgebraFc ShimuraCurveModel.isCurveOverF ShimuraCurveModel.essFiniteTypeF ShimuraCurveModel.isCurveOverBar ShimuraCurveModel.essFiniteTypeBar ShimuraCurveModel.isCurveOverC ShimuraCurveModel.essFiniteTypeC namespace ShimuraCurveModel variable {R : Submodule ℤ ℍ[ℚ, a, b]} {ι : ℍ[ℚ, a, b] →ₐ[ℚ] Matrix (Fin 2) (Fin 2) ℝ} {𝒮 : ℕ → Set (ℍ[ℚ, a, b] ⊗[ℚ] FiniteAdeleRing (𝓞 ℚ) ℚ)ˣ} abbrev J (M : ShimuraCurveModel R ι 𝒮) : Type := Pic0 (AlgebraicClosure ℚ) M.Fbar def heckeGenJ (M : ShimuraCurveModel R ι 𝒮) (ℓ : Nat.Primes) : Module.End ℤ M.J := (M.heckePic0 ℓ ℓ.prop).toIntLinearMap @[simp] theorem heckeGenJ_apply (M : ShimuraCurveModel R ι 𝒮) (ℓ : Nat.Primes) (c : M.J) : M.heckeGenJ ℓ c = M.heckePic0 ℓ ℓ.prop c := rfl theorem heckeGenJ_comm (M : ShimuraCurveModel R ι 𝒮) (ℓ ℓ' : Nat.Primes) : M.heckeGenJ ℓ * M.heckeGenJ ℓ' = M.heckeGenJ ℓ' * M.heckeGenJ ℓ := by apply LinearMap.ext intro c exact DFunLike.congr_fun (M.heckePic0_comm ℓ ℓ' ℓ.prop ℓ'.prop) c theorem isMulCommutative_adjoin_heckeGenJ (M : ShimuraCurveModel R ι 𝒮) : IsMulCommutative (Algebra.adjoin ℤ (Set.range M.heckeGenJ)) := Algebra.isMulCommutative_adjoin ℤ (by rintro _ ⟨ℓ, rfl⟩ _ ⟨ℓ', rfl⟩ exact M.heckeGenJ_comm ℓ ℓ') @[reducible] def commRingAdjoinJ (M : ShimuraCurveModel R ι 𝒮) : CommRing ↥(Algebra.adjoin ℤ (Set.range M.heckeGenJ)) := { (inferInstance : Ring ↥(Algebra.adjoin ℤ (Set.range M.heckeGenJ))) with mul_comm := M.isMulCommutative_adjoin_heckeGenJ.is_comm.comm } def heckeJAux (M : ShimuraCurveModel R ι 𝒮) : HeckeAlg →ₐ[ℤ] (Algebra.adjoin ℤ (Set.range M.heckeGenJ) : Subalgebra ℤ (Module.End ℤ M.J)) := letI : CommSemiring ↥(Algebra.adjoin ℤ (Set.range M.heckeGenJ)) := M.commRingAdjoinJ.toCommSemiring MvPolynomial.aeval fun ℓ => (⟨M.heckeGenJ ℓ, Algebra.subset_adjoin (Set.mem_range_self ℓ)⟩ : Algebra.adjoin ℤ (Set.range M.heckeGenJ)) def heckeJ (M : ShimuraCurveModel R ι 𝒮) : HeckeAlg →+* Module.End ℤ M.J := ((Algebra.adjoin ℤ (Set.range M.heckeGenJ)).val.comp M.heckeJAux).toRingHom theorem heckeJ_mem_adjoin (M : ShimuraCurveModel R ι 𝒮) (x : HeckeAlg) : M.heckeJ x ∈ Algebra.adjoin ℤ (Set.range M.heckeGenJ) := (M.heckeJAux x).2 theorem heckeJ_heckeGen (M : ShimuraCurveModel R ι 𝒮) (ℓ : Nat.Primes) : M.heckeJ (heckeGen ℓ) = M.heckeGenJ ℓ := by letI : CommSemiring ↥(Algebra.adjoin ℤ (Set.range M.heckeGenJ)) := M.commRingAdjoinJ.toCommSemiring show ((M.heckeJAux (heckeGen ℓ) : Module.End ℤ M.J)) = _ rw [heckeJAux, heckeGen, MvPolynomial.aeval_X] theorem heckeJ_heckeGen_apply (M : ShimuraCurveModel R ι 𝒮) (ℓ : Nat.Primes) (c : M.J) : M.heckeJ (heckeGen ℓ) c = M.heckePic0 ℓ ℓ.prop c := by rw [heckeJ_heckeGen] rfl def galJ (M : ShimuraCurveModel R ι 𝒮) : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) →* AddAut M.J := (DistribMulAction.toAddAut' (SemilinearAut (AlgebraicClosure ℚ) M.Fbar) M.J).comp M.gal @[simp] theorem galJ_apply (M : ShimuraCurveModel R ι 𝒮) (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (c : M.J) : M.galJ σ c = M.gal σ • c := rfl theorem J_comm (M : ShimuraCurveModel R ι 𝒮) : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : HeckeAlg) (c : M.J), M.galJ σ (M.heckeJ x c) = M.heckeJ x (M.galJ σ c) := by intro σ x c let g : Module.End ℤ M.J := (M.galJ σ).toAddMonoidHom.toIntLinearMap have hle : Algebra.adjoin ℤ (Set.range M.heckeGenJ) ≤ Subalgebra.centralizer ℤ {g} := by rw [Algebra.adjoin_le_iff] rintro _ ⟨ℓ, rfl⟩ rw [SetLike.mem_coe, Subalgebra.mem_centralizer_iff] intro b hb rw [Set.mem_singleton_iff] at hb subst hb apply LinearMap.ext intro s exact M.gal_smul_heckePic0 σ ℓ ℓ.prop s have h := (Subalgebra.mem_centralizer_iff ℤ).1 (hle (M.heckeJ_mem_adjoin x)) g (Set.mem_singleton g) exact LinearMap.congr_fun h c def signTwist (ε : Nat.Primes → ℤˣ) : HeckeAlg →+* HeckeAlg := (MvPolynomial.aeval fun ℓ => ((ε ℓ : ℤ) : HeckeAlg) * MvPolynomial.X ℓ).toRingHom @[simp] theorem signTwist_heckeGen (ε : Nat.Primes → ℤˣ) (ℓ : Nat.Primes) : signTwist ε (heckeGen ℓ) = ((ε ℓ : ℤ) : HeckeAlg) * heckeGen ℓ := by show (MvPolynomial.aeval fun ℓ => ((ε ℓ : ℤ) : HeckeAlg) * MvPolynomial.X ℓ) (MvPolynomial.X ℓ) = _ rw [MvPolynomial.aeval_X] rfl abbrev heckeJSigned (M : ShimuraCurveModel R ι 𝒮) (ε : Nat.Primes → ℤˣ) : HeckeAlg →+* Module.End ℤ M.J := M.heckeJ.comp (signTwist ε) theorem heckeJSigned_heckeGen_apply (M : ShimuraCurveModel R ι 𝒮) (ε : Nat.Primes → ℤˣ) (ℓ : Nat.Primes) (c : M.J) : M.heckeJSigned ε (heckeGen ℓ) c = (ε ℓ : ℤ) • M.heckePic0 ℓ ℓ.prop c := by rw [heckeJSigned, RingHom.comp_apply, signTwist_heckeGen, map_mul, map_intCast, Module.End.mul_apply, heckeJ_heckeGen_apply, Module.End.intCast_apply] theorem J_comm_signed (M : ShimuraCurveModel R ι 𝒮) (ε : Nat.Primes → ℤˣ) : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : HeckeAlg) (c : M.J), M.galJ σ (M.heckeJSigned ε x c) = M.heckeJSigned ε x (M.galJ σ c) := fun σ x c => M.J_comm σ (signTwist ε x) c theorem finiteLevel_J (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (hp : 0 < p) : ∃ L : IntermediateField ℚ (AlgebraicClosure ℚ), FiniteDimensional ℚ L ∧ ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, (∀ y ∈ L, σ y = y) → ∀ t : M.J, p • t = 0 → M.galJ σ t = t := by obtain ⟨L, hL, h⟩ := M.finiteLevel_torsion p hp refine ⟨L, hL, fun σ hσ t ht => h σ hσ t (Pic0.mem_torsion.2 ?_)⟩ rw [natCast_zsmul] exact ht def GoodReductionOutside (M : ShimuraCurveModel R ι 𝒮) (p S : ℕ) : Prop := (∀ (ℓ : ℕ), ℓ.Prime → ¬ ℓ ∣ S → ∀ B : ValuationSubring (AlgebraicClosure ℚ), B.LiesOverPrime ℓ → ∀ σ ∈ B.inertiaSubgroupIn ℚ, ∀ t : M.J, p • t = 0 → M.galJ σ t = t) ∧ (∀ (ℓ : ℕ) (hℓ : ℓ.Prime), ¬ ℓ ∣ S → ∀ B : ValuationSubring (AlgebraicClosure ℚ), B.LiesOverPrime ℓ → ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, B.IsFrobeniusAt σ ℓ → ∀ t : M.J, p • t = 0 → M.galJ σ (M.galJ σ t) - M.heckeJ (heckeGen ⟨ℓ, hℓ⟩) (M.galJ σ t) + ℓ • t = 0) abbrev Tors (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : Type := ↥(Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p) theorem torsion_pTorsion (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : ∀ t : M.Tors p, p • t = 0 := by intro t have h : (p : ℤ) • (t : M.J) = 0 := Pic0.mem_torsion.1 t.2 apply Subtype.ext rw [AddSubmonoidClass.coe_nsmul, ZeroMemClass.coe_zero, ← Nat.cast_smul_eq_nsmul ℤ] exact h instance instFiniteTors (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) [Fact p.Prime] : Finite (M.Tors p) := M.finite_torsion p (Fact.out : p.Prime).pos def restrictTors (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : Module.End ℤ M.J →+* Module.End ℤ (M.Tors p) where toFun f := f.restrict (p := (Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p).toIntSubmodule) (q := (Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p).toIntSubmodule) (fun x hx => by change x ∈ Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p at hx change f x ∈ Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p rw [Pic0.mem_torsion] at hx ⊢ rw [← map_zsmul, hx, map_zero]) map_one' := by apply LinearMap.ext; intro t; rfl map_mul' f g := by apply LinearMap.ext; intro t; rfl map_zero' := by apply LinearMap.ext; intro t; rfl map_add' f g := by apply LinearMap.ext; intro t; rfl @[simp] theorem coe_restrictTors_apply (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (f : Module.End ℤ M.J) (t : M.Tors p) : ((M.restrictTors p f t : M.Tors p) : M.J) = f t := rfl def torsionHecke (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : HeckeAlg →+* Module.End ℤ (M.Tors p) := (M.restrictTors p).comp M.heckeJ @[simp] theorem coe_torsionHecke_apply (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (x : HeckeAlg) (t : M.Tors p) : ((M.torsionHecke p x t : M.Tors p) : M.J) = M.heckeJ x t := rfl theorem coe_torsionHecke_heckeGen_apply (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (ℓ : Nat.Primes) (t : M.Tors p) : ((M.torsionHecke p (heckeGen ℓ) t : M.Tors p) : M.J) = M.heckePic0 ℓ ℓ.prop t := by rw [coe_torsionHecke_apply, heckeJ_heckeGen_apply] def torsionGal (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) →* AddAut (M.Tors p) := (DistribMulAction.toAddAut' (SemilinearAut (AlgebraicClosure ℚ) M.Fbar) (M.Tors p)).comp M.gal @[simp] theorem coe_torsionGal_apply (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (t : M.Tors p) : ((M.torsionGal p σ t : M.Tors p) : M.J) = M.galJ σ (t : M.J) := rfl theorem torsion_comm (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : ∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (x : HeckeAlg) (t : M.Tors p), M.torsionGal p σ (M.torsionHecke p x t) = M.torsionHecke p x (M.torsionGal p σ t) := by intro σ x t apply Subtype.ext rw [coe_torsionGal_apply, coe_torsionHecke_apply, coe_torsionHecke_apply, coe_torsionGal_apply] exact M.J_comm σ x t theorem torsion_finiteLevel (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) [Fact p.Prime] : ∃ L : IntermediateField ℚ (AlgebraicClosure ℚ), FiniteDimensional ℚ L ∧ ∀ σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ, (∀ y ∈ L, σ y = y) → M.torsionGal p σ = 1 := by obtain ⟨L, hL, h⟩ := M.finiteLevel_torsion p (Fact.out : p.Prime).pos refine ⟨L, hL, fun σ hσ => AddEquiv.ext fun t => Subtype.ext ?_⟩ exact h σ hσ t t.2 def IsTorsionOf (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) (T : Type) [AddCommGroup T] (hecke : HeckeAlg →+* Module.End ℤ T) (gal : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) →* AddAut T) : Prop := ∃ e : T →+ M.J, Function.Injective e ∧ e.range = Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p ∧ (∀ (σ : AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ) (t : T), e (gal σ t) = M.gal σ • e t) ∧ ∀ (ℓ : Nat.Primes) (t : T), e (hecke (heckeGen ℓ) t) = M.heckePic0 ℓ ℓ.prop (e t) def RealizesJPrime (M : ShimuraCurveModel R ι 𝒮) {p : ℕ} {E V : Type} [Fintype E] [Fintype V] [DecidableEq V] {A : ValuationSubring (AlgebraicClosure ℚ)} (Dm : JPrimeTorsionDatum p E V A) : Prop := M.IsTorsionOf p Dm.T Dm.hecke Dm.gal def RealizesTwoPlace (M : ShimuraCurveModel R ι 𝒮) {p : ℕ} {E₁ V₁ E₂ V₂ : Type} [Fintype E₁] [Fintype V₁] [DecidableEq V₁] [Fintype E₂] [Fintype V₂] [DecidableEq V₂] {D₁ : DegeneracyData E₁ V₁} {H₁ : HeckeData D₁} {D₂ : DegeneracyData E₂ V₂} {H₂ : HeckeData D₂} {A₁ A₂ : ValuationSubring (AlgebraicClosure ℚ)} (𝒥 : TwoPlaceTorsionDatum p D₁ H₁ D₂ H₂ A₁ A₂) : Prop := M.IsTorsionOf p 𝒥.T 𝒥.hecke 𝒥.gal theorem isTorsionOf_self (M : ShimuraCurveModel R ι 𝒮) (p : ℕ) : M.IsTorsionOf p (M.Tors p) (M.torsionHecke p) (M.torsionGal p) := by refine ⟨(Pic0.torsion (AlgebraicClosure ℚ) M.Fbar p).subtype, Subtype.val_injective, AddSubgroup.range_subtype _, fun σ t => ?_, fun ℓ t => ?_⟩ · exact M.coe_torsionGal_apply p σ t · exact M.coe_torsionHecke_heckeGen_apply p ℓ t end ShimuraCurveModel end CerednikDrinfeld end
Statements phrased using this module (264)
- Shimura curve model with toric uniformisations at q and q'
CerednikDrinfeld.exists_shimuraCurveModel_goodReduction_and_toricUniformization_pair_of_six_mul_dvd_of_neZero10,423 below · depth 16 - Indefinite quaternion algebra ramified at q,q' with Eichler order
QuaternionAlgebra.exists_isIndefiniteRamifiedExactlyAt_isMaximalOrder_isEichlerOrder_splitting38 below · depth 16 - Shimura curve model with period uniformisation at both q,q'
CerednikDrinfeld.exists_shimuraCurveModel_goodReduction_and_periodUniformization_pair_of_six_mul_dvd_of_neZero10,403 below · depth 17 - Čerednik–Drinfeld equivariant uniformisation at both ramified primes
CerednikDrinfeld.exists_shimuraCurveModel_goodReduction_and_equivariantUniformization_pair_of_six_mul_dvd_of_neZero10,401 below · depth 18 - Conorm from the Shimura Jacobian into Pic⁰ over a completed algebraic closure
CerednikDrinfeld.ShimuraCurveModel.exists_equivariant_conorm_pic0_constantFieldExtension260 below · depth 19 - Quotient-graph presentation of the Mumford side at q'
CerednikDrinfeld.exists_quotientPresentation_classSet_hecke_of_descentIntertwining_one_zero3,953 below · depth 19 - Quotient-graph presentation at q with class set and Hecke
CerednikDrinfeld.exists_quotientPresentation_classSet_hecke_of_descentIntertwining_zero_one3,951 below · depth 19 - Shimura curve model, Hecke tower and Čerednik interchange pair
CerednikDrinfeld.exists_shimuraCurveModel_heckeTower_and_interchangeData_pair_of_six_mul_dvd_of_neZero10,249 below · depth 19 - Symmetry group with compatible semilinear actions over q'
CerednikDrinfeld.exists_symmetryGroup_semilinearAction_invariantFieldOf_of_descentIntertwining_one_zero43 below · depth 19 - Symmetry group of the Čerednik–Drinfeld tower at q
CerednikDrinfeld.exists_symmetryGroup_semilinearAction_invariantFieldOf_of_descentIntertwining_zero_one39 below · depth 19 - Invariant fields of the level groups at q' are curves
CerednikDrinfeld.isCurveOver_invariantFieldOf_levelGroups_of_descentIntertwining_one_zero3,838 below · depth 19 - Mumford fields of the level groups are curves over C
CerednikDrinfeld.isCurveOver_invariantFieldOf_levelGroups_of_descentIntertwining_zero_one3,838 below · depth 19 - Level-group vertex stabilisers have order prime to q'
CerednikDrinfeld.valuation_natCard_stabilizer_vertex_levelGroups_eq_one_of_descentIntertwining_one_zero3,792 below · depth 19 - Vertex stabilisers of the level groups have order prime to q
CerednikDrinfeld.valuation_natCard_stabilizer_vertex_levelGroups_eq_one_of_descentIntertwining_zero_one3,792 below · depth 19 - Atkin–Lehner relations for the Čerednik level groups
CerednikDrinfeld.CosetGraph.atkinLehner_relations_levelGroups_place38 below · depth 20 - Class-set dictionary for the Bruhat–Tits quotient at r
CerednikDrinfeld.CosetGraph.exists_quot_equiv_classSet_shift_forget_of_mumfordSideFrame3,794 below · depth 20 - Mumford frame at r: tame stabilisers, finite quotients, class sets
CerednikDrinfeld.CosetGraph.finite_stabilizer_and_finite_quot_and_exists_equiv_classSet_of_mumfordSideFrame3,783 below · depth 20 - Commuting Atkin–Lehner involutions from Čerednik descent data
CerednikDrinfeld.HeckeTower.atkinLehner_involutive_comm_galois_of_descentIntertwining_one_zero39 below · depth 20 - Degeneracy maps intertwine Galois and Atkin–Lehner actions
CerednikDrinfeld.HeckeTower.smul_phi_eq_phi_smul_of_descentIntertwining_one_zero39 below · depth 20 - Realisation-independent permutation actions on quotients of the Bruhat–Tits tree
CerednikDrinfeld.exists_perm_quotVert_quotEdge_realisation_independent_of_descentIntertwining_one_zero3,952 below · depth 20 - Realisation-independent permutation actions on Bruhat–Tits tree quotients
CerednikDrinfeld.exists_perm_quotVert_quotEdge_realisation_independent_of_descentIntertwining_zero_one3,950 below · depth 20 - Čerednik interchange at q and q' for X^{qq'}₀(N)
CerednikDrinfeld.exists_shimuraCurveModel_heckeTower_and_cerednikInterchange_pair_of_six_mul_dvd_of_neZero10,236 below · depth 20 - Fixing the Δ-invariant field forces ρ(g)∈ρ(Δ)
CerednikDrinfeld.apply_mem_map_of_forall_smul_invariantFieldOf_eq_of_relIndex_ne_zero_of_frame3,899 below · depth 21 - Elements fixing the Mumford invariant field lie in ρ(Δ)
CerednikDrinfeld.apply_mem_map_of_forall_smul_invariantFieldOf_eq_of_relIndex_ne_zero_of_frame_one_zero3,899 below · depth 21 - Čerednik descent intertwining: base level implies all levels
CerednikDrinfeld.descentIntertwining_of_base_one_zero3,911 below · depth 21 - Čerednik–Drinfeld descent intertwining: all levels from the base level
CerednikDrinfeld.descentIntertwining_of_base_zero_one3,910 below · depth 21 - Čerednik interchange and Hecke tower for X^{qq'}₀(N)
CerednikDrinfeld.exists_shimuraCurveModel_heckeTower_and_cerednikInterchangeBase_pair_of_six_mul_dvd_of_neZero10,217 below · depth 21 - Descent intertwining base above q' from an oriented moduli witness
CerednikDrinfeld.exists_descentIntertwiningBase_of_rigidOrientedModuliWitness_one_zero_of_two_mul_dvd_of_neZero9,893 below · depth 22 - Descent intertwining base at q from a rigid oriented moduli witness
CerednikDrinfeld.exists_descentIntertwiningBase_of_rigidOrientedModuliWitness_zero_one_of_two_mul_dvd_of_neZero9,892 below · depth 22 - Rigid oriented moduli witness, Eichler–Shimura relation, Hecke tower
CerednikDrinfeld.exists_shimuraCurveModel_rigidOrientedModuliWitness_heckeTower_of_six_mul_dvd_of_neZero6,271 below · depth 22 - Good reduction outside Dp for the Shimura curve Jacobian
CerednikDrinfeld.ShimuraCurveModel.goodReductionOutside_of_rigidModuliWitness_heckeTower_of_two_mul_dvd1,616 below · depth 23 - Čerednik descent datum at q' from a moduli tower witness
CerednikDrinfeld.exists_descentIntertwiningBase_of_moduliTowerWitness_one_zero_of_two_mul_dvd9,818 below · depth 23 - Descent intertwining datum at q from a moduli tower witness
CerednikDrinfeld.exists_descentIntertwiningBase_of_moduliTowerWitness_zero_one_of_two_mul_dvd9,817 below · depth 23 - Canonical model, moduli witness and Hecke tower for X₀^{qq'}(N)
CerednikDrinfeld.exists_shimuraCurveModel_rigidModuliWitness_heckeTower_of_six_mul_dvd_of_neZero6,040 below · depth 23 - Finiteness of Pic⁰[n] and finite level of its Galois action
AlgebraicCurve.finite_pic0Torsion_and_exists_intermediateField_smul_eq_of_descent246 below · depth 24 - Complex uniformisation of the quaternionic moduli curve with correspondences
CerednikDrinfeld.QM.exists_uniformizedHeckeCurve_bcPlace_corr_eq_correspondence_of_two_mul_dvd5,820 below · depth 24 - Eichler–Shimura congruence on J[p] for a Shimura curve
CerednikDrinfeld.ShimuraCurveModel.eichlerShimura_of_rigidModuliWitness_of_two_mul_dvd1,604 below · depth 24 - Inertia fixes p-torsion of the Shimura curve Jacobian
CerednikDrinfeld.ShimuraCurveModel.galJ_eq_self_of_mem_inertiaSubgroupIn_of_moduliWitness_of_two_mul_dvd762 below · depth 24 - Mumford embedding from Čerednik–Drinfeld uniformisation
CerednikDrinfeld.exists_mumfordEmbedding_of_cerednikDrinfeld_uniformization_one_zero_of_two_mul_dvd8,616 below · depth 24 - Mumford embedding from Čerednik–Drinfeld uniformisation
CerednikDrinfeld.exists_mumfordEmbedding_of_cerednikDrinfeld_uniformization_zero_one_of_two_mul_dvd8,615 below · depth 24 - mathfrak Pᵣ²⊆ rΛ for maximal orders, indefinite ramified case
QuaternionAlgebra.IsMaximalOrder.exists_mul_eq_natCast_smul_of_dvd_nrd_of_dvd_nrd_of_isIndefiniteRamifiedExactlyAt12 below · depth 24 - Index of Λ-stable subgroups between ℓΛ and Λ
QuaternionAlgebra.IsMaximalOrder.relIndex_leftIdeal_mem_of_ne_of_ne14 below · depth 24 - Hecke correspondences on the uniformised fake-elliptic moduli curve
CerednikDrinfeld.QM.exists_uniformizedHeckeCurve_bcPlace_corr_single_eq_sum_of_two_mul_dvd5,502 below · depth 25 - Constant reduction of a quaternionic Shimura curve at ℓ
CerednikDrinfeld.ShimuraCurveModel.ModuliWitnessD.exists_constantReduction_of_isGoodReductionModel_of_curveModel823 below · depth 25 - Inertia fixes p-torsion of a Shimura curve Jacobian
CerednikDrinfeld.ShimuraCurveModel.galJ_eq_self_of_mem_inertiaSubgroupIn_of_smoothOfRelativeDimension_one735 below · depth 25 - Eichler–Shimura congruence, point by point, on the special fibre
CerednikDrinfeld.ShimuraCurveModel.mapDomain_placeMap_corrBar_single_eq_of_frobenius_of_two_mul_dvd1,384 below · depth 25 - Central, odd and even elements of the away-unit group
CerednikDrinfeld.awayUnits_central_odd_even_feed_one_zero_of_two_mul_dvd34 below · depth 25 - Parity of vdet describes Γ₂ at all levels
CerednikDrinfeld.awayUnits_central_odd_even_feed_zero_one_of_two_mul_dvd34 below · depth 25 - Smooth, geometrically connected generic fibres of the coarse models
CerednikDrinfeld.coarseModuli_smooth_geometricallyConnected_feed_one_zero_of_two_mul_dvd5,772 below · depth 25 - Smoothness and geometric connectedness of the generic fibres
CerednikDrinfeld.coarseModuli_smooth_geometricallyConnected_feed_zero_one_of_two_mul_dvd5,772 below · depth 25 - Discreteness and cocompactness of Γ₁ on the lattice tree
CerednikDrinfeld.evenAwayUnits_finite_stabilizer_finite_orbits_feed_one_zero_of_two_mul_dvd3,794 below · depth 25 - Finite stabilisers and finitely many orbits for Γ₂ on the tree
CerednikDrinfeld.evenAwayUnits_finite_stabilizer_finite_orbits_feed_zero_one_of_two_mul_dvd3,793 below · depth 25 - Tame vertex stabilisers for Γ₁ on the q' side
CerednikDrinfeld.evenAwayUnits_v_card_stabilizer_eq_one_one_zero_of_two_mul_dvd3,793 below · depth 25 - Tame vertex stabilisers for the away-unit groups Γ₂
CerednikDrinfeld.evenAwayUnits_v_card_stabilizer_eq_one_zero_one_of_two_mul_dvd3,793 below · depth 25 - Virtual torsion-freeness of the even away-unit groups
CerednikDrinfeld.evenAwayUnits_virtuallyTorsionFree_feed_one_zero_of_two_mul_dvd37 below · depth 25 - Virtually torsion-free even away-unit groups at q
CerednikDrinfeld.evenAwayUnits_virtuallyTorsionFree_feed_zero_one_of_two_mul_dvd37 below · depth 25 - Mumford embedding of the Shimura tower over ℚ_{q'}
CerednikDrinfeld.mumfordEmbedding_assembly_of_functionField_equiv_one_zero_of_two_mul_dvd5,797 below · depth 25 - Assembling the Mumford embedding from the function-field identification
CerednikDrinfeld.mumfordEmbedding_assembly_of_functionField_equiv_zero_one_of_two_mul_dvd5,797 below · depth 25 - Freeness of rank one over Λ/rΛ for faithful r⁴-modules
QuaternionAlgebra.IsMaximalOrder.exists_generator_of_natCard_eq_pow_four_of_isIndefiniteRamifiedExactlyAt16 below · depth 25 - Left ideal of index ℓ² in a maximal quaternion order
QuaternionAlgebra.IsMaximalOrder.exists_submodule_le_mul_mem_relIndex_eq_sq29 below · depth 25 - Square of the ramified prime of a maximal order is rΛ
QuaternionAlgebra.IsMaximalOrder.span_mul_ramifiedPrime_eq_of_isIndefiniteRamifiedExactlyAt14 below · depth 25 - Reduction of a maximal quaternion order modulo ℓ
QuaternionAlgebra.exists_linearMap_matrix_zmod_of_isMaximalOrder_of_ne13 below · depth 25 - Constant field extension from ℚ̄ to ℂ with base change of places
AlgebraicCurve.exists_constantFieldExtension_place_of_isAlgClosed48 below · depth 26 - Tame finite vertex stabilisers on the Bruhat–Tits tree
CerednikDrinfeld.CosetGraph.finite_stabilizer_vertex_and_not_dvd_natCard_of_mumfordSideFrame3,792 below · depth 26 - Complex uniformisation of the fake elliptic moduli curve
CerednikDrinfeld.QM.exists_period_algEquiv_pt_iff_bcPlace_of_uniformizedHeckeCurve_of_two_mul_dvd5,470 below · depth 26 - Function field embedding into the Čerednik–Drinfeld model over C
CerednikDrinfeld.exists_ringHom_functionField_pullback_completion_of_moduliTowerWitness_one_zero_of_two_mul_dvd5,777 below · depth 26 - Equivariant embedding of ̄ F into the completed function field
CerednikDrinfeld.exists_ringHom_functionField_pullback_completion_of_moduliTowerWitness_zero_one_of_two_mul_dvd5,777 below · depth 26 - Complex uniformisation of the Shimura curve of an Eichler order
CerednikDrinfeld.exists_uniformizedHeckeCurve_fuchsianGroup85 below · depth 26 - Mumford embedding read off from the function-field identification
CerednikDrinfeld.mumfordEmbedding_readoff_of_functionField_equiv_of_ringHom_one_zero_of_two_mul_dvd894 below · depth 26 - Reading off the Mumford embedding from Čerednik–Drinfeld data
CerednikDrinfeld.mumfordEmbedding_readoff_of_functionField_equiv_of_ringHom_zero_one_of_two_mul_dvd894 below · depth 26 - Determinant valuation of a split quaternion unit equals v_q(nrd)
CerednikDrinfeld.vdet_unitsMap_eq_padicValRat_nrd5 below · depth 26 - Transport of a uniformised Hecke curve along a ℂ-algebra isomorphism
ModularCurve.UniformizedHeckeCurve.exists_transport_of_algEquiv0 below · depth 26 - Real splitting: indefinite rational quaternion algebra embeds in M₂(ℝ)
QuaternionAlgebra.IsIndefiniteRamifiedExactlyAt.exists_algHom_matrix_injective1 below · depth 26 - A quaternion algebra ramified at a finite place is a division algebra
QuaternionAlgebra.IsIndefiniteRamifiedExactlyAt.isUnit_of_ne_zero0 below · depth 26 - Reduced norm divisible by r² forces h ∈ rΛ
QuaternionAlgebra.IsMaximalOrder.exists_eq_natCast_smul_of_two_le_padicValRat_nrd_of_isIndefiniteRamifiedExactlyAt12 below · depth 26 - Principal two-sided generator at a ramified prime
QuaternionAlgebra.IsMaximalOrder.exists_generator_ramifiedPrime_of_isIndefiniteRamifiedExactlyAt49 below · depth 26 - Eichler orders of squarefree level inside a maximal order
QuaternionAlgebra.IsMaximalOrder.exists_le_isEichlerOrder_of_isIndefiniteRamifiedExactlyAt_of_squarefree31 below · depth 26 - Maximal order has element with nrd exactly divisible by r
QuaternionAlgebra.IsMaximalOrder.exists_mem_dvd_nrd_not_sq_dvd_nrd_of_isIndefiniteRamifiedExactlyAt13 below · depth 26 - Local splitting carrying a maximal order to integral matrices
QuaternionAlgebra.IsMaximalOrder.exists_ringEquiv_mem_localBox_iff_of_isIndefiniteRamifiedExactlyAt_of_prime12 below · depth 26 - Left ideals between rΛ and a maximal order at a ramified prime
QuaternionAlgebra.IsMaximalOrder.leftIdeal_eq_or_eq_or_eq_of_isIndefiniteRamifiedExactlyAt_of_eq_or_eq14 below · depth 26 - An away-from-v unit of reduced norm r
CerednikDrinfeld.CosetGraph.exists_mem_awayUnits_nrd_eq_of_le_isMaximalOrder46 below · depth 27 - Level-N points as a Λ-stable overlattice of index N²
CerednikDrinfeld.QM.FakeEllipticCurve.exists_submodule_forall_mem_iff_factorsThrough_lev_of_pointEquiv0 below · depth 27 - Isomorphism of level-N fake elliptic curves as lattice homothety
CerednikDrinfeld.QM.FakeEllipticCurve.iso_iff_exists_smul_latt_eq_and_smul_lattLev_eq_of_pointEquiv3 below · depth 27 - Atkin–Lehner lift fixes the generic point of the geometric fibre
CerednikDrinfeld.QM.IsCoarseModuli.base_genericPoint_eq_of_comp_fst_eq_fst_comp_of_isAtkinLehnerQuotient_of_not_dvd765 below · depth 27 - Lifted degeneracy maps are dominant on geometric generic fibres
CerednikDrinfeld.QM.IsCoarseModuliT.base_genericPoint_eq_of_comp_fst_eq_fst_comp_degeneracy818 below · depth 27 - Fake elliptic curves near a period lie in one algebraic family
CerednikDrinfeld.QM.IsFineModuli.forall_exists_algebraicFamily_isPullback_smul_latt_eq_of_analytic4,810 below · depth 27 - Every τ in H is a quaternionic period
CerednikDrinfeld.QM.IsFineModuli.forall_exists_smul_latt_eq_qmPeriodLattice_of_isProper_of_analytic4,809 below · depth 27 - Function field comparison for the fake elliptic curve moduli curve
CerednikDrinfeld.QM.exists_algEquiv_realize_eventuallyEq_mem_pt_iff_of_periodMap_of_meromorphic_of_two_mul_dvd120 below · depth 27 - Base change to ℂ of a curve model, compatibly with places
CerednikDrinfeld.QM.exists_curveModel_complex_pointEquivPlace_bcPlace_of_constantFieldExtension82 below · depth 27 - Analytic uniformisation of fake elliptic curves over ℂ
CerednikDrinfeld.QM.exists_latticeMap_pointEquiv_hom_iff_smul_le_analytic314 below · depth 27 - Period map and meromorphic realisation on a Shimura curve
CerednikDrinfeld.QM.exists_periodMap_meromorphicRealization_of_uniformizedHeckeCurve_of_two_mul_dvd5,428 below · depth 27 - Hecke multiset families for Eichler orders and Fuchsian descent
CerednikDrinfeld.exists_heckeFamily_map_orbit_eq_of_isEichlerOrder6 below · depth 27 - Comparison of the two coarse models over the q'-adic completion
CerednikDrinfeld.exists_iso_pullback_completion_of_moduliTowerWitness_one_zero_of_two_mul_dvd5,594 below · depth 27 - The two models agree over the completion at q
CerednikDrinfeld.exists_iso_pullback_completion_of_moduliTowerWitness_zero_one_of_two_mul_dvd5,594 below · depth 27 - Equivariant embedding of ̄ F into K(mathcal X_{0,C})
CerednikDrinfeld.exists_ringHom_functionField_of_iso_pullback_completion_one_zero_of_two_mul_dvd5,768 below · depth 27 - Čerednik–Drinfel'd embedding of ̄ F into K(mathcal X_{0,C})
CerednikDrinfeld.exists_ringHom_functionField_of_iso_pullback_completion_zero_one_of_two_mul_dvd5,768 below · depth 27 - Frobenius parity of the decomposition group action via ψ₀
CerednikDrinfeld.exists_smul_psi_eq_psi_frobenius_pow_iff_parity_of_decompositionSubgroup0 below · depth 27 - Hypotheses of the complex uniformisation for Γ(R,ι)
CerednikDrinfeld.fuchsianGroup_discrete_neg_mem_and_exists_isCompact10 below · depth 27 - Fuchsian groups from rational division quaternion algebras have no cusps
CerednikDrinfeld.not_isCusp_fuchsianGroup_of_forall_isUnit0 below · depth 27 - Raising the level of an Eichler order by one split prime
QuaternionAlgebra.IsEichlerOrder.exists_finiteIdele_meetOrder_isEichlerOrder_mul_of_not_dvd_of_isIndefiniteRamifiedExactlyAt30 below · depth 27 - Level module attached to an Eichler order in a maximal order
QuaternionAlgebra.IsEichlerOrder.exists_levelModule37 below · depth 27 - Normalising a Λ-stable lattice pair as quaternionic period lattices
QuaternionAlgebra.IsEichlerOrder.exists_smul_eq_qmPeriodLattice_pair_of_forall_mulVec_mem60 below · depth 27 - Homothety of paired QM period lattices versus Fuchsian orbits
QuaternionAlgebra.IsEichlerOrder.exists_smul_qmPeriodLattice_pair_eq_iff_exists_fuchsianGroup_smul_eq9 below · depth 27 - Right R-stability versus level modules for quaternionic period lattices
QuaternionAlgebra.IsEichlerOrder.forall_mem_imp_mem_iff_exists_levelModule_qmPeriodLattice_eq31 below · depth 27 - Uniqueness of the level module of an Eichler order
QuaternionAlgebra.IsEichlerOrder.levelModule_unique18 below · depth 27 - Reduced norm ± r attained in a maximal order
QuaternionAlgebra.IsMaximalOrder.exists_mem_nrd_eq_or_eq_neg_of_isIndefiniteRamifiedExactlyAt41 below · depth 27 - A left generator of the ramified prime normalises a maximal order
QuaternionAlgebra.IsMaximalOrder.forall_exists_mul_eq_mul_of_forall_dvd_nrd_iff_of_isIndefiniteRamifiedExactlyAt15 below · depth 27 - Extra level ℓ read as a transversal sublattice of index ℓ²
CerednikDrinfeld.QM.FakeEllipticCurve.ExtraLevel.exists_submodule_forall_mem_iff_factorsThrough_transversal_of_pointEquiv0 below · depth 28 - Pairs over ℂ are isomorphic iff their lattice triples are homothetic
CerednikDrinfeld.QM.FakeEllipticCurve.WithExtraLevel.iso_iff_exists_smul_latt_eq_and_smul_lattLev_eq_and_smul_lattK_eq_of_pointEquiv4 below · depth 28 - Extra levels at ℓ and admissible sublattices of the period lattice
CerednikDrinfeld.QM.FakeEllipticCurve.exists_extraLevel_isLevelIsogeny_sublattice_lattLev_of_pointEquiv762 below · depth 28 - Factoring a norm r^ē r endomorphism through the Atkin–Lehner quotient
CerednikDrinfeld.QM.FakeEllipticCurve.exists_isAtkinLehnerQuotientVia_isIsogenyPair_comp_eq_of_comp_eq_act_of_not_isIsogenyPair811 below · depth 28 - Eichler order of level N inside the centralising quaternion algebra
CerednikDrinfeld.QM.FakeEllipticCurve.exists_isEichlerOrder_forall_mem_awayUnits_iff_forall_exists_smul_mem_preservesLevel_and_exists_isMaximalOrder_inf_eq_of_isPullback_prod79 below · depth 28 - Period lattices of Atkin–Lehner quotients at level N
CerednikDrinfeld.QM.FakeEllipticCurve.exists_smul_latt_lattLev_atkinLehnerQuotient_of_pointEquiv15 below · depth 28 - Non-emptiness: some τ is a fake elliptic period
CerednikDrinfeld.QM.IsFineModuli.exists_exists_smul_latt_eq_qmPeriodLattice_of_analytic4,731 below · depth 28 - Local period chart near a point of the fine moduli curve
CerednikDrinfeld.QM.IsFineModuli.exists_isOpen_injOn_periodChart_of_analytic_of_isEichlerOrder166 below · depth 28 - Local algebraic charts for the quaternionic period map
CerednikDrinfeld.QM.IsFineModuli.forall_exists_algebraicChart_of_periodMap_of_analytic4,811 below · depth 28 - Local algebraic families of fake elliptic curves with extra level ℓ
CerednikDrinfeld.QM.IsFineModuli.forall_exists_algebraicFamily_withExtraLevel_isPullback_smul_latt_eq_of_analytic5,331 below · depth 28 - Properness makes the algebraic period locus closed
CerednikDrinfeld.QM.IsFineModuli.isClosed_setOf_exists_smul_latt_eq_qmPeriodLattice_of_isProper_of_analytic268 below · depth 28 - Openness of the uniformised locus in H
CerednikDrinfeld.QM.IsFineModuli.isOpen_setOf_exists_smul_latt_eq_qmPeriodLattice_of_analytic172 below · depth 28 - Analyticity of place evaluation along the period map
CerednikDrinfeld.QM.analyticAt_evalAt_of_periodMap_of_algebraicChart_of_two_mul_dvd23 below · depth 28 - Meromorphic realisation of the function field along a period map
CerednikDrinfeld.QM.exists_meromorphicRealization_of_periodMap_of_analyticAt_evalAt_of_two_mul_dvd1 below · depth 28 - Complex uniformisation of the level-one fake elliptic moduli curve
CerednikDrinfeld.QM.exists_uniformizedHeckeCurve_place_corr_single_eq_sum_levelOne_of_two_mul_dvd_neZero1,027 below · depth 28 - Real embeddings carry the reduced norm to the determinant
CerednikDrinfeld.det_map_eq_nrd0 below · depth 28 - Discreteness of the Fuchsian group of a rational quaternion order
CerednikDrinfeld.discreteTopology_fuchsianGroup0 below · depth 28 - Finitely many norm-one unit classes of given reduced norm
CerednikDrinfeld.exists_finset_forall_nrd_eq_exists_mul_unit2 below · depth 28 - Finitely many Γ-orbits of fixed points of reduced norm ν
CerednikDrinfeld.exists_finset_forall_smul_eq_of_nrd_eq_of_not_isSquare12 below · depth 28 - Cocompactness of the Fuchsian group of an order in a rational quaternion division algebra
CerednikDrinfeld.exists_isCompact_forall_exists_fuchsianGroup_smul_mem7 below · depth 28 - Elements of the Fuchsian group come from norm-one units
CerednikDrinfeld.exists_isUnitOf_nrd_eq_one_of_mem_fuchsianGroup1 below · depth 28 - Level compatibility of the pinned function-field embedding
CerednikDrinfeld.exists_ringHom_functionField_level_germ_app_degeneracy_eq_of_germ_eq_of_iso_pullback_completion_one_zero_of_two_mul_dvd5,748 below · depth 28 - Degeneracy compatibility of the pinned function-field embedding
CerednikDrinfeld.exists_ringHom_functionField_level_germ_app_degeneracy_eq_of_germ_eq_of_iso_pullback_completion_zero_one_of_two_mul_dvd5,748 below · depth 28 - Atkin–Lehner equivariance of the pinned function-field embedding
CerednikDrinfeld.germ_app_atkinLehner_eq_of_germ_eq_of_iso_pullback_completion_one_zero_of_two_mul_dvd742 below · depth 28 - Atkin–Lehner lifts act on germs through W₀ and W₁
CerednikDrinfeld.germ_app_atkinLehner_eq_of_germ_eq_of_iso_pullback_completion_zero_one_of_two_mul_dvd742 below · depth 28 - Decomposition-group equivariance of the pinned function field embedding
CerednikDrinfeld.germ_app_decomposition_eq_of_germ_eq_of_iso_pullback_completion_one_zero_of_two_mul_dvd25 below · depth 28 - Decomposition-group equivariance of the pinned function-field embedding
CerednikDrinfeld.germ_app_decomposition_eq_of_germ_eq_of_iso_pullback_completion_zero_one_of_two_mul_dvd25 below · depth 28 - Comparison of two germwise meromorphic realisations of function fields
ModularCurve.UniformizedHeckeCurve.exists_algEquiv_realize_eventuallyEq_of_meromorphicAt_of_separatesOrbits119 below · depth 28 - Two periods of a levelled lattice pair lie in one Fuchsian orbit
QuaternionAlgebra.IsEichlerOrder.exists_fuchsianGroup_smul_eq_of_smul_eq_qmPeriodLattice_of_forall_mem_imp_mem41 below · depth 28 - Norm-ℓ elements of an Eichler order meet its prime Hecke set
QuaternionAlgebra.IsEichlerOrder.exists_mem_primeHeckeSet_coe_eq_tmul_one_of_nrd_eq4 below · depth 28 - Norm-r elements of an Eichler order at a ramified prime
QuaternionAlgebra.IsEichlerOrder.exists_nrd_eq_and_forall_exists_isUnitOf_mul_eq_of_isIndefiniteRamifiedExactlyAt55 below · depth 28 - Transversal norm-ℓ elements of an Eichler order, up to norm-one units
QuaternionAlgebra.IsEichlerOrder.exists_nrd_eq_levelIdentity_and_forall_exists_isUnitOf_nrd_eq_one_mul_mul_iff_of_levelIdentity62 below · depth 28 - Γ-stability of uniformised periods with R-level structure
QuaternionAlgebra.IsEichlerOrder.exists_smul_eq_qmPeriodLattice_smul_and_forall_mem_imp_mem_of_mem_fuchsianGroup1 below · depth 28 - Atkin–Lehner unit and the level-N Hecke criterion
QuaternionAlgebra.IsEichlerOrder.exists_units_atkinLehner_qmPeriodLattice_levelModule_iff_exists_mem_levelHeckeUSet87 below · depth 28 - Local Atkin–Lehner element for an Eichler order at ℓ
QuaternionAlgebra.IsEichlerOrder.exists_units_localBox_atkinLehner_of_isIndefiniteRamifiedExactlyAt_of_not_dvd17 below · depth 28 - Norm-ℓ elements of an Eichler order and period sublattices
QuaternionAlgebra.IsEichlerOrder.forall_le_qmPeriodLattice_transversal_iff_exists_mem_nrd_eq61 below · depth 28 - Eichler order locally maximal away from its level
QuaternionAlgebra.IsEichlerOrder.localBox_eq_localBox_of_isMaximalOrder_of_le_of_isIndefiniteRamifiedExactlyAt_of_not_dvd17 below · depth 28 - Every non-zero rational is a reduced norm (indefinite case)
QuaternionAlgebra.IsIndefiniteRamifiedExactlyAt.exists_nrd_eq6 below · depth 28 - Left ideals of an indefinite maximal order are principal
QuaternionAlgebra.IsMaximalOrder.exists_eq_map_mulRight_of_isIndefiniteRamifiedExactlyAt44 below · depth 28 - Norm-one units of a maximal order move level-N modules transitively
QuaternionAlgebra.IsMaximalOrder.exists_isUnitOf_nrd_eq_one_forall_mem_iff_exists_mul_of_levelModule35 below · depth 28 - Finite idèle units of a maximal order with prescribed reduced norms
QuaternionAlgebra.IsMaximalOrder.exists_mem_finiteIdeleStabilizer_forall_nrd_eq_of_isIndefiniteRamifiedExactlyAt27 below · depth 28 - Element of a maximal order irreducible modulo a ramified prime
QuaternionAlgebra.IsMaximalOrder.exists_mem_trd_eq_nrd_eq_forall_sq_sub_mul_add_ne_zero_of_isIndefiniteRamifiedExactlyAt16 below · depth 28 - Lattices with quaternionic multiplication are homothetic to period lattices
QuaternionAlgebra.IsMaximalOrder.exists_smul_eq_qmPeriodLattice_of_forall_mulVec_mem49 below · depth 28
… and 114 more statements (search for the module name to find them).