Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346<Chapter Label="Gens">1<Heading>Farey symbols for congruence subgroups</Heading>23The package &Congruence; provides functions to construct Farey symbols4for finite index subgroups. The algorithm used in the package allows5to construct a Farey symbol for any finite index subgroup of <M>SL_2(&ZZ;)</M>6for which it is possible to check whether a given matrix belongs to this7subgroup or not. <P/>89The development of an algorithm to determine the Farey symbol for a10subgroup G of a finite index in <M>SL_2(&ZZ;)</M> was started by Ravi11Kulkarni in <Cite Key="Kulkarni" /> and later it was improved by Mong-Lung Lang,12Chong-Hai Lim and Ser-Peow Tan in <Cite Key="LLT-Hecke" />, <Cite Key="LLT-Algorithm" />.1314<Section Label="CompFarey">15<Heading>Computation of the Farey symbol for a finite index subgroup</Heading>1617<ManSection>18<Attr Name="FareySymbol"19Arg="G"20Comm="" />21<Description>22For a subgroup of a finite index G, this attribute stores one of the23Farey symbols corresponding24to the congruence subgroup <A>G</A>. The algorithm for its computation will work25for any matrix group for which a membership test is available.26</Description>27</ManSection>2829<Example>30<![CDATA[31gap> FareySymbol(PrincipalCongruenceSubgroup(8));32[ 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,3311/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,3421/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,3517/4, 13/3, 9/2, 14/3, 19/4, 5, 21/4, 16/3, 11/2, 17/3, 23/4, 6, 25/4,3619/3, 13/2, 20/3, 27/4, 7, 29/4, 22/3, 15/2, 23/3, 31/4, 8, infinity ]37[ 1, 17, 10, 26, 32, 18, 19, 27, 30, 5, 2, 2, 13, 28, 26, 20, 21, 29, 27, 7,383, 3, 16, 31, 28, 22, 23, 33, 29, 9, 4, 4, 5, 30, 31, 24, 25, 32, 33, 12,396, 6, 7, 19, 18, 15, 8, 8, 9, 21, 20, 10, 11, 11, 12, 23, 22, 13, 14, 14,4015, 25, 24, 16, 17, 1 ]41gap> FareySymbol(CongruenceSubgroupGamma0(20));42[ 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,43infinity ]44[ 1, 3, 4, 6, 7, 7, 5, 2, 2, 3, 6, 4, 5, 1 ]45]]>46</Example>4748</Section>4950<!-- ********************************************************* -->5152<Section Label="CompGens">53<Heading>Computation of generators of a finite index subgroup from its Farey symbol</Heading>54If <A>fs</A> is the Farey symbol for a group <M>G</M> with <M>r_1</M> even55labels, <M>r_2</M> odd labels and <M>r_3</M> pairs of intervals, then <M>G</M> is56generated by <M>r_1+r_2+r_3</M> matrices, which form a set of independent57generators for <M>G</M>. These matrices are constructed as follows:<P/>5859for each even interval <M>[x_i, x_{i+1}]</M>, take the matrix60<Alt Only="LaTeX">61<Display>62<![CDATA[63A=\left(64\begin{array}{rr}65a_{i+1} b_{i+1} + a_i b_i & -a_i^2 - a_{i+1}^2 \\66b_i^2 + b_{i+1}^2 & -a_{i+1} b_{i+1} - a_i b_i67\end{array}68\right)69]]>70</Display>71</Alt>72<Alt Only="Text,HTML"><Verb><![CDATA[73A= [a_{i+1} b_{i+1} + a_i b_i -a_i^2 - a_{i+1}^2 ]74[b_i^2 +b_{i+1}^2 -a_{i+1} b_{i+1} - a_i b_i]75]]></Verb></Alt>76<P/>7778for each odd interval <M>[x_j,x_{j+1}]</M>, take the matrix79<Alt Only="LaTeX">80<Display>81<![CDATA[82B=\left(83\begin{array}{rr}84a_{j+1} b_{j+1} + a_j b_{j+1} + a_j b_j & -a_j^2 - a_j a_{j+1} -85a_{j+1}^2 \\ b_j^2 + b_j b_{j+1} + b_{j+1}^2 & -a_{j+1}86b_{j+1} - a_{j+1} b_j - a_j b_j87\end{array}88\right)89]]>90</Display>91</Alt>92<Alt Only="Text,HTML"><Verb><![CDATA[93B= [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]94[ 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]95]]></Verb></Alt>96<P/>9798for each pair of free intervals <M>[x_k,x_{k+1}]</M> and99<M>[x_s,x_{s+1}]</M>, take the matrix100<Alt Only="LaTeX">101<Display>102<![CDATA[103\left(104\begin{array}{rr}105a_{s+1} b_{k+1} + a_s b_k & -a_s a_k - a_{s+1} a_{k+1} \\ b_s b_k106- b_{s+1} b_{k+1} & -a_{k+1} b_{s+1} - a_k b_s107\end{array}108\right)109]]>110</Display>111</Alt>112<Alt Only="Text,HTML"><Verb><![CDATA[113C= [a_{s+1} b_{k+1} + a_s b_k -a_s a_k - a_{s+1} a_{k+1}]114[b_s b_k- b_{s+1} b_{k+1}c -a_{k+1} b_{s+1} - a_k b_s]115]]></Verb></Alt>116117118<ManSection>119<Func Name="MatrixByEvenInterval"120Arg="gfs i"121Comm="" />122<Description>123Returns the matrix corresponding to the even interval i in the generalized Farey sequence <A>gfs</A>.124</Description>125</ManSection>126127<Example>128<![CDATA[129gap> H:=CongruenceSubgroupGamma0(5);130<congruence subgroup CongruenceSubgroupGamma_0(5) in SL_2(Z)>131gap> fs:=FareySymbol(H);132[ infinity, 0, 1/2, 1, infinity ]133[ 1, "even", "even", 1 ]134gap> gfs:=GeneralizedFareySequence(fs);135[ infinity, 0, 1/2, 1, infinity ]136gap> MatrixByEvenInterval(gfs,2);137[ [ 2, -1 ], [ 5, -2 ] ]138]]>139</Example>140141142<ManSection>143<Func Name="MatrixByOddInterval"144Arg="gfs i"145Comm="" />146<Description>147Returns the matrix corresponding to the odd interval i in the generalized Farey sequence <A>gfs</A>.148</Description>149</ManSection>150151<Example>152<![CDATA[153gap> fs_oo:=FareySymbolByData([infinity,0,infinity],["odd","odd"]);;154gap> gfs_oo:=GeneralizedFareySequence(fs_oo);155[ infinity, 0, infinity ]156gap> MatrixByOddInterval(gfs_oo,1);157[ [ -1, -1 ], [ 1, 0 ] ]158]]>159</Example>160161162<ManSection>163<Func Name="MatrixByFreePairOfIntervals"164Arg="gfs k kp"165Comm="" />166<Description>167Returns the matrix corresponding to the pair of free intervals k and kp in the generalized Farey sequence <A>gfs</A>.168</Description>169</ManSection>170171<Example>172<![CDATA[173gap> fs_free:=FareySymbolByData([infinity,0,1,2,infinity],[1,2,2,1]);;174gap> gfs_free:=GeneralizedFareySequence(fs_free);;175gap> MatrixByFreePairOfIntervals(gfs_free,2,3);176[ [ 3, -2 ], [ 2, -1 ] ]177]]>178</Example>179180181<ManSection>182<Func Name="GeneratorsByFareySymbol"183Arg="fs"184Comm="" />185<Description>186Returns a set of matrices constructed as above.187</Description>188</ManSection>189190<Example>191<![CDATA[192gap> fs_eo:=FareySymbolByData([infinity,0,infinity],["even","odd"]);;193gap> GeneratorsByFareySymbol(last);194[ [ [ 0, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, -1 ] ] ]195gap> GeneratorsByFareySymbol(fs);196[ [ [ 1, 1 ], [ 0, 1 ] ], [ [ 2, -1 ], [ 5, -2 ] ], [ [ 3, -2 ], [ 5, -3 ] ] ]197gap> GeneratorsByFareySymbol(fs_oo);198[ [ [ -1, -1 ], [ 1, 0 ] ], [ [ 0, -1 ], [ 1, -1 ] ] ]199gap> GeneratorsByFareySymbol(fs_free);200[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 3, -2 ], [ 2, -1 ] ] ]201]]>202</Example>203204205<ManSection>206<Func Name="GeneratorsOfGroup"207Arg="G"208Comm="" />209<Description>210Returns a set of generators for the finite index group G in <M>SL_2(Z)</M>.211</Description>212</ManSection>213214<Example>215<![CDATA[216gap> G:=PrincipalCongruenceSubgroup(2);217<principal congruence subgroup of level 2 in SL_2(Z)>218gap> FareySymbol(G);219[ infinity, 0, 1, 2, infinity ]220[ 2, 1, 1, 2 ]221gap> GeneratorsOfGroup(G);222#I Using the Congruence package for GeneratorsOfGroup ...223[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 3, -2 ], [ 2, -1 ] ] ]224gap> H:=CongruenceSubgroupGamma0(5);225<congruence subgroup CongruenceSubgroupGamma_0(5) in SL_2(Z)>226gap> GeneratorsOfGroup(H);227#I Using the Congruence package for GeneratorsOfGroup ...228[ [ [ 1, 1 ], [ 0, 1 ] ], [ [ 2, -1 ], [ 5, -2 ] ], [ [ 3, -2 ], [ 5, -3 ] ] ]229gap> I:=IntersectionOfCongruenceSubgroups(PrincipalCongruenceSubgroup(2),CongruenceSubgroupGamma0(3));230<intersection of congruence subgroups of resulting level 6 in SL_2(Z)>231gap> FareySymbol(I);232[ infinity, 0, 1/3, 1/2, 2/3, 1, 4/3, 3/2, 5/3, 2, infinity ]233[ 1, 5, 4, 3, 2, 2, 3, 4, 5, 1 ]234gap> GeneratorsOfGroup(I);235#I Using the Congruence package for GeneratorsOfGroup ...236[ [ [ 1, 2 ], [ 0, 1 ] ], [ [ 11, -2 ], [ 6, -1 ] ],237[ [ 19, -8 ], [ 12, -5 ] ], [ [ 17, -10 ], [ 12, -7 ] ],238[ [ 7, -6 ], [ 6, -5 ] ] ]239]]>240</Example>241242</Section>243244<!-- ********************************************************* -->245246<Section Label="CompOther">247<Heading>Other properties derived from Farey symbols</Heading>248249<ManSection>250<Func Name="IndexInPSL2ZByFareySymbol"251Arg="fs"252Comm="" />253<Description>254By Proposition 7.2 in [Kulkarni], for the Farey symbol with underlying255generalized Farey sequence [infinity, x0, x1, ..., xn, infinity], the256index in <M>PSL_2(Z)</M> is given by the formula d = 3*n + e3, where e3 is the257number of odd intervals.258</Description>259</ManSection>260261<Example>262<![CDATA[263gap> IndexInPSL2ZByFareySymbol(fs);2646265gap> IndexInPSL2ZByFareySymbol(fs_oo);2662267gap> IndexInPSL2ZByFareySymbol(fs_free);2686269]]>270</Example>271272</Section>273274</Chapter>275276277