CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
4 Farey symbols for congruence subgroups
3
4
The package Congruence provides functions to construct Farey symbols for
5
finite index subgroups. The algorithm used in the package allows to
6
construct a Farey symbol for any finite index subgroup of SL_2(ℤ) for which
7
it is possible to check whether a given matrix belongs to this subgroup or
8
not.
9
10
The development of an algorithm to determine the Farey symbol for a subgroup
11
G of a finite index in SL_2(ℤ) was started by Ravi Kulkarni in [Kul91] and
12
later it was improved by Mong-Lung Lang, Chong-Hai Lim and Ser-Peow Tan in
13
[LLT95b], [LLT95a].
14
15
16
4.1 Computation of the Farey symbol for a finite index subgroup
17
18
4.1-1 FareySymbol
19
20
FareySymbol( G )  attribute
21
22
For a subgroup of a finite index G, this attribute stores one of the Farey
23
symbols corresponding to the congruence subgroup G. The algorithm for its
24
computation will work for any matrix group for which a membership test is
25
available.
26
27
 Example 
28

29
gap> FareySymbol(PrincipalCongruenceSubgroup(8));
30
[ infinity, 0, 1/4, 1/3, 3/8, 2/5, 1/2, 3/5, 5/8, 2/3, 3/4, 1, 5/4, 4/3, 
31
 11/8, 7/5, 3/2, 8/5, 13/8, 5/3, 7/4, 2, 9/4, 7/3, 19/8, 12/5, 5/2, 13/5, 
32
 21/8, 8/3, 11/4, 3, 13/4, 10/3, 27/8, 17/5, 7/2, 18/5, 29/8, 11/3, 15/4, 4, 
33
 17/4, 13/3, 9/2, 14/3, 19/4, 5, 21/4, 16/3, 11/2, 17/3, 23/4, 6, 25/4, 
34
 19/3, 13/2, 20/3, 27/4, 7, 29/4, 22/3, 15/2, 23/3, 31/4, 8, infinity ]
35
[ 1, 17, 10, 26, 32, 18, 19, 27, 30, 5, 2, 2, 13, 28, 26, 20, 21, 29, 27, 7, 
36
 3, 3, 16, 31, 28, 22, 23, 33, 29, 9, 4, 4, 5, 30, 31, 24, 25, 32, 33, 12, 
37
 6, 6, 7, 19, 18, 15, 8, 8, 9, 21, 20, 10, 11, 11, 12, 23, 22, 13, 14, 14, 
38
 15, 25, 24, 16, 17, 1 ]
39
gap> FareySymbol(CongruenceSubgroupGamma0(20));
40
[ infinity, 0, 1/5, 1/4, 2/7, 3/10, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 1, 
41
 infinity ]
42
[ 1, 3, 4, 6, 7, 7, 5, 2, 2, 3, 6, 4, 5, 1 ] 
43

44

45
46
47
4.2 Computation of generators of a finite index subgroup from its Farey
48
symbol
49
50
If fs is the Farey symbol for a group G with r_1 even labels, r_2 odd labels
51
and r_3 pairs of intervals, then G is generated by r_1+r_2+r_3 matrices,
52
which form a set of independent generators for G. These matrices are
53
constructed as follows:
54
55
for each even interval [x_i, x_i+1], take the matrix
56
57
A= [a_{i+1} b_{i+1} + a_i b_i -a_i^2 - a_{i+1}^2 ]
58
[b_i^2 +b_{i+1}^2 -a_{i+1} b_{i+1} - a_i b_i]
59
60
for each odd interval [x_j,x_j+1], take the matrix
61
62
B= [a_{j+1} b_{j+1} + a_j b_{j+1} + a_j b_j -a_j^2 - a_j a_{j+1} -a_{j+1}^2]
63
[ b_j^2 + b_j b_{j+1} + b_{j+1}^2 -a_{j+1} b_{j+1} - a_{j+1} b_j - a_j b_j]
64
65
for each pair of free intervals [x_k,x_k+1] and [x_s,x_s+1], take the matrix
66
67
C= [a_{s+1} b_{k+1} + a_s b_k -a_s a_k - a_{s+1} a_{k+1}]
68
[b_s b_k- b_{s+1} b_{k+1}c -a_{k+1} b_{s+1} - a_k b_s]
69
70
4.2-1 MatrixByEvenInterval
71
72
MatrixByEvenInterval( gfs, i )  function
73
74
Returns the matrix corresponding to the even interval i in the generalized
75
Farey sequence gfs.
76
77
 Example 
78

79
gap> H:=CongruenceSubgroupGamma0(5); 
80
<congruence subgroup CongruenceSubgroupGamma_0(5) in SL_2(Z)>
81
gap> fs:=FareySymbol(H);
82
[ infinity, 0, 1/2, 1, infinity ]
83
[ 1, "even", "even", 1 ]
84
gap> gfs:=GeneralizedFareySequence(fs);
85
[ infinity, 0, 1/2, 1, infinity ]
86
gap> MatrixByEvenInterval(gfs,2); 
87
[ [ 2, -1 ], [ 5, -2 ] ]
88

89

90
91
4.2-2 MatrixByOddInterval
92
93
MatrixByOddInterval( gfs, i )  function
94
95
Returns the matrix corresponding to the odd interval i in the generalized
96
Farey sequence gfs.
97
98
 Example 
99

100
gap> fs_oo:=FareySymbolByData([infinity,0,infinity],["odd","odd"]);;
101
gap> gfs_oo:=GeneralizedFareySequence(fs_oo);
102
[ infinity, 0, infinity ]
103
gap> MatrixByOddInterval(gfs_oo,1);
104
[ [ -1, -1 ], [ 1, 0 ] ]
105

106

107
108
4.2-3 MatrixByFreePairOfIntervals
109
110
MatrixByFreePairOfIntervals( gfs, k, kp )  function
111
112
Returns the matrix corresponding to the pair of free intervals k and kp in
113
the generalized Farey sequence gfs.
114
115
 Example 
116

117
gap> fs_free:=FareySymbolByData([infinity,0,1,2,infinity],[1,2,2,1]);;
118
gap> gfs_free:=GeneralizedFareySequence(fs_free);;
119
gap> MatrixByFreePairOfIntervals(gfs_free,2,3); 
120
[ [ 3, -2 ], [ 2, -1 ] ]
121

122

123
124
4.2-4 GeneratorsByFareySymbol
125
126
GeneratorsByFareySymbol( fs )  function
127
128
Returns a set of matrices constructed as above.
129
130
 Example 
131

132
gap> fs_eo:=FareySymbolByData([infinity,0,infinity],["even","odd"]);;
133
gap> GeneratorsByFareySymbol(last); 
134
[ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, -1 ] ] ]
135
gap> GeneratorsByFareySymbol(fs); 
136
[ [ [ 1, 1 ], [ 0, 1 ] ], [ [ 2, -1 ], [ 5, -2 ] ], [ [ 3, -2 ], [ 5, -3 ] ] ]
137
gap> GeneratorsByFareySymbol(fs_oo);
138
[ [ [ -1, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, -1 ] ] ]
139
gap> GeneratorsByFareySymbol(fs_free); 
140
[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 3, -2 ], [ 2, -1 ] ] ]
141

142

143
144
4.2-5 GeneratorsOfGroup
145
146
GeneratorsOfGroup( G )  function
147
148
Returns a set of generators for the finite index group G in SL_2(Z).
149
150
 Example 
151

152
gap> G:=PrincipalCongruenceSubgroup(2);
153
<principal congruence subgroup of level 2 in SL_2(Z)>
154
gap> FareySymbol(G);
155
[ infinity, 0, 1, 2, infinity ]
156
[ 2, 1, 1, 2 ]
157
gap> GeneratorsOfGroup(G);
158
#I Using the Congruence package for GeneratorsOfGroup ...
159
[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 3, -2 ], [ 2, -1 ] ] ]
160
gap> H:=CongruenceSubgroupGamma0(5); 
161
<congruence subgroup CongruenceSubgroupGamma_0(5) in SL_2(Z)>
162
gap> GeneratorsOfGroup(H);
163
#I Using the Congruence package for GeneratorsOfGroup ...
164
[ [ [ 1, 1 ], [ 0, 1 ] ], [ [ 2, -1 ], [ 5, -2 ] ], [ [ 3, -2 ], [ 5, -3 ] ] ]
165
gap> I:=IntersectionOfCongruenceSubgroups(PrincipalCongruenceSubgroup(2),CongruenceSubgroupGamma0(3));
166
<intersection of congruence subgroups of resulting level 6 in SL_2(Z)>
167
gap> FareySymbol(I);
168
[ infinity, 0, 1/3, 1/2, 2/3, 1, 4/3, 3/2, 5/3, 2, infinity ]
169
[ 1, 5, 4, 3, 2, 2, 3, 4, 5, 1 ]
170
gap> GeneratorsOfGroup(I); 
171
#I Using the Congruence package for GeneratorsOfGroup ...
172
[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 11, -2 ], [ 6, -1 ] ], 
173
 [ [ 19, -8 ], [ 12, -5 ] ], [ [ 17, -10 ], [ 12, -7 ] ], 
174
 [ [ 7, -6 ], [ 6, -5 ] ] ]
175

176

177
178
179
4.3 Other properties derived from Farey symbols
180
181
4.3-1 IndexInPSL2ZByFareySymbol
182
183
IndexInPSL2ZByFareySymbol( fs )  function
184
185
By Proposition 7.2 in [Kulkarni], for the Farey symbol with underlying
186
generalized Farey sequence [infinity, x0, x1, ..., xn, infinity], the index
187
in PSL_2(Z) is given by the formula d = 3*n + e3, where e3 is the number of
188
odd intervals.
189
190
 Example 
191

192
gap> IndexInPSL2ZByFareySymbol(fs);
193
6
194
gap> IndexInPSL2ZByFareySymbol(fs_oo);
195
2
196
gap> IndexInPSL2ZByFareySymbol(fs_free);
197
6
198

199

200
201
202