sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.32k stars 453 forks source link

cusps -- implement action of the Galois group on cusps for congruence subgroups as on page 12 of Steven's "Arithmetic on Modular Curves" #5822

Closed williamstein closed 15 years ago

williamstein commented 15 years ago

It would be very useful if for a congruence subgroup G and an integer d coprime to the level N of G, one could compute the action on cusps (modulo G) of tau_d \in Gal(Q(zeta_N)/Q). This action is described on page 12 of Steven's "Arithmetic on Modular Curves".

Note that Sage does not have a data type for "equivalence classes of cusps" yet, and the action is only well defined on equivalence classes. However, one easy thing to implement (hopefully) is a function so that if G is a congruence subgroup, then we have

sage: G.galois_action_on_cusps(d, alpha)

which returns a cusp beta that is in the class of tau_d([alpha]).

Later when there is a data structure for equivalence classes of cusps, and also one for these Galois groups (as abstract groups), then that will call the above function.

CC: @robertwb @craigcitro

Component: number theory

Issue created by migration from https://trac.sagemath.org/ticket/5822

williamstein commented 15 years ago

Attachment: trac_5822.patch.gz

williamstein commented 15 years ago
comment:2

NOTE: What I ended up implementing doesn't have an API exactly the same as the description in the ticket. Please read the patch to see how to use it.

JohnCremona commented 15 years ago
comment:5

Just a quick comment: Maite Aranes and I have been implementing number field cusps, and we decided not to have a class for cusp equivalence classes modulo a congruence subgroup, the reason being that there was no such class over Q. So if the consensus is that such a class should exist, we'll include it over number fields too.

Our NFcusps code has not yet been put out to review, but probably should be soon - -it has had a lot os spinoffs in number field utilities, which have all now been merged.

JohnCremona commented 15 years ago
comment:6

Positive review: applies ok to 3.4.1.rc3, does what it says and works.

Comment: OK, so this is how Galois acts, but would it not be a good idea to also mention that this gives the action of the so-called diamond operators? i.e. the standard operation of (Z/NZ)^* = Gamma_0(N)/Gamma_1(N) ? I looked to see if they were already defined, e.g. on ManinSymbols, but the only reference to "diamond" which search_src() revealed was a reference to the book by D & Shurman!

I would know the answer to the above if I had got further through the modular/modsym directory on the last docday, but doing just two files took up all the time I had. And now term has started.

williamstein commented 15 years ago
comment:7

Just a quick comment: Maite Aranes and I have been implementing number field cusps, and we decided not to have a class for cusp equivalence classes modulo a congruence subgroup, the reason being that there was no such class over Q. So if the consensus is that such a class should exist, we'll include it over number fields too.

I think it would be very natural to have a class for the set of cusps modulo a congruence subgroup. The only reason Sage doesn't have that now is that I didn't have time yet to implement it.

85eec1a4-3d04-4b4d-b711-d4db03337c41 commented 15 years ago
comment:8

Merged in Sage 3.4.2.alpha0.

Cheers,

Michael