Definitions/Def_CerednikDrinfeld_MumfordQuotient.lean
Invariant function fields for group actions on fraction fields
The standing context is a field K, a group G, and a commutative K-algebra M carrying an action of G by ring automorphisms that commute with the scalars from K; when M is a domain the action is transported to the fraction field. fracAct sends g \in G to the automorphism of \mathrm{Frac}(M) induced by m \mapsto g \cdot m; it is multiplicative and unital, hence assembles into a (scoped) MulSemiringAction of G on \mathrm{Frac}(M) fixing the image of K, with the corresponding commutation of the G- and K-actions. On this the module defines \mathrm{Frac}(M)^{G} in two guises, invariantIntermediateField (Mathlib's fixed field, viewed as an intermediate field of \mathrm{Frac}(M)/K) and invariantField (the same set as a subfield), together with the relative version invariantFieldOf K G M Γ = \{x \mid \gamma \cdot x = x \text{ for all } \gamma \in Γ\} for a subgroup Γ \le G, again as an intermediate field over K; it is antitone in Γ, lies above \mathrm{Frac}(M)^{G}, and equals it at Γ = \top. For a normal subgroup N, residualAct is the monoid homomorphism from G to the K-algebra automorphisms of \mathrm{Frac}(M)^{N} given by x \mapsto g \cdot x; it is trivial on N, and an element of \mathrm{Frac}(M)^{N} lies in \mathrm{Frac}(M)^{G} exactly when it is fixed by all of these automorphisms.
AmbientSemilinearAut K G M is a structure whose data are a ring automorphism base of K and a ring automorphism map of M, and whose two further fields are the requirements that map carry \iota(c) to \iota(\mathrm{base}\,c) for c \in K and that map commute with the G-action; these form a group under composition. Such an s induces an automorphism fracMap of \mathrm{Frac}(M) commuting with G and acting on K-constants through base, hence restricts to each \mathrm{Frac}(M)^{Γ} (invMap, invMapOf) and yields coeffAct and coeffActOf Γ, elements of the project's group AlgebraicCurve.SemilinearAut K of pairs (automorphism of the field, automorphism of K) compatible with the structure map; coeffActHom and coeffActOfHom are the resulting group homomorphisms, and this coefficientwise action commutes with the residual action of G.
The final section specialises the notation: mumfordField is \mathrm{Frac}(M)^{G}; given a G-set W, a graph \mathcal{T} on W and a base vertex w_0, HasTypeExchanger asserts the existence of some g \in G outside the subgroup typePreserving G 𝒯 w₀ of elements preserving the parity \mathrm{dist}(w_0, w) \bmod 2 of every vertex; mumfordFieldPlus is the field of invariants of that type-preserving subgroup, which contains mumfordField, and exchangerAct is the residual action of G on it, trivial on type-preserving elements.
Relation to Mathlib
invariantIntermediateField is Mathlib's FixedPoints.intermediateField under a project name, and the extension of the action to the fraction field is built from Mathlib's IsFractionRing.ringEquivOfRingEquiv; the group of semilinear automorphisms used as the target of the coefficientwise action is the project's own AlgebraicCurve.SemilinearAut, as is the structure AmbientSemilinearAut.
Where it is used
This is the generic algebraic layer of the Mumford/Čerednik–Drinfel'd quotient construction: the invariant field of a group acting on a ring of rigid-analytic functions plays the role of the function field of the quotient curve, the semilinear automorphisms supply the descent data and Galois action on it, and the type-preserving subgroup and its exchanger govern the bipartite structure of the associated tree quotient for Shimura curves.
References
- D. Mumford, An analytic construction of degenerating curves over complete local rings, Compositio Mathematica 24 (1972), 129–174
- 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
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 377 lines
- 71 declarations
- used in the statements of 108 theorems and imported by 110 proofs
- imports 2 definition modules
Source file: Definitions/Def_CerednikDrinfeld_MumfordQuotient.lean
Declarations
- def
CerednikDrinfeld.Mumford.fracAct - theorem
CerednikDrinfeld.Mumford.fracAct_algebraMap - theorem
CerednikDrinfeld.Mumford.fracAct_one - theorem
CerednikDrinfeld.Mumford.fracAct_mul - instance
CerednikDrinfeld.Mumford.fracMulSemiringAction - theorem
CerednikDrinfeld.Mumford.frac_smul_def - theorem
CerednikDrinfeld.Mumford.frac_smul_algebraMap - theorem
CerednikDrinfeld.Mumford.smul_algebraMap_const_M - theorem
CerednikDrinfeld.Mumford.smul_algebraMap_const - instance
CerednikDrinfeld.Mumford.fracSMulCommClass - def
CerednikDrinfeld.Mumford.invariantIntermediateField - def
CerednikDrinfeld.Mumford.invariantField - theorem
CerednikDrinfeld.Mumford.mem_invariantField_iff - theorem
CerednikDrinfeld.Mumford.mem_invariantIntermediateField_iff - theorem
CerednikDrinfeld.Mumford.invariantField_eq_fixedPoints - theorem
CerednikDrinfeld.Mumford.coe_invariantIntermediateField - instance
CerednikDrinfeld.Mumford.invariantFieldAlgebra - def
CerednikDrinfeld.Mumford.invariantIntermediateFieldOf - def
CerednikDrinfeld.Mumford.invariantFieldOf - theorem
CerednikDrinfeld.Mumford.mem_invariantFieldOf_iff - instance
CerednikDrinfeld.Mumford.invariantFieldOfAlgebra - theorem
CerednikDrinfeld.Mumford.algebraMap_invariantFieldOf_coe - theorem
CerednikDrinfeld.Mumford.invariantFieldOf_top - theorem
CerednikDrinfeld.Mumford.algebraMap_invariantField_coe - theorem
CerednikDrinfeld.Mumford.invariantFieldOf_mono_of_le - theorem
CerednikDrinfeld.Mumford.invariantField_le_invariantFieldOf - def
CerednikDrinfeld.Mumford.residualActRingEquiv - theorem
CerednikDrinfeld.Mumford.coe_residualActRingEquiv - def
CerednikDrinfeld.Mumford.residualAct - theorem
CerednikDrinfeld.Mumford.coe_residualAct - theorem
CerednikDrinfeld.Mumford.residualAct_eq_one_of_mem - theorem
CerednikDrinfeld.Mumford.mem_invariantField_iff_forall_residualAct - structure
CerednikDrinfeld.Mumford.AmbientSemilinearAut - field
CerednikDrinfeld.Mumford.AmbientSemilinearAut.base - field
CerednikDrinfeld.Mumford.AmbientSemilinearAut.map - field
CerednikDrinfeld.Mumford.AmbientSemilinearAut.map_algebraMap - field
CerednikDrinfeld.Mumford.AmbientSemilinearAut.map_smul - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_algebraMap - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_smul - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_algebraMap_const - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.ext - instance
CerednikDrinfeld.Mumford.AmbientSemilinearAut.instGroup - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.base_mul - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.map_mul_eq - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.base_one - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.map_one_eq - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_one - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_mul - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.invMap - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffAct - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffAct_baseAut - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coe_coeffAct_toRingAut - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActHom - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActHom_apply - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffAct_comm_smul - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.fracMap_comm_residualAct - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.invMapOf - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coe_invMapOf - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActOf - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActOf_baseAut - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coe_coeffActOf_toRingAut - def
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActOfHom - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActOfHom_apply - theorem
CerednikDrinfeld.Mumford.AmbientSemilinearAut.coeffActOf_comm_residualAct - abbrev
CerednikDrinfeld.Mumford.mumfordField - def
CerednikDrinfeld.Mumford.HasTypeExchanger - abbrev
CerednikDrinfeld.Mumford.mumfordFieldPlus - theorem
CerednikDrinfeld.Mumford.mumfordField_le_mumfordFieldPlus - abbrev
CerednikDrinfeld.Mumford.exchangerAct - theorem
CerednikDrinfeld.Mumford.exchangerAct_eq_one_of_mem
Source
import Mathlib.FieldTheory.Fixed ↗ import Mathlib.RingTheory.Localization.FractionRing ↗ import Mathlib.RingTheory.Localization.Basic ↗ import Mathlib.Algebra.Ring.Action.Group ↗ import Definitions.Def_AlgebraicCurve_BaseChangeGalois import Definitions.Def_CerednikDrinfeld_MumfordVertexType set_option autoImplicit false noncomputable section namespace CerednikDrinfeld.Mumford section Generic variable (K : Type) [Field K] (G : Type) [Group G] (M : Type) [CommRing M] [Algebra K M] variable [MulSemiringAction G M] [SMulCommClass G K M] def fracAct [IsDomain M] (g : G) : FractionRing M ≃+* FractionRing M := IsFractionRing.ringEquivOfRingEquiv (MulSemiringAction.toRingEquiv G M g) theorem fracAct_algebraMap [IsDomain M] (g : G) (m : M) : fracAct G M g (algebraMap M (FractionRing M) m) = algebraMap M (FractionRing M) (g • m) := IsFractionRing.ringEquivOfRingEquiv_algebraMap _ m theorem fracAct_one [IsDomain M] : fracAct G M 1 = RingEquiv.refl _ := by apply RingEquiv.toRingHom_injective refine IsLocalization.ringHom_ext (nonZeroDivisors M) (RingHom.ext fun m => ?_) simp only [RingHom.coe_comp, Function.comp_apply, RingEquiv.toRingHom_eq_coe, RingEquiv.coe_toRingHom] rw [fracAct_algebraMap, one_smul]; rfl theorem fracAct_mul [IsDomain M] (g h : G) : fracAct G M (g * h) = (fracAct G M h).trans (fracAct G M g) := by apply RingEquiv.toRingHom_injective refine IsLocalization.ringHom_ext (nonZeroDivisors M) (RingHom.ext fun m => ?_) simp only [RingHom.coe_comp, Function.comp_apply, RingEquiv.toRingHom_eq_coe, RingEquiv.coe_toRingHom, RingEquiv.coe_trans] rw [fracAct_algebraMap, fracAct_algebraMap, fracAct_algebraMap, mul_smul] scoped instance fracMulSemiringAction [IsDomain M] : MulSemiringAction G (FractionRing M) where smul g x := fracAct G M g x one_smul x := by show fracAct G M 1 x = x; rw [fracAct_one]; rfl mul_smul g h x := by show fracAct G M (g * h) x = fracAct G M g (fracAct G M h x); rw [fracAct_mul]; rfl smul_zero g := map_zero (fracAct G M g) smul_add g x y := map_add (fracAct G M g) x y smul_one g := map_one (fracAct G M g) smul_mul g x y := map_mul (fracAct G M g) x y theorem frac_smul_def [IsDomain M] (g : G) (x : FractionRing M) : g • x = fracAct G M g x := rfl theorem frac_smul_algebraMap [IsDomain M] (g : G) (m : M) : g • algebraMap M (FractionRing M) m = algebraMap M (FractionRing M) (g • m) := fracAct_algebraMap G M g m theorem smul_algebraMap_const_M (g : G) (c : K) : g • algebraMap K M c = algebraMap K M c := by rw [Algebra.algebraMap_eq_smul_one, smul_comm, smul_one] theorem smul_algebraMap_const [IsDomain M] (g : G) (c : K) : g • algebraMap K (FractionRing M) c = algebraMap K (FractionRing M) c := by rw [IsScalarTower.algebraMap_apply K M (FractionRing M), frac_smul_algebraMap, smul_algebraMap_const_M] scoped instance fracSMulCommClass [IsDomain M] : SMulCommClass G K (FractionRing M) := ⟨fun g c x => by rw [Algebra.smul_def, Algebra.smul_def, smul_mul', smul_algebraMap_const]⟩ def invariantIntermediateField [IsDomain M] : IntermediateField K (FractionRing M) := FixedPoints.intermediateField G def invariantField [IsDomain M] : Subfield (FractionRing M) := (invariantIntermediateField K G M).toSubfield theorem mem_invariantField_iff [IsDomain M] (x : FractionRing M) : x ∈ invariantField K G M ↔ ∀ g : G, g • x = x := Iff.rfl theorem mem_invariantIntermediateField_iff [IsDomain M] (x : FractionRing M) : x ∈ invariantIntermediateField K G M ↔ ∀ g : G, g • x = x := Iff.rfl theorem invariantField_eq_fixedPoints [IsDomain M] : invariantField K G M = FixedPoints.subfield G (FractionRing M) := rfl theorem coe_invariantIntermediateField [IsDomain M] : (invariantIntermediateField K G M : Set (FractionRing M)) = invariantField K G M := rfl instance invariantFieldAlgebra [IsDomain M] : Algebra K ↥(invariantField K G M) := (invariantIntermediateField K G M).algebra def invariantIntermediateFieldOf [IsDomain M] (Γ : Subgroup G) : IntermediateField K (FractionRing M) where carrier := {x | ∀ γ : G, γ ∈ Γ → γ • x = x} mul_mem' {x y} hx hy := fun γ hγ => by rw [smul_mul', hx γ hγ, hy γ hγ] one_mem' := fun γ _ => smul_one γ add_mem' {x y} hx hy := fun γ hγ => by rw [smul_add, hx γ hγ, hy γ hγ] zero_mem' := fun γ _ => smul_zero γ algebraMap_mem' c := fun γ _ => smul_algebraMap_const K G M γ c inv_mem' x hx := fun γ hγ => by rw [smul_inv'', hx γ hγ] def invariantFieldOf [IsDomain M] (Γ : Subgroup G) : Subfield (FractionRing M) := (invariantIntermediateFieldOf K G M Γ).toSubfield theorem mem_invariantFieldOf_iff [IsDomain M] (Γ : Subgroup G) (x : FractionRing M) : x ∈ invariantFieldOf K G M Γ ↔ ∀ γ : G, γ ∈ Γ → γ • x = x := Iff.rfl instance invariantFieldOfAlgebra [IsDomain M] (Γ : Subgroup G) : Algebra K ↥(invariantFieldOf K G M Γ) := (invariantIntermediateFieldOf K G M Γ).algebra theorem algebraMap_invariantFieldOf_coe [IsDomain M] (Γ : Subgroup G) (c : K) : ((algebraMap K ↥(invariantFieldOf K G M Γ) c : ↥(invariantFieldOf K G M Γ)) : FractionRing M) = algebraMap K (FractionRing M) c := rfl theorem invariantFieldOf_top [IsDomain M] : invariantFieldOf K G M ⊤ = invariantField K G M := Subfield.ext fun _ => ⟨fun h g => h g trivial, fun h g _ => h g⟩ theorem algebraMap_invariantField_coe [IsDomain M] (c : K) : ((algebraMap K ↥(invariantField K G M) c : ↥(invariantField K G M)) : FractionRing M) = algebraMap K (FractionRing M) c := rfl theorem invariantFieldOf_mono_of_le [IsDomain M] {Γ Γ' : Subgroup G} (h : Γ' ≤ Γ) : invariantFieldOf K G M Γ ≤ invariantFieldOf K G M Γ' := fun _ hx γ hγ => hx γ (h hγ) theorem invariantField_le_invariantFieldOf [IsDomain M] (Γ : Subgroup G) : invariantField K G M ≤ invariantFieldOf K G M Γ := fun _ hx γ _ => hx γ def residualActRingEquiv [IsDomain M] (N : Subgroup G) [hN : N.Normal] (g : G) : ↥(invariantFieldOf K G M N) ≃+* ↥(invariantFieldOf K G M N) where toFun x := ⟨g • (x : FractionRing M), fun n hn => by rw [← mul_smul, show n * g = g * (g⁻¹ * n * g) from by group, mul_smul] congr 1 exact x.2 (g⁻¹ * n * g) (by simpa using hN.conj_mem n hn g⁻¹)⟩ invFun x := ⟨g⁻¹ • (x : FractionRing M), fun n hn => by rw [← mul_smul, show n * g⁻¹ = g⁻¹ * (g * n * g⁻¹) from by group, mul_smul] congr 1 exact x.2 (g * n * g⁻¹) (hN.conj_mem n hn g)⟩ left_inv x := Subtype.ext (inv_smul_smul g (x : FractionRing M)) right_inv x := Subtype.ext (smul_inv_smul g (x : FractionRing M)) map_mul' x y := Subtype.ext (smul_mul' g (x : FractionRing M) y) map_add' x y := Subtype.ext (smul_add g (x : FractionRing M) y) theorem coe_residualActRingEquiv [IsDomain M] (N : Subgroup G) [N.Normal] (g : G) (x : ↥(invariantFieldOf K G M N)) : ((residualActRingEquiv K G M N g x : ↥(invariantFieldOf K G M N)) : FractionRing M) = g • (x : FractionRing M) := rfl def residualAct [IsDomain M] (N : Subgroup G) [N.Normal] : G →* (↥(invariantFieldOf K G M N) ≃ₐ[K] ↥(invariantFieldOf K G M N)) where toFun g := AlgEquiv.ofRingEquiv (f := residualActRingEquiv K G M N g) (fun c => Subtype.ext (by rw [coe_residualActRingEquiv] exact smul_algebraMap_const K G M g c)) map_one' := AlgEquiv.ext fun x => Subtype.ext (one_smul G (x : FractionRing M)) map_mul' g h := AlgEquiv.ext fun x => Subtype.ext (mul_smul g h (x : FractionRing M)) theorem coe_residualAct [IsDomain M] (N : Subgroup G) [N.Normal] (g : G) (x : ↥(invariantFieldOf K G M N)) : ((residualAct K G M N g x : ↥(invariantFieldOf K G M N)) : FractionRing M) = g • (x : FractionRing M) := rfl theorem residualAct_eq_one_of_mem [IsDomain M] (N : Subgroup G) [N.Normal] {g : G} (hg : g ∈ N) : residualAct K G M N g = 1 := AlgEquiv.ext fun x => Subtype.ext (x.2 g hg) theorem mem_invariantField_iff_forall_residualAct [IsDomain M] (N : Subgroup G) [N.Normal] (x : ↥(invariantFieldOf K G M N)) : (x : FractionRing M) ∈ invariantField K G M ↔ ∀ g : G, residualAct K G M N g x = x := ⟨fun h g => Subtype.ext (h g), fun h g => congrArg Subtype.val (h g)⟩ structure AmbientSemilinearAut where base : K ≃+* K map : M ≃+* M map_algebraMap : ∀ c : K, map (algebraMap K M c) = algebraMap K M (base c) map_smul : ∀ (g : G) (m : M), map (g • m) = g • map m namespace AmbientSemilinearAut variable {K G M} section Transport omit [SMulCommClass G K M] def fracMap [IsDomain M] (s : AmbientSemilinearAut K G M) : FractionRing M ≃+* FractionRing M := IsFractionRing.ringEquivOfRingEquiv s.map theorem fracMap_algebraMap [IsDomain M] (s : AmbientSemilinearAut K G M) (m : M) : s.fracMap (algebraMap M (FractionRing M) m) = algebraMap M (FractionRing M) (s.map m) := IsFractionRing.ringEquivOfRingEquiv_algebraMap _ m theorem fracMap_smul [IsDomain M] (s : AmbientSemilinearAut K G M) (g : G) (x : FractionRing M) : s.fracMap (g • x) = g • s.fracMap x := by have h : (s.fracMap.toRingHom.comp (fracAct G M g).toRingHom) = ((fracAct G M g).toRingHom.comp s.fracMap.toRingHom) := by refine IsLocalization.ringHom_ext (nonZeroDivisors M) (RingHom.ext fun m => ?_) simp only [RingHom.coe_comp, Function.comp_apply, RingEquiv.toRingHom_eq_coe, RingEquiv.coe_toRingHom] rw [fracAct_algebraMap, fracMap_algebraMap, fracMap_algebraMap, fracAct_algebraMap, s.map_smul] exact congrArg (fun φ : FractionRing M →+* FractionRing M => φ x) h theorem fracMap_algebraMap_const [IsDomain M] (s : AmbientSemilinearAut K G M) (c : K) : s.fracMap (algebraMap K (FractionRing M) c) = algebraMap K (FractionRing M) (s.base c) := by rw [IsScalarTower.algebraMap_apply K M (FractionRing M), fracMap_algebraMap, s.map_algebraMap, ← IsScalarTower.algebraMap_apply] @[ext] theorem ext {s t : AmbientSemilinearAut K G M} (hb : s.base = t.base) (hm : s.map = t.map) : s = t := by cases s; cases t; congr instance instGroup : Group (AmbientSemilinearAut K G M) where mul s t := { base := t.base.trans s.base map := t.map.trans s.map map_algebraMap := fun c => by rw [RingEquiv.coe_trans, Function.comp_apply, t.map_algebraMap, s.map_algebraMap]; rfl map_smul := fun g m => by rw [RingEquiv.coe_trans, Function.comp_apply, t.map_smul, s.map_smul]; rfl } one := { base := RingEquiv.refl K map := RingEquiv.refl M map_algebraMap := fun _ => rfl map_smul := fun _ _ => rfl } inv s := { base := s.base.symm map := s.map.symm map_algebraMap := fun c => by apply s.map.injective rw [RingEquiv.apply_symm_apply, s.map_algebraMap, RingEquiv.apply_symm_apply] map_smul := fun g m => by apply s.map.injective rw [RingEquiv.apply_symm_apply, s.map_smul, RingEquiv.apply_symm_apply] } mul_assoc s t u := ext rfl rfl one_mul s := ext (RingEquiv.ext fun _ => rfl) (RingEquiv.ext fun _ => rfl) mul_one s := ext (RingEquiv.ext fun _ => rfl) (RingEquiv.ext fun _ => rfl) inv_mul_cancel s := ext (RingEquiv.ext fun x => s.base.symm_apply_apply x) (RingEquiv.ext fun x => s.map.symm_apply_apply x) @[simp] theorem base_mul (s t : AmbientSemilinearAut K G M) : (s * t).base = t.base.trans s.base := rfl @[simp] theorem map_mul_eq (s t : AmbientSemilinearAut K G M) : (s * t).map = t.map.trans s.map := rfl @[simp] theorem base_one : (1 : AmbientSemilinearAut K G M).base = RingEquiv.refl K := rfl @[simp] theorem map_one_eq : (1 : AmbientSemilinearAut K G M).map = RingEquiv.refl M := rfl theorem fracMap_one [IsDomain M] : (1 : AmbientSemilinearAut K G M).fracMap = RingEquiv.refl _ := by apply RingEquiv.toRingHom_injective refine IsLocalization.ringHom_ext (nonZeroDivisors M) (RingHom.ext fun m => ?_) simp only [RingHom.coe_comp, Function.comp_apply, RingEquiv.toRingHom_eq_coe, RingEquiv.coe_toRingHom] rw [fracMap_algebraMap]; rfl theorem fracMap_mul [IsDomain M] (s t : AmbientSemilinearAut K G M) : (s * t).fracMap = t.fracMap.trans s.fracMap := by apply RingEquiv.toRingHom_injective refine IsLocalization.ringHom_ext (nonZeroDivisors M) (RingHom.ext fun m => ?_) simp only [RingHom.coe_comp, Function.comp_apply, RingEquiv.toRingHom_eq_coe, RingEquiv.coe_toRingHom, RingEquiv.coe_trans] rw [fracMap_algebraMap, fracMap_algebraMap, fracMap_algebraMap]; rfl end Transport section Coeff def invMap [IsDomain M] (s : AmbientSemilinearAut K G M) : ↥(invariantField K G M) ≃+* ↥(invariantField K G M) where toFun x := ⟨s.fracMap (x : FractionRing M), fun g => by rw [← fracMap_smul, x.2 g]⟩ invFun x := ⟨s.fracMap.symm (x : FractionRing M), fun g => by apply s.fracMap.injective rw [fracMap_smul, RingEquiv.apply_symm_apply, x.2 g]⟩ left_inv x := Subtype.ext (s.fracMap.symm_apply_apply (x : FractionRing M)) right_inv x := Subtype.ext (s.fracMap.apply_symm_apply (x : FractionRing M)) map_mul' x y := Subtype.ext (map_mul s.fracMap (x : FractionRing M) y) map_add' x y := Subtype.ext (map_add s.fracMap (x : FractionRing M) y) def coeffAct [IsDomain M] (s : AmbientSemilinearAut K G M) : AlgebraicCurve.SemilinearAut K ↥(invariantField K G M) := ⟨(s.invMap, s.base), fun c => Subtype.ext (by show s.fracMap (algebraMap K (FractionRing M) c) = ((algebraMap K ↥(invariantField K G M) (s.base c) : _) : FractionRing M) rw [fracMap_algebraMap_const]; rfl)⟩ theorem coeffAct_baseAut [IsDomain M] (s : AmbientSemilinearAut K G M) : AlgebraicCurve.SemilinearAut.baseAut (coeffAct s) = s.base := rfl theorem coe_coeffAct_toRingAut [IsDomain M] (s : AmbientSemilinearAut K G M) (x : ↥(invariantField K G M)) : ((AlgebraicCurve.SemilinearAut.toRingAut (coeffAct s) x : ↥(invariantField K G M)) : FractionRing M) = s.fracMap (x : FractionRing M) := rfl def coeffActHom [IsDomain M] : AmbientSemilinearAut K G M →* AlgebraicCurve.SemilinearAut K ↥(invariantField K G M) where toFun := coeffAct map_one' := Subtype.ext (Prod.ext (RingEquiv.ext fun x => Subtype.ext (by show (1 : AmbientSemilinearAut K G M).fracMap (x : FractionRing M) = x rw [fracMap_one]; rfl)) rfl) map_mul' s t := Subtype.ext (Prod.ext (RingEquiv.ext fun x => Subtype.ext (by show (s * t).fracMap (x : FractionRing M) = s.fracMap (t.fracMap (x : FractionRing M)) rw [fracMap_mul]; rfl)) rfl) @[simp] theorem coeffActHom_apply [IsDomain M] (s : AmbientSemilinearAut K G M) : coeffActHom s = coeffAct s := rfl theorem coeffAct_comm_smul [IsDomain M] (s : AmbientSemilinearAut K G M) (g : G) (x : ↥(invariantField K G M)) : ((AlgebraicCurve.SemilinearAut.toRingAut (coeffAct s) x : ↥(invariantField K G M)) : FractionRing M) = s.fracMap (x : FractionRing M) ∧ s.fracMap (g • (x : FractionRing M)) = g • s.fracMap (x : FractionRing M) := ⟨rfl, fracMap_smul s g x⟩ theorem fracMap_comm_residualAct [IsDomain M] (s : AmbientSemilinearAut K G M) (N : Subgroup G) [N.Normal] (g : G) (x : ↥(invariantFieldOf K G M N)) : s.fracMap ((residualAct K G M N g x : ↥(invariantFieldOf K G M N)) : FractionRing M) = g • s.fracMap (x : FractionRing M) := by rw [coe_residualAct, fracMap_smul] def invMapOf [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) : ↥(invariantFieldOf K G M Γ) ≃+* ↥(invariantFieldOf K G M Γ) where toFun x := ⟨s.fracMap (x : FractionRing M), fun g hg => by rw [← fracMap_smul, x.2 g hg]⟩ invFun x := ⟨s.fracMap.symm (x : FractionRing M), fun g hg => by apply s.fracMap.injective rw [fracMap_smul, RingEquiv.apply_symm_apply, x.2 g hg]⟩ left_inv x := Subtype.ext (s.fracMap.symm_apply_apply (x : FractionRing M)) right_inv x := Subtype.ext (s.fracMap.apply_symm_apply (x : FractionRing M)) map_mul' x y := Subtype.ext (map_mul s.fracMap (x : FractionRing M) y) map_add' x y := Subtype.ext (map_add s.fracMap (x : FractionRing M) y) theorem coe_invMapOf [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) (x : ↥(invariantFieldOf K G M Γ)) : ((invMapOf Γ s x : ↥(invariantFieldOf K G M Γ)) : FractionRing M) = s.fracMap (x : FractionRing M) := rfl def coeffActOf [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) : AlgebraicCurve.SemilinearAut K ↥(invariantFieldOf K G M Γ) := ⟨(invMapOf Γ s, s.base), fun c => Subtype.ext (by show s.fracMap (algebraMap K (FractionRing M) c) = ((algebraMap K ↥(invariantFieldOf K G M Γ) (s.base c) : _) : FractionRing M) rw [fracMap_algebraMap_const]; rfl)⟩ theorem coeffActOf_baseAut [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) : AlgebraicCurve.SemilinearAut.baseAut (coeffActOf Γ s) = s.base := rfl theorem coe_coeffActOf_toRingAut [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) (x : ↥(invariantFieldOf K G M Γ)) : ((AlgebraicCurve.SemilinearAut.toRingAut (coeffActOf Γ s) x : ↥(invariantFieldOf K G M Γ)) : FractionRing M) = s.fracMap (x : FractionRing M) := rfl def coeffActOfHom [IsDomain M] (Γ : Subgroup G) : AmbientSemilinearAut K G M →* AlgebraicCurve.SemilinearAut K ↥(invariantFieldOf K G M Γ) where toFun := coeffActOf Γ map_one' := Subtype.ext (Prod.ext (RingEquiv.ext fun x => Subtype.ext (by show (1 : AmbientSemilinearAut K G M).fracMap (x : FractionRing M) = x rw [fracMap_one]; rfl)) rfl) map_mul' s t := Subtype.ext (Prod.ext (RingEquiv.ext fun x => Subtype.ext (by show (s * t).fracMap (x : FractionRing M) = s.fracMap (t.fracMap (x : FractionRing M)) rw [fracMap_mul]; rfl)) rfl) @[simp] theorem coeffActOfHom_apply [IsDomain M] (Γ : Subgroup G) (s : AmbientSemilinearAut K G M) : coeffActOfHom Γ s = coeffActOf Γ s := rfl theorem coeffActOf_comm_residualAct [IsDomain M] (N : Subgroup G) [N.Normal] (s : AmbientSemilinearAut K G M) (g : G) (x : ↥(invariantFieldOf K G M N)) : AlgebraicCurve.SemilinearAut.toRingAut (coeffActOf N s) (residualAct K G M N g x) = residualAct K G M N g (AlgebraicCurve.SemilinearAut.toRingAut (coeffActOf N s) x) := Subtype.ext (by rw [coe_coeffActOf_toRingAut, coe_residualAct, coe_residualAct, coe_coeffActOf_toRingAut, fracMap_smul]) end Coeff end AmbientSemilinearAut end Generic section MumfordLayer variable (K : Type) [Field K] (G : Type) [Group G] (M : Type) [CommRing M] [IsDomain M] [Algebra K M] variable [MulSemiringAction G M] [SMulCommClass G K M] abbrev mumfordField : Subfield (FractionRing M) := invariantField K G M variable {W : Type} [MulAction G W] (𝒯 : SimpleGraph W) (w₀ : W) def HasTypeExchanger : Prop := ∃ g : G, g ∉ typePreserving G 𝒯 w₀ abbrev mumfordFieldPlus : Subfield (FractionRing M) := invariantFieldOf K G M (typePreserving G 𝒯 w₀) theorem mumfordField_le_mumfordFieldPlus : mumfordField K G M ≤ mumfordFieldPlus K G M 𝒯 w₀ := invariantField_le_invariantFieldOf K G M _ abbrev exchangerAct [(typePreserving G 𝒯 w₀).Normal] : G →* (↥(mumfordFieldPlus K G M 𝒯 w₀) ≃ₐ[K] ↥(mumfordFieldPlus K G M 𝒯 w₀)) := residualAct K G M (typePreserving G 𝒯 w₀) theorem exchangerAct_eq_one_of_mem [(typePreserving G 𝒯 w₀).Normal] {g : G} (hg : g ∈ typePreserving G 𝒯 w₀) : exchangerAct K G M 𝒯 w₀ g = 1 := residualAct_eq_one_of_mem K G M _ hg end MumfordLayer end CerednikDrinfeld.Mumford end
Statements phrased using this module (108)
- 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 - Restriction of the theta character to a finite-index subgroup
CerednikDrinfeld.Omega.comp_subtype_eq_prod_of_forall_eq_theta15 below · depth 20 - Theta multiplier of G equals the transfer from Γ'
CerednikDrinfeld.Omega.eq_transfer_of_forall_eq_theta_of_forall_eq_theta_comp_subtype26 below · depth 20 - Coset norm of a χ-automorphic function has multiplier Ver(χ)
CerednikDrinfeld.Omega.fracAct_prod_fracAct_eq_transfer_inv_mul0 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 - Automorphy of the meromorphic theta function on Ω
CerednikDrinfeld.Omega.exists_monoidHom_fracAct_thetaMer_eq22 below · depth 21 - Coset product of subgroup theta equals constant times theta
CerednikDrinfeld.Omega.prod_theta_comp_subtype_pmoebius_eq_mul_theta_and_prod_fracAct_thetaMer_eq16 below · depth 21 - Theta as a product over cosets of a finite-index subgroup
CerednikDrinfeld.Omega.theta_eq_prod_theta_comp_subtype_and_thetaMer_eq_prod14 below · depth 21 - 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 - Invariant field of a conjugate subgroup is its translate
CerednikDrinfeld.Mumford.invariantFieldOf_map_conj_eq_map_fracAct0 below · depth 22 - Compositum of invariant fields of Γ and sΓ s⁻¹
CerednikDrinfeld.Mumford.invariantFieldOf_sup_map_conj_eq_inf_and_relfinrank_eq_relIndex0 below · depth 22 - Characters as finite products of theta multipliers
CerednikDrinfeld.Omega.exists_eq_prod_theta_of_forall_isOfFinOrder_of_colouring92 below · depth 22 - Pull-back of a point divisor under change of level
CerednikDrinfeld.Omega.pullbackAlong_single_place_eq_sum_of_forall_ord_mul_card_stabilizer_eq_of_algEquiv2 below · depth 22 - Restriction of point places along a Mumford conjugation map
CerednikDrinfeld.Omega.restrictAlong_place_eq_smul_inv_and_inertiaDegAlong_eq_one_of_forall_mem_iff1 below · depth 22 - Trivial theta multiplier at torsion elements
CerednikDrinfeld.Omega.theta_apply_pmoebius_basePoint_eq_one_of_isOfFinOrder25 below · depth 22 - 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 - Quotient of two u-eigenvectors lies in the Γ-invariant field
CerednikDrinfeld.Mumford.div_mem_invariantFieldOf_of_smul_eq_algebraMap_mul0 below · depth 23 - Jacobi inversion with multipliers, divisor avoiding prescribed orbits
CerednikDrinfeld.Omega.exists_eq_prod_theta_forall_ne_pmoebius_of_forall_isOfFinOrder_of_colouring90 below · depth 23 - Unit-residue layer of Jacobi inversion for theta multipliers
CerednikDrinfeld.Omega.exists_pairs_v_prod_theta_div_sub_one_lt68 below · depth 23 - Valuations of characters as valuations of theta products
CerednikDrinfeld.Omega.exists_pairs_v_prod_theta_eq69 below · depth 23 - Principal-unit characters as finite products of theta multipliers
CerednikDrinfeld.Omega.exists_points_prod_theta_eq_of_v_sub_one_lt79 below · depth 23 - Theta function attached to a torsion element is 1
CerednikDrinfeld.Omega.theta_smul_eq_one_of_isOfFinOrder23 below · depth 23 - 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 - Valuation-one characters factor through the cycle map
CerednikDrinfeld.Omega.exists_forall_v_eq_one_apply_eq_prod_zpow_pathCycle4 below · depth 24 - Unimodular cycle basis realised by group elements
CerednikDrinfeld.Omega.exists_isUnit_det_pathCycle_and_span_pathCycle6 below · depth 24 - Theta multiplier with prescribed unit power along one edge orbit
CerednikDrinfeld.Omega.exists_pair_v_theta_eq_one_and_v_theta_mul_zpow_sub_one_lt63 below · depth 24 - Unit layer of Jacobi inversion for theta products, general position
CerednikDrinfeld.Omega.exists_pairs_v_prod_theta_div_sub_one_lt_forall_ne_pmoebius67 below · depth 24 - Valuations of theta products realise any character, general position
CerednikDrinfeld.Omega.exists_pairs_v_prod_theta_eq_forall_ne_pmoebius68 below · depth 24 - Principal-unit characters as theta products avoiding prescribed orbits
CerednikDrinfeld.Omega.exists_points_prod_theta_eq_forall_ne_pmoebius_of_v_sub_one_lt79 below · depth 24 - Unimodular Jacobian of theta units on residue discs
CerednikDrinfeld.Omega.exists_v_det_eq_one_of_isUnit_det_pathCycle_of_finite62 below · depth 24 - Torsion-killing characters determined by a spanning family of cycles
CerednikDrinfeld.Omega.monoidHom_eq_of_forall_isOfFinOrder_of_forall_apply_eq_of_span_pathCycle3 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 - Theta multipliers realising a prescribed unit, avoiding given orbits
CerednikDrinfeld.Omega.exists_pair_v_theta_eq_one_and_v_theta_mul_zpow_sub_one_lt_forall_ne_pmoebius62 below · depth 25 - Theta multipliers realising a prescribed valuation on one dart orbit
CerednikDrinfeld.Omega.exists_pairs_v_prod_theta_eq_v_zpow_stabWidth_mul_pathCycle_forall_ne63 below · depth 25 - Period law for theta units at arbitrary affinoid points
CerednikDrinfeld.Omega.v_apply_smul_mul_zpow_sum_stabWidth_mul_pathCycle_mul_walkCycle_eq_of_isUnit_of_eq_theta56 below · depth 25 - Constant reduction of a quaternionic Shimura curve at ℓ
CerednikDrinfeld.ShimuraCurveModel.ModuliWitnessD.exists_constantReduction_of_isGoodReductionModel_of_curveModel823 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 - Tame finite vertex stabilisers on the Bruhat–Tits tree
CerednikDrinfeld.CosetGraph.finite_stabilizer_vertex_and_not_dvd_natCard_of_mumfordSideFrame3,792 below · depth 26 - Single-dart period law for the theta unit
CerednikDrinfeld.Omega.v_theta_pmoebius_mul_zpow_sum_stabWidth_mul_pathCycle_mul_walkCycle_eq55 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 - 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 - 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 - 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 - Tree-lattice facts for the even part of a Čerednik–Drinfeld group
CerednikDrinfeld.map_evenPart_le_typePreserving_and_graphAction_and_finite_of_cerednikDrinfeld_group15 below · depth 27 - 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 - Invariant chartwise meromorphic functions on Ω are quotients
CerednikDrinfeld.Omega.exists_holRing_forall_finite_mul_eq_of_forall_exists_mem_holOn_affinoid_mul_eq_of_invariant54 below · depth 29 - Bilinear relations between the two degeneracy legs transfer generically
CerednikDrinfeld.sum_mul_eq_zero_of_sum_phi_mul_phi_eq_zero_of_germ_eq_degeneracy_of_iso_pullback_completion_one_zero_of_two_mul_dvd749 below · depth 29 - Tower relations transfer to the degeneracy maps on function fields
CerednikDrinfeld.sum_mul_eq_zero_of_sum_phi_mul_phi_eq_zero_of_germ_eq_degeneracy_of_iso_pullback_completion_zero_one_of_two_mul_dvd749 below · depth 29 - Transporting a local presentation of an invariant function along ρ(γ)
CerednikDrinfeld.Omega.exists_disc_forall_sub_pow_mul_eq_of_forall_pmoebius_eq_of_disc0 below · depth 30 - Fundamental affinoid for a group acting through ρ on the tree
CerednikDrinfeld.Omega.exists_forall_exists_pmoebius_mem_affinoid_of_finite_quotVert13 below · depth 30 - Holomorphic function vanishing to prescribed orders along G-orbits
CerednikDrinfeld.Omega.exists_holRing_ne_zero_forall_le_ordAt_smul20 below · depth 30 - Density of place-indexed points on the level-ℓ curve
CerednikDrinfeld.dense_setOf_exists_place_comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_iso_pullback_completion_one_zero_of_two_mul_dvd747 below · depth 30 - Density of place-defined level points on the ℓ-level model
CerednikDrinfeld.dense_setOf_exists_place_comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_iso_pullback_completion_zero_one_of_two_mul_dvd747 below · depth 30 - Both degeneracy images of a C-point come from one place
CerednikDrinfeld.exists_place_comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_comp_eq_pointEquivPlace_symm_of_iso_pullback_completion_one_zero_of_two_mul_dvd744 below · depth 31 - Lifting a C-point of the level-ℓ curve to a place
CerednikDrinfeld.exists_place_comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_comp_eq_pointEquivPlace_symm_of_iso_pullback_completion_zero_one_of_two_mul_dvd744 below · depth 31 - Both degeneracies carry a level point to its restricted places
CerednikDrinfeld.comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_withExtraLevel_isPullback_repT_of_iso_pullback_completion_one_zero_of_two_mul_dvd24 below · depth 32 - Degeneracy maps on level points and restricted places
CerednikDrinfeld.comp_degeneracy_eq_pointEquivPlace_symm_restrictAlong_of_withExtraLevel_isPullback_repT_of_iso_pullback_completion_zero_one_of_two_mul_dvd24 below · depth 32