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

610987 views
1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
\Chapter{Subgroup Lattices - Systematic Description}
3
4
In this chapter we give details about the various options and menus
5
available in a systematic way.
6
7
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8
\Section{GraphicSubgroupLattice}
9
10
\>GraphicSubgroupLattice( <g> )!{default sheet size form}
11
12
`GraphicSubgroupLattice' creates a new graphic sheet for the Hasse
13
diagram of the subgroup lattice of <g>. The next sections describe
14
how to select and move vertices and the following sections describe the
15
available menus.
16
17
\begintt
18
gap> GraphicSubgroupLattice( DihedralGroup(8) );
19
<graphic subgroup lattice "GraphicSubgroupLattice">
20
\endtt
21
22
\>GraphicSubgroupLattice( <g>, <width>, <height> )!{sheet size setting form}
23
24
In this form `GraphicSubgroupLattice' creates a graphic sheet of initial
25
dimensions <width> times <height>. However it is still possible to change
26
these dimensions later using either the menu (described in
27
"GraphicSubgroupLattice, Poset Menu") or the operation `Resize' for graphic
28
sheets (see "Resize").
29
30
This function is the same for all types of groups. It only behaves differently
31
according to some properties of the group. For example finitely presented
32
groups are treated differently because other algorithms apply in this case
33
and some of the standard ones are not feasible to be carried out.
34
35
In contrast to the {\GAP3} version of {\XGAP} all graphic subgroup lattices
36
are interactive so you can always remove vertices. For a finite group you
37
can still get the full lattice by choosing `All Subgroups' for the whole
38
group.
39
40
%`GraphicSubgroupLattice( <g>, \"prime\"\ )'
41
%
42
%If you supply the parameter \"prime\", then a vertex will be placed above
43
%another vertex if the number of prime factors in the size of the
44
%corresponding subgroup is larger than the number of prime factors in the
45
%size of the subgroup belonging to the second vertex. The default
46
%behaviour is to compare the sizes instead of number of prime factors.
47
48
%\begintt
49
%gap> GraphicSubgroupLattice( CyclicGroup(20) );;
50
%gap> GraphicSubgroupLattice( CyclicGroup(20), "prime" );;
51
%\endtt
52
53
%`GraphicSubgroupLattice( <g>, \"normal subgroups\"\ )'
54
55
%If you supply the parameter \"normal subgroups\", then only the lattice
56
%of normal subgroups of <g> will be drawn on the graphic sheet.
57
58
%\begintt
59
%gap> GraphicSubgroupLattice( DihedralGroup(8), "normal subgroups" );
60
%\endtt
61
62
%It is possible to abbreviate \"prime\"\ and \"normal subgroups\"\ and to
63
%supply one or both.
64
65
66
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67
\Section{GraphicSubgroupLattice, Protocol of Group Theoretic Constructions}
68
69
\label{loggingfacility}
70
{\XGAP} offers the possibility to write a protocol of the group
71
theoretic constructions you perform via mouse clicks. This is
72
convenient because otherwise you have no record of what you did. The
73
normal {\GAP} command script cannot supply this because the menu
74
entries you select do not produce useful output there.
75
76
You start the protocol facility by selecting `Start logging' from the
77
`Subgroups' menu. You are prompted for the file name of the protocol with
78
a file selector box. After selecting `OK' in this box, all subsequent
79
actions are logged in the protocol file. You can switch this feature
80
off by selecting `Stop logging' from the `Subgroups' menu.
81
82
Note that when you select `SelectedGroups to GAP' from the `Subgroups'
83
menu, the usual {\GAP} logging is also directed to the {\XGAP} log
84
file. This is stopped when you select `InsertVertices from GAP' from
85
the `Subgroups' menu. The idea of this is that you also see the
86
{\GAP} commands you issue within an {\XGAP} session in the {\XGAP}
87
protocol file, if you temporarily work with the keyboard instead of
88
the mouse. See "Start logging" and "Stop logging" for a description
89
of the menu entries.
90
91
92
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93
\Section{GraphicSubgroupLattice, Labelling of Levels}
94
95
\label{levelsintro}
96
We intend to represent subgroups of the same index at the same height
97
of the graphic lattice. For this purpose we introduce ``levels'' as
98
horizontal slices of a graphic subgroup lattice.
99
100
All vertices for subgroups of a certain finite index are
101
placed in exactly one common level. But what about infinite indices?
102
103
Every level has a ``level parameter''.
104
There are three types of levels: ``finite index'', ``finite size'', and
105
``infinity''. ``finite index'' means, that the index of the subgroups
106
in this level is a certain, finite natural number, the level parameter
107
is exactly this number. ``finite size'' means, that the size of the
108
subgroups in this level is finite *and* the index is either not known
109
(to {\GAP}) or `infinity'. The level parameter is the size but with a
110
negative sign. If the index is `infinity' and the size is
111
not known, the third type applies: ``infinity''. In each ``infinity''
112
level only one vertex can exist.
113
114
This means that ``finite index'' takes precedence over ``finite size''
115
and ``infinity'', and ``finite size'' takes precedence over
116
``infinity'' if {\XGAP} is in doubt which level to choose for a new
117
vertex.
118
119
If the group in question is a space group provided by the CRYST
120
package, levels of type ``infinity'' are also labelled by the Hirsch
121
length of the subgroup, which is the number of infinite cyclic factors
122
in any given subnormal series. Note that this is only implemented for
123
space groups as of this writing, although the Hirsch length is defined for
124
a wider range of groups.
125
126
For every graphic subgroup lattice the levels are partially ordered by
127
the following rules:
128
129
\beginlist%unordered
130
\item{--} A ``finite index'' level is greater than an ``infinity'' level.
131
132
\item{--} An ``infinity'' is greater than a ``finite size'' level.
133
134
\item{--} The ``finite index'' levels are totally ordered by descending indices.
135
136
\item{--} The ``finite size'' levels are totally ordered by ascending sizes.
137
138
\item{--} For space groups the ``infinity'' levels are partially ordered by
139
the Hirsch lengths of the subgroups.
140
\endlist
141
142
Note that in general different ``infinity'' levels are not comparable in this
143
partial order!
144
145
On the screen, the levels are of course always totally ordered with respect
146
to their height. {\XGAP} ensures that this total ordering is always
147
compatible with the abovementioned partial ordering. This means, that the
148
user can permute ``infinity'' levels, as long as this does not violate the
149
partial order by the Hirsch lengths and the
150
principle, that a vertex ``containing'' another one is drawn higher on
151
the screen.
152
153
Note that the level a vertex belongs to will be changed, when new
154
information about the subgroup is available. This happens if the user
155
chooses any entry in the information menu and new information is
156
available thereafter.
157
158
159
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
160
\Section{GraphicSubgroupLattice, Moving Vertices}
161
162
In order to move a vertex, place the pointer inside the vertex using the
163
mouse, and press the *left* mouse button. Hold the mouse button pressed,
164
and start moving the pointer by moving the mouse. The vertex will now
165
follow the pointer, but it is not possible to move the vertex out of
166
the boundaries of its level.
167
%(or number of prime factors, if \"prime\"\ was
168
%given as parameter to `GraphicSubgroupLattice')
169
or lower than a vertex of a group of smaller
170
size.
171
%(or number of prime factors).
172
As soon as you release the left mouse
173
button the vertex will stop following the pointer and, if the vertex was
174
a member of a conjugacy class, the remaining elements of the class are
175
moved.
176
177
If you hold down the <SHIFT> key before moving a vertex as described
178
above then only the selected vertex is moved but not all members of the
179
same class. You can realign the vertices of a class by selecting one of
180
them and choose `Rearrange Classes' in the `Poset' menu
181
(see "Rearrange Classes").
182
183
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
184
\Section{GraphicSubgroupLattice, Selecting Vertices}
185
186
Selected vertices are represented by a slightly thicker circle and, if
187
your screen supports color, are colored red. There are five different
188
ways to select or deselect a vertex or a bunch of vertices.
189
190
Place the pointer inside a vertex and press the *left* mouse button.
191
Release the button immediately without moving the mouse. This will
192
deselect all other vertices and select this vertex. If the vertex was
193
already the only selected vertex it is deselected.
194
195
Place the pointer inside a vertex, hold down the <SHIFT> key, and press
196
the *left* mouse button. Release the button immediately without moving
197
the mouse, release the <SHIFT> key afterwards. If the vertex was
198
deselected this action will select it in addition to any other selected
199
vertices. If the vertex was already selected it will be deselected.
200
201
Place the pointer outside any vertex and press the *left* mouse button.
202
Keep the button pressed and start moving the pointer. This will create a
203
rubber band rectangle. One corner at the position where you pressed the
204
mouse button, the opposite corner following the pointer. As soon as you
205
release the left mouse button, all vertices inside the rectangle are
206
selected, all vertices outside the rectangle are deselected.
207
208
Place the pointer outside any vertex, hold down the <SHIFT> key and press
209
the *left* mouse button. Again you see a rubber band, however, now as
210
soon as you release the mouse button, all vertices inside the rectangle
211
are selected in addition to any other selected vertices.
212
213
To select vertices from the {\GAP} command window call the function
214
`SelectGroups' with a subgroup or a list of subgroups to select.
215
216
217
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
218
\Section{GraphicSubgroupLattice, Inserting Vertices}
219
220
To insert new vertices into a graphic sheet one has to use the
221
following operation:
222
223
\>InsertVertex( <sheet>, <grp>, <conj>, <hint> )
224
\>InsertVertex( <sheet>, <grp> )
225
226
Inserts the group <grp> as a new vertex into the sheet. If the lattice
227
is *not* the subgroup lattice of a finitely presented group, it
228
checks, if the group is already in the lattice or if there is already
229
a conjugate subgroup. Further, the new vertex is sorted into the
230
poset. So `InsertVertex' checks for all vertices on higher levels,
231
whether the new vertex is contained, and for all vertices on lower
232
levels, whether they are contained in the new vertex. It then tries to
233
add edges to the appropriate vertices. If the lattice is the lattice
234
of a finitely presented group, nothing is done with respect to the
235
connections of any vertex. `InsertVertex' returns a list with the new
236
vertex as first entry and a flag as second, which says, whether this
237
vertex was inserted right now or has already been there.
238
239
<hint> is a list of $x$ coordinates which should give some hint for
240
the choice of the new $x$ coordinate. It can for example be the $x$
241
coordinates of those groups which were parameter for the operation
242
which calculated the group. <hints> can be empty but must always be a
243
list!
244
245
If <conj> is a vertex we put the new vertex into the class of this
246
vertex. Otherwise <conj> should either be `false' or `fail'.
247
248
You have access to the simpler form of the above functions via the
249
`Subgroups' menu and the mouse. If you select
250
`InsertVertices from GAP'
251
in the `Subgroups' menu, the function `InsertVertex' is called
252
for the group in the (automatic) variable `last', or, if `last'
253
contains a list of subgroups, for all of those subgroups. This is an
254
easy way to insert results of calculations with {\GAP} into the
255
lattice. If `last' is neither a subgroup nor a list of subgroups,
256
nothing happens.
257
258
259
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
260
\Section{GraphicSubgroupLattice, Sheet Menu}
261
262
The `Sheet' menu will be pulled down if you place the pointer inside the
263
`Sheet' button and press the left mouse button. Keep the button down and
264
choose an entry by moving the pointer on top of this entry. Release the
265
mouse button to select an entry.
266
267
\>`save as postscript'{save as postscript}@{`save as postscript'}
268
269
Selecting this entry pops up a file selector. If you enter a file name
270
and click on <OK>, this will save a description of the graphic sheet and
271
graphic objects on the sheet as encapsulated postscript output. This
272
output should be imported easily into other documents.
273
274
\>`close graphic sheet'{close graphic sheet}@{`close graphic sheet'}
275
276
This entry will close the current graphic sheet and the window containing
277
the sheet and all ``Information'' menus related to this sheet. On some
278
window system or using some window manager the window itself has also a
279
close button or menu entry. However, using the window close method will
280
not close associated ``Information'' menus.
281
282
283
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
284
\Section{GraphicSubgroupLattice, Poset Menu}
285
286
The `Poset' menu will be pulled down if you place the pointer inside the
287
`Poset' button and press the left mouse button. Keep the button down
288
and choose an entry by moving the pointer on top of this entry. Release
289
the mouse button to select an entry.
290
291
This menu is a generic menu for any graphic poset and is not specific to
292
subgroup lattices. So you find here options for the handling of general
293
posets.
294
295
\>`Redraw'{Redraw}@{`Redraw'}
296
297
The whole lattice will be redrawn. Use this option if some manipulation
298
has disturbed the window.
299
300
\>`Show Levels'{Show Levels}@{`Show Levels'}
301
302
If this menu entry is activated (after clicking it will have a small
303
check sign at its right, clicking again deactivates it), there will be a
304
little blue box under each level at the left edge of the graphic
305
sheet. You can use these little boxes to change the height of a level by
306
moving it up or down like a vertex. In cases where the order of the
307
levels is not given by some ``external source'' like the index of the
308
subgroups you can move levels by moving the corresponding blue box with
309
pressed <SHIFT> button.
310
311
\>`Show Levelparameters'{Show Levelparameters}@{`Show Levelparameters'}
312
313
This menu entry controls the display of the level parameters at the right
314
edge of the graphic sheet. Normally these are displayed but you can
315
switch it off with this menu entry.
316
317
\>`Delete Vertices'{Delete Vertices}@{`Delete Vertices'}
318
319
Selecting the entry will delete all selected vertices. All edges from or
320
to one of these are also deleted. However, inclusion information is
321
preserved. This means that new edges are created from all vertices which
322
were maximal in the deleted one to all vertices in which the deleted
323
vertex was maximal. So you get the Hasse diagram of the poset which is
324
the restriction of the former one to the not selected vertices.
325
326
\>`Delete Edge'{Delete Edge}@{`Delete Edge'}
327
328
This menu entry is normally not selectable because it would destroy the
329
Hasse diagram.
330
331
\>`Merge Classes'{Merge Classes}@{`Merge Classes'}
332
333
This menu entry merges all classes within each level that contain a
334
selected vertex. Afterwards `RearrangeClasses' (see below) is
335
performed. Use `Merge Classes' to unite classes within a level, but
336
use it with care: No further test is performed! If you unite classes
337
of subgroups that are not conjugate, other errors may follow, because
338
conjugacy tests are later on only performed by looking at the first
339
subgroup in a given class!
340
341
\>`Magnify Lattice'{Magnify Lattice}@{`Magnify Lattice'}
342
343
Selecting the entry will multiply the dimensions of the graphic sheet by
344
the square root of $2$ and enlarge the lattice accordingly.
345
346
\>`Shrink Lattice'{Shrink Lattice}@{`Shrink Lattice'}
347
348
Selecting the entry will divide the dimensions of the graphic sheet by
349
the square root of $2$ and shrink the lattice accordingly.
350
351
\>`Resize Lattice'{Resize Lattice}@{`Resize Lattice'}
352
353
Selecting this entry will pop up a dialog box asking for an x and y factor
354
separated by a comma. You can enter integers or quotients. If you enter
355
only one number this is used for x and y. The graphic sheet is then
356
enlarged or shrinked and the lattice is resized accordingly.
357
358
\>`Resize Sheet'{Resize Sheet}@{`Resize Sheet'}
359
360
This entry is similar to `Resize Lattice' except that only the graphic
361
sheet is changed, the lattice remains unchanged. The numbers you enter must
362
be integers and mean pixel numbers.
363
364
\>`Change Labels'{Change Labels}@{`Change Labels'}
365
366
Selecting this entry will pop up a dialog box for each selected vertex
367
asking for a new label. Clicking on <CANCEL> will cancel the relabelling
368
of the remaining vertices but will not reset the already changed labels.
369
370
\>`Average Y Positions'{Average Y Positions}@{`Average Y Positions'}
371
372
Selecting this entry will average the y coordinates of all vertices
373
belonging to the same level. For graphic subgroup lattices this means all
374
subgroups with the same index in the whole group.
375
376
\>`Average X Positions'{Average X Positions}@{`Average X Positions'}
377
378
Selecting this entry will average the x coordinates of two or more
379
selected vertices. This will only work if the corresponding subgroups do
380
not have the same size and is used to align certain vertices
381
vertically.
382
383
\>`Rearrange Classes'{Rearrange Classes}@{`Rearrange Classes'}
384
385
Selecting this entry will clean up all classes which contain a selected
386
vertex. You need this option if you have moved a vertex without its class
387
(holding down the <SHIFT> key). The vertices in a class are arranged one
388
next to the other horizontally without changing the order of the x
389
coordinates. So you can permute the vertices within a class carelessly and
390
then again get a nice picture with the new order by selecting this menu
391
entry.
392
393
\>`Use Black\&White'{Use BlackWhite}@{`Use Black\&White'}
394
395
Switches to black and white in case of a color screen or back to colors.
396
397
398
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
399
\Section{GraphicSubgroupLattice, Subgroups Menu}
400
401
The `Subgroups' menu will be pulled down if you place the pointer inside
402
the `Subgroups' button and press the left mouse button. Keep the button
403
down and choose an entry by moving the pointer on top of this entry.
404
Release the mouse button to select an entry.
405
406
Note that you can also get the `Subgroups' menu as a popup menu by
407
clicking with the right mouse button into the graphic sheet of the subgroup
408
lattice, but *not* on a vertex.
409
410
The result of a computation from any of the following entries is
411
colored green, if your screen supports color. There will also be a short
412
information message in the {\GAP} window about the result.
413
414
In the following descriptions we use ``vertices'' as abbreviation for
415
``subgroups associated with vertices''.
416
417
The following descriptions do not apply to the case of finitely presented
418
groups. See "GraphicSubgroupLattice for FpGroups, Subgroups Menu" for this
419
case.
420
421
\>`All Subgroups'{All Subgroups}@{`All Subgroups'}
422
423
For each selected vertex `All Subgroups' computes and displays all its
424
subgroups. Requires at least one selected vertex. Use with care! This can
425
cause huge computations! See also "ref:LatticeSubgroups" in the {\GAP}
426
reference manual.
427
428
\>`Centralizers'{Centralizers}@{`Centralizers'}
429
430
For each selected vertex `Centralizers' computes and displays its
431
centralizer with respect to the whole group. Requires at least one
432
selected vertex. See also "ref:Centralizer" in the {\GAP}
433
reference manual.
434
435
\>`Centres'{Centres}@{`Centres'}
436
437
For each selected vertex `Centres' computes and displays its centre.
438
Requires at least one selected vertex. See also "ref:Centre" in the {\GAP}
439
reference manual.
440
441
\>`Closure'{Closure}@{`Closure'}
442
443
computes and displays the common closure of the selected vertices.
444
Requires at least one selected vertex. See also "ref:ClosureGroup" in the
445
{\GAP} reference manual.
446
447
\>`Closures'{Closures}@{`Closures'}
448
449
computes and displays the closure of each pair of selected vertices.
450
Requires at least two selected vertices. See also "ref:ClosureGroup" in the
451
{\GAP} reference manual.
452
453
\>`Commutator Subgroups'{Commutator Subgroups}@{`Commutator Subgroups'}
454
455
computes and displays the commutator subgroup of each pair of selected
456
vertices. Requires at least two selected vertices. See also
457
"ref:CommutatorSubgroup" in the {\GAP}
458
reference manual.
459
460
\>`Conjugate Subgroups'{Conjugate Subgroups}@{`Conjugate Subgroups'}
461
462
computes and displays the conjugacy class (with respect to the whole
463
group) of each selected vertex. Requires at least one selected vertex.
464
See also "ref:ConjugacyClass" in the {\GAP}
465
reference manual.
466
467
\>`Cores'{Cores}@{`Cores'}
468
469
For each selected vertex `Cores' computes and displays its core with
470
respect to the whole group. Requires at least one selected vertex. See
471
also "ref:Core" in the {\GAP}
472
reference manual.
473
474
\>`Derived Series'{Derived Series}@{`Derived Series'}
475
476
For each selected vertex `Derived Series' computes and displays its
477
derived series. Requires at least one selected vertex. See also
478
"ref:DerivedSeriesOfGroup" in the {\GAP}
479
reference manual.
480
481
\>`Derived Subgroups'{Derived Subgroups}@{`Derived Subgroups'}
482
483
For each selected vertex `Derived Subgroups' computes and displays its
484
derived subgroup. Requires at least one selected vertex. See also
485
"ref:DerivedSubgroup" in the {\GAP}
486
reference manual.
487
488
\>`Fitting Subgroups'{Fitting Subgroups}@{`Fitting Subgroups'}
489
490
For each selected vertex `Fitting Subgroups' computes and displays its
491
Fitting subgroup. Requires at least one selected vertex. See also
492
"ref:FittingSubgroup" in the {\GAP}
493
reference manual.
494
495
\>`Intermediate Subgroups'{Intermediate Subgroups}@{`Intermediate Subgroups'}
496
497
computes and displays all intermediate subgroups between two selected
498
groups. Requires exactly two selected vertices. See also
499
"ref:IntermediateSubgroups" in the {\GAP}
500
reference manual.
501
502
\>`Intersection'{Intersection}@{`Intersection'}
503
504
computes and displays the common intersection of the selected vertices.
505
Requires at least one selected vertex. See also "ref:Intersection" in the
506
{\GAP} reference manual.
507
508
\>`Intersections'{Intersections}@{`Intersections'}
509
510
For each pair of selected vertices `Intersections' computes and displays
511
the intersection of the two vertices. Requires at least two selected
512
vertices. See also "ref:Intersection" in the {\GAP}
513
reference manual.
514
515
\>`Normalizers'{Normalizers}@{`Normalizers'}
516
517
For each selected vertex `Normalizers' computes and displays its normalizer
518
with respect to the whole group. Requires at least one selected vertex.
519
See also "ref:Normalizer" in the {\GAP}
520
reference manual.
521
522
\>`Normal Closures'{Normal Closures}@{`Normal Closures'}
523
524
For each selected vertex `Normal Closure' computes and displays its normal
525
closure with respect to the whole group. Requires at least one selected
526
vertex. See also "ref:NormalClosure" in the {\GAP}
527
reference manual.
528
529
\>`Normal Subgroups'{Normal Subgroups}@{`Normal Subgroups'}
530
531
For each selected vertex `Normal Subgroups' computes and displays the
532
normal subgroups of the subgroup associated with this vertex. These new
533
subgroups are not necessarily normal in the whole group. Requires at
534
least one selected vertex. See also "ref:NormalSubgroups" in the {\GAP}
535
reference manual.
536
537
\>`Sylow Subgroups'{Sylow Subgroups}@{`Sylow Subgroups'}
538
539
pops up a dialog box asking for a prime. After entering a prime $p$
540
and pressing <return> or clicking <OK> it computes and displays a Sylow
541
$p$-subgroup for each selected vertex. Requires at least one selected
542
vertex. See also "ref:SylowSubgroup" in the {\GAP}
543
reference manual.
544
545
\>`SelectedGroups to GAP'{SelectedGroups to GAP}@{`SelectedGroups to GAP'}
546
547
If the user selects this menu entry, the subgroups belonging to the
548
selected vertices are put into a list which is stored into the variable
549
`last'. This is equivalent to the statement `SelectedGroups(sheet);;' if
550
`sheet' contains the graphic sheet object. If {\XGAP} logging is on, then
551
the normal {\GAP} logging via `LogTo' is also directed to the {\XGAP} log
552
file.
553
554
\>`InsertVertices from GAP'{InsertVertices from GAP}@{`InsertVertices from GAP'}
555
556
If the user selects this menu entry, the value of the variable `last' is
557
used to insert new vertices into the graphic sheet. If `last' is equal to
558
one subgroup, it is inserted via `InsertVertex'. If `last' is a list of
559
subgroups, `InsertVertex' is called for all those subgroups. There is no
560
error issued if one of the entries of `last' is no subgroup. If {\XGAP}
561
logging is on, then the normal {\GAP} logging via `LogTo' is switched off!
562
The idea of this is to switch the logging temporarily from {\XGAP} logging
563
to normal {\GAP} logging between two clicks to `SelectedGroups to GAP'
564
and `InsertVertices from GAP' respectively.
565
566
\>`Start Logging'{Start Logging}@{`Start Logging'}
567
568
After clicking on this menu entry the user is prompted for a filename. From
569
this point on all commands issued via mouse clicks in the subgroup menu are
570
logged into that file, such that one can afterwards see ``what happened''
571
in the {\XGAP} session. The information displayed is the same as in the
572
info displays in the {\GAP} window.
573
574
\>`Stop Logging'{Stop Logging}@{`Stop Logging'}
575
576
A click onto this menu entry stops the {\XGAP} logging.
577
578
\bigskip%
579
580
These menu entries represent only a small selection of the functions
581
of {\GAP} which the authors of {\XGAP} considered most frequently
582
used. You can calculate other subgroups like for example prefrattini
583
subgroups from the {\GAP} command window. See sections "gapxgap" and
584
"xgapgap" for examples how to transfer information from the graphical
585
lattice of {\XGAP} to {\GAP} (via `SelectedGroups', see
586
"GraphicSubgroupLattice, Selecting Vertices") and vice versa (via
587
`SelectGroups', see "GraphicSubgroupLattice, Selecting Vertices", and
588
`InsertVertex', see "GraphicSubgroupLattice, Inserting Vertices").
589
590
591
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
592
\Section{GraphicSubgroupLattice, Information Menu}
593
594
Note that this section does not deal with the case of a finitely presented
595
group. See "GraphicSubgroupLattice for FpGroups, Information Menu" for this
596
case.
597
598
Placing the pointer inside a vertex (selected or not) and pressing the
599
*right* mouse button pops up the ``Information'' menu. Clicking on any of
600
the text lines will compute the corresponding property of the subgroup
601
$u$ associated with this vertex. Clicking on `all' will compute all
602
properties, clicking on `close' will close the ``Information'' menu.
603
604
\>`Size'{Size}@{`Size'}
605
606
computes and displays the size of $u$. See also "ref:Size" in the
607
{\GAP} reference manual.
608
609
\>`Index'{Index}@{`Index'}
610
611
computes and displays the index of $u$ in the whole group. See also
612
"ref:IndexInWholeGroup" in the {\GAP} reference manual.
613
%FIXME: eigentlich ref:Index, der ist aber falsch!
614
615
\>`IsAbelian'{IsAbelian}@{`IsAbelian'}
616
617
\>`IsCyclic'{IsCyclic}@{`IsCyclic'}
618
619
\>`IsNilpotent'{IsNilpotent}@{`IsNilpotent'}
620
621
\>`IsPerfect'{IsPerfect}@{`IsPerfect'}
622
623
\>`IsSimple'{IsSimple}@{`IsSimple'}
624
625
\>`IsSolvable'{IsSolvable}@{`IsSolvable'}
626
627
computes and displays the corresponding property of $u$. See also
628
"ref:IsAbelian", "ref:IsCyclic", "ref:IsNilpotentGroup", "ref:IsPerfectGroup",
629
"ref:IsSimpleGroup", and "ref:IsSolvableGroup" in the {\GAP}
630
reference manual.
631
632
\>`IsCentral'{IsCentral}@{`IsCentral'}
633
634
\>`IsNormal'{IsNormal}@{`IsNormal'}
635
636
computes and displays the corresponding property of $u$ with respect to
637
the whole group. See also "ref:IsCentral" and "ref:IsNormal" in the {\GAP}
638
reference manual.
639
640
\>`Isomorphism'{Isomorphism}@{`Isomorphism'}
641
642
computes and displays the isomorphism type of $u$. This will only work
643
if the size of $u$ is small. See "ref:IdGroup" in the {\GAP}
644
reference manual for details.
645
646
\bigskip%
647
648
Note that the exact result of all these information displays is stored in
649
the global variable `LastResultOfInfoDisplay' after each operation. So you
650
can access this easily from the {\GAP} command prompt. It is also returned
651
as `last' value.
652
653
654
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
655
%\Section{GraphicSubgroupLattice, Sheet Menu}
656
%
657
%In order to adjust any margin place the pointer outside of any vertex and
658
%press the *right* mouse button, keep the button pressed. The `Sheet'
659
%menu will pop up.
660
%
661
%`Left Margin'
662
%
663
%selecting <Left Margin> will narrow the graphic sheet, setting the new
664
%left margin to the x coordinate of your mouse click.
665
%
666
%`Right Margin'
667
%
668
%selecting <Right Margin> will narrow the graphic sheet, setting the new
669
%right margin to the x coordinate of your mouse click.
670
%
671
%`Top Margin'
672
%
673
%selecting <Top Margin> will narrow the graphic sheet, setting the new top
674
%margin to the y coordinate of your mouse click.
675
%
676
%`Bottom Margin'
677
%
678
%selecting <Bottom Margin> will narrow the graphic sheet, setting the new
679
%bottom margin to the y coordinate of your mouse click.
680
%
681
682
683
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
684
\Section{Vertex Shapes}
685
686
The following vertex shapes can appear in an interactive lattice:
687
688
\>`circle'{circle!vertex shape}@{`circle'!vertex shape}
689
690
Subgroup is not normal in whole group.
691
692
\>`diamond'{diamond!vertex shape}@{`diamond'!vertex shape}
693
694
Subgroup is normal in whole group.
695
696
\>`rectangle'{rectangle!vertex shape}@{`rectangle'!vertex shape}
697
698
Subgroup has an index that is too big for automatic calculation of
699
normality. So it is not yet known whether this group is normal.
700
701
\bigskip%
702
703
Automatic calculation is controlled by the following variable:
704
705
\>`GGLLimitForIsNormalCalc' V
706
707
Only for subgroups with index smaller than this number an automatic
708
`IsNormal' test is performed when the vertex is added to the sheet.
709
710
711
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
712
\Section{GraphicSubgroupLattice for FpGroups, Subgroups Menu}
713
714
The `Subgroups' menu will be pulled down if you place the pointer inside
715
the `Subgroups' button and press the left mouse button. Keep the button
716
down and choose an entry by moving the pointer on top of this entry.
717
Release the mouse button to select an entry.
718
719
Note that you can also get the `Subgroups' menu as a popup menu by
720
clicking with the right mouse button into the graphic sheet of the subgroup
721
lattice, but *not* on a vertex.
722
723
The result of a computation from any of the following entries is
724
colored green, if your screen supports color. In most cases there will
725
also be short information message in the {\GAP} window about the result.
726
727
Note that some of the menu entries make it necessary to compute
728
presentations of subgroups using a modified Todd-Coxeter algorithm.
729
This can be very time consuming and in some cases even impossible, if
730
the index is too high.
731
732
In the following descriptions, we use ``vertices'' as abbreviation for
733
``subgroups associated with vertices''.
734
735
\>`Abelian Prime Quotient'{Abelian Prime Quotient}@{`Abelian Prime Quotient'}
736
737
pops up a dialog box asking for a prime $p$. It then computes and
738
displays the largest elementary abelian $p$ quotient of the selected
739
vertex. If no presentation for the subgroup associated to the vertex is
740
known a presentation is first computed using a modified Todd-Coxeter
741
algorithm. It then calls `PrimeQuotient' to compute the largest
742
elementary abelian quotient. `Abelian PrimeQuotient' requires exactly one
743
selected vertex.
744
745
\>`All Overgroups'{All Overgroups}@{`All Overgroups'}
746
747
computes and displays all overgroups of the selected vertex. It first
748
computes the permutation action of the whole group on the cosets of the
749
subgroup associated with the selected vertex and then searches for all
750
block systems. If the subgroup of the selected vertex is normal, then
751
everything is calculated within the (finite) factor group in a better
752
representation. `All Overgroups' requires exactly one selected vertex.
753
754
\>`Closure'{Closure!for FpGroups}@{`Closure'!for FpGroups}
755
756
computes and displays the common closure of the selected vertices.
757
Requires at least one selected vertex. See also "ref:ClosureGroup" in the
758
{\GAP} reference manual.
759
760
\>`Compare Subgroups'{Compare Subgroups}@{`Compare Subgroups'}
761
762
A non-empty set of vertices must be selected to choose this menu entry. All
763
subgroups belonging to these vertices are compared pairwise, and the inclusion
764
information is displayed in the lattice. It may happen that two or more
765
vertices are merged if {\GAP} notices, that the subgroups are
766
equal.
767
768
\>`Conjugacy Class'{Conjugacy Class}@{`Conjugacy Class'}
769
770
computes and displays the conjugacy class of the selected vertex.
771
`Conjugacy Class' requires exactly one selected vertex.
772
773
\>`Cores'{Cores!for FpGroups}@{`Cores'!for FpGroups}
774
775
computes and displays the cores of the selected vertices. `Cores'
776
requires at least one selected vertex.
777
778
\>`Derived Subgroups'{Derived SubgroupsFp}@{Derived Subgroups}
779
780
computes and displays the derived subgroups of the selected vertices.
781
If applied to a proper subgroup of the whole group it will only
782
display those derived subgroups whose index is finite. `Derived
783
Subgroups' requires at least one selected vertex.
784
785
\>`Epimorphisms (GQuotients)'{Epimorphisms (GQuotients)}%
786
@{`Epimorphisms (GQuotients)'}
787
788
pops up another menu. Requires exactly one selected vertex.
789
790
\begintt
791
Sym(n)
792
Alt(n)
793
PSL(d,q)
794
Library
795
User Defined
796
\endtt
797
798
Click on any of these entries to try to find a quotient isomorphic to the
799
symmetric group (`Sym(n)'), the alternating group (`Alt(n)'), the projective
800
special linear group (`PSL(d,q)'), a group in a library supplied with
801
{\XGAP} (this will pop up a file selector), or a user defined group stored
802
in the variable `IMAGE_GROUP'. After supplying additional parameters, for
803
example, the degree of the symmetric group or the dimension and field of
804
$PSL$ using dialog boxes, the corresponding entry will change, for example
805
to something like
806
807
\begintt
808
Sym(3) 3 found
809
\endtt
810
811
After one or more quotients were found click <display> to display them.
812
813
Note that in {\XGAP4} in fact the kernel of the epimorphism is marked whereas
814
in {\XGAP3} this was not the case, even though the {\XGAP3} manual stated
815
this.
816
817
In fact in {\XGAP3} a stabilizer of a permutation action on an orbit was
818
put into the lattice.
819
820
In case that the image of the epimorphism is a permutation group you can
821
get this functionality by clicking on <display point stabilizer> instead of
822
<display>.
823
824
\>`Intermediate Subgroups'{Intermediate Subgroups!for FpGroups}%
825
@{`Intermediate Subgroups'!for FpGroups}
826
827
computes and displays all intermediate subgroups between two selected
828
groups. Requires exactly two selected vertices. See also
829
"ref:IntermediateSubgroups" in the {\GAP} reference manual.
830
831
\>`Intersection'{Intersection!for FpGroups}@{Intersection!for FpGroups}
832
833
computes and displays the common intersection of the selected vertices.
834
Requires at least one selected vertex. See also "ref:Intersection" in the
835
{\GAP} reference manual.
836
837
\>`Intersections'{Intersections!for FpGroups}@{Intersections!for FpGroups}
838
839
computes and displays the pairwise intersections of the selected
840
vertices. `Intersections' requires at least two selected vertices.
841
842
\>`Low Index Subgroups'{Low Index Subgroups}@{`Low Index Subgroups'}
843
844
pops up a dialog box asking for index limit $k$. It will then do a low
845
index subgroup search for subgroups of index at most $k$ of the selected
846
vertex using `LowIndexSubgroupsFpGroup'. If no presentation for the
847
subgroup associated to the vertex is known a presentation is first
848
computed using a modified Todd-Coxeter algorithm. `Low Index Subgroups'
849
requires exactly one selected vertex.
850
851
\>`Normalizers'{Normalizers!for FpGroups}@{`Normalizers'!for FpGroups}
852
853
computes and displays the normalizers of the selected vertices.
854
`Normalizers' requires at least one selected vertex.
855
856
\>`Prime Quotient'{Prime Quotient}@{`Prime Quotient'}
857
858
pops up a dialog box asking for a prime $p$ and another dialog box asking
859
for a class $c$. It then computes and displays the largest $p$-quotient
860
of class $c$ of the selected vertex. If no presentation for the subgroup
861
associated to the vertex is known a presentation is first computed using
862
a modified Todd-Coxeter algorithm. It then calls `PrimeQuotient'.
863
`Prime Quotient' requires exactly one selected vertex.
864
865
\>`Test Conjugacy'{Test Conjugacy}@{`Test Conjugacy'}
866
867
walks through all levels and tests for all pairs of classes, that contain a
868
selected vertex, whether the groups in the classes are conjugates. If so,
869
the classes are merged. After these calculations `Rearrange Classes' is
870
called. Note that conjugacy calculations can take lots of time for finitely
871
presented groups!
872
873
\>`SelectedGroups to GAP'{SelectedGroups to GAP!for FpGroups}%
874
@{`SelectedGroups to GAP'!for FpGroups}
875
876
If the user selects this menu entry, the subgroups belonging to the
877
selected vertices are put into a list which is stored into the variable
878
`last'. This is equivalent to the statement `SelectedGroups(sheet);;' if
879
`sheet' contains the graphic sheet object. If {\XGAP} logging is on, then
880
the normal {\GAP} logging via `LogTo' is also directed to the {\XGAP} log
881
file.
882
883
\>`InsertVertices from GAP'{InsertVertices from GAP!for FpGroups}%
884
@{`InsertVertices from GAP'!for FpGroups}
885
886
If the user selects this menu entry, the value of the variable `last' is
887
used to insert new vertices into the graphic sheet. If `last' is equal to
888
one subgroup, it is inserted via `InsertVertex'. If `last' is a list of
889
subgroups, `InsertVertex' is called for all those subgroups. There is no
890
error issued if one of the entries of `last' is no subgroup. If {\XGAP}
891
logging is on, then the normal {\GAP} logging via `LogTo' is switched off!
892
The idea of this is to switch the logging temporarily from {\XGAP} logging
893
to normal {\GAP} logging between two clicks to ``SelectedGroups to GAP''
894
and ``InsertVertices from GAP'' respectively.
895
896
\>`Start Logging'{Start Logging!for FpGroups}@{`Start Logging'!for FpGroups}
897
898
After clicking on this menu entry the user is prompted for a filename. From
899
this point on all commands issued via mouse clicks in the subgroup menu are
900
logged into that file, such that one can afterwards see ``what happened''
901
in the {\XGAP} session. The information displayed is the same as in the
902
info displays in the {\GAP} window.
903
904
\>`Stop Logging'{Stop Logging!for FpGroups}@{`Stop Logging'!for FpGroups}
905
906
A click onto this menu entry stops the {\XGAP} logging.
907
908
\bigskip%
909
910
These menu entries represent only a small selection of the functions of
911
{\GAP} which the authors of {\XGAP} considered most frequently used. You
912
can calculate other subgroups from
913
the {\GAP} command window. See sections "gapxgap" and
914
"xgapgap" for examples how to transfer information from the graphical
915
lattice of {\XGAP} to {\GAP} (via `SelectedGroups', see
916
"GraphicSubgroupLattice, Selecting Vertices") and vice versa (via
917
`SelectGroups', see "GraphicSubgroupLattice, Selecting Vertices", and
918
`InsertVertex', see "GraphicSubgroupLattice, Inserting Vertices").
919
920
921
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
922
\Section{GraphicSubgroupLattice for FpGroups, Information Menu}
923
924
Placing the pointer inside a vertex (selected or not) and pressing the
925
*right* mouse button pops up the ``Information'' menu. Clicking on any of
926
the text lines will compute the corresponding property of the subgroup
927
$u$ associated with this vertex. Clicking on `close' will close the
928
``Information'' menu.
929
930
\>`Index'{Index!for FpGroups}@{`Index'!for FpGroups}
931
932
displays the index of $u$ in the whole group.
933
934
\>`IsNormal'{IsNormal!for FpGroups}@{`IsNormal'!for FpGroups}
935
936
checks if $u$ is normal in the whole group.
937
938
\>`IsFpGroup'{IsFpGroup}@{`IsFpGroup'}
939
940
checks if $u$ is a finitely presented group. Note that a subgroup of a
941
finitely presented group that is defined by a coset table or as kernel
942
of an epimorphism is *not* automatically known to {\GAP} as a finitely
943
presented group. This means, that certain algorithms can not be
944
applied. Use `IsomorphismFpGroup' (see "ref:IsomorphismFpGroup" in the
945
{\GAP} reference manual) to calculate a finitely presented group and
946
an isomorphism onto it, if some calculation does not work automatically.
947
948
\>`Abelian Invariants'{Abelian Invariants}@{`Abelian Invariants'}
949
950
computes and displays the abelian invariants of $u$.
951
952
\>`Coset Table'{Coset Table}@{`Coset Table'}
953
954
computes a coset table for $u$.
955
956
\>`IsomorphismFpGroup'{IsomorphismFpGroup}@{`IsomorphismFpGroup'}
957
958
computes a finitely presented group that is isomorphic to $u$ and displays
959
the number of generators and relators of it.
960
961
\>`Factor Fp Group'{Factor Fp Group}@{`Factor Fp Group'}
962
963
computes the factor group of the whole group by $u$, if $u$ is normal.
964
965
\bigskip%
966
967
Note that the exact result of all these information displays is stored in
968
the global variable `LastResultOfInfoDisplay' after each operation. So you
969
can access this easily from the {\GAP} command prompt. It is also returned
970
as `last' value.
971
972
973
%%% Local Variables:
974
%%% mode: latex
975
%%% TeX-master: "manual"
976
%%% End:
977
978