Revision history [back]

Hi,

Given a congruence subgroup, you can get another data structure for it given exactly by the action of the standard generators (L = parabolic fixing infinity, R = parbolic fixing 0, S2 = element of order 2, S3 = element of order 3). You may proceed as follows for the first example of the list

sage: G = Gamma(4)
sage: GG = G.as_permutation_group()
sage: GG
Arithmetic subgroup of index 48
sage: GG.L()
(1,19,26,8)(2,10,34,14)(3,16,40,20)(4,22,29,11)
(5,7,31,17)(6,13,37,23)(9,28,46,32)(12,25,43,35)
(15,36,45,38)(18,33,48,41)(21,42,44,27)(24,39,47,30)
sage: GG.R()
(1,13,33,9)(2,19,39,15)(3,10,28,21)(4,16,36,12)
(5,22,42,18)(6,7,25,24)(8,31,45,27)(11,34,48,30)
(14,37,44,35)(17,40,47,32)(20,26,43,41)(23,29,46,38)
sage: GG.S2()
(1,7,4,10)(2,13,5,16)(3,19,6,22)(8,25,11,28)
(9,31,12,34)(14,33,17,36)(15,37,18,40)(20,39,23,42)
(21,26,24,29)(27,43,30,46)(32,45,35,48)(38,44,41,47)
sage: GG.S3()
(1,2,3,4,5,6)(7,8,9,10,11,12)(13,14,15,16,17,18)(19,20,21,22,23,24)
(25,26,27,28,29,30)(31,32,33,34,35,36)(37,38,39,40,41,42)
(43,44,45,46,47,48)


Warning: it is the right action on right coset (ie of the form Hg).

Note that you can also plot a fundamental domain using Farey symbols (Kulkarni method)

sage: G = Gamma(4)
sage: FareySymbol(G).fundamental_domain()


Vincent