-
-
Notifications
You must be signed in to change notification settings - Fork 654
Implement Drinfeld modular forms #36538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Documentation preview for this PR (built with commit 01fd19c; changes) is ready! 🎉 |
Great addition, thanks David! I noticed that you added special classes for Drinfeld modular forms of rank 2 but those are basically empty. Is it normal? |
Yes these are currently just placeholder, but I plan to implement them in this PR. If you want to get familiar with the expansion theory I'm going to implement, I recommend reading chapter 7 of my thesis and/or the associated reference by Petrov and Lopez:
I was recently thinking about some implementation details and wondering whether or not it would be desirable to implement a specific class for the |
I suggest actually to split your contribution in two separate PR. It would be easier for review. |
OK, that's a good advice, I will do that. In this current PR I will only implement arbitrary ranks Drinfeld modular forms and in a seperate PR I will implement rank 2 specific stuff. |
The CI tests are all green now! Don't hesitate if you have more comments (I prefer to fix thing right now instead of later). |
If Xavier is happy with the changes, then so am I (I had already given green flag previously). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few additional (or not) small comments.
…index in range function
…or invalid operator
… an absolute import
I'm not sure I understand why all the following doctests run fail:
|
I'm not sure but I think they are all unrelated to this PR. |
sagemathgh-36538: Implement Drinfeld modular forms <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> This PR aims to implement Drinfeld modular forms into SageMath. These special types of modular forms live in the function field theory and are linked with Drinfeld modules. #### Definitions Without going too much into the details, we give some definitions and insight of what is going on here. Let $K = \mathbb{F}_q(T)$ together with the $1/T$-adic norm and $A = \mathbb{F}_q[T]$. We define $K\_{\infty} = \mathbb{F}_q((1/T))$ be the completion of $K$ and let $\mathbb{C}\_{\infty}$ be the completion of an algebraic closure of $K\_{\infty}$. In this specific setting, the *Drinfeld period domain* of rank $r$ is $$ \Omega^r(\mathbb{C}\_{\infty}) := \lbrace (w_1, \ldots, w_{r-1}, 1)\in \mathbb{C}\_{\infty}^r : \text{the }w_i \text{'s are }K\_{\infty}\text{-linearly independant} \rbrace. $$ (this period domain is to be seen as the analogue of the complex upper half plane) So, for each $w = (w_1, \ldots, w_{r-1}, 1)\in \Omega^r(\mathbb{C}\_{\infty})$, we have an associated $A$-lattice (i.e. a discrete projective $A$-module of rank r): $\Lambda_w = A w_1 + \ldots A w_{r-1} + A$. The analytic theory of Drinfeld modules tells us that, for each such $w$, there exist a Drinfeld module $$ \phi^w_T : T \mapsto T + g\_1(w) \tau + \ldots + g\_{r-1}(w) \tau^{r-1} + g\_r(w) \tau^r $$ associated with this lattice. This association is what we call the universal Drinfeld module over $\Omega^r(\mathbb{C}\_{\infty})$. We see the coefficients as functions $g_i : \Omega^r(\mathbb{C}\_{\infty}) \rightarrow \mathbb{C}\_{\infty}$. These functions satisfy modular transformation property under the action of the group $\mathrm{GL}_r(A)$: $$ g_i(\gamma(w)) = j(\gamma, w)^i g_i(w) $$ where $j$ is some automorphic factor. The ring of Drinfeld modular forms for $\mathrm{GL}_r(A)$ is $$ \mathcal{M}\_{\bullet} = \mathbb{C}\_{\infty}[g_1, \ldots g_{r-1}, g_r]. $$ #### Implementations details In this implementation, we create a new parent `DrinfeldModularForms` which represents the polynomial ring $K[g_1,\ldots, g_{r-1}, g_r]$ and a new element class `DrinfeldModularFormsElement`. Then, for arbitrary rank, we only see a Drinfeld modular form symbolically as a multivariate polynomial in $g_1, \ldots, g_r$, the coefficients forms. In the special case when the rank is two, we aim to implement algorithms for computing the expansion at infinity of any Drinfeld modular forms. These expansions are analogues of the usual $q$-expansion of classcial modular forms. This will be achieved via the Lopez-Petrov nonstandard expansion theory. We note that this implementation was initially done as a pip-installable package: https://davidayotte.github.io/drinfeld_modular_forms This work has been an ongoing project for almost two years now and since the addition of Drinfeld modules in SageMath, the author has seen an interest in the implementation of Drinfeld modular forms to SageMath. In the rank two case, the ability to compute their expansion at infinity shows some interesting computational properties of these objects. We are aware that this is a quite specialized topic, so we aim to make this implementation as convivial as possible for the user and well documented. Any comments and suggestions are welcome! CC: @xcaruso @kryzar @ymusleh ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36538 Reported by: David Ayotte Reviewer(s): Antoine Leudière, David Ayotte, Xavier Caruso
sagemathgh-36538: Implement Drinfeld modular forms <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes sagemath#1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes sagemath#12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> This PR aims to implement Drinfeld modular forms into SageMath. These special types of modular forms live in the function field theory and are linked with Drinfeld modules. #### Definitions Without going too much into the details, we give some definitions and insight of what is going on here. Let $K = \mathbb{F}_q(T)$ together with the $1/T$-adic norm and $A = \mathbb{F}_q[T]$. We define $K\_{\infty} = \mathbb{F}_q((1/T))$ be the completion of $K$ and let $\mathbb{C}\_{\infty}$ be the completion of an algebraic closure of $K\_{\infty}$. In this specific setting, the *Drinfeld period domain* of rank $r$ is $$ \Omega^r(\mathbb{C}\_{\infty}) := \lbrace (w_1, \ldots, w_{r-1}, 1)\in \mathbb{C}\_{\infty}^r : \text{the }w_i \text{'s are }K\_{\infty}\text{-linearly independant} \rbrace. $$ (this period domain is to be seen as the analogue of the complex upper half plane) So, for each $w = (w_1, \ldots, w_{r-1}, 1)\in \Omega^r(\mathbb{C}\_{\infty})$, we have an associated $A$-lattice (i.e. a discrete projective $A$-module of rank r): $\Lambda_w = A w_1 + \ldots A w_{r-1} + A$. The analytic theory of Drinfeld modules tells us that, for each such $w$, there exist a Drinfeld module $$ \phi^w_T : T \mapsto T + g\_1(w) \tau + \ldots + g\_{r-1}(w) \tau^{r-1} + g\_r(w) \tau^r $$ associated with this lattice. This association is what we call the universal Drinfeld module over $\Omega^r(\mathbb{C}\_{\infty})$. We see the coefficients as functions $g_i : \Omega^r(\mathbb{C}\_{\infty}) \rightarrow \mathbb{C}\_{\infty}$. These functions satisfy modular transformation property under the action of the group $\mathrm{GL}_r(A)$: $$ g_i(\gamma(w)) = j(\gamma, w)^i g_i(w) $$ where $j$ is some automorphic factor. The ring of Drinfeld modular forms for $\mathrm{GL}_r(A)$ is $$ \mathcal{M}\_{\bullet} = \mathbb{C}\_{\infty}[g_1, \ldots g_{r-1}, g_r]. $$ #### Implementations details In this implementation, we create a new parent `DrinfeldModularForms` which represents the polynomial ring $K[g_1,\ldots, g_{r-1}, g_r]$ and a new element class `DrinfeldModularFormsElement`. Then, for arbitrary rank, we only see a Drinfeld modular form symbolically as a multivariate polynomial in $g_1, \ldots, g_r$, the coefficients forms. In the special case when the rank is two, we aim to implement algorithms for computing the expansion at infinity of any Drinfeld modular forms. These expansions are analogues of the usual $q$-expansion of classcial modular forms. This will be achieved via the Lopez-Petrov nonstandard expansion theory. We note that this implementation was initially done as a pip-installable package: https://davidayotte.github.io/drinfeld_modular_forms This work has been an ongoing project for almost two years now and since the addition of Drinfeld modules in SageMath, the author has seen an interest in the implementation of Drinfeld modular forms to SageMath. In the rank two case, the ability to compute their expansion at infinity shows some interesting computational properties of these objects. We are aware that this is a quite specialized topic, so we aim to make this implementation as convivial as possible for the user and well documented. Any comments and suggestions are welcome! CC: @xcaruso @kryzar @ymusleh ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - sagemath#12345: short description why this is a dependency - sagemath#34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: sagemath#36538 Reported by: David Ayotte Reviewer(s): Antoine Leudière, David Ayotte, Xavier Caruso
Yeaaaah, congrats @DavidAyotte! |
This PR aims to implement Drinfeld modular forms into SageMath. These special types of modular forms live in the function field theory and are linked with Drinfeld modules.
Definitions
Without going too much into the details, we give some definitions and insight of what is going on here. Let$K = \mathbb{F}_q(T)$ together with the $1/T$ -adic norm and $A = \mathbb{F}_q[T]$ . We define $K_{\infty} = \mathbb{F}_q((1/T))$ be the completion of $K$ and let $\mathbb{C}_{\infty}$ be the completion of an algebraic closure of $K_{\infty}$ . In this specific setting, the Drinfeld period domain of rank $r$ is
(this period domain is to be seen as the analogue of the complex upper half plane)
So, for each$w = (w_1, \ldots, w_{r-1}, 1)\in \Omega^r(\mathbb{C}_{\infty})$ , we have an associated $A$ -lattice (i.e. a discrete projective $A$ -module of rank r): $\Lambda_w = A w_1 + \ldots A w_{r-1} + A$ .
The analytic theory of Drinfeld modules tells us that, for each such$w$ , there exist a Drinfeld module
associated with this lattice. This association is what we call the universal Drinfeld module over$\Omega^r(\mathbb{C}_{\infty})$ . We see the coefficients as functions $g_i : \Omega^r(\mathbb{C}_{\infty}) \rightarrow \mathbb{C}_{\infty}$ . These functions satisfy modular transformation property under the action of the group $\mathrm{GL}_r(A)$ :
where$j$ is some automorphic factor.
The ring of Drinfeld modular forms for$\mathrm{GL}_r(A)$ is
Implementations details
In this implementation, we create a new parent$K[g_1,\ldots, g_{r-1}, g_r]$ and a new element class $g_1, \ldots, g_r$ , the coefficients forms. In the special case when the rank is two, we aim to implement algorithms for computing the expansion at infinity of any Drinfeld modular forms. These expansions are analogues of the usual $q$ -expansion of classcial modular forms. This will be achieved via the Lopez-Petrov nonstandard expansion theory.
DrinfeldModularForms
which represents the polynomial ringDrinfeldModularFormsElement
. Then, for arbitrary rank, we only see a Drinfeld modular form symbolically as a multivariate polynomial inWe note that this implementation was initially done as a pip-installable package:
https://davidayotte.github.io/drinfeld_modular_forms
This work has been an ongoing project for almost two years now and since the addition of Drinfeld modules in SageMath, the author has seen an interest in the implementation of Drinfeld modular forms to SageMath. In the rank two case, the ability to compute their expansion at infinity shows some interesting computational properties of these objects.
We are aware that this is a quite specialized topic, so we aim to make this implementation as convivial as possible for the user and well documented. Any comments and suggestions are welcome!
CC: @xcaruso @kryzar @ymusleh
📝 Checklist
⌛ Dependencies