passagemath-schemes 10.6.47__cp312-cp312-macosx_13_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passagemath_schemes/.dylibs/libflint.22.0.dylib +0 -0
- passagemath_schemes/.dylibs/libgmp.10.dylib +0 -0
- passagemath_schemes/.dylibs/libgmpxx.4.dylib +0 -0
- passagemath_schemes/.dylibs/libmpfr.6.dylib +0 -0
- passagemath_schemes/__init__.py +3 -0
- passagemath_schemes-10.6.47.dist-info/METADATA +204 -0
- passagemath_schemes-10.6.47.dist-info/METADATA.bak +205 -0
- passagemath_schemes-10.6.47.dist-info/RECORD +311 -0
- passagemath_schemes-10.6.47.dist-info/WHEEL +6 -0
- passagemath_schemes-10.6.47.dist-info/top_level.txt +3 -0
- sage/all__sagemath_schemes.py +23 -0
- sage/databases/all__sagemath_schemes.py +7 -0
- sage/databases/cremona.py +1723 -0
- sage/dynamics/all__sagemath_schemes.py +2 -0
- sage/dynamics/arithmetic_dynamics/affine_ds.py +1083 -0
- sage/dynamics/arithmetic_dynamics/all.py +14 -0
- sage/dynamics/arithmetic_dynamics/berkovich_ds.py +1101 -0
- sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py +1543 -0
- sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py +2426 -0
- sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py +1169 -0
- sage/dynamics/arithmetic_dynamics/generic_ds.py +663 -0
- sage/dynamics/arithmetic_dynamics/product_projective_ds.py +339 -0
- sage/dynamics/arithmetic_dynamics/projective_ds.py +9558 -0
- sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-312-darwin.so +0 -0
- sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +301 -0
- sage/dynamics/arithmetic_dynamics/wehlerK3.py +2576 -0
- sage/lfunctions/all.py +18 -0
- sage/lfunctions/dokchitser.py +745 -0
- sage/lfunctions/pari.py +818 -0
- sage/lfunctions/zero_sums.cpython-312-darwin.so +0 -0
- sage/lfunctions/zero_sums.pyx +1847 -0
- sage/modular/abvar/abvar.py +5135 -0
- sage/modular/abvar/abvar_ambient_jacobian.py +413 -0
- sage/modular/abvar/abvar_newform.py +244 -0
- sage/modular/abvar/all.py +8 -0
- sage/modular/abvar/constructor.py +186 -0
- sage/modular/abvar/cuspidal_subgroup.py +371 -0
- sage/modular/abvar/finite_subgroup.py +896 -0
- sage/modular/abvar/homology.py +720 -0
- sage/modular/abvar/homspace.py +998 -0
- sage/modular/abvar/lseries.py +415 -0
- sage/modular/abvar/morphism.py +935 -0
- sage/modular/abvar/torsion_point.py +274 -0
- sage/modular/abvar/torsion_subgroup.py +740 -0
- sage/modular/all.py +43 -0
- sage/modular/arithgroup/all.py +20 -0
- sage/modular/arithgroup/arithgroup_element.cpython-312-darwin.so +0 -0
- sage/modular/arithgroup/arithgroup_element.pyx +474 -0
- sage/modular/arithgroup/arithgroup_generic.py +1402 -0
- sage/modular/arithgroup/arithgroup_perm.py +2692 -0
- sage/modular/arithgroup/congroup.cpython-312-darwin.so +0 -0
- sage/modular/arithgroup/congroup.pyx +334 -0
- sage/modular/arithgroup/congroup_gamma.py +363 -0
- sage/modular/arithgroup/congroup_gamma0.py +692 -0
- sage/modular/arithgroup/congroup_gamma1.py +653 -0
- sage/modular/arithgroup/congroup_gammaH.py +1469 -0
- sage/modular/arithgroup/congroup_generic.py +628 -0
- sage/modular/arithgroup/congroup_sl2z.py +267 -0
- sage/modular/arithgroup/farey_symbol.cpython-312-darwin.so +0 -0
- sage/modular/arithgroup/farey_symbol.pyx +1066 -0
- sage/modular/arithgroup/tests.py +418 -0
- sage/modular/btquotients/all.py +4 -0
- sage/modular/btquotients/btquotient.py +3753 -0
- sage/modular/btquotients/pautomorphicform.py +2570 -0
- sage/modular/buzzard.py +100 -0
- sage/modular/congroup.py +29 -0
- sage/modular/congroup_element.py +13 -0
- sage/modular/cusps.py +1109 -0
- sage/modular/cusps_nf.py +1270 -0
- sage/modular/dims.py +569 -0
- sage/modular/dirichlet.py +3310 -0
- sage/modular/drinfeld_modform/all.py +2 -0
- sage/modular/drinfeld_modform/element.py +446 -0
- sage/modular/drinfeld_modform/ring.py +773 -0
- sage/modular/drinfeld_modform/tutorial.py +236 -0
- sage/modular/etaproducts.py +1065 -0
- sage/modular/hecke/algebra.py +746 -0
- sage/modular/hecke/all.py +20 -0
- sage/modular/hecke/ambient_module.py +1019 -0
- sage/modular/hecke/degenmap.py +119 -0
- sage/modular/hecke/element.py +325 -0
- sage/modular/hecke/hecke_operator.py +780 -0
- sage/modular/hecke/homspace.py +206 -0
- sage/modular/hecke/module.py +1767 -0
- sage/modular/hecke/morphism.py +174 -0
- sage/modular/hecke/submodule.py +989 -0
- sage/modular/hypergeometric_misc.cpython-312-darwin.so +0 -0
- sage/modular/hypergeometric_misc.pxd +4 -0
- sage/modular/hypergeometric_misc.pyx +166 -0
- sage/modular/hypergeometric_motive.py +2017 -0
- sage/modular/local_comp/all.py +2 -0
- sage/modular/local_comp/liftings.py +292 -0
- sage/modular/local_comp/local_comp.py +1071 -0
- sage/modular/local_comp/smoothchar.py +1825 -0
- sage/modular/local_comp/type_space.py +748 -0
- sage/modular/modform/all.py +30 -0
- sage/modular/modform/ambient.py +815 -0
- sage/modular/modform/ambient_R.py +177 -0
- sage/modular/modform/ambient_eps.py +306 -0
- sage/modular/modform/ambient_g0.py +124 -0
- sage/modular/modform/ambient_g1.py +204 -0
- sage/modular/modform/constructor.py +545 -0
- sage/modular/modform/cuspidal_submodule.py +708 -0
- sage/modular/modform/defaults.py +14 -0
- sage/modular/modform/eis_series.py +505 -0
- sage/modular/modform/eisenstein_submodule.py +663 -0
- sage/modular/modform/element.py +4131 -0
- sage/modular/modform/find_generators.py +59 -0
- sage/modular/modform/half_integral.py +154 -0
- sage/modular/modform/hecke_operator_on_qexp.py +247 -0
- sage/modular/modform/j_invariant.py +47 -0
- sage/modular/modform/l_series_gross_zagier.py +133 -0
- sage/modular/modform/l_series_gross_zagier_coeffs.cpython-312-darwin.so +0 -0
- sage/modular/modform/l_series_gross_zagier_coeffs.pyx +177 -0
- sage/modular/modform/notes.py +45 -0
- sage/modular/modform/numerical.py +514 -0
- sage/modular/modform/periods.py +14 -0
- sage/modular/modform/ring.py +1257 -0
- sage/modular/modform/space.py +1860 -0
- sage/modular/modform/submodule.py +118 -0
- sage/modular/modform/tests.py +64 -0
- sage/modular/modform/theta.py +110 -0
- sage/modular/modform/vm_basis.py +381 -0
- sage/modular/modform/weight1.py +220 -0
- sage/modular/modform_hecketriangle/abstract_ring.py +1932 -0
- sage/modular/modform_hecketriangle/abstract_space.py +2528 -0
- sage/modular/modform_hecketriangle/all.py +30 -0
- sage/modular/modform_hecketriangle/analytic_type.py +590 -0
- sage/modular/modform_hecketriangle/constructor.py +416 -0
- sage/modular/modform_hecketriangle/element.py +351 -0
- sage/modular/modform_hecketriangle/functors.py +752 -0
- sage/modular/modform_hecketriangle/graded_ring.py +541 -0
- sage/modular/modform_hecketriangle/graded_ring_element.py +2225 -0
- sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +3352 -0
- sage/modular/modform_hecketriangle/hecke_triangle_groups.py +1432 -0
- sage/modular/modform_hecketriangle/readme.py +1214 -0
- sage/modular/modform_hecketriangle/series_constructor.py +580 -0
- sage/modular/modform_hecketriangle/space.py +1037 -0
- sage/modular/modform_hecketriangle/subspace.py +423 -0
- sage/modular/modsym/all.py +17 -0
- sage/modular/modsym/ambient.py +3846 -0
- sage/modular/modsym/boundary.py +1420 -0
- sage/modular/modsym/element.py +336 -0
- sage/modular/modsym/g1list.py +178 -0
- sage/modular/modsym/ghlist.py +182 -0
- sage/modular/modsym/hecke_operator.py +73 -0
- sage/modular/modsym/manin_symbol.cpython-312-darwin.so +0 -0
- sage/modular/modsym/manin_symbol.pxd +5 -0
- sage/modular/modsym/manin_symbol.pyx +497 -0
- sage/modular/modsym/manin_symbol_list.py +1295 -0
- sage/modular/modsym/modsym.py +400 -0
- sage/modular/modsym/modular_symbols.py +384 -0
- sage/modular/modsym/p1list_nf.py +1241 -0
- sage/modular/modsym/relation_matrix.py +591 -0
- sage/modular/modsym/relation_matrix_pyx.cpython-312-darwin.so +0 -0
- sage/modular/modsym/relation_matrix_pyx.pyx +108 -0
- sage/modular/modsym/space.py +2468 -0
- sage/modular/modsym/subspace.py +455 -0
- sage/modular/modsym/tests.py +375 -0
- sage/modular/multiple_zeta.py +2632 -0
- sage/modular/multiple_zeta_F_algebra.py +786 -0
- sage/modular/overconvergent/all.py +6 -0
- sage/modular/overconvergent/genus0.py +1878 -0
- sage/modular/overconvergent/hecke_series.py +1187 -0
- sage/modular/overconvergent/weightspace.py +778 -0
- sage/modular/pollack_stevens/all.py +4 -0
- sage/modular/pollack_stevens/distributions.py +874 -0
- sage/modular/pollack_stevens/fund_domain.py +1572 -0
- sage/modular/pollack_stevens/manin_map.py +859 -0
- sage/modular/pollack_stevens/modsym.py +1593 -0
- sage/modular/pollack_stevens/padic_lseries.py +417 -0
- sage/modular/pollack_stevens/sigma0.py +534 -0
- sage/modular/pollack_stevens/space.py +1076 -0
- sage/modular/quasimodform/all.py +3 -0
- sage/modular/quasimodform/element.py +845 -0
- sage/modular/quasimodform/ring.py +828 -0
- sage/modular/quatalg/all.py +3 -0
- sage/modular/quatalg/brandt.py +1642 -0
- sage/modular/ssmod/all.py +8 -0
- sage/modular/ssmod/ssmod.py +827 -0
- sage/rings/all__sagemath_schemes.py +1 -0
- sage/rings/polynomial/all__sagemath_schemes.py +1 -0
- sage/rings/polynomial/binary_form_reduce.py +585 -0
- sage/schemes/all.py +41 -0
- sage/schemes/berkovich/all.py +6 -0
- sage/schemes/berkovich/berkovich_cp_element.py +2582 -0
- sage/schemes/berkovich/berkovich_space.py +748 -0
- sage/schemes/curves/affine_curve.py +2928 -0
- sage/schemes/curves/all.py +33 -0
- sage/schemes/curves/closed_point.py +434 -0
- sage/schemes/curves/constructor.py +381 -0
- sage/schemes/curves/curve.py +542 -0
- sage/schemes/curves/plane_curve_arrangement.py +1283 -0
- sage/schemes/curves/point.py +463 -0
- sage/schemes/curves/projective_curve.py +3026 -0
- sage/schemes/curves/zariski_vankampen.py +1932 -0
- sage/schemes/cyclic_covers/all.py +2 -0
- sage/schemes/cyclic_covers/charpoly_frobenius.py +320 -0
- sage/schemes/cyclic_covers/constructor.py +137 -0
- sage/schemes/cyclic_covers/cycliccover_finite_field.py +1309 -0
- sage/schemes/cyclic_covers/cycliccover_generic.py +310 -0
- sage/schemes/elliptic_curves/BSD.py +1036 -0
- sage/schemes/elliptic_curves/Qcurves.py +592 -0
- sage/schemes/elliptic_curves/addition_formulas_ring.py +94 -0
- sage/schemes/elliptic_curves/all.py +49 -0
- sage/schemes/elliptic_curves/cardinality.py +609 -0
- sage/schemes/elliptic_curves/cm.py +1102 -0
- sage/schemes/elliptic_curves/constructor.py +1552 -0
- sage/schemes/elliptic_curves/ec_database.py +175 -0
- sage/schemes/elliptic_curves/ell_curve_isogeny.py +3972 -0
- sage/schemes/elliptic_curves/ell_egros.py +459 -0
- sage/schemes/elliptic_curves/ell_field.py +2836 -0
- sage/schemes/elliptic_curves/ell_finite_field.py +3359 -0
- sage/schemes/elliptic_curves/ell_generic.py +3760 -0
- sage/schemes/elliptic_curves/ell_local_data.py +1207 -0
- sage/schemes/elliptic_curves/ell_modular_symbols.py +775 -0
- sage/schemes/elliptic_curves/ell_number_field.py +4220 -0
- sage/schemes/elliptic_curves/ell_padic_field.py +107 -0
- sage/schemes/elliptic_curves/ell_point.py +4787 -0
- sage/schemes/elliptic_curves/ell_rational_field.py +7368 -0
- sage/schemes/elliptic_curves/ell_tate_curve.py +671 -0
- sage/schemes/elliptic_curves/ell_torsion.py +436 -0
- sage/schemes/elliptic_curves/ell_wp.py +352 -0
- sage/schemes/elliptic_curves/formal_group.py +760 -0
- sage/schemes/elliptic_curves/gal_reps.py +1459 -0
- sage/schemes/elliptic_curves/gal_reps_number_field.py +1669 -0
- sage/schemes/elliptic_curves/gp_simon.py +152 -0
- sage/schemes/elliptic_curves/heegner.py +7335 -0
- sage/schemes/elliptic_curves/height.py +2109 -0
- sage/schemes/elliptic_curves/hom.py +1406 -0
- sage/schemes/elliptic_curves/hom_composite.py +934 -0
- sage/schemes/elliptic_curves/hom_frobenius.py +522 -0
- sage/schemes/elliptic_curves/hom_scalar.py +531 -0
- sage/schemes/elliptic_curves/hom_sum.py +682 -0
- sage/schemes/elliptic_curves/hom_velusqrt.py +1290 -0
- sage/schemes/elliptic_curves/homset.py +271 -0
- sage/schemes/elliptic_curves/isogeny_class.py +1521 -0
- sage/schemes/elliptic_curves/isogeny_small_degree.py +2797 -0
- sage/schemes/elliptic_curves/jacobian.py +237 -0
- sage/schemes/elliptic_curves/kodaira_symbol.py +344 -0
- sage/schemes/elliptic_curves/kraus.py +1014 -0
- sage/schemes/elliptic_curves/lseries_ell.py +943 -0
- sage/schemes/elliptic_curves/mod5family.py +105 -0
- sage/schemes/elliptic_curves/mod_poly.py +197 -0
- sage/schemes/elliptic_curves/mod_sym_num.cpython-312-darwin.so +0 -0
- sage/schemes/elliptic_curves/mod_sym_num.pyx +3796 -0
- sage/schemes/elliptic_curves/modular_parametrization.py +305 -0
- sage/schemes/elliptic_curves/padic_lseries.py +1793 -0
- sage/schemes/elliptic_curves/padics.py +1816 -0
- sage/schemes/elliptic_curves/period_lattice.py +2234 -0
- sage/schemes/elliptic_curves/period_lattice_region.cpython-312-darwin.so +0 -0
- sage/schemes/elliptic_curves/period_lattice_region.pyx +722 -0
- sage/schemes/elliptic_curves/saturation.py +715 -0
- sage/schemes/elliptic_curves/sha_tate.py +1158 -0
- sage/schemes/elliptic_curves/weierstrass_morphism.py +1117 -0
- sage/schemes/elliptic_curves/weierstrass_transform.py +200 -0
- sage/schemes/hyperelliptic_curves/all.py +6 -0
- sage/schemes/hyperelliptic_curves/constructor.py +291 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +1914 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +192 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +954 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +1332 -0
- sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +84 -0
- sage/schemes/hyperelliptic_curves/invariants.py +410 -0
- sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +315 -0
- sage/schemes/hyperelliptic_curves/jacobian_g2.py +32 -0
- sage/schemes/hyperelliptic_curves/jacobian_generic.py +419 -0
- sage/schemes/hyperelliptic_curves/jacobian_homset.py +186 -0
- sage/schemes/hyperelliptic_curves/jacobian_morphism.py +875 -0
- sage/schemes/hyperelliptic_curves/kummer_surface.py +99 -0
- sage/schemes/hyperelliptic_curves/mestre.py +302 -0
- sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +3871 -0
- sage/schemes/jacobians/abstract_jacobian.py +277 -0
- sage/schemes/jacobians/all.py +2 -0
- sage/schemes/overview.py +161 -0
- sage/schemes/plane_conics/all.py +22 -0
- sage/schemes/plane_conics/con_field.py +1296 -0
- sage/schemes/plane_conics/con_finite_field.py +158 -0
- sage/schemes/plane_conics/con_number_field.py +456 -0
- sage/schemes/plane_conics/con_rational_field.py +406 -0
- sage/schemes/plane_conics/con_rational_function_field.py +580 -0
- sage/schemes/plane_conics/constructor.py +249 -0
- sage/schemes/plane_quartics/all.py +2 -0
- sage/schemes/plane_quartics/quartic_constructor.py +71 -0
- sage/schemes/plane_quartics/quartic_generic.py +73 -0
- sage/schemes/riemann_surfaces/all.py +1 -0
- sage/schemes/riemann_surfaces/riemann_surface.py +4117 -0
- sage_wheels/share/cremona/cremona_mini.db +0 -0
- sage_wheels/share/ellcurves/rank0 +30427 -0
- sage_wheels/share/ellcurves/rank1 +31871 -0
- sage_wheels/share/ellcurves/rank10 +6 -0
- sage_wheels/share/ellcurves/rank11 +6 -0
- sage_wheels/share/ellcurves/rank12 +1 -0
- sage_wheels/share/ellcurves/rank14 +1 -0
- sage_wheels/share/ellcurves/rank15 +1 -0
- sage_wheels/share/ellcurves/rank17 +1 -0
- sage_wheels/share/ellcurves/rank19 +1 -0
- sage_wheels/share/ellcurves/rank2 +2388 -0
- sage_wheels/share/ellcurves/rank20 +1 -0
- sage_wheels/share/ellcurves/rank21 +1 -0
- sage_wheels/share/ellcurves/rank22 +1 -0
- sage_wheels/share/ellcurves/rank23 +1 -0
- sage_wheels/share/ellcurves/rank24 +1 -0
- sage_wheels/share/ellcurves/rank28 +1 -0
- sage_wheels/share/ellcurves/rank3 +836 -0
- sage_wheels/share/ellcurves/rank4 +10 -0
- sage_wheels/share/ellcurves/rank5 +5 -0
- sage_wheels/share/ellcurves/rank6 +5 -0
- sage_wheels/share/ellcurves/rank7 +5 -0
- sage_wheels/share/ellcurves/rank8 +6 -0
- sage_wheels/share/ellcurves/rank9 +7 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-schemes
|
|
2
|
+
r"""
|
|
3
|
+
Introduction to Drinfeld modular forms
|
|
4
|
+
======================================
|
|
5
|
+
|
|
6
|
+
This tutorial outlines the definitions, the notations, and the
|
|
7
|
+
implementation of Drinfeld modular forms in SageMath. We assume that the
|
|
8
|
+
reader has basic knowledge of classical modular forms, as we will often
|
|
9
|
+
make analogies to this setting. We also assume little knowledge of
|
|
10
|
+
Drinfeld modules; for this topic, the interested reader can consult the
|
|
11
|
+
SageMath reference manual
|
|
12
|
+
:ref:`Drinfeld modules <sage.rings.function_field.drinfeld_modules.drinfeld_module>`.
|
|
13
|
+
|
|
14
|
+
.. RUBRIC:: Preliminary notations
|
|
15
|
+
|
|
16
|
+
Let `q` be a prime power and let `A` be the ring of functions of
|
|
17
|
+
`\mathbb{P}^1/\mathbb{F}_q` which are regular outside a closed point
|
|
18
|
+
`\infty`. This ring is the polynomial ring `\mathbb{F}_q[T]`. We denote
|
|
19
|
+
by `K := \mathbb{F}_q(T)` rational function field. We endow `K` with the
|
|
20
|
+
`1/T`-adic valuation and let `K_{\infty} := \mathbb{F}_q((1/T))` be the
|
|
21
|
+
completion of `K`. Next, we define `\mathbb{C}_{\infty}` to be the
|
|
22
|
+
completion of an algebraic closure of `K_{\infty}`. Lastly, we denote
|
|
23
|
+
by `\tau : x\mapsto x^q` the `q`-Frobenius.
|
|
24
|
+
|
|
25
|
+
.. NOTE::
|
|
26
|
+
|
|
27
|
+
The above construction of `\mathbb{C}_{\infty}` is the same as the
|
|
28
|
+
construction of `\mathbb{C}_p` in the case of `p`-adic numbers
|
|
29
|
+
(see :wikipedia:`P-adic_number#Algebraic_closure`).
|
|
30
|
+
|
|
31
|
+
In SageMath, we create the rational function field by first creating a
|
|
32
|
+
univariate polynomial ring over `\mathbb{F}_q` and, following this, by
|
|
33
|
+
constructing its field of fractions::
|
|
34
|
+
|
|
35
|
+
sage: A = GF(3)['T']
|
|
36
|
+
sage: K.<T> = Frac(A)
|
|
37
|
+
sage: K
|
|
38
|
+
Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
|
|
39
|
+
sage: K.base() # returns A
|
|
40
|
+
Univariate Polynomial Ring in T over Finite Field of size 3
|
|
41
|
+
|
|
42
|
+
.. RUBRIC:: Drinfeld period domain and action of `\mathrm{GL}_r(K_{\infty})`
|
|
43
|
+
|
|
44
|
+
In the classical setting, the domain of any modular form is the complex
|
|
45
|
+
upper half plane `\mathcal{H}:=\{w\in \mathbb{C} : \mathrm{im}(w)>0\}`.
|
|
46
|
+
The analogue of this plane in the function field setting is the
|
|
47
|
+
*Drinfeld period domain of rank* `r > 1` and it is defined by
|
|
48
|
+
|
|
49
|
+
.. MATH::
|
|
50
|
+
|
|
51
|
+
\Omega^r(\mathbb{C}_{\infty}) :=
|
|
52
|
+
\mathbb{P}^{r-1}(\mathbb{C}_{\infty})
|
|
53
|
+
\setminus \{K_{\infty}\text{-rational hyperplanes}\}.
|
|
54
|
+
|
|
55
|
+
This space is a rigid analytic space and, after fixing an arbitrary
|
|
56
|
+
nonzero constant `\xi` in `\mathbb{C}_{\infty}`, we identify its
|
|
57
|
+
elements with the set of column vectors
|
|
58
|
+
`(w_1,\ldots, w_{r-1}, w_{r})^{\mathrm{T}}` in `\mathbb{C}_{\infty}^r`
|
|
59
|
+
such that the `w_i` are `K_{\infty}`-linearly independant and
|
|
60
|
+
`w_r = \xi`. Note that `\xi` is unspecified, but the reader can assume
|
|
61
|
+
that `\xi = 1` without any loss of significant information. Its value
|
|
62
|
+
can be interesting simply for normalization purposes.
|
|
63
|
+
|
|
64
|
+
We define a left action of `\mathrm{GL}_r(K_{\infty})` on
|
|
65
|
+
`\Omega^r(\mathbb{C}_{\infty})` by setting
|
|
66
|
+
|
|
67
|
+
.. MATH::
|
|
68
|
+
|
|
69
|
+
\gamma(w) := j(\gamma, w)^{-1}\gamma w
|
|
70
|
+
|
|
71
|
+
where `j(\gamma, w) := \xi^{-1} \cdot (\text{last entry of }\gamma w)`.
|
|
72
|
+
|
|
73
|
+
.. RUBRIC:: Universal Drinfeld module over `\Omega^r(\mathbb{C}_{\infty})`
|
|
74
|
+
|
|
75
|
+
For any `w = (w_1, \ldots, w_{r-1}, \xi)` in
|
|
76
|
+
`\Omega^r(\mathbb{C}_{\infty})` we have a corresponding discrete
|
|
77
|
+
`A`-module `\Lambda^w` which is free of rank `r`:
|
|
78
|
+
|
|
79
|
+
.. MATH::
|
|
80
|
+
|
|
81
|
+
\Lambda^w := Aw_1 \oplus \cdots \oplus Aw_{r-1} \oplus A\xi.
|
|
82
|
+
|
|
83
|
+
An important result is that we have analytic uniformization which is the
|
|
84
|
+
analogue of complex uniformization for elliptic curves. In our setting,
|
|
85
|
+
elliptic curves are replaced by Drinfeld modules. In short, there exists
|
|
86
|
+
a corresponding Drinfeld module
|
|
87
|
+
|
|
88
|
+
.. MATH::
|
|
89
|
+
|
|
90
|
+
\phi^w : T \mapsto T + g_1(w)\tau + \cdots
|
|
91
|
+
+ g_{r - 1}(w)\tau^{r-1} + g_{r}(w)\tau^{r}.
|
|
92
|
+
|
|
93
|
+
such that the exponential of `\phi^w` induces an isomorphism (of abelian
|
|
94
|
+
group) between the additive group `\mathbb{C}_{\infty}` and the quotient
|
|
95
|
+
`\mathbb{C}_{\infty} / \Lambda^w`. Background material on Drinfeld
|
|
96
|
+
modules and their analytic uniformization can be found in section 4.3
|
|
97
|
+
and 4.6 of [Gos1998]_.
|
|
98
|
+
|
|
99
|
+
The Drinfeld module
|
|
100
|
+
`\phi^w : A \to \mathbb{C}_{\infty} \{\tau\}` is called the
|
|
101
|
+
*universal Drinfeld* `\mathbb{F}_q[T]`-*module over*
|
|
102
|
+
`\Omega^r(\mathbb{C}_{\infty})` and its coefficients
|
|
103
|
+
`g_i : \Omega^r(\mathbb{C}_{\infty}) \to \mathbb{C}_{\infty}`
|
|
104
|
+
are rigid analytic functions satisfying the *invariance property*:
|
|
105
|
+
|
|
106
|
+
.. MATH::
|
|
107
|
+
|
|
108
|
+
g_i(\gamma(w)) = j(\gamma, w)^{1 - q^i} g_i(w),
|
|
109
|
+
~\forall \gamma\in \mathrm{GL}_r(A)
|
|
110
|
+
|
|
111
|
+
where `g_{r}(w)` never vanishes. Moreover, these coefficients `g_i`
|
|
112
|
+
admits an expansion at infinity, analogous to `q`-expansion principle
|
|
113
|
+
for classical modular forms. The functions `g_i` are known as the
|
|
114
|
+
*coefficients forms at* `T`. More generally, the coefficients of the
|
|
115
|
+
image `\phi^w_a` for any `a\in A` are called the *coefficient forms at*
|
|
116
|
+
`a` and they are an algebraic combination of the coefficient forms at
|
|
117
|
+
`T`.
|
|
118
|
+
|
|
119
|
+
In the rank two case, the expansion at infinity is of the form
|
|
120
|
+
|
|
121
|
+
.. MATH::
|
|
122
|
+
|
|
123
|
+
g_i(w) = \sum_{i = 0}^{\infty} a_n(g_i)u(w)^i
|
|
124
|
+
|
|
125
|
+
where `u(w) := e(w)^{-1}` and `e` is the exponential function of the
|
|
126
|
+
Carlitz module `\rho:T\mapsto T + \tau`. The analytic parameter `u` is
|
|
127
|
+
called the *parameter at infinity*.
|
|
128
|
+
|
|
129
|
+
A *Drinfeld modular form* of rank `r`, weight `k`, type `m` for
|
|
130
|
+
`\mathrm{GL}_r(A)` is a rigid analytic function
|
|
131
|
+
|
|
132
|
+
.. MATH::
|
|
133
|
+
|
|
134
|
+
f:\Omega^r(\mathbb{C}_{\infty}) \to \mathbb{C}_{\infty}
|
|
135
|
+
|
|
136
|
+
such that
|
|
137
|
+
|
|
138
|
+
* `f(\gamma(w)) = \mathrm{det}(\gamma)^m j(\gamma, w)^k f(w)` for all
|
|
139
|
+
`\gamma` in `\mathrm{GL}_r(A)` and
|
|
140
|
+
`w\in \Omega^r(\mathbb{C}_{\infty})`;
|
|
141
|
+
|
|
142
|
+
* `f` is holomorphic at infinity.
|
|
143
|
+
|
|
144
|
+
Without diving into the details, we mention that the second condition is
|
|
145
|
+
similar to the classical case. More specifically, in the rank two
|
|
146
|
+
situation, the expansion of `f` is given by a power series in `u`
|
|
147
|
+
`f = \sum_{n\geq 0} a_n(f) u^n` where `a_n(f)\in \mathbb{C}_{\infty}`.
|
|
148
|
+
|
|
149
|
+
Lastly, we also mention that the integer `m` only depends on its class
|
|
150
|
+
modulo `q-1`.
|
|
151
|
+
|
|
152
|
+
Note that all the above theory is covered in much greater details in
|
|
153
|
+
part I of [BRP2018]_.
|
|
154
|
+
|
|
155
|
+
.. RUBRIC:: Ring of Drinfeld modular forms
|
|
156
|
+
|
|
157
|
+
Letting `M_k^{r, m}(\mathrm{GL}_r(A))` denote the space of rank `r`,
|
|
158
|
+
weight `k\in (q - 1)\mathbb{Z}` and type `m` Drinfeld modular forms,
|
|
159
|
+
we define
|
|
160
|
+
|
|
161
|
+
.. MATH::
|
|
162
|
+
|
|
163
|
+
M^{r, 0}(\mathrm{GL}_r(A)) :=
|
|
164
|
+
\bigoplus_{k\in ZZ} M_k^{r, 0}(\mathrm{GL}_r(A))
|
|
165
|
+
|
|
166
|
+
to be the graded ring of all Drinfeld modular forms of type 0. The
|
|
167
|
+
graduation is given by the weight of a modular form. Similarly, we let
|
|
168
|
+
`M^{r}(\mathrm{GL}_r(A)) \supset M^{r, 0}(\mathrm{GL}_r(A))` be the ring
|
|
169
|
+
of all Drinfeld modular forms of rank `r` and arbitrary type. By
|
|
170
|
+
theorem 17.5 in part III of [BRP2018]_, we have
|
|
171
|
+
|
|
172
|
+
.. MATH::
|
|
173
|
+
|
|
174
|
+
M^{r, 0}(\mathrm{GL}_r(A))
|
|
175
|
+
= \mathbb{C}_{\infty}[g_1,\ldots, g_{r-1}, g_{r}].
|
|
176
|
+
|
|
177
|
+
and
|
|
178
|
+
|
|
179
|
+
.. MATH::
|
|
180
|
+
|
|
181
|
+
M^{r}(\mathrm{GL}_r(A))
|
|
182
|
+
= \mathbb{C}_{\infty}[g_1,\ldots, g_{r-1}, h_{r}].
|
|
183
|
+
|
|
184
|
+
where `h_r` is a weight `(q^r - 1)/(q - 1)` modular forms of type `1`
|
|
185
|
+
which is a `(q-1)`-root of `g_r` sometimes known as *Gekeler's* `h`
|
|
186
|
+
*function*, see theorem 3.8 of [Gek2017]_ for the precise definition of
|
|
187
|
+
this function.
|
|
188
|
+
|
|
189
|
+
.. RUBRIC:: SageMath implementation
|
|
190
|
+
|
|
191
|
+
In SageMath, we model the ring of type 0 Drinfeld modular forms over `K`
|
|
192
|
+
as a finitely generated ring in the coefficients forms `g_i`:
|
|
193
|
+
|
|
194
|
+
.. MATH::
|
|
195
|
+
|
|
196
|
+
K[g_1,\ldots, g_{r-1}, g_r].
|
|
197
|
+
|
|
198
|
+
Hence, any ring element is seen as a formal algebraic combination of the
|
|
199
|
+
coefficient forms `g_i` over `K`. Likewise, the ring of arbitrary
|
|
200
|
+
type forms is generated by `g_1\ldots, g_{r-1}, h_r`.
|
|
201
|
+
|
|
202
|
+
To create the ring of type zero and rank `r` Drinfeld modular forms, one
|
|
203
|
+
uses the class
|
|
204
|
+
:class:`~sage.modular.drinfeld_modform.ring.DrinfeldModularForms`::
|
|
205
|
+
|
|
206
|
+
sage: A = GF(3)['T']
|
|
207
|
+
sage: K.<T> = Frac(A)
|
|
208
|
+
sage: M = DrinfeldModularForms(K, 3) # rank 3
|
|
209
|
+
sage: M
|
|
210
|
+
Ring of Drinfeld modular forms of rank 3 over Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
|
|
211
|
+
|
|
212
|
+
To create the ring of arbitrary types modular forms, one passes the
|
|
213
|
+
keyword argument ``has_type=True``::
|
|
214
|
+
|
|
215
|
+
sage: M = DrinfeldModularForms(K, 4, has_type=True)
|
|
216
|
+
sage: M.gens()
|
|
217
|
+
(g1, g2, g3, h4)
|
|
218
|
+
sage: h4 = M.3
|
|
219
|
+
sage: h4.weight()
|
|
220
|
+
40
|
|
221
|
+
|
|
222
|
+
For more information about the functionalities of the implementation,
|
|
223
|
+
one should consult the documentation of the main classes:
|
|
224
|
+
|
|
225
|
+
- Parent class:
|
|
226
|
+
:class:`~sage.modular.drinfeld_modform.ring.DrinfeldModularForms`
|
|
227
|
+
|
|
228
|
+
- Element class:
|
|
229
|
+
:class:`~sage.modular.drinfeld_modform.element.DrinfeldModularFormsElement`
|
|
230
|
+
|
|
231
|
+
.. RUBRIC:: References
|
|
232
|
+
|
|
233
|
+
A good introduction to Drinfeld modular forms of rank 2, see Gekeler's
|
|
234
|
+
paper [Gek1988]_. See also [BRP2018]_ for a detailed exposition of the
|
|
235
|
+
arbitrary rank theory.
|
|
236
|
+
"""
|