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="Introduction">
2
<Heading>Introduction</Heading>
3
4
<Section>
5
<Heading>Overview</Heading>
6
7
8
<Index>ANUPQ</Index>
9
The &GAP;&nbsp;4 package &ANUPQ; provides an interface to the ANU <C>pq</C> C
10
progam written by Eamonn O'Brien, making the functionality of the C
11
program available to &GAP;. Henceforth, we shall refer to the &ANUPQ;
12
package when referring to the &GAP; interface, and to the ANU <C>pq</C>
13
program or just <C>pq</C> when referring to that C program.
14
<P/>
15
16
The <C>pq</C> program consists of implementations of the following algorithms:
17
<P/>
18
19
<Enum>
20
<Item>
21
A <E><M>p</M>-quotient algorithm</E> to compute pc-presentations for <M>p</M>-factor
22
groups of finitely presented groups.
23
<P/>
24
<!-- The algorithm implemented here is based on that described by Newman and -->
25
<!-- O'Brien <Cite Key="NO96"/>, Havas and Newman&nbsp;<Cite Key="HN80"/>, and papers referred to -->
26
<!-- there. Another description of the algorithm is given by Vaughan-Lee -->
27
<!-- (see&nbsp;<Cite Key="VL90a"/>, <Cite Key="VL90b"/>). A FORTRAN implementation of this -->
28
<!-- algorithm was programmed by Alford and Havas. The basic data structures -->
29
<!-- of that implementation are retained. -->
30
</Item>
31
32
<Item>
33
A <E><M>p</M>-group generation algorithm</E> to generate pc presentations of groups
34
of prime power order.
35
<P/>
36
<!-- The algorithm implemented here is based on the algorithms described by -->
37
<!-- Newman&nbsp;<Cite Key="New77"/> and O'Brien&nbsp;<Cite Key="OBr90"/>. A FORTRAN implementation of -->
38
<!-- this algorithm was developed earlier by Newman and O'Brien. -->
39
</Item>
40
41
<Item>
42
A <E>standard presentation algorithm</E> used to compute a canonical
43
pc-presentation of a <M>p</M>-group.
44
<P/>
45
<!-- The algorithm implemented here is described in&nbsp;<Cite Key="OBr94"/>. -->
46
</Item>
47
48
<Item>
49
An algorithm which can be used to compute the <E>automorphism group</E> of a
50
<M>p</M>-group.
51
<P/>
52
53
This part of the <C>pq</C> program is not accessible through the &ANUPQ;
54
package. Instead, users are advised to consider the &GAP;&nbsp;4 package
55
&AutPGrp; by Bettina Eick and Eamonn O'Brien, which implements a better
56
algorithm in &GAP; for the computation of automorphism groups of
57
<M>p</M>-groups.
58
<!-- The algorithm implemented here is described in&nbsp;<Cite Key="OBr94"/>. -->
59
</Item>
60
61
</Enum>
62
63
<!-- Further background may be found in&nbsp;<Cite Key="OBr95"/>, <Cite Key="VL84"/> -->
64
<!-- and&nbsp;<Cite Key="NNN98"/>. -->
65
66
The current version of the &ANUPQ; package requires &GAP;&nbsp;4.5, and
67
version 1.5 of the &AutPGrp; package. All code that made the package
68
compatible with earlier versions of &GAP; has been removed.
69
If you must use an older &GAP; version and cannot upgrade, then you may
70
try using an older &ANUPQ; version. However, you should not use versions
71
of the &ANUPQ; package older than 2.2, since they are known to have bugs.
72
</Section>
73
74
<Section>
75
<Heading>How to read this manual</Heading>
76
77
It is not expected that readers of this manual will read it in a linear
78
fashion from cover to cover; some sections contain material that is far
79
too technical to be absorbed on a first reading.
80
<P/>
81
82
Firstly, installers of the &ANUPQ; package will need to read
83
Chapter&nbsp;<Ref Chap="Installing-ANUPQ" Style="Text"/>, if they have not already gleaned
84
these details from the <C>README</C> file.
85
<P/>
86
87
Once the &ANUPQ; package is installed, users of the &ANUPQ; package
88
will benefit most by first reading Chapter&nbsp;<Ref Chap="Mathematical Background and Terminology" Style="Text"/>, which gives a brief description of the background and
89
terminology used (this chapter also cites a number of references for
90
further reading), and the introduction of Chapter&nbsp;<Ref Chap="Infrastructure" Style="Text"/> (skip
91
the remainder of the chapter on a first reading).
92
<P/>
93
94
Then the user/reader should pursue
95
Chapter&nbsp;<Ref Chap="non-interact" Style="Text"/>
96
in detail, delving into Chapter&nbsp;<Ref Chap="ANUPQ Options" Style="Text"/> as necessary
97
for the options of the functions that are described. The user will become
98
best acquainted with the &ANUPQ; package by trying the examples. This
99
chapter describes the non-interactive functions of the &ANUPQ; package,
100
i.e.&nbsp;<Q>one-shot</Q> functions that invoke the <C>pq</C> program in such a way
101
that once &GAP; has got what it needs, the <C>pq</C> is allowed to exit. It
102
is expected that most of the time, users will only need these functions.
103
<P/>
104
105
Advanced users will want to explore Chapter&nbsp;<Ref Chap="Interactive ANUPQ functions" Style="Text"/>
106
which describes all the interactive functions of the &ANUPQ; package;
107
these are functions that extract information via a dialogue with a
108
running <C>pq</C> process. Occasionally, a user needs the <Q>next step</Q>; the
109
functions provided in this chapter make use of data from previous steps
110
retained by the <C>pq</C> program, thus allowing the user to interact with the
111
<C>pq</C> program like one can when one uses the <C>pq</C> program as a stand-alone
112
(see&nbsp;<C>guide.dvi</C> in the <C>standalone-doc</C> directory).
113
<P/>
114
115
After having read Chapters&nbsp;<Ref Chap="non-interact" Style="Text"/>
116
and&nbsp;<Ref Chap="Interactive ANUPQ functions" Style="Text"/>, cross-references will have taken the
117
reader into Chapter&nbsp;<Ref Chap="ANUPQ Options" Style="Text"/>; by this stage, the reader need only
118
read the introduction of Chapter&nbsp;<Ref Chap="ANUPQ Options" Style="Text"/>.
119
<P/>
120
121
After the reader has developed some facility with the &ANUPQ; package,
122
she should explore the examples described in Appendix&nbsp;<Ref Chap="Examples" Style="Text"/>.
123
<P/>
124
125
If you run into trouble using the &ANUPQ; functions, some
126
troubleshooting hints are given in
127
Section&nbsp;<Ref Sect="Hints and Warnings regarding the use of Options" Style="Text"/>.
128
If the troubleshooting hints don't help,
129
Section&nbsp;<Ref Sect="Authors and Acknowledgements" Style="Text"/> below, gives contact details for
130
the authors of the components of the &ANUPQ; package.
131
</Section>
132
133
134
<Section Label="Authors and Acknowledgements">
135
<Heading>Authors and Acknowledgements</Heading>
136
137
The C implementation of the ANU <C>pq</C> standalone was developed by Eamonn O'Brien.
138
<P/>
139
140
An interactive interface using iostreams was developed with the
141
assistance of Werner Nickel by Greg Gamble.
142
<P/>
143
144
The &GAP; 4 version of this package was adapted from the &GAP; 3
145
version by Werner Nickel.
146
<P/>
147
148
A new co-maintainer, Max Horn, joined the team in November, 2011.
149
<P/>
150
151
The authors would like to thank Joachim Neubüser for his
152
careful proof-reading and advice, and for formulating
153
Chapter&nbsp;<Ref Chap="Mathematical Background and Terminology" Style="Text"/>.
154
<P/>
155
156
We would also like to thank Bettina Eick who by her testing and provision
157
of examples helped us to eliminate a number of bugs and who provided a
158
number of valuable suggestions for extensions of the package beyond the
159
&GAP;&nbsp;3 capabilities.
160
<P/>
161
162
<Index>bug reports</Index>
163
If you find a bug, the last section of &ANUPQ;'s <C>README</C> describes the
164
information we need and where to send us a bug report; please take the
165
time to read this (i.e.&nbsp;help us to help you).
166
</Section>
167
168
169
<!--
170
171
<Section Label="Change history">
172
<Heading>Change history</Heading>
173
174
Below we list the main changes between versions of the &ANUPQ; package.
175
176
<List>
177
<Mark><C>3.1</C></Mark>
178
<Item>
179
180
Max Horn fixed many warnings in the <C>pq</C> program code (<C>pq</C> program is now
181
version 1.9).
182
</Item>
183
<Mark></Mark>
184
<Item>
185
186
Max Horn improved the build system to use GNU <C>autoconf</C>. Various
187
<C>Makefile</C>s are now more robust, and compatible with both &GAP;&nbsp;4.4 and&nbsp;4.5.
188
189
</Item>
190
<Mark><C>3.0</C></Mark>
191
<Item>
192
193
Backward compatibility code for pre-4.4 versions of &GAP; removed. The
194
&ANUPQ; package now requires at least &GAP;&nbsp;4.4 and version 1.2 of the
195
&AutPGrp; package, and the &AutPGrp; package is now essential.
196
</Item>
197
<Mark></Mark>
198
<Item>
199
200
Deprecated commands replaced by &GAP;&nbsp;4.4 commands, e.g. <C>PrimePGroup</C>
201
replaced <C>PrimeOfPGroup</C>, <C>ReadPackage</C> replaced <C>ReadPkg</C>, including
202
in the <C>pq</C> program code (so <C>pq</C> program is now version 1.8).
203
</Item>
204
<Mark></Mark>
205
<Item>
206
207
Improved non-isomorphism test in <C>IsPqIsomorphicPGroup</C> using suggestion
208
made by Marco Costantini (thanks Marco).
209
</Item>
210
<Mark></Mark>
211
<Item>
212
213
Removed <C>pkgbanner</C> option that used to control how the &ANUPQ; package
214
banner was displayed.
215
</Item>
216
<Mark><C>2.2</C></Mark>
217
<Item>
218
219
Corrected a typo. in <C>PackageInfo.g</C>.
220
</Item>
221
<Mark><C>2.1</C></Mark>
222
<Item>
223
224
Binomial coefficient algorithm in <C>pq</C> program (now version 1.7) modified
225
to avoid overflow.
226
</Item>
227
<Mark></Mark>
228
<Item>
229
230
A bug discovered by Tobias Ro{\ss}mann was fixed. It was caused in the
231
&ANUPQ; package's interface by not passing on the parameter <C>StepSize</C>
232
to the <C>pq</C> program properly. This bug could result in computing the
233
wrong number of descendants if a <C>StepSize</C> different from 1 was chosen.
234
</Item>
235
<Mark></Mark>
236
<Item>
237
238
Changes suggested by Gary Zablackis were implemented in order to make the
239
package run under Windows with cygwin:
240
<List>
241
<Item>
242
use <C>[grp]</C> as default filename instead of <C>\<A>grp</A></C>,
243
</Item>
244
<Item>
245
add target to the makefile for compiling the <C>pq</C> program with cygwin,
246
and
247
</Item>
248
<Item>
249
run <C>PqQuitAll()</C> more often in test examples. This reduces the number of
250
simultaneously running processes and avoids bumping into system limits.
251
</Item>
252
</List>
253
254
</Item>
255
<Mark><C>2.0</C></Mark>
256
<Item>
257
258
Changes to <C>pq</C> program (now version 1.6) and &GAP; code to fix bug
259
reported by Boris Girnat (thanks Boris!) where too many descendants were
260
generated for a group of class more than 1 with insoluble automorphism
261
group. Also more changes for &GAP;&nbsp;4.4, for which
262
<List>
263
<Item>
264
option <C>pkgbanner</C> for suppression of the package banner is deprecated
265
(now does nothing); its function is now provided by an optional argument
266
of the <C>LoadPackage</C>; see Section&nbsp;<Ref Func="ref:LoadPackage" Style="Text"/> in the &GAP;
267
Reference Manual); and
268
</Item>
269
<Item>
270
the package banner is no longer <C>Info</C>-ed at <C>InfoANUPQ</C> level 1, and so
271
cannot be suppressed by setting the <C>InfoANUPQ</C> level to 0.
272
</Item>
273
</List>
274
</Item>
275
<Mark></Mark>
276
<Item>
277
278
For &GAP;&nbsp;4.3fix4, the previous behaviour for the display/suppression
279
and <C>Info</C>-ing of the banner is unchanged, and <C>RequirePackage</C> must be
280
used rather than the new command <C>LoadPackage</C>.
281
</Item>
282
<Mark></Mark>
283
<Item>
284
285
<C>PqSupplementInnerAutomorphisms</C> now returns a record analogous to the
286
<C>AutomorphismGroupPGroup</C> function of the &AutPGrp; package, and
287
<C>AutomorphismGroupPGroup</C> rather than <C>PqSupplementInnerAutomorphisms</C> is
288
now used to generate the required automorphism group data in descendant
289
calculations. The corresponding <C>PqExample</C> example has similarly been
290
modified.
291
</Item>
292
<Mark><C>1.5</C></Mark>
293
<Item>
294
295
Fixed bug in the filtering of ones from input to <C>pq</C> program (thanks to
296
Robert Morse again for the fix). Some preparatory changes made for
297
&GAP;&nbsp;4.4.
298
</Item>
299
<Mark><C>1.4</C></Mark>
300
<Item>
301
302
Removed an unnecessary file and line from a file in the <C>src</C> directory.
303
</Item>
304
<Mark><C>1.3</C></Mark>
305
<Item>
306
307
Efficiency improvements: in particular, the use of <C>IsSyllableWordsFamily</C>
308
as first argument of some <C>FreeGroup</C> commands.
309
</Item>
310
<Mark><C>1.2</C></Mark>
311
<Item>
312
313
Fixed some inefficiencies in transmission of relators to the <C>pq</C> program
314
(thanks to Robert Morse for identifying the problem). Updated for
315
bugfixes in fix4 of &GAP;&nbsp;4.3, which required some usages of <C>Pcgs</C> to
316
be replaced by <C>GeneralizedPcgs</C>. Requires at least &GAP;&nbsp;4.3fix4 and an
317
updated &AutPGrp; package that uses <C>SetGeneralizedPcgs</C> in lieu of
318
<C>SetPcgs</C> in its definition of <C>ConvertHybridAutGroup</C>.
319
</Item>
320
<Mark><C>1.1</C></Mark>
321
<Item>
322
323
First &GAP;&nbsp;4 release. Requires at least &GAP;&nbsp;4.2, but &GAP;&nbsp;4.3
324
recommended. Supersedes the earlier &GAP;&nbsp;3 version (1.0) in many ways;
325
in particular, it provides an interactive interface using the IOStream
326
technology introduced in &GAP;&nbsp;4.2.
327
</Item>
328
</List>
329
330
</Section>
331
-->
332
333
</Chapter>
334
335
336