Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

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

565645 views
1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
%%
3
%W FGA.tex FGA documentation Christian Sievers
4
%%
5
%Y 2003 - 2016
6
%%
7
8
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9
\Chapter{Functionality of the FGA package}
10
11
\atindex{Functionality of the FGA package}{@Functionality %
12
of the {\FGA} package|indexit}
13
14
This chapter describes methods available from the {\FGA} package.
15
16
In the following, let <f> be a free group created by `FreeGroup(<n>)',
17
and let <u>, <u1> and <u2> be finitely generated subgroups of <f>
18
created by `Group' or `Subgroup', or computed from some other subgroup
19
of <f>. Let <elm> be an element of <f>.
20
21
For example:
22
23
\beginexample
24
gap> f := FreeGroup( 2 );
25
<free group on the generators [ f1, f2 ]>
26
gap> u := Group( f.1^2, f.2^2, f.1*f.2 );
27
Group([ f1^2, f2^2, f1*f2 ])
28
gap> u1 := Subgroup( u, [f.1^2, f.1^4*f.2^6] );
29
Group([ f1^2, f1^4*f2^6 ])
30
gap> elm := f.1;
31
f1
32
gap> u2 := Normalizer( u, elm );
33
Group([ f1^2 ])
34
\endexample
35
36
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
37
\Section{New operations for free groups}
38
39
These new operations are available for finitely generated subgroups of
40
free groups:
41
42
\>FreeGeneratorsOfGroup( <u> ) A
43
44
returns a list of free generators of the finitely generated subgroup
45
<u> of a free group.
46
47
The elements in this list form an N-reduced set. In addition to
48
being a free (and thus minimal) generating set for <u>, this means
49
that whenever <v1>, <v2> and <v3> are elements or inverses of elements
50
of this list, then
51
52
\beginlist%unordered
53
\item{--}
54
$<v1><v2>\neq1$ implies $|<v1><v2>|\geq\max(|<v1>|, |<v2>|)$, and
55
\item{--}
56
$<v1><v2>\neq1$ and $<v2><v3>\neq1$ implies
57
$|<v1><v2><v3>| > |<v1>| - |<v2>| + |<v3>|$
58
\endlist
59
60
hold, where $|.|$ denotes the word length.
61
62
\>RankOfFreeGroup( <u> ) A
63
\>Rank( <u> ) O
64
65
returns the rank of the finitely generated subgroup <u> of a free
66
group.
67
68
\>CyclicallyReducedWord( <elm> ) O
69
70
returns the cyclically reduced form of <elm>.
71
72
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
73
\Section{Method installations}
74
75
This section lists operations that are already known to {\GAP}.
76
{\FGA} installs new methods for them so that they can also be used
77
with free groups.
78
In cases where {\FGA} installs methods that are usually only used
79
internally, user functions are shown instead.
80
81
82
\>Normalizer( <u1>, <u2> ) O
83
\>Normalizer( <u>, <elm> ) O
84
85
The first variant returns the normalizer of the finitely generated
86
subgroup <u2> in <u1>.
87
88
The second variant returns the normalizer of $\langle <elm> \rangle$
89
in the finitely generated subgroup <u> (see "ref:Normalizer" in the
90
Reference Manual).
91
92
\>RepresentativeAction( <u>, <d>, <e> ) O
93
\>IsConjugate( <u>, <d>, <e> ) O
94
95
`RepresentativeAction' returns an element $ <r> \in <u> $,
96
where <u> is a finitely generated subgroup of a free group, such
97
that $<d>^{<r>}=<e>$, or fail, if no such <r> exists. <d> and <e> may
98
be elements or subgroups of <u>.
99
100
`IsConjugate' returns a boolean indicating whether such an element <r>
101
exists.
102
103
\>Centralizer( <u>, <u2> ) O
104
\>Centralizer( <u>, <elm> ) O
105
106
returns the centralizer of <u2> or <elm> in the finitely generated
107
subgroup <u> of a free group.
108
109
\>Index( <u1>, <u2> ) O
110
\>IndexNC( <u1>, <u2> ) O
111
112
return the index of <u2> in <u1>, where <u1> and <u2> are finitely
113
generated subgroups of a free group. The first variant returns
114
fail if <u2> is not a subgroup of <u1>, the second may return
115
anything in this case.
116
117
\>Intersection( <u1>, <u2> \dots ) F
118
119
returns the intersection of <u1> and <u2>, where <u1> and <u2> are
120
finitely generated subgroups of a free group.
121
122
\>`<elm> in <u>'{in} O
123
124
tests whether <elm> is contained in the finitely generated subgroup
125
<u> of a free group.
126
127
\>IsSubgroup( <u1>, <u2> ) F
128
129
tests whether <u2> is a subgroup of <u1>, where <u1> and <u2> are finitely
130
generated subgroups of a free group.
131
132
\>`<u1> = <u2>'{equality} O
133
134
test whether the two finitely generated subgroups <u1> and <u2> of a
135
free group are equal.
136
137
\>MinimalGeneratingSet( <u> ) A
138
\>SmallGeneratingSet( <u> ) A
139
\>GeneratorsOfGroup( <u> ) A
140
141
return generating sets for the finitely generated subgroup <u> of a
142
free group. `MinimalGeneratingSet' and `SmallGeneratingSet' return
143
the same free generators as `FreeGeneratorsOfGroup', which are in
144
fact a minimal generating set. `GeneratorsOfGroup' also returns these
145
generators, if no other generators were stored at creation time.
146
147
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148
\Section{Constructive membership test}
149
150
It is not only possible to test whether an element is in a finitely
151
generated subgroup of free group, this can also be done
152
constructively. The idiomatic way to do so is by using a
153
homomorphism.
154
155
Here is an example that computes how to write `f.1^2' in the
156
generators `a=f1^2*f2^2' and `b=f.1^2*f.2', checks the result, and
157
then tries to write `f.1' in the same generators:
158
159
\beginexample
160
gap> f := FreeGroup( 2 );
161
<free group on the generators [ f1, f2 ]>
162
gap> ua := f.1^2*f.2^2;; ub := f.1^2*f.2;;
163
gap> u := Group( ua, ub );;
164
gap> g := FreeGroup( "a", "b" );;
165
gap> hom := GroupHomomorphismByImages( g, u,
166
> GeneratorsOfGroup(g),
167
> GeneratorsOfGroup(u) );
168
[ a, b ] -> [ f1^2*f2^2, f1^2*f2 ]
169
gap> # how can f.1^2 be expressed?
170
gap> PreImagesRepresentative( hom, f.1^2 );
171
b*a^-1*b
172
gap> last ^ hom; # check this
173
f1^2
174
gap> ub * ua^-1 * ub; # another check
175
f1^2
176
gap> PreImagesRepresentative( hom, f.1 ); # try f.1
177
fail
178
gap> f.1 in u;
179
false
180
\endexample
181
182
There are also lower level operations to get the same results.
183
184
\>AsWordLetterRepInGenerators( <elm>, <u> ) O
185
\>AsWordLetterRepInFreeGenerators( <elm>, <u> ) O
186
187
return a letter representation
188
(see Section~"ref:Representations for Associative Words" in the {\GAP}
189
Reference Manual)
190
of the given <elm> relative to the generators the group was created
191
with or the free generators as returned by `FreeGeneratorsOfGroup'.
192
193
Continuing the above example:
194
195
\beginexample
196
gap> AsWordLetterRepInGenerators( f.1^2, u );
197
[ 2, -1, 2 ]
198
gap> AsWordLetterRepInFreeGenerators( f.1^2, u );
199
[ 2 ]
200
\endexample
201
202
This means: to get `f.1^2', multiply the second of the given generators
203
with the inverse of the first and again with the second; or just take
204
the second free generator.
205
206
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207
\Section{Automorphism groups of free groups}
208
209
The {\FGA} package knows presentations of the automorphism groups of free
210
groups. It also allows to express an automorphism as word in the
211
generators of these presentations.
212
This sections repeats the {\GAP} standard methods to do so and shows
213
functions to obtain the generating automorphisms.
214
215
\>AutomorphismGroup( <u> ) A
216
217
returns the automorphism group of the finitely generated subgroup <u>
218
of a free group.
219
220
Only a few methods will work with this group. But there is a way to
221
obtain an isomorphic finitely presented group:
222
223
\>IsomorphismFpGroup( <group> ) A
224
225
returns an isomorphism of <group> to a finitely presented group.
226
For automorphism groups of free groups, the {\FGA} package implements
227
the presentations of \cite{Neumann33}.
228
The finitely presented group itself can then be obtained with the
229
command `Range'.
230
231
Here is an example:
232
233
\beginexample
234
gap> f := FreeGroup( 2 );;
235
gap> a := AutomorphismGroup( f );;
236
gap> iso := IsomorphismFpGroup( a );;
237
gap> Range( iso );
238
<fp group on the generators [ O, P, U ]>
239
\endexample
240
241
To express an automorphism as word in the generators of the
242
presentation, just apply the isomorphism obtained from
243
`IsomorphismFpGroup'.
244
245
\beginexample
246
gap> aut := GroupHomomorphismByImages( f, f,
247
> GeneratorsOfGroup( f ), [ f.1^f.2, f.1*f.2 ] );
248
[ f1, f2 ] -> [ f2^-1*f1*f2, f1*f2 ]
249
gap> ImageElm( iso, aut );
250
O^2*U*O*P^-1*U
251
\endexample
252
253
It is also possible to use `aut^iso' or `Image( iso, aut )'.
254
Using `Image' will perform additional checks on the arguments.
255
256
The {\FGA} package provides a simpler way to create endomorphisms:
257
258
\>FreeGroupEndomorphismByImages( <g>, <imgs> ) F
259
260
returns the endomorphism that maps the free generators of the finitely
261
generated subgroup <g> of a free group to the elements listed in <imgs>.
262
You may then apply `IsBijective' to check whether it is an
263
automorphism.
264
265
The follwowing functions return automorphisms that correspond to the
266
generators in the presentation:
267
268
\>FreeGroupAutomorphismsGeneratorO( <group> ) F
269
\>FreeGroupAutomorphismsGeneratorP( <group> ) F
270
\>FreeGroupAutomorphismsGeneratorU( <group> ) F
271
\>FreeGroupAutomorphismsGeneratorS( <group> ) F
272
\>FreeGroupAutomorphismsGeneratorT( <group> ) F
273
\>FreeGroupAutomorphismsGeneratorQ( <group> ) F
274
\>FreeGroupAutomorphismsGeneratorR( <group> ) F
275
276
return the automorphism which maps the free generators
277
[$ x_1, x_2, \dots, x_n $] of <group> to
278
\beginlist
279
\item{O:} [$ x_1^{-1}, x_2, \dots, x_n $] ($n\ge1$)
280
\item{P:} [$ x_2, x_1, x_3, \dots, x_n $] ($n\ge2$)
281
\item{U:} [$ x_1x_2, x_2, x_3, \dots, x_n $] ($n\ge2$)
282
\item{S:} [$ x_2^{-1}, x_3^{-1}, \dots, x_n^{-1}, x_1^{-1} $] ($n\ge1$)
283
\item{T:} [$ x_2, x_1^{-1}, x_3, \dots, x_n $] ($n\ge2$)
284
\item{Q:} [$ x_2, x_3, \dots, x_n, x_1 $] ($n\ge2$)
285
\item{R:} [$ x_2^{-1}, x_1, x_3, x_4, \dots,
286
x_{n-2}, x_nx_{n-1}^{-1}, x_{n-1}^{-1} $] ($n\ge4$)
287
\endlist
288
289
290
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
291
%%
292
%E
293
294
295