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.
Files changed (311) hide show
  1. passagemath_schemes/.dylibs/libflint.22.0.dylib +0 -0
  2. passagemath_schemes/.dylibs/libgmp.10.dylib +0 -0
  3. passagemath_schemes/.dylibs/libgmpxx.4.dylib +0 -0
  4. passagemath_schemes/.dylibs/libmpfr.6.dylib +0 -0
  5. passagemath_schemes/__init__.py +3 -0
  6. passagemath_schemes-10.6.47.dist-info/METADATA +204 -0
  7. passagemath_schemes-10.6.47.dist-info/METADATA.bak +205 -0
  8. passagemath_schemes-10.6.47.dist-info/RECORD +311 -0
  9. passagemath_schemes-10.6.47.dist-info/WHEEL +6 -0
  10. passagemath_schemes-10.6.47.dist-info/top_level.txt +3 -0
  11. sage/all__sagemath_schemes.py +23 -0
  12. sage/databases/all__sagemath_schemes.py +7 -0
  13. sage/databases/cremona.py +1723 -0
  14. sage/dynamics/all__sagemath_schemes.py +2 -0
  15. sage/dynamics/arithmetic_dynamics/affine_ds.py +1083 -0
  16. sage/dynamics/arithmetic_dynamics/all.py +14 -0
  17. sage/dynamics/arithmetic_dynamics/berkovich_ds.py +1101 -0
  18. sage/dynamics/arithmetic_dynamics/dynamical_semigroup.py +1543 -0
  19. sage/dynamics/arithmetic_dynamics/endPN_automorphism_group.py +2426 -0
  20. sage/dynamics/arithmetic_dynamics/endPN_minimal_model.py +1169 -0
  21. sage/dynamics/arithmetic_dynamics/generic_ds.py +663 -0
  22. sage/dynamics/arithmetic_dynamics/product_projective_ds.py +339 -0
  23. sage/dynamics/arithmetic_dynamics/projective_ds.py +9558 -0
  24. sage/dynamics/arithmetic_dynamics/projective_ds_helper.cpython-312-darwin.so +0 -0
  25. sage/dynamics/arithmetic_dynamics/projective_ds_helper.pyx +301 -0
  26. sage/dynamics/arithmetic_dynamics/wehlerK3.py +2576 -0
  27. sage/lfunctions/all.py +18 -0
  28. sage/lfunctions/dokchitser.py +745 -0
  29. sage/lfunctions/pari.py +818 -0
  30. sage/lfunctions/zero_sums.cpython-312-darwin.so +0 -0
  31. sage/lfunctions/zero_sums.pyx +1847 -0
  32. sage/modular/abvar/abvar.py +5135 -0
  33. sage/modular/abvar/abvar_ambient_jacobian.py +413 -0
  34. sage/modular/abvar/abvar_newform.py +244 -0
  35. sage/modular/abvar/all.py +8 -0
  36. sage/modular/abvar/constructor.py +186 -0
  37. sage/modular/abvar/cuspidal_subgroup.py +371 -0
  38. sage/modular/abvar/finite_subgroup.py +896 -0
  39. sage/modular/abvar/homology.py +720 -0
  40. sage/modular/abvar/homspace.py +998 -0
  41. sage/modular/abvar/lseries.py +415 -0
  42. sage/modular/abvar/morphism.py +935 -0
  43. sage/modular/abvar/torsion_point.py +274 -0
  44. sage/modular/abvar/torsion_subgroup.py +740 -0
  45. sage/modular/all.py +43 -0
  46. sage/modular/arithgroup/all.py +20 -0
  47. sage/modular/arithgroup/arithgroup_element.cpython-312-darwin.so +0 -0
  48. sage/modular/arithgroup/arithgroup_element.pyx +474 -0
  49. sage/modular/arithgroup/arithgroup_generic.py +1402 -0
  50. sage/modular/arithgroup/arithgroup_perm.py +2692 -0
  51. sage/modular/arithgroup/congroup.cpython-312-darwin.so +0 -0
  52. sage/modular/arithgroup/congroup.pyx +334 -0
  53. sage/modular/arithgroup/congroup_gamma.py +363 -0
  54. sage/modular/arithgroup/congroup_gamma0.py +692 -0
  55. sage/modular/arithgroup/congroup_gamma1.py +653 -0
  56. sage/modular/arithgroup/congroup_gammaH.py +1469 -0
  57. sage/modular/arithgroup/congroup_generic.py +628 -0
  58. sage/modular/arithgroup/congroup_sl2z.py +267 -0
  59. sage/modular/arithgroup/farey_symbol.cpython-312-darwin.so +0 -0
  60. sage/modular/arithgroup/farey_symbol.pyx +1066 -0
  61. sage/modular/arithgroup/tests.py +418 -0
  62. sage/modular/btquotients/all.py +4 -0
  63. sage/modular/btquotients/btquotient.py +3753 -0
  64. sage/modular/btquotients/pautomorphicform.py +2570 -0
  65. sage/modular/buzzard.py +100 -0
  66. sage/modular/congroup.py +29 -0
  67. sage/modular/congroup_element.py +13 -0
  68. sage/modular/cusps.py +1109 -0
  69. sage/modular/cusps_nf.py +1270 -0
  70. sage/modular/dims.py +569 -0
  71. sage/modular/dirichlet.py +3310 -0
  72. sage/modular/drinfeld_modform/all.py +2 -0
  73. sage/modular/drinfeld_modform/element.py +446 -0
  74. sage/modular/drinfeld_modform/ring.py +773 -0
  75. sage/modular/drinfeld_modform/tutorial.py +236 -0
  76. sage/modular/etaproducts.py +1065 -0
  77. sage/modular/hecke/algebra.py +746 -0
  78. sage/modular/hecke/all.py +20 -0
  79. sage/modular/hecke/ambient_module.py +1019 -0
  80. sage/modular/hecke/degenmap.py +119 -0
  81. sage/modular/hecke/element.py +325 -0
  82. sage/modular/hecke/hecke_operator.py +780 -0
  83. sage/modular/hecke/homspace.py +206 -0
  84. sage/modular/hecke/module.py +1767 -0
  85. sage/modular/hecke/morphism.py +174 -0
  86. sage/modular/hecke/submodule.py +989 -0
  87. sage/modular/hypergeometric_misc.cpython-312-darwin.so +0 -0
  88. sage/modular/hypergeometric_misc.pxd +4 -0
  89. sage/modular/hypergeometric_misc.pyx +166 -0
  90. sage/modular/hypergeometric_motive.py +2017 -0
  91. sage/modular/local_comp/all.py +2 -0
  92. sage/modular/local_comp/liftings.py +292 -0
  93. sage/modular/local_comp/local_comp.py +1071 -0
  94. sage/modular/local_comp/smoothchar.py +1825 -0
  95. sage/modular/local_comp/type_space.py +748 -0
  96. sage/modular/modform/all.py +30 -0
  97. sage/modular/modform/ambient.py +815 -0
  98. sage/modular/modform/ambient_R.py +177 -0
  99. sage/modular/modform/ambient_eps.py +306 -0
  100. sage/modular/modform/ambient_g0.py +124 -0
  101. sage/modular/modform/ambient_g1.py +204 -0
  102. sage/modular/modform/constructor.py +545 -0
  103. sage/modular/modform/cuspidal_submodule.py +708 -0
  104. sage/modular/modform/defaults.py +14 -0
  105. sage/modular/modform/eis_series.py +505 -0
  106. sage/modular/modform/eisenstein_submodule.py +663 -0
  107. sage/modular/modform/element.py +4131 -0
  108. sage/modular/modform/find_generators.py +59 -0
  109. sage/modular/modform/half_integral.py +154 -0
  110. sage/modular/modform/hecke_operator_on_qexp.py +247 -0
  111. sage/modular/modform/j_invariant.py +47 -0
  112. sage/modular/modform/l_series_gross_zagier.py +133 -0
  113. sage/modular/modform/l_series_gross_zagier_coeffs.cpython-312-darwin.so +0 -0
  114. sage/modular/modform/l_series_gross_zagier_coeffs.pyx +177 -0
  115. sage/modular/modform/notes.py +45 -0
  116. sage/modular/modform/numerical.py +514 -0
  117. sage/modular/modform/periods.py +14 -0
  118. sage/modular/modform/ring.py +1257 -0
  119. sage/modular/modform/space.py +1860 -0
  120. sage/modular/modform/submodule.py +118 -0
  121. sage/modular/modform/tests.py +64 -0
  122. sage/modular/modform/theta.py +110 -0
  123. sage/modular/modform/vm_basis.py +381 -0
  124. sage/modular/modform/weight1.py +220 -0
  125. sage/modular/modform_hecketriangle/abstract_ring.py +1932 -0
  126. sage/modular/modform_hecketriangle/abstract_space.py +2528 -0
  127. sage/modular/modform_hecketriangle/all.py +30 -0
  128. sage/modular/modform_hecketriangle/analytic_type.py +590 -0
  129. sage/modular/modform_hecketriangle/constructor.py +416 -0
  130. sage/modular/modform_hecketriangle/element.py +351 -0
  131. sage/modular/modform_hecketriangle/functors.py +752 -0
  132. sage/modular/modform_hecketriangle/graded_ring.py +541 -0
  133. sage/modular/modform_hecketriangle/graded_ring_element.py +2225 -0
  134. sage/modular/modform_hecketriangle/hecke_triangle_group_element.py +3352 -0
  135. sage/modular/modform_hecketriangle/hecke_triangle_groups.py +1432 -0
  136. sage/modular/modform_hecketriangle/readme.py +1214 -0
  137. sage/modular/modform_hecketriangle/series_constructor.py +580 -0
  138. sage/modular/modform_hecketriangle/space.py +1037 -0
  139. sage/modular/modform_hecketriangle/subspace.py +423 -0
  140. sage/modular/modsym/all.py +17 -0
  141. sage/modular/modsym/ambient.py +3846 -0
  142. sage/modular/modsym/boundary.py +1420 -0
  143. sage/modular/modsym/element.py +336 -0
  144. sage/modular/modsym/g1list.py +178 -0
  145. sage/modular/modsym/ghlist.py +182 -0
  146. sage/modular/modsym/hecke_operator.py +73 -0
  147. sage/modular/modsym/manin_symbol.cpython-312-darwin.so +0 -0
  148. sage/modular/modsym/manin_symbol.pxd +5 -0
  149. sage/modular/modsym/manin_symbol.pyx +497 -0
  150. sage/modular/modsym/manin_symbol_list.py +1295 -0
  151. sage/modular/modsym/modsym.py +400 -0
  152. sage/modular/modsym/modular_symbols.py +384 -0
  153. sage/modular/modsym/p1list_nf.py +1241 -0
  154. sage/modular/modsym/relation_matrix.py +591 -0
  155. sage/modular/modsym/relation_matrix_pyx.cpython-312-darwin.so +0 -0
  156. sage/modular/modsym/relation_matrix_pyx.pyx +108 -0
  157. sage/modular/modsym/space.py +2468 -0
  158. sage/modular/modsym/subspace.py +455 -0
  159. sage/modular/modsym/tests.py +375 -0
  160. sage/modular/multiple_zeta.py +2632 -0
  161. sage/modular/multiple_zeta_F_algebra.py +786 -0
  162. sage/modular/overconvergent/all.py +6 -0
  163. sage/modular/overconvergent/genus0.py +1878 -0
  164. sage/modular/overconvergent/hecke_series.py +1187 -0
  165. sage/modular/overconvergent/weightspace.py +778 -0
  166. sage/modular/pollack_stevens/all.py +4 -0
  167. sage/modular/pollack_stevens/distributions.py +874 -0
  168. sage/modular/pollack_stevens/fund_domain.py +1572 -0
  169. sage/modular/pollack_stevens/manin_map.py +859 -0
  170. sage/modular/pollack_stevens/modsym.py +1593 -0
  171. sage/modular/pollack_stevens/padic_lseries.py +417 -0
  172. sage/modular/pollack_stevens/sigma0.py +534 -0
  173. sage/modular/pollack_stevens/space.py +1076 -0
  174. sage/modular/quasimodform/all.py +3 -0
  175. sage/modular/quasimodform/element.py +845 -0
  176. sage/modular/quasimodform/ring.py +828 -0
  177. sage/modular/quatalg/all.py +3 -0
  178. sage/modular/quatalg/brandt.py +1642 -0
  179. sage/modular/ssmod/all.py +8 -0
  180. sage/modular/ssmod/ssmod.py +827 -0
  181. sage/rings/all__sagemath_schemes.py +1 -0
  182. sage/rings/polynomial/all__sagemath_schemes.py +1 -0
  183. sage/rings/polynomial/binary_form_reduce.py +585 -0
  184. sage/schemes/all.py +41 -0
  185. sage/schemes/berkovich/all.py +6 -0
  186. sage/schemes/berkovich/berkovich_cp_element.py +2582 -0
  187. sage/schemes/berkovich/berkovich_space.py +748 -0
  188. sage/schemes/curves/affine_curve.py +2928 -0
  189. sage/schemes/curves/all.py +33 -0
  190. sage/schemes/curves/closed_point.py +434 -0
  191. sage/schemes/curves/constructor.py +381 -0
  192. sage/schemes/curves/curve.py +542 -0
  193. sage/schemes/curves/plane_curve_arrangement.py +1283 -0
  194. sage/schemes/curves/point.py +463 -0
  195. sage/schemes/curves/projective_curve.py +3026 -0
  196. sage/schemes/curves/zariski_vankampen.py +1932 -0
  197. sage/schemes/cyclic_covers/all.py +2 -0
  198. sage/schemes/cyclic_covers/charpoly_frobenius.py +320 -0
  199. sage/schemes/cyclic_covers/constructor.py +137 -0
  200. sage/schemes/cyclic_covers/cycliccover_finite_field.py +1309 -0
  201. sage/schemes/cyclic_covers/cycliccover_generic.py +310 -0
  202. sage/schemes/elliptic_curves/BSD.py +1036 -0
  203. sage/schemes/elliptic_curves/Qcurves.py +592 -0
  204. sage/schemes/elliptic_curves/addition_formulas_ring.py +94 -0
  205. sage/schemes/elliptic_curves/all.py +49 -0
  206. sage/schemes/elliptic_curves/cardinality.py +609 -0
  207. sage/schemes/elliptic_curves/cm.py +1102 -0
  208. sage/schemes/elliptic_curves/constructor.py +1552 -0
  209. sage/schemes/elliptic_curves/ec_database.py +175 -0
  210. sage/schemes/elliptic_curves/ell_curve_isogeny.py +3972 -0
  211. sage/schemes/elliptic_curves/ell_egros.py +459 -0
  212. sage/schemes/elliptic_curves/ell_field.py +2836 -0
  213. sage/schemes/elliptic_curves/ell_finite_field.py +3359 -0
  214. sage/schemes/elliptic_curves/ell_generic.py +3760 -0
  215. sage/schemes/elliptic_curves/ell_local_data.py +1207 -0
  216. sage/schemes/elliptic_curves/ell_modular_symbols.py +775 -0
  217. sage/schemes/elliptic_curves/ell_number_field.py +4220 -0
  218. sage/schemes/elliptic_curves/ell_padic_field.py +107 -0
  219. sage/schemes/elliptic_curves/ell_point.py +4787 -0
  220. sage/schemes/elliptic_curves/ell_rational_field.py +7368 -0
  221. sage/schemes/elliptic_curves/ell_tate_curve.py +671 -0
  222. sage/schemes/elliptic_curves/ell_torsion.py +436 -0
  223. sage/schemes/elliptic_curves/ell_wp.py +352 -0
  224. sage/schemes/elliptic_curves/formal_group.py +760 -0
  225. sage/schemes/elliptic_curves/gal_reps.py +1459 -0
  226. sage/schemes/elliptic_curves/gal_reps_number_field.py +1669 -0
  227. sage/schemes/elliptic_curves/gp_simon.py +152 -0
  228. sage/schemes/elliptic_curves/heegner.py +7335 -0
  229. sage/schemes/elliptic_curves/height.py +2109 -0
  230. sage/schemes/elliptic_curves/hom.py +1406 -0
  231. sage/schemes/elliptic_curves/hom_composite.py +934 -0
  232. sage/schemes/elliptic_curves/hom_frobenius.py +522 -0
  233. sage/schemes/elliptic_curves/hom_scalar.py +531 -0
  234. sage/schemes/elliptic_curves/hom_sum.py +682 -0
  235. sage/schemes/elliptic_curves/hom_velusqrt.py +1290 -0
  236. sage/schemes/elliptic_curves/homset.py +271 -0
  237. sage/schemes/elliptic_curves/isogeny_class.py +1521 -0
  238. sage/schemes/elliptic_curves/isogeny_small_degree.py +2797 -0
  239. sage/schemes/elliptic_curves/jacobian.py +237 -0
  240. sage/schemes/elliptic_curves/kodaira_symbol.py +344 -0
  241. sage/schemes/elliptic_curves/kraus.py +1014 -0
  242. sage/schemes/elliptic_curves/lseries_ell.py +943 -0
  243. sage/schemes/elliptic_curves/mod5family.py +105 -0
  244. sage/schemes/elliptic_curves/mod_poly.py +197 -0
  245. sage/schemes/elliptic_curves/mod_sym_num.cpython-312-darwin.so +0 -0
  246. sage/schemes/elliptic_curves/mod_sym_num.pyx +3796 -0
  247. sage/schemes/elliptic_curves/modular_parametrization.py +305 -0
  248. sage/schemes/elliptic_curves/padic_lseries.py +1793 -0
  249. sage/schemes/elliptic_curves/padics.py +1816 -0
  250. sage/schemes/elliptic_curves/period_lattice.py +2234 -0
  251. sage/schemes/elliptic_curves/period_lattice_region.cpython-312-darwin.so +0 -0
  252. sage/schemes/elliptic_curves/period_lattice_region.pyx +722 -0
  253. sage/schemes/elliptic_curves/saturation.py +715 -0
  254. sage/schemes/elliptic_curves/sha_tate.py +1158 -0
  255. sage/schemes/elliptic_curves/weierstrass_morphism.py +1117 -0
  256. sage/schemes/elliptic_curves/weierstrass_transform.py +200 -0
  257. sage/schemes/hyperelliptic_curves/all.py +6 -0
  258. sage/schemes/hyperelliptic_curves/constructor.py +291 -0
  259. sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py +1914 -0
  260. sage/schemes/hyperelliptic_curves/hyperelliptic_g2.py +192 -0
  261. sage/schemes/hyperelliptic_curves/hyperelliptic_generic.py +954 -0
  262. sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py +1332 -0
  263. sage/schemes/hyperelliptic_curves/hyperelliptic_rational_field.py +84 -0
  264. sage/schemes/hyperelliptic_curves/invariants.py +410 -0
  265. sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py +315 -0
  266. sage/schemes/hyperelliptic_curves/jacobian_g2.py +32 -0
  267. sage/schemes/hyperelliptic_curves/jacobian_generic.py +419 -0
  268. sage/schemes/hyperelliptic_curves/jacobian_homset.py +186 -0
  269. sage/schemes/hyperelliptic_curves/jacobian_morphism.py +875 -0
  270. sage/schemes/hyperelliptic_curves/kummer_surface.py +99 -0
  271. sage/schemes/hyperelliptic_curves/mestre.py +302 -0
  272. sage/schemes/hyperelliptic_curves/monsky_washnitzer.py +3871 -0
  273. sage/schemes/jacobians/abstract_jacobian.py +277 -0
  274. sage/schemes/jacobians/all.py +2 -0
  275. sage/schemes/overview.py +161 -0
  276. sage/schemes/plane_conics/all.py +22 -0
  277. sage/schemes/plane_conics/con_field.py +1296 -0
  278. sage/schemes/plane_conics/con_finite_field.py +158 -0
  279. sage/schemes/plane_conics/con_number_field.py +456 -0
  280. sage/schemes/plane_conics/con_rational_field.py +406 -0
  281. sage/schemes/plane_conics/con_rational_function_field.py +580 -0
  282. sage/schemes/plane_conics/constructor.py +249 -0
  283. sage/schemes/plane_quartics/all.py +2 -0
  284. sage/schemes/plane_quartics/quartic_constructor.py +71 -0
  285. sage/schemes/plane_quartics/quartic_generic.py +73 -0
  286. sage/schemes/riemann_surfaces/all.py +1 -0
  287. sage/schemes/riemann_surfaces/riemann_surface.py +4117 -0
  288. sage_wheels/share/cremona/cremona_mini.db +0 -0
  289. sage_wheels/share/ellcurves/rank0 +30427 -0
  290. sage_wheels/share/ellcurves/rank1 +31871 -0
  291. sage_wheels/share/ellcurves/rank10 +6 -0
  292. sage_wheels/share/ellcurves/rank11 +6 -0
  293. sage_wheels/share/ellcurves/rank12 +1 -0
  294. sage_wheels/share/ellcurves/rank14 +1 -0
  295. sage_wheels/share/ellcurves/rank15 +1 -0
  296. sage_wheels/share/ellcurves/rank17 +1 -0
  297. sage_wheels/share/ellcurves/rank19 +1 -0
  298. sage_wheels/share/ellcurves/rank2 +2388 -0
  299. sage_wheels/share/ellcurves/rank20 +1 -0
  300. sage_wheels/share/ellcurves/rank21 +1 -0
  301. sage_wheels/share/ellcurves/rank22 +1 -0
  302. sage_wheels/share/ellcurves/rank23 +1 -0
  303. sage_wheels/share/ellcurves/rank24 +1 -0
  304. sage_wheels/share/ellcurves/rank28 +1 -0
  305. sage_wheels/share/ellcurves/rank3 +836 -0
  306. sage_wheels/share/ellcurves/rank4 +10 -0
  307. sage_wheels/share/ellcurves/rank5 +5 -0
  308. sage_wheels/share/ellcurves/rank6 +5 -0
  309. sage_wheels/share/ellcurves/rank7 +5 -0
  310. sage_wheels/share/ellcurves/rank8 +6 -0
  311. 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
+ """