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
<Chapter Label="Farey">
2
<Heading>Farey symbols and their properties</Heading>
3
4
<Index Key="IsFareySymbol"><C>IsFareySymbol</C></Index>
5
<Index Key="IsFareySymbolDefaultRep"><C>IsFareySymbolDefaultRep</C></Index>
6
7
A Farey symbol is a compact and useful way to represent a subgroup
8
of finite index in <M>SL_2(&ZZ;)</M> from which one can deduce
9
independent generators for this subgroup. It consists of two
10
components, namely a so-called generalised Farey sequence
11
(<A>gfs</A>) and an ordered list of labels, giving additional
12
structure to the <A>gfs</A>.<P/>
13
14
15
A generalised Farey sequence (g.F.S.) is an ordered list of the form
16
<M>{ -infinity, x_0, x_1, ... , x_n, infinity }</M>, where<P/>
17
1. the <M>x_i = a_i/b_i</M> are rational
18
numbers in reduced form arranged in increasing order for
19
<M>i = 0, ... , n</M>;<P/>
20
2. <M>x_0, ... , x_n \in Z</M>, and some <M>x_i = 0</M>;<P/>
21
3. we define <M>x_{-1}=-infinity=-1/0</M> and <M>x_{n+1}=infinity=1/0</M>;<P/>
22
4. <M>a_{i+1}b_{i}-a_{i}b_{i+1}=1</M> for <M>i=-1, ... ,n</M>.<P/>
23
24
25
The ordered list of labels of a Farey symbol gives an additional
26
structure to the <A>gfs</A>. The labels correspond to each
27
consecutive pair of <M>x_i</M>'s and are of the following types:<P/>
28
1. even,<P/>
29
2. odd,<P/>
30
3. a natural number, which occurs in the list
31
of labels exactly twice or not at all.<P/>
32
33
Note that the actual values of numerical labels are not important;
34
it is the pairing of two intervals that matters.<P/>
35
36
37
The package &Congruence; provides functions to construct Farey symbols
38
by the given generalised Farey sequence and corresponding list of
39
labels. The returned Farey symbol will belong to the category
40
<C>IsFareySymbol</C> and will have the representation
41
<C>IsFareySymbolDefaultRep</C>.
42
43
<Section Label="FareyConstr">
44
<Heading>Construction of Farey symbols</Heading>
45
46
<ManSection>
47
<Func Name="FareySymbolByData"
48
Arg="gfs labels"/>
49
<Description>
50
This constructor creates the Farey symbol with the given generalized
51
Farey sequence and list of labels. It also checks conditions from
52
the definition of Farey symbol and returns an error if they are not
53
satisfied. The data used to create the Farey symbol are stored as
54
its attributes <Ref Attr="GeneralizedFareySequence"/> and <Ref
55
Attr="LabelsOfFareySymbol"/>.
56
</Description>
57
</ManSection>
58
59
<Example>
60
<![CDATA[
61
gap> fs:=FareySymbolByData([infinity,0,1,2,infinity],[1,2,2,1]);
62
[ infinity, 0, 1, 2, infinity ]
63
[ 1, 2, 2, 1 ]
64
]]>
65
</Example>
66
67
68
<ManSection>
69
<Func Name="IsValidFareySymbol"
70
Arg="fs"/>
71
<Description>
72
This function is used in <Ref Func="FareySymbolByData"/> to validate its output.
73
</Description>
74
</ManSection>
75
76
<Example>
77
<![CDATA[
78
gap> IsValidFareySymbol(fs);
79
true
80
]]>
81
</Example>
82
83
</Section>
84
85
<!-- ********************************************************* -->
86
87
<Section Label="FareyProperties">
88
<Heading>Properties of Farey symbols</Heading>
89
90
<ManSection>
91
<Attr Name="GeneralizedFareySequence"
92
Arg="fs"/>
93
<Description>
94
Returns the generalized Farey sequence <A>gfs</A> of the Farey
95
symbol.
96
</Description>
97
</ManSection>
98
99
<Example>
100
<![CDATA[
101
gap> GeneralizedFareySequence(fs);
102
[ infinity, 0, 1, 2, infinity ]
103
]]>
104
</Example>
105
106
107
<ManSection>
108
<Func Name="NumeratorOfGFSElement"
109
Arg="gfs i"/>
110
<Returns>
111
integer
112
</Returns>
113
<Description>
114
Returns the numerator of the i-th term of the generalised Farey
115
sequence <A>gfs</A>: for the 1st infinite entry returns -1, for the
116
last one returns 1, for all other entries returns the usual
117
numerator.
118
</Description>
119
</ManSection>
120
121
<Example>
122
<![CDATA[
123
gap> List([1..5], i -> NumeratorOfGFSElement(GeneralizedFareySequence(fs),i));
124
[ -1, 0, 1, 2, 1 ]
125
]]>
126
</Example>
127
128
129
<ManSection>
130
<Func Name="DenominatorOfGFSElement"
131
Arg="gfs i"/>
132
<Returns>
133
integer
134
</Returns>
135
<Description>
136
Returns the denominator of the i-th term of the generalised Farey
137
sequence <A>gfs</A>: for both infinite entries returns 0, for the
138
other ones returns the usual denominator.
139
</Description>
140
</ManSection>
141
142
<Example>
143
<![CDATA[
144
gap> List([1..5], i -> DenominatorOfGFSElement(GeneralizedFareySequence(fs),i));
145
[ 0, 1, 1, 1, 0 ]
146
]]>
147
</Example>
148
149
150
<ManSection>
151
<Attr Name="LabelsOfFareySymbol"
152
Arg="fs"/>
153
<Description>
154
Returns the list of labels of the Farey symbol. This list has "odd",
155
"even" and paired integers as entries.
156
</Description>
157
</ManSection>
158
159
<Example>
160
<![CDATA[
161
gap> LabelsOfFareySymbol(fs);
162
[ 1, 2, 2, 1 ]
163
]]>
164
</Example>
165
166
</Section>
167
168
</Chapter>
169
170