Definitions/Def_ModularCurve_JLinePlacesBar.lean
The -line inside the base-changed modular function field
Fix a level N \ge 1. The modular function field of level N over \overline{\mathbb Q} is here modularFunctionFieldBar N, the subfield of \overline{\mathbb Q}((q)) generated over \overline{\mathbb Q} by the coefficientwise images (under coeffEmb, i.e. application of \mathbb Q \to \overline{\mathbb Q} to each Laurent coefficient) of the field modularFunctionFieldFull N, which is the \mathbb Q-subfield of \mathbb Q((q)) generated by the series q-expansions \mathrm{jq} rescaled by q \mapsto q^{d} for all divisors d \mid N. Write \bar j for the element of that field given by the coefficientwise image of the q-expansion \mathrm{jq} of the modular invariant, with membership supplied by jq_mem_full. The abbreviation jLineBar N is the intermediate field \overline{\mathbb Q}(\bar j), i.e. the \overline{\mathbb Q}-subfield of modularFunctionFieldBar N generated by \bar j, together with its \overline{\mathbb Q}-algebra and \overline{\mathbb Q}-module structures; transcendental_jLineBar_gen records that \bar j is transcendental over \overline{\mathbb Q}, quoting transcendental_coeffEmb_jq. Consequently jLineBarRingEquiv N is a ring isomorphism \overline{\mathbb Q}(T) \cong \overline{\mathbb Q}(\bar j), namely the underlying ring map of Mathlib's algebra isomorphism attached to a transcendental element; accompanying lemmas state that it acts as the identity on constants from \overline{\mathbb Q} and sends T to \bar j.
Three places of \overline{\mathbb Q}(\bar j) over \overline{\mathbb Q} are then fixed. A Place K F is a valuation subring of F containing the image of K, proper in F, and a principal ideal ring; Place.congrRingEquiv transports a place along a ring isomorphism compatible with the structure maps by pulling the valuation subring back along the inverse isomorphism. Applying this to jLineBarRingEquiv N gives jLineBarPlace1728 N, jLineBarPlaceZero N and jLineBarPlaceInfty N, the transports of the places of \overline{\mathbb Q}(T) cut out by the primes (T - 1728) and (T) of \overline{\mathbb Q}[T] and of the place at infinity given by the degree valuation. A classical decidable-equality helper for \overline{\mathbb Q}(T) accompanies the last of these.
Relation to Mathlib
Place, placeOfPoint and placeInfty are the project's own notions, built on Mathlib's height-one-spectrum adic valuations and on RatFunc.inftyValuation; the isomorphism with the rational function field comes from Mathlib's RatFunc.algEquivOfTranscendental.
Where it is used
These objects provide the base of the j-cover of the modular curve of level N over \overline{\mathbb Q} in function-field language: the j-line sits inside the base-changed modular function field, and the three places at j = 1728, j = 0 and j = \infty are the ones over which the cover is studied, in the analysis of the divisor class group \mathrm{Pic}^0 and its torsion with its Galois action.
References
- G. Shimura, Introduction to the Arithmetic Theory of Automorphic Functions, Princeton University Press, 1971, Chapter 6
- H. Stichtenoth, Algebraic Function Fields and Codes, 2nd edition, Springer, 2009
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 67 lines
- 12 declarations
- used in the statements of 0 theorems and imported by 12 proofs
- imports 3 definition modules, and the statements of 1 theorems
Source file: Definitions/Def_ModularCurve_JLinePlacesBar.lean
Imports
Def_ModularCurve_ArithmeticGaloisDef_AlgebraicCurve_RatFuncPlacesDef_AlgebraicCurve_RatFuncPlaceInfty
Theorems imported by this definition module
Imported by
- no other definition module
Declarations
- abbrev
ModularCurve.jLineBar - instance
ModularCurve.instAlgebraJLineBar - instance
ModularCurve.instModuleJLineBar - theorem
ModularCurve.transcendental_jLineBar_gen - def
ModularCurve.jLineBarRingEquiv - theorem
ModularCurve.jLineBarRingEquiv_apply - theorem
ModularCurve.jLineBarRingEquiv_algebraMap - theorem
ModularCurve.jLineBarRingEquiv_X - def
ModularCurve.instDecidableEqRatFuncAlgebraicClosure - def
ModularCurve.jLineBarPlace1728 - def
ModularCurve.jLineBarPlaceZero - def
ModularCurve.jLineBarPlaceInfty
Source
import Mathlib import Definitions.Def_ModularCurve_ArithmeticGalois import Definitions.Def_AlgebraicCurve_RatFuncPlaces import Definitions.Def_AlgebraicCurve_RatFuncPlaceInfty import Theorems.Thm_ModularCurve_transcendental_coeffEmb_jq set_option autoImplicit false noncomputable section open IntermediateField AlgebraicCurve AlgebraicCurve.RationalFunctionField namespace ModularCurve set_option synthInstance.maxHeartbeats 400000 variable (N : ℕ) [NeZero N] abbrev jLineBar : IntermediateField (AlgebraicClosure ℚ) ↥(modularFunctionFieldBar N) := IntermediateField.adjoin (AlgebraicClosure ℚ) {(⟨coeffEmb (AlgebraicClosure ℚ) jq, coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jq_mem_full N)⟩ : ↥(modularFunctionFieldBar N))} instance instAlgebraJLineBar : Algebra (AlgebraicClosure ℚ) ↥(jLineBar N) := IntermediateField.algebra' (jLineBar N) instance instModuleJLineBar : Module (AlgebraicClosure ℚ) ↥(jLineBar N) := Algebra.toModule theorem transcendental_jLineBar_gen : Transcendental (AlgebraicClosure ℚ) (⟨coeffEmb (AlgebraicClosure ℚ) jq, coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jq_mem_full N)⟩ : ↥(modularFunctionFieldBar N)) := transcendental_coeffEmb_jq (AlgebraicClosure ℚ) N def jLineBarRingEquiv : RatFunc (AlgebraicClosure ℚ) ≃+* ↥(jLineBar N) := RingEquiv.ofBijective (RatFunc.algEquivOfTranscendental _ (transcendental_jLineBar_gen N)) (EquivLike.bijective _) theorem jLineBarRingEquiv_apply (f : RatFunc (AlgebraicClosure ℚ)) : jLineBarRingEquiv N f = RatFunc.algEquivOfTranscendental _ (transcendental_jLineBar_gen N) f := rfl theorem jLineBarRingEquiv_algebraMap (a : AlgebraicClosure ℚ) : jLineBarRingEquiv N (algebraMap (AlgebraicClosure ℚ) (RatFunc (AlgebraicClosure ℚ)) a) = algebraMap (AlgebraicClosure ℚ) ↥(jLineBar N) a := (RatFunc.algEquivOfTranscendental _ (transcendental_jLineBar_gen N)).commutes a theorem jLineBarRingEquiv_X : (jLineBarRingEquiv N RatFunc.X : ↥(modularFunctionFieldBar N)) = ⟨coeffEmb (AlgebraicClosure ℚ) jq, coeffEmb_mem_laurentBaseChange (AlgebraicClosure ℚ) (jq_mem_full N)⟩ := RatFunc.algEquivOfTranscendental_X _ (transcendental_jLineBar_gen N) @[reducible] def instDecidableEqRatFuncAlgebraicClosure : DecidableEq (RatFunc (AlgebraicClosure ℚ)) := Classical.decEq _ attribute [local instance] instDecidableEqRatFuncAlgebraicClosure def jLineBarPlace1728 : Place (AlgebraicClosure ℚ) ↥(jLineBar N) := Place.congrRingEquiv (jLineBarRingEquiv N) (jLineBarRingEquiv_algebraMap N) (placeOfPoint (AlgebraicClosure ℚ) 1728) def jLineBarPlaceZero : Place (AlgebraicClosure ℚ) ↥(jLineBar N) := Place.congrRingEquiv (jLineBarRingEquiv N) (jLineBarRingEquiv_algebraMap N) (placeOfPoint (AlgebraicClosure ℚ) 0) def jLineBarPlaceInfty : Place (AlgebraicClosure ℚ) ↥(jLineBar N) := Place.congrRingEquiv (jLineBarRingEquiv N) (jLineBarRingEquiv_algebraMap N) (placeInfty (AlgebraicClosure ℚ)) end ModularCurve end
Statements phrased using this module (0)
No statement module imports it directly (it is used through other definition modules or by proofs).