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
% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
2
\documentclass[a4paper,11pt]{report}
3
4
\usepackage{a4wide}
5
\sloppy
6
\pagestyle{myheadings}
7
\usepackage{amssymb}
8
\usepackage[latin1]{inputenc}
9
\usepackage{makeidx}
10
\makeindex
11
\usepackage{color}
12
\definecolor{FireBrick}{rgb}{0.5812,0.0074,0.0083}
13
\definecolor{RoyalBlue}{rgb}{0.0236,0.0894,0.6179}
14
\definecolor{RoyalGreen}{rgb}{0.0236,0.6179,0.0894}
15
\definecolor{RoyalRed}{rgb}{0.6179,0.0236,0.0894}
16
\definecolor{LightBlue}{rgb}{0.8544,0.9511,1.0000}
17
\definecolor{Black}{rgb}{0.0,0.0,0.0}
18
19
\definecolor{linkColor}{rgb}{0.0,0.0,0.554}
20
\definecolor{citeColor}{rgb}{0.0,0.0,0.554}
21
\definecolor{fileColor}{rgb}{0.0,0.0,0.554}
22
\definecolor{urlColor}{rgb}{0.0,0.0,0.554}
23
\definecolor{promptColor}{rgb}{0.0,0.0,0.589}
24
\definecolor{brkpromptColor}{rgb}{0.589,0.0,0.0}
25
\definecolor{gapinputColor}{rgb}{0.589,0.0,0.0}
26
\definecolor{gapoutputColor}{rgb}{0.0,0.0,0.0}
27
28
%% for a long time these were red and blue by default,
29
%% now black, but keep variables to overwrite
30
\definecolor{FuncColor}{rgb}{0.0,0.0,0.0}
31
%% strange name because of pdflatex bug:
32
\definecolor{Chapter }{rgb}{0.0,0.0,0.0}
33
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
34
35
36
\usepackage{fancyvrb}
37
38
\usepackage{mathptmx,helvet}
39
\usepackage[T1]{fontenc}
40
\usepackage{textcomp}
41
42
43
\usepackage[
44
pdftex=true,
45
bookmarks=true,
46
a4paper=true,
47
pdftitle={Written with GAPDoc},
48
pdfcreator={LaTeX with hyperref package / GAPDoc},
49
colorlinks=true,
50
backref=page,
51
breaklinks=true,
52
linkcolor=linkColor,
53
citecolor=citeColor,
54
filecolor=fileColor,
55
urlcolor=urlColor,
56
pdfpagemode={UseNone},
57
]{hyperref}
58
59
\newcommand{\maintitlesize}{\fontsize{50}{55}\selectfont}
60
61
% write page numbers to a .pnr log file for online help
62
\newwrite\pagenrlog
63
\immediate\openout\pagenrlog =\jobname.pnr
64
\immediate\write\pagenrlog{PAGENRS := [}
65
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
66
%% were never documented, give conflicts with some additional packages
67
68
\newcommand{\GAP}{\textsf{GAP}}
69
70
%% nicer description environments, allows long labels
71
\usepackage{enumitem}
72
\setdescription{style=nextline}
73
74
%% depth of toc
75
\setcounter{tocdepth}{1}
76
77
78
79
80
81
%% command for ColorPrompt style examples
82
\newcommand{\gapprompt}[1]{\color{promptColor}{\bfseries #1}}
83
\newcommand{\gapbrkprompt}[1]{\color{brkpromptColor}{\bfseries #1}}
84
\newcommand{\gapinput}[1]{\color{gapinputColor}{#1}}
85
86
87
\begin{document}
88
89
\def\contentsname{Contents\logpage{[ 0, 0, 1 ]}}
90
91
\tableofcontents
92
\newpage
93
94
95
\chapter{\textcolor{Chapter }{Cellular complexes}}\logpage{[ 1, 0, 0 ]}
96
\hyperdef{L}{X81F2008E8232E877}{}
97
{
98
Data $\longrightarrow$ Cellular Complexes \\
99
\\
100
\\
101
\index{HenonOrbit}::::::::::::::::::::::::\\
102
103
\begin{verbatim} RegularCWPolytope(L):: List --> RegCWComplex
104
\end{verbatim}
105
106
\begin{verbatim} RegularCWPolytope(G,v):: PermGroup, List --> RegCWComplex
107
\end{verbatim}
108
109
110
111
112
Inputs a list $L$ of vectors in $\mathbb R^n$ and outputs their convex hull as a regular CW-complex.
113
114
Inputs a permutation group G of degree $d$ and vector $v\in \mathbb R^d$, and outputs the convex hull of the orbit $\{v^g : g\in G\}$ as a regular CW-complex. \\
115
\\
116
\\
117
\\
118
\index{CubicalComplex}::::::::::::::::::::::::\\
119
120
\begin{verbatim} CubicalComplex(A):: List --> CubicalComplex
121
\end{verbatim}
122
123
124
125
126
Inputs a binary array $A$ and returns the cubical complex represented by $A$. The array $A$ must of course be such that it represents a cubical complex. \\
127
\\
128
\\
129
\\
130
\index{PureCubicalComplex}::::::::::::::::::::::::\\
131
132
\begin{verbatim} PureCubicalComplex(A):: List --> PureCubicalComplex
133
\end{verbatim}
134
135
136
137
138
Inputs a binary array $A$ and returns the pure cubical complex represented by $A$. \\
139
\\
140
\\
141
\\
142
\index{PureCubicalKnot}::::::::::::::::::::::::\\
143
144
\begin{verbatim} PureCubicalKnot(n,k):: Int, Int --> PureCubicalComplex
145
\end{verbatim}
146
147
\begin{verbatim} PureCubicalKnot(L):: List --> PureCubicalComplex
148
\end{verbatim}
149
150
151
152
153
Inputs integers $n, k$ and returns the $k$-th prime knot on $n$ crossings as a pure cubical complex (if this prime knot exists).
154
155
Inputs a list $L$ describing an arc presentation for a knot or link and returns the knot or link
156
as a pure cubical complex. \\
157
\\
158
\\
159
\\
160
\index{PurePermutahedralKnot}::::::::::::::::::::::::\\
161
162
\begin{verbatim} PurePermutahedralKnot(n,k):: Int, Int --> PurePermutahedralComplex
163
\end{verbatim}
164
165
\begin{verbatim} PurePermutahedralKnot(L):: List --> PurePermutahedralComplex
166
\end{verbatim}
167
168
169
Inputs integers $n, k$ and returns the $k$-th prime knot on $n$ crossings as a pure permutahedral complex (if this prime knot exists).
170
171
Inputs a list $L$ describing an arc presentation for a knot or link and returns the knot or link
172
as a pure permutahedral complex. \\
173
\\
174
\\
175
\\
176
\index{PurePermutahedralComplex}::::::::::::::::::::::::\\
177
178
\begin{verbatim} PurePermutahedralComplex(A):: List --> PurePermComplex
179
\end{verbatim}
180
181
182
183
184
Inputs a binary array $A$ and returns the pure permutahedral complex represented by $A$. \\
185
\\
186
\\
187
\\
188
\index{CayleyGraphOfGroup}::::::::::::::::::::::::\\
189
190
\begin{verbatim} CayleyGraphOfGroup(G,L):: Group, List --> Graph
191
\end{verbatim}
192
193
194
195
196
Inputs a finite group $G$ and a list $L$ of elements in $G$.It returns the Cayley graph of the group generated by $L$. \\
197
\\
198
\\
199
\\
200
\index{EquivariantEuclideanSpace}::::::::::::::::::::::::\\
201
202
\begin{verbatim} EquivariantEuclideanSpace(G,v):: MatrixGroup, List --> EquivariantRegCWComplex
203
\end{verbatim}
204
205
206
207
208
Inputs a crystallographic group $G$ with left action on $\mathbb R^n$ together with a row vector $v \in \mathbb R^n$. It returns an equivariant regular CW-space corresponding to the
209
Dirichlet-Voronoi tessellation of $\mathbb R^n$ produced from the orbit of $v$ under the action. \\
210
\\
211
\\
212
\\
213
\index{EquivariantOrbitPolytope}::::::::::::::::::::::::\\
214
215
\begin{verbatim} EquivariantOrbitPolytope(G,v):: PermGroup, List --> EquivariantRegCWComplex
216
\end{verbatim}
217
218
219
220
221
Inputs a permutation group $G$ of degree $n$ together with a row vector $v \in \mathbb R^n$. It returns, as an equivariant regular CW-space, the convex hull of the orbit
222
of $v$ under the canonical left action of $G$ on $\mathbb R^n$. \\
223
\\
224
\\
225
\\
226
\index{EquivariantTwoComplex}::::::::::::::::::::::::\\
227
228
\begin{verbatim} EquivariantTwoComplex(G):: Group --> EquivariantRegCWComplex
229
\end{verbatim}
230
231
232
233
234
Inputs a suitable group $G$ and returns, as an equivariant regular CW-space, the $2$-complex associated to some presentation of $G$. \\
235
\\
236
\\
237
\\
238
\index{QuillenComplex}::::::::::::::::::::::::\\
239
240
\begin{verbatim} QuillenComplex(G,p):: Group, Int --> SimplicialComplex
241
\end{verbatim}
242
243
244
245
246
Inputs a finite group $G$ and prime $p$, and returns the simplicial complex arising as the order complex of the poset
247
of elementary abelian $p$-subgroups of $G$. \\
248
\\
249
\\
250
\\
251
\index{RestrictedEquivariantCWComplex}::::::::::::::::::::::::\\
252
253
\begin{verbatim} RestrictedEquivariantCWComplex(Y,H):: RegCWComplex, Group --> EquivariantRegCWComplex
254
\end{verbatim}
255
256
257
258
259
Inputs a $G$-equivariant regular CW-space Y and a subgroup $H \le G$ for which GAP can find a transversal. It returns the equivariant regular
260
CW-complex obtained by retricting the action to $H$. \\
261
\\
262
\\
263
\\
264
\index{RandomSimplicialGraph}::::::::::::::::::::::::\\
265
266
\begin{verbatim} RandomSimplicialGraph(n,p):: Int, Int --> SimplicialComplex
267
\end{verbatim}
268
269
270
271
272
Inputs an integer $ n \ge 1 $ and positive prime $p$, and returns an Erd\texttt{\symbol{92}}"os-R\texttt{\symbol{92}}'enyi random
273
graph as a $1$-dimensional simplicial complex. The graph has $n$ vertices. Each pair of vertices is, with probability $p$, directly connected by an edge. \\
274
\\
275
\\
276
\\
277
\index{RandomSimplicialTwoComplex}::::::::::::::::::::::::\\
278
279
\begin{verbatim} RandomSimplicialTwoComplex(n,p):: Int, Int --> SimplicialComplex
280
\end{verbatim}
281
282
283
284
285
Inputs an integer $ n \ge 1 $ and positive prime $p$, and returns a Linial-Meshulam random simplicial $2$-complex. The $1$-skeleton of this simplicial complex is the complete graph on $n$ vertices. Each triple of vertices lies, with probability $p$, in a common $2$-simplex of the complex. \\
286
\\
287
\\
288
\\
289
\index{ReadCSVfileAsPureCubicalKnot}::::::::::::::::::::::::\\
290
291
\begin{verbatim} ReadCSVfileAsPureCubicalKnot(str):: String --> PureCubicalComplex
292
\end{verbatim}
293
294
\begin{verbatim} ReadCSVfileAsPureCubicalKnot(str,r):: String, Int --> PureCubicalComplex
295
\end{verbatim}
296
297
\begin{verbatim} ReadCSVfileAsPureCubicalKnot(L):: List --> PureCubicalComplex
298
\end{verbatim}
299
300
\begin{verbatim} ReadCSVfileAsPureCubicalKnot(L,R):: List,List --> PureCubicalComplex
301
\end{verbatim}
302
303
304
305
306
Reads a CSV file identified by a string str such as "file.pdb" or
307
"path/file.pdb" and returns a $3$-dimensional pure cubical complex $K$. Each line of the file should contain the coordinates of a point in $\mathbb R^3$ and the complex $K$ should represent a knot determined by the sequence of points, though the
308
latter is not guaranteed. A useful check in this direction is to test that $K$ has the homotopy type of a circle.
309
310
If the test fails then try the function again with an integer $r \ge 2$ entered as the optional second argument. The integer determines the resolution
311
with which the knot is constructed.
312
313
The function can also read in a list $L$ of strings identifying CSV files for several knots. In this case a list $R$ of integer resolutions can also be entered. The lists $L$ and $R$ must be of equal length. \\
314
\\
315
\\
316
\\
317
\index{ReadImageAsPureCubicalComplex}::::::::::::::::::::::::\\
318
319
\begin{verbatim} ReadImageAsPureCubicalComplex(str,t):: String, Int --> PureCubicalComplex
320
\end{verbatim}
321
322
323
324
325
Reads an image file identified by a string str such as "file.bmp", "file.eps",
326
"file.jpg", "path/file.png" etc., together with an integer $t$ between $0$ and $765$. It returns a $2$-dimensional pure cubical complex corresponding to a black/white version of
327
the image determined by the threshold $t$. The $2$-cells of the pure cubical complex correspond to pixels with RGB value $R+G+B \le t$. \\
328
\\
329
\\
330
\\
331
\index{ReadImageAsFilteredPureCubicalComplex}::::::::::::::::::::::::\\
332
333
\begin{verbatim} ReadImageAsFilteredPureCubicalComplex(str,n):: String, Int --> FilteredPureCubicalComplex
334
\end{verbatim}
335
336
337
338
339
Reads an image file identified by a string str such as "file.bmp", "file.eps",
340
"file.jpg", "path/file.png" etc., together with a positive integer $n$. It returns a $2$-dimensional filtered pure cubical complex of filtration length $n$. The $k$th term in the filtration is a pure cubical complex corresponding to a
341
black/white version of the image determined by the threshold $t_k=k \times 765/n $. The $2$-cells of the $k$th term correspond to pixels with RGB value $R+G+B \le t_k$. \\
342
\\
343
\\
344
\\
345
\index{ReadImageAsWeightFunction}::::::::::::::::::::::::\\
346
347
\begin{verbatim} ReadImageAsWeightFunction(str,t):: String, Int --> RegCWComplex, Function
348
\end{verbatim}
349
350
351
352
353
Reads an image file identified by a string str such as "file.bmp", "file.eps",
354
"file.jpg", "path/file.png" etc., together with an integer $t$. It constructs a $2$-dimensional regular CW-complex $Y$ from the image, together with a weight function $w\colon Y\rightarrow \mathbb Z$ corresponding to a filtration on $Y$ of filtration length $t$. The pair $[Y,w]$ is returned. \\
355
\\
356
\\
357
\\
358
\index{ReadPDBfileAsPureCubicalComplex}::::::::::::::::::::::::\\
359
360
\begin{verbatim} ReadPDBfileAsPureCubicalComplex(str):: String --> PureCubicalComplex
361
\end{verbatim}
362
363
\begin{verbatim} ReadPDBfileAsPureCubicalComplex(str,r):: String, Int --> PureCubicalComplex
364
\end{verbatim}
365
366
367
368
369
Reads a PDB (Protein Database) file identified by a string str such as
370
"file.pdb" or "path/file.pdb" and returns a $3$-dimensional pure cubical complex $K$. The complex $K$ should represent a (protein backbone) knot but this is not guaranteed. A
371
useful check in this direction is to test that $K$ has the homotopy type of a circle.
372
373
If the test fails then try the function again with an integer $r \ge 2$ entered as the optional second argument. The integer determines the resolution
374
with which the knot is constructed. \\
375
\\
376
\\
377
\\
378
\index{ReadPDBfileAsPurePermutahedralComplex}::::::::::::::::::::::::\\
379
380
\begin{verbatim} ReadPDBfileAsPurepermutahedralComplex(str):: String --> PurePermComplex
381
\end{verbatim}
382
383
\begin{verbatim} ReadPDBfileAsPurePermutahedralComplex(str,r):: String, Int --> PurePermComplex
384
\end{verbatim}
385
386
387
388
389
Reads a PDB (Protein Database) file identified by a string str such as
390
"file.pdb" or "path/file.pdb" and returns a $3$-dimensional pure permutahedral complex $K$. The complex $K$ should represent a (protein backbone) knot but this is not guaranteed. A
391
useful check in this direction is to test that $K$ has the homotopy type of a circle.
392
393
If the test fails then try the function again with an integer $r \ge 2$ entered as the optional second argument. The integer determines the resolution
394
with which the knot is constructed. \\
395
\\
396
\\
397
\\
398
\index{RegularCWPolytope}::::::::::::::::::::::::\\
399
400
\begin{verbatim} RegularCWPolytope(L):: List --> RegCWComplex
401
\end{verbatim}
402
403
\begin{verbatim} RegularCWPolytope(G,v):: PermGroup, List --> RegCWComplex
404
\end{verbatim}
405
406
407
408
409
Inputs a list $L$ of vectors in $\mathbb R^n$ and outputs their convex hull as a regular CW-complex.
410
411
Inputs a permutation group G of degree $d$ and vector $v\in \mathbb R^d$, and outputs the convex hull of the orbit $\{v^g : g\in G\}$ as a regular CW-complex. \\
412
\\
413
\\
414
\\
415
\index{SimplicialComplex}::::::::::::::::::::::::\\
416
417
\begin{verbatim} SimplicialComplex(L):: List --> SimplicialComplex
418
\end{verbatim}
419
420
421
422
423
Inputs a list $L$ whose entries are lists of vertices representing the maximal simplices of a
424
simplicial complex, and returns the simplicial complex. Here a "vertex" is a
425
GAP object such as an integer or a subgroup. The list $L$ can also contain non-maximal simplices. \\
426
\\
427
\\
428
\\
429
\index{SymmetricMatrixToFilteredGraph}::::::::::::::::::::::::\\
430
431
\begin{verbatim} SymmetricMatrixToFilteredGraph(A,m,s):: Mat, Int, Rat --> FilteredGraph
432
\end{verbatim}
433
434
\begin{verbatim} SymmetricMatrixToFilteredGraph(A,m):: Mat, Int --> FilteredGraph
435
\end{verbatim}
436
437
438
439
440
Inputs an $n \times n$ symmetric matrix $A$, a positive integer $m$ and a positive rational $s$. The function returns a filtered graph of filtration length $m$. The $t$-th term of the filtration is a graph with $n$ vertices and an edge between the $i$-th and $j$-th vertices if the $(i,j)$ entry of $A$ is less than or equal to $t \times s/m$.
441
442
If the optional input $s$ is omitted then it is set equal to the largest entry in the matrix $A$. \\
443
\\
444
\\
445
\\
446
\index{SymmetricMatrixToGraph}::::::::::::::::::::::::\\
447
448
\begin{verbatim} SymmetricMatrixToGraph(A,t):: Mat, Rat --> Graph
449
\end{verbatim}
450
451
452
453
454
Inputs an $n\times n$ symmetric matrix $A$ over the rationals and a rational number $t \ge 0$, and returns the graph on the vertices $1,2, \ldots, n$ with an edge between distinct vertices $i$ and $j$ precisely when the $(i,j)$ entry of $A$ is $\le t$. \\
455
\\
456
\\
457
Metric Spaces \\
458
\\
459
\\
460
\index{CayleyMetric}::::::::::::::::::::::::\\
461
462
\begin{verbatim} CayleyMetric(g,h):: Permutation, Permutation --> Int
463
\end{verbatim}
464
465
466
467
468
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the minimum number of
469
transpositions needed to express $g*h^{-1}$ as a product of transpositions. \\
470
\\
471
\\
472
\\
473
\index{EuclideanMetric}::::::::::::::::::::::::\\
474
475
\begin{verbatim} EuclideanMetric(g,h):: List, List --> Rat
476
\end{verbatim}
477
478
479
480
481
Inputs two vectors $v,w \in \mathbb R^n$ and returns a rational number approximating the Euclidean distance between
482
them. \\
483
\\
484
\\
485
\\
486
\index{EuclideanSquaredMetric}::::::::::::::::::::::::\\
487
488
\begin{verbatim} EuclideanSquaredMetric(g,h):: List, List --> Rat
489
\end{verbatim}
490
491
492
493
494
Inputs two vectors $v,w \in \mathbb R^n$ and returns the square of the Euclidean distance between them. \\
495
\\
496
\\
497
\\
498
\index{HammingMetric}::::::::::::::::::::::::\\
499
500
\begin{verbatim} HammingMetric(g,h):: Permutation, Permutation --> Int
501
\end{verbatim}
502
503
504
505
506
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the minimum number of
507
integers moved by the permutation $g*h^{-1}$. \\
508
\\
509
\\
510
\\
511
\index{KendallMetric}::::::::::::::::::::::::\\
512
513
\begin{verbatim} KendallMetric(g,h):: Permutation, Permutation --> Int
514
\end{verbatim}
515
516
517
518
519
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the minimum number of
520
adjacent transpositions needed to express $g*h^{-1}$ as a product of adjacent transpositions. An
521
\texttt{\symbol{123}}\texttt{\symbol{92}}em adjacent\texttt{\symbol{125}}
522
transposition is of the form $(i,i+1)$. \\
523
\\
524
\\
525
\\
526
\index{ManhattanMetric}::::::::::::::::::::::::\\
527
528
\begin{verbatim} ManhattanMetric(g,h):: List, List --> Rat
529
\end{verbatim}
530
531
532
533
534
Inputs two vectors $v,w \in \mathbb R^n$ and returns the Manhattan distance between them. \\
535
\\
536
\\
537
\\
538
\index{VectorsToSymmetricMatrix}::::::::::::::::::::::::\\
539
540
\begin{verbatim} VectorsToSymmetricMatrix(V):: List --> Matrix
541
\end{verbatim}
542
543
\begin{verbatim} VectorsToSymmetricMatrix(V,d):: List, Function --> Matrix
544
\end{verbatim}
545
546
547
548
549
Inputs a list $V =\{ v_1, \ldots, v_k\} \in \mathbb R^n$ and returns the $k \times k$ symmetric matrix of Euclidean distances $d(v_i, v_j)$. When these distances are irrational they are approximated by a rational
550
number.
551
552
As an optional second argument any rational valued function $d(x,y)$ can be entered. \\
553
\\
554
\\
555
Cellular Complexes $\longrightarrow$ Cellular Complexes \\
556
\\
557
\\
558
\index{BoundaryMap}::::::::::::::::::::::::\\
559
560
\begin{verbatim} BoundaryMap(K):: RegCWComplex --> RegCWMap
561
\end{verbatim}
562
563
564
565
566
Inputs a pure regular CW-complex $K$ and returns the regular CW-inclusion map $\iota \colon \partial K \hookrightarrow K$ from the boundary $\partial K$ into the complex $K$. \\
567
\\
568
\\
569
\\
570
\index{CliqueComplex}::::::::::::::::::::::::\\
571
572
\begin{verbatim} CliqueComplex(G,n):: Graph, Int --> SimplicialComplex
573
\end{verbatim}
574
575
\begin{verbatim} CliqueComplex(F,n):: FilteredGraph, Int --> FilteredSimplicialComplex
576
\end{verbatim}
577
578
\begin{verbatim} CliqueComplex(K,n):: SimplicialComplex, Int --> SimplicialComplex
579
\end{verbatim}
580
581
582
583
584
Inputs a graph $G$ and integer $n \ge 1$. It returns the $n$-skeleton of a simplicial complex $K$ with one $k$-simplex for each complete subgraph of $G$ on $k+1$ vertices.
585
586
Inputs a fitered graph $F$ and integer $n \ge 1$. It returns the $n$-skeleton of a filtered simplicial complex $K$ whose $t$-term has one $k$-simplex for each complete subgraph of the $t$-th term of $G$ on $k+1$ vertices.
587
588
Inputs a simplicial complex of dimension $d=1$ or $d=2$. If $d=1$ then the clique complex of a graph returned. If $d=2$ then the clique complex of a \$2\$-complex is returned. \\
589
\\
590
\\
591
\\
592
\index{ConcentricFiltration}::::::::::::::::::::::::\\
593
594
\begin{verbatim} ConcentricFiltration(K,n):: PureCubicalComplex, Int --> FilteredPureCubicalComplex
595
\end{verbatim}
596
597
598
599
600
Inputs a pure cubical complex $K$ and integer $n \ge 1$, and returns a filtered pure cubical complex of filtration length $n$. The $t$-th term of the filtration is the intersection of $K$ with the ball of radius $r_t$ centred on the centre of gravity of $K$, where $0=r_1 \le r_2 \le r_3 \le \cdots \le r_n$ are equally spaced rational numbers. The complex $K$ is contained in the ball of radius $r_n$. (At present, this is implemented only for $2$- and $3$-dimensional complexes.) \\
601
\\
602
\\
603
\\
604
\index{DirectProduct}::::::::::::::::::::::::\\
605
606
\begin{verbatim} DirectProduct(M,N):: RegCWComplex, RegCWComplex --> RegCWComplex
607
\end{verbatim}
608
609
\begin{verbatim} DirectProduct(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
610
\end{verbatim}
611
612
613
614
615
Inputs two or more regular CW-complexes or two or more pure cubical complexes
616
and returns their direct product. \\
617
\\
618
\\
619
\\
620
\index{FiltrationTerm}::::::::::::::::::::::::\\
621
622
\begin{verbatim} FiltrationTerm(K,t):: FilteredPureCubicalComplex, Int --> PureCubicalComplex
623
\end{verbatim}
624
625
\begin{verbatim} FiltrationTerm(K,t):: FilteredRegCWComplex, Int --> RegCWComplex
626
\end{verbatim}
627
628
629
630
631
Inputs a filtered regular CW-complex or a filtered pure cubical complex $K$ together with an integer $t \ge 1$. The $t$-th term of the filtration is returned. \\
632
\\
633
\\
634
\\
635
\index{Graph}::::::::::::::::::::::::\\
636
637
\begin{verbatim} Graph(K):: RegCWComplex --> Graph
638
\end{verbatim}
639
640
\begin{verbatim} Graph(K):: SimplicialComplex --> Graph
641
\end{verbatim}
642
643
644
645
646
Inputs a regular CW-complex or a simplicial complex $K$ and returns its \$1\$-skeleton as a graph. \\
647
\\
648
\\
649
\\
650
\index{HomotopyGraph}::::::::::::::::::::::::\\
651
652
\begin{verbatim} HomotopyGraph(Y):: RegCWComplex --> Graph
653
\end{verbatim}
654
655
656
657
658
Inputs a regular CW-complex $Y$ and returns a subgraph $M \subset Y^1$ of the $1$-skeleton for which the induced homology homomorphisms $H_1(M,\mathbb Z) \rightarrow H_1(Y,\mathbb Z)$ and $H_1(Y^1,\mathbb Z) \rightarrow H_1(Y,\mathbb Z)$ have identical images. The construction tries to include as few edges in $M$ as possible, though a minimum is not guaranteed. \\
659
\\
660
\\
661
\\
662
\index{Nerve}::::::::::::::::::::::::\\
663
664
\begin{verbatim} Nerve(M):: PureCubicalComplex --> SimplicialComplex
665
\end{verbatim}
666
667
\begin{verbatim} Nerve(M):: PurePermComplex --> SimplicialComplex
668
\end{verbatim}
669
670
\begin{verbatim} Nerve(M,n):: PureCubicalComplex, Int --> SimplicialComplex
671
\end{verbatim}
672
673
\begin{verbatim} Nerve(M,n):: PurePermComplex, Int --> SimplicialComplex
674
\end{verbatim}
675
676
677
678
679
Inputs a pure cubical complex or pure permutahedral complex $M$ and returns the simplicial complex $K$ obtained by taking the nerve of an open cover of $|M|$, the open sets in the cover being sufficiently small neighbourhoods of the
680
top-dimensional cells of $|M|$. The spaces $|M|$ and $|K|$ are homotopy equivalent by the Nerve Theorem. If an integer $n \ge 0$ is supplied as the second argument then only the n-skeleton of $K$ is returned. \\
681
\\
682
\\
683
\\
684
\index{RegularCWComplex}::::::::::::::::::::::::\\
685
686
\begin{verbatim} RegularCWComplex(K):: SimplicialComplex --> RegCWComplex
687
\end{verbatim}
688
689
\begin{verbatim} RegularCWComplex(K):: PureCubicalComplex --> RegCWComplex
690
\end{verbatim}
691
692
\begin{verbatim} RegularCWComplex(K):: CubicalComplex --> RegCWComplex
693
\end{verbatim}
694
695
\begin{verbatim} RegularCWComplex(K):: PurePermComplex --> RegCWComplex
696
\end{verbatim}
697
698
\begin{verbatim} RegularCWComplex(L):: List --> RegCWComplex
699
\end{verbatim}
700
701
\begin{verbatim} RegularCWComplex(L,M):: List,List --> RegCWComplex
702
\end{verbatim}
703
704
705
706
707
Inputs a simplicial, pure cubical, cubical or pure permutahedral complex $K$ and returns the corresponding regular CW-complex. Inputs a list $L=Y!.boundaries$ of boundary incidences of a regular CW-complex $Y$ and returns $Y$. Inputs a list $L=Y!.boundaries$ of boundary incidences of a regular CW-complex $Y$ together with a list $M=Y!.orientation$ of incidence numbers and returns a regular CW-complex $Y$. The availability of precomputed incidence numbers saves recalculating them. \\
708
\\
709
\\
710
\\
711
\index{RegularCWMap}::::::::::::::::::::::::\\
712
713
\begin{verbatim} RegularCWMap(M,A):: PureCubicalComplex, PureCubicalComplex --> RegCWMap
714
\end{verbatim}
715
716
717
718
719
Inputs a pure cubical complex $M$ and a subcomplex $A$ and returns the inclusion map $A \rightarrow M$ as a map of regular CW complexes. \\
720
\\
721
\\
722
\\
723
\index{ThickeningFiltration}::::::::::::::::::::::::\\
724
725
\begin{verbatim} ThickeningFiltration(K,n):: PureCubicalComplex, Int --> FilteredPureCubicalComplex
726
\end{verbatim}
727
728
\begin{verbatim} ThickeningFiltration(K,n,s):: PureCubicalComplex, Int, Int --> FilteredPureCubicalComplex
729
\end{verbatim}
730
731
732
733
734
Inputs a pure cubical complex $K$ and integer $n \ge 1$, and returns a filtered pure cubical complex of filtration length $n$. The $t$-th term of the filtration is the $t$-fold thickening of $K$. If an integer $s \ge 1$ is entered as the optional third argument then the $t$-th term of the filtration is the $ts$-fold thickening of $K$. \\
735
\\
736
\\
737
Cellular Complexes $\longrightarrow$ Cellular Complexes (Preserving Data Types) \\
738
\\
739
\\
740
\index{ContractedComplex}::::::::::::::::::::::::\\
741
742
\begin{verbatim} ContractedComplex(K):: RegularCWComplex --> RegularCWComplex
743
\end{verbatim}
744
745
\begin{verbatim} ContractedComplex(K):: FilteredRegularCWComplex --> FilteredRegularCWComplex
746
\end{verbatim}
747
748
\begin{verbatim} ContractedComplex(K):: CubicalComplex --> CubicalComplex
749
\end{verbatim}
750
751
\begin{verbatim} ContractedComplex(K):: PureCubicalComplex --> PureCubicalComplex
752
\end{verbatim}
753
754
\begin{verbatim} ContractedComplex(K,S):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
755
\end{verbatim}
756
757
\begin{verbatim} ContractedComplex(K):: FilteredPureCubicalComplex --> FilteredPureCubicalComplex
758
\end{verbatim}
759
760
\begin{verbatim} ContractedComplex(K):: PurePermComplex --> PurePermComplex
761
\end{verbatim}
762
763
\begin{verbatim} ContractedComplex(K,S):: PurePermComplex, PurePermComplex --> PurePermComplex
764
\end{verbatim}
765
766
\begin{verbatim} ContractedComplex(K):: SimplicialComplex --> SimplicialComplex
767
\end{verbatim}
768
769
\begin{verbatim} ContractedComplex(G):: Graph --> Graph
770
\end{verbatim}
771
772
773
Inputs a complex (regular CW, Filtered regular CW, pure cubical etc.) and
774
returns a homotopy equivalent subcomplex.
775
776
Inputs a pure cubical complex or pure permutahedral complex $K$ and a subcomplex $S$. It returns a homotopy equivalent subcomplex of $K$ that contains $S$.
777
778
Inputs a graph $G$ and returns a subgraph $S$ such that the clique complexes of $G$ and $S$ are homotopy equivalent. \\
779
\\
780
\\
781
\\
782
\index{ContractibleSubcomplex}::::::::::::::::::::::::\\
783
784
\begin{verbatim} ContractibleSubcomplex(K):: PureCubicalComplex --> PureCubicalComplex
785
\end{verbatim}
786
787
\begin{verbatim} ContractibleSubcomplex(K):: PurePermComplex --> PurePermComplex
788
\end{verbatim}
789
790
\begin{verbatim} ContractibleSubcomplex(K):: SimplicialComplex --> SimplicialComplex
791
\end{verbatim}
792
793
794
795
796
Inputs a non-empty pure cubical, pure permutahedral or simplicial complex $K$ and returns a contractible subcomplex. \\
797
\\
798
\\
799
\\
800
\index{KnotReflection}::::::::::::::::::::::::\\
801
802
\begin{verbatim} KnotReflection(K):: PureCubicalComplex --> PureCubicalComplex
803
\end{verbatim}
804
805
806
807
808
Inputs a pure cubical knot and returns the reflected knot. \\
809
\\
810
\\
811
\\
812
\index{KnotSum}::::::::::::::::::::::::\\
813
814
\begin{verbatim} KnotSum(K,L):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
815
\end{verbatim}
816
817
818
819
820
Inputs two pure cubical knots and returns their sum. \\
821
\\
822
\\
823
\\
824
\index{OrientRegularCWComplex}::::::::::::::::::::::::\\
825
826
\begin{verbatim} OrientRegularCWComplex(Y):: RegCWComplex --> Void
827
\end{verbatim}
828
829
830
831
832
Inputs a regular CW-complex $Y$ and computes and stores incidence numbers for $Y$. If $Y$ already has incidence numbers then the function does nothing. \\
833
\\
834
\\
835
\\
836
\index{PathComponent}::::::::::::::::::::::::\\
837
838
\begin{verbatim} PathComponent(K,n):: SimplicialComplex, Int --> SimplicialComplex
839
\end{verbatim}
840
841
\begin{verbatim} PathComponent(K,n):: PureCubicalComplex, Int --> PureCubicalComplex
842
\end{verbatim}
843
844
\begin{verbatim} PathComponent(K,n):: PurePermComplex, Int --> PurePermComplex
845
\end{verbatim}
846
847
848
849
850
Inputs a simplicial, pure cubical or pure permutahedral complex $K$ together with an integer $1 \le n \le \beta_0(K)$. The $n$-th path component of $K$ is returned. \\
851
\\
852
\\
853
\\
854
\index{PureComplexBoundary}::::::::::::::::::::::::\\
855
856
\begin{verbatim} PureComplexBoundary(M):: PureCubicalComplex --> PureCubicalComplex
857
\end{verbatim}
858
859
\begin{verbatim} PureComplexBoundary(M):: PurePermComplex --> PurePermComplex
860
\end{verbatim}
861
862
863
864
865
Inputs a $d$-dimensional pure cubical or pure permutahedral complex $M$ and returns a $d$-dimensional complex consisting of the closure of those $d$-cells whose boundaries contains some cell with coboundary of size less than
866
the maximal possible size. \\
867
\\
868
\\
869
\\
870
\index{PureComplexComplement}::::::::::::::::::::::::\\
871
872
\begin{verbatim} PureComplexComplement(M):: PureCubicalComplex --> PureCubicalComplex
873
\end{verbatim}
874
875
\begin{verbatim} PureComplexComplement(M):: PurePermComplex --> PurePermComplex
876
\end{verbatim}
877
878
879
880
881
Inputs a pure cubical complex or a pure permutahedral complex and returns its
882
complement. \\
883
\\
884
\\
885
\\
886
\index{PureComplexDifference}::::::::::::::::::::::::\\
887
888
\begin{verbatim} PureComplexDifference(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
889
\end{verbatim}
890
891
\begin{verbatim} PureComplexDifference(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
892
\end{verbatim}
893
894
895
896
897
Inputs two pure cubical complexes or two pure permutahedral complexes and
898
returns the difference $ M - N$. \\
899
\\
900
\\
901
\\
902
\index{PureComplexIntersection}::::::::::::::::::::::::\\
903
904
\begin{verbatim} PureComplexInterstection(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
905
\end{verbatim}
906
907
\begin{verbatim} PureComplexIntersection(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
908
\end{verbatim}
909
910
911
912
913
Inputs two pure cubical complexes or two pure permutahedral complexes and
914
returns their intersection. \\
915
\\
916
\\
917
\\
918
\index{PureComplexThickened}::::::::::::::::::::::::\\
919
920
\begin{verbatim} PureComplexThickened(M):: PureCubicalComplex --> PureCubicalComplex
921
\end{verbatim}
922
923
\begin{verbatim} PureComplexThickened(M):: PurePermComplex --> PurePermComplex
924
\end{verbatim}
925
926
927
928
929
Inputs a pure cubical complex or a pure permutahedral complex and returns the
930
a thickened complex. \\
931
\\
932
\\
933
\\
934
\index{PureComplexUnion}::::::::::::::::::::::::\\
935
936
\begin{verbatim} PureComplexUnion(M,N):: PureCubicalComplex, PureCubicalComplex --> PureCubicalComplex
937
\end{verbatim}
938
939
\begin{verbatim} PureComplexUnion(M,N):: PurePermComplex, PurePermComplex --> PurePermComplex
940
\end{verbatim}
941
942
943
944
945
Inputs two pure cubical complexes or two pure permutahedral complexes and
946
returns their union. \\
947
\\
948
\\
949
\\
950
\index{SimplifiedComplex}::::::::::::::::::::::::\\
951
952
\begin{verbatim} SimplifiedComplex(K):: RegularCWComplex --> RegularCWComplex
953
\end{verbatim}
954
955
\begin{verbatim} SimplifiedComplex(K):: PurePermComplex --> PurePermComplex
956
\end{verbatim}
957
958
\begin{verbatim} SimplifiedComplex(R):: FreeResolution --> FreeResolution
959
\end{verbatim}
960
961
\begin{verbatim} SimplifiedComplex(C):: ChainComplex --> ChainComplex
962
\end{verbatim}
963
964
965
966
967
Inputs a regular CW-complex or a pure permutahedral complex $K$ and returns a homeomorphic complex with possibly fewer cells and certainly no
968
more cells.
969
970
Inputs a free $\mathbb ZG$-resolution $R$ of $\mathbb Z$ and returns a $\mathbb ZG$-resolution $S$ with potentially fewer free generators.
971
972
Inputs a chain complex $C$ of free abelian groups and returns a chain homotopic chain complex $D$ with potentially fewer free generators. \\
973
\\
974
\\
975
\\
976
\index{ZigZagContractedComplex}::::::::::::::::::::::::\\
977
978
\begin{verbatim} ZigZagContractedComplex(K):: PureCubicalComplex --> PureCubicalComplex
979
\end{verbatim}
980
981
\begin{verbatim} ZigZagContractedComplex(K):: FilteredPureCubicalComplex --> FilteredPureCubicalComplex
982
\end{verbatim}
983
984
\begin{verbatim} ZigZagContractedComplex(K):: PurePermComplex --> PurePermComplex
985
\end{verbatim}
986
987
988
Inputs a pure cubical, filtered pure cubical or pure permutahedral complex and
989
returns a homotopy equivalent complex. In the filtered case, the $t$-th term of the output is homotopy equivalent to the $t$-th term of the input for all $t$. \\
990
\\
991
\\
992
Cellular Complexes $\longrightarrow$ Homotopy Invariants \\
993
\\
994
\\
995
\index{AlexanderPolynomial}::::::::::::::::::::::::\\
996
997
\begin{verbatim} AlexanderPolynomial(K):: PureCubicalComplex --> Polynomial
998
\end{verbatim}
999
1000
\begin{verbatim} AlexanderPolynomial(K):: PurePermComplex --> Polynomial
1001
\end{verbatim}
1002
1003
\begin{verbatim} AlexanderPolynomial(G):: FpGroup --> Polynomial
1004
\end{verbatim}
1005
1006
1007
1008
1009
Inputs a $3$-dimensional pure cubical or pure permutahdral complex $K$ representing a knot and returns the Alexander polynomial of the fundamental
1010
group $G = \pi_1(\mathbb R^3\setminus K)$.
1011
1012
Inputs a finitely presented group $G$ with infinite cyclic abelianization and returns its Alexander polynomial. \\
1013
\\
1014
\\
1015
\\
1016
\index{BettiNumber}::::::::::::::::::::::::\\
1017
1018
\begin{verbatim} BettiNumber(K,n):: SimplicialComplex, Int --> Int
1019
\end{verbatim}
1020
1021
\begin{verbatim} BettiNumber(K,n):: PureCubicalComplex, Int --> Int
1022
\end{verbatim}
1023
1024
\begin{verbatim} BettiNumber(K,n):: CubicalComplex, Int --> Int
1025
\end{verbatim}
1026
1027
\begin{verbatim} BettiNumber(K,n):: PurePermComplex, Int --> Int
1028
\end{verbatim}
1029
1030
\begin{verbatim} BettiNumber(K,n):: RegCWComplex, Int --> Int
1031
\end{verbatim}
1032
1033
\begin{verbatim} BettiNumber(K,n):: ChainComplex, Int --> Int
1034
\end{verbatim}
1035
1036
\begin{verbatim} BettiNumber(K,n):: SparseChainComplex, Int --> Int
1037
\end{verbatim}
1038
1039
\begin{verbatim} BettiNumber(K,n,p):: SimplicialComplex, Int, Int --> Int
1040
\end{verbatim}
1041
1042
\begin{verbatim} BettiNumber(K,n,p):: PureCubicalComplex, Int, Int --> Int
1043
\end{verbatim}
1044
1045
\begin{verbatim} BettiNumber(K,n,p):: CubicalComplex, Int, Int --> Int
1046
\end{verbatim}
1047
1048
\begin{verbatim} BettiNumber(K,n,p):: PurePermComplex, Int, Int --> Int
1049
\end{verbatim}
1050
1051
\begin{verbatim} BettiNumber(K,n,p):: RegCWComplex, Int, Int --> Int
1052
\end{verbatim}
1053
1054
1055
Inputs a simplicial, cubical, pure cubical, pure permutahedral, regular CW,
1056
chain or sparse chain complex $K$ together with an integer $n \ge 0$ and returns the $n$th Betti number of $K$.
1057
1058
Inputs a simplicial, cubical, pure cubical, pure permutahedral or regular
1059
CW-complex $K$ together with an integer $n \ge 0$ and a prime $p \ge 0$ or $p=0$. In this case the $n$th Betti number of $K$ over a field of characteristic $p$ is returned. \\
1060
\\
1061
\\
1062
\\
1063
\index{EulerCharacteristic}::::::::::::::::::::::::\\
1064
1065
\begin{verbatim} EulerCharacteristic(C):: ChainComplex --> Int
1066
\end{verbatim}
1067
1068
\begin{verbatim} EulerCharacteristic(K):: CubicalComplex --> Int
1069
\end{verbatim}
1070
1071
\begin{verbatim} EulerCharacteristic(K):: PureCubicalComplex --> Int
1072
\end{verbatim}
1073
1074
\begin{verbatim} EulerCharacteristic(K):: PurePermComplex --> Int
1075
\end{verbatim}
1076
1077
\begin{verbatim} EulerCharacteristic(K):: RegCWComplex --> Int
1078
\end{verbatim}
1079
1080
\begin{verbatim} EulerCharacteristic(K):: SimplicialComplex --> Int
1081
\end{verbatim}
1082
1083
1084
1085
1086
Inputs a chain complex $C$ and returns its Euler characteristic.
1087
1088
Inputs a cubical, or pure cubical, or pure permutahedral or regular CW-, or
1089
simplicial complex $K$ and returns its Euler characteristic. \\
1090
\\
1091
\\
1092
\\
1093
\index{EulerIntegral}::::::::::::::::::::::::\\
1094
1095
\begin{verbatim} EulerIntegral(Y,w):: RegCWComplex, Int --> Int
1096
\end{verbatim}
1097
1098
1099
1100
1101
Inputs a regular CW-complex $Y$ and a weight function $w\colon Y\rightarrow \mathbb Z$, and returns the Euler integral $ \int_Y w\, d\chi $. \\
1102
\\
1103
\\
1104
\\
1105
\index{FundamentalGroup}::::::::::::::::::::::::\\
1106
1107
\begin{verbatim} FundamentalGroup(K):: RegCWComplex --> FpGroup
1108
\end{verbatim}
1109
1110
\begin{verbatim} FundamentalGroup(K,n):: RegCWComplex, Int --> FpGroup
1111
\end{verbatim}
1112
1113
\begin{verbatim} FundamentalGroup(K):: SimplicialComplex --> FpGroup
1114
\end{verbatim}
1115
1116
\begin{verbatim} FundamentalGroup(K):: PureCubicalComplex --> FpGroup
1117
\end{verbatim}
1118
1119
\begin{verbatim} FundamentalGroup(K):: PurePermComplex --> FpGroup
1120
\end{verbatim}
1121
1122
1123
1124
\begin{verbatim} FundamentalGroup(F):: RegCWMap --> GroupHomomorphism
1125
\end{verbatim}
1126
1127
\begin{verbatim} FundamentalGroup(F,n):: RegCWMap, Int --> GroupHomomorphism
1128
\end{verbatim}
1129
1130
1131
1132
1133
Inputs a regular CW, simplicial, pure cubical or pure permutahedral complex $K$ and returns the fundamental group.
1134
1135
Inputs a regular CW complex $K$ and the number $n$ of some zero cell. It returns the fundamental group of $K$ based at the $n$-th zero cell.
1136
1137
Inputs a regular CW map $F$ and returns the induced homomorphism of fundamental groups. If the number of
1138
some zero cell in the domain of $F$ is entered as an optional second variable then the fundamental group is based
1139
at this zero cell. \\
1140
\\
1141
\\
1142
\\
1143
\index{FundamentalGroupOfQuotient}::::::::::::::::::::::::\\
1144
1145
\begin{verbatim} FundamentalGroupOfQuotient(Y):: EquivariantRegCWComplex --> Group
1146
\end{verbatim}
1147
1148
1149
1150
1151
Inputs a $G$-equivariant regular CW complex $Y$ and returns the group $G$. \\
1152
\\
1153
\\
1154
\\
1155
\index{IsAspherical}::::::::::::::::::::::::\\
1156
1157
\begin{verbatim} IsAspherical(F,R):: FreeGroup, List --> Boolean
1158
\end{verbatim}
1159
1160
1161
1162
1163
Inputs a free group $F$ and a list $R$ of words in $F$. The function attempts to test if the quotient group $G=F/\langle R \rangle^F$ is aspherical. If it succeeds it returns $true$. Otherwise the test is inconclusive and $fail$ is returned. \\
1164
\\
1165
\\
1166
\\
1167
\index{KnotGroup}::::::::::::::::::::::::\\
1168
1169
\begin{verbatim} KnotGroup(K):: PureCubicalComplex --> FpGroup
1170
\end{verbatim}
1171
1172
\begin{verbatim} KnotGroup(K):: PureCubicalComplex --> FpGroup
1173
\end{verbatim}
1174
1175
1176
1177
1178
Inputs a pure cubical or pure permutahedral complex $K$ and returns the fundamental group of its complement. If the complement is
1179
path-connected then this fundamental group is unique up to isomorphism.
1180
Otherwise it will depend on the path-component in which the randomly chosen
1181
base-point lies. \\
1182
\\
1183
\\
1184
\\
1185
\index{PiZero}::::::::::::::::::::::::\\
1186
1187
\begin{verbatim} PiZero(Y):: RegCWComplex --> List
1188
\end{verbatim}
1189
1190
\begin{verbatim} PiZero(Y):: Graph --> List
1191
\end{verbatim}
1192
1193
\begin{verbatim} PiZero(Y):: SimplicialComplex --> List
1194
\end{verbatim}
1195
1196
1197
1198
1199
Inputs a regular CW-complex $Y$, or graph $Y$, or simplicial complex $Y$ and returns a pair $[cells,r]$ where: $cells$ is a list of vertices of \$Y\$ representing the distinct path-components; $r(v)$ is a function which, for each vertex $v$ of $Y$ returns the representative vertex $r(v) \in cells$. \\
1200
\\
1201
\\
1202
\\
1203
\index{PersistentBettiNumbers}::::::::::::::::::::::::\\
1204
1205
\begin{verbatim} PersistentBettiNumbers(K,n):: FilteredSimplicialComplex, Int --> List
1206
\end{verbatim}
1207
1208
\begin{verbatim} PersistentBettiNumbers(K,n):: FilteredPureCubicalComplex, Int --> List
1209
\end{verbatim}
1210
1211
\begin{verbatim} PersistentBettiNumbers(K,n):: FilteredRegCWComplex, Int --> List
1212
\end{verbatim}
1213
1214
\begin{verbatim} PersistentBettiNumbers(K,n):: FilteredChainComplex, Int --> List
1215
\end{verbatim}
1216
1217
\begin{verbatim} PersistentBettiNumbers(K,n):: FilteredSparseChainComplex, Int --> List
1218
\end{verbatim}
1219
1220
\begin{verbatim} PersistentBettiNumbers(K,n,p):: FilteredSimplicialComplex, Int, Int --> List
1221
\end{verbatim}
1222
1223
\begin{verbatim} PersistentBettiNumbers(K,n,p):: FilteredPureCubicalComplex, Int, Int --> List
1224
\end{verbatim}
1225
1226
\begin{verbatim} PersistentBettiNumbers(K,n,p):: FilteredRegCWComplex, Int, Int --> List
1227
\end{verbatim}
1228
1229
\begin{verbatim} PersistentBettiNumbers(K,n,p):: FilteredChainComplex, Int, Int --> List
1230
\end{verbatim}
1231
1232
\begin{verbatim} PersistentBettiNumbers(K,n,p):: FilteredSparseChainComplex, Int, Int --> List
1233
\end{verbatim}
1234
1235
1236
Inputs a filtered simplicial, filtered pure cubical, filtered regular CW,
1237
filtered chain or filtered sparse chain complex $K$ together with an integer $n \ge 0$ and returns the $n$th PersistentBetti numbers of $K$ as a list of lists of integers.
1238
1239
Inputs a filtered simplicial, filtered pure cubical, filtered regular CW,
1240
filtered chain or filtered sparse chain complex $K$ together with an integer $n \ge 0$ and a prime $p \ge 0$ or $p=0$. In this case the $n$th PersistentBetti numbers of $K$ over a field of characteristic $p$ are returned. \\
1241
\\
1242
\\
1243
Data $\longrightarrow$ Homotopy Invariants \\
1244
\\
1245
\\
1246
\index{DendrogramMat}::::::::::::::::::::::::\\
1247
1248
\begin{verbatim} DendrogramMat(A,t,s):: Mat, Rat, Int --> List
1249
\end{verbatim}
1250
1251
1252
1253
1254
Inputs an $n\times n$ symmetric matrix $A$ over the rationals, a rational $t \ge 0$ and an integer $s \ge 1$. A list $[v_1, \ldots, v_{t+1}]$ is returned with each $v_k$ a list of positive integers. Let $t_k = (k-1)s$. Let $G(A,t_k)$ denote the graph with vertices $1, \ldots, n$ and with distinct vertices $i$ and $j$ connected by an edge when the $(i,j)$ entry of $A$ is $\le t_k$. The $i$-th path component of $G(A,t_k)$ is included in the $v_k[i]$-th path component of $G(A,t_{k+1})$. This defines the integer vector $v_k$. The vector $v_k$ has length equal to the number of path components of $G(A,t_k)$. \\
1255
\\
1256
\\
1257
Cellular Complexes $\longrightarrow$ Non Homotopy Invariants \\
1258
\\
1259
\\
1260
\index{ChainComplex}::::::::::::::::::::::::\\
1261
1262
\begin{verbatim} ChainComplex(K):: CubicalComplex --> ChainComplex
1263
\end{verbatim}
1264
1265
\begin{verbatim} ChainComplex(K):: PureCubicalComplex --> ChainComplex
1266
\end{verbatim}
1267
1268
\begin{verbatim} ChainComplex(K):: PurePermComplex --> ChainComplex
1269
\end{verbatim}
1270
1271
\begin{verbatim} ChainComplex(Y):: RegCWComplex --> ChainComplex
1272
\end{verbatim}
1273
1274
\begin{verbatim} ChainComplex(K):: SimplicialComplex --> ChainComplex
1275
\end{verbatim}
1276
1277
1278
1279
1280
Inputs a cubical, or pure cubical, or pure permutahedral or simplicial complex $K$ and returns its chain complex of free abelian groups. In degree $n$ this chain complex has one free generator for each $n$-dimensional cell of $K$.
1281
1282
Inputs a regular CW-complex $Y$ and returns a chain complex $C$ which is chain homotopy equivalent to the cellular chain complex of $Y$. In degree $n$ the free abelian chain group $C_n$ has one free generator for each critical $n$-dimensional cell of $Y$ with respect to some discrete vector field on $Y$. \\
1283
\\
1284
\\
1285
\\
1286
\index{ChainComplexEquivalence}::::::::::::::::::::::::\\
1287
1288
\begin{verbatim} ChainComplexEquivalence(X):: RegCWComplex --> List
1289
\end{verbatim}
1290
1291
1292
1293
1294
Inputs a regular CW-complex $X$ and returns a pair $[f_\ast, g_\ast]$ of chain maps $f_\ast\colon C_\ast(X) \rightarrow D_\ast(X)$, $g_\ast\colon D_\ast(X) \rightarrow C_\ast(X)$. Here $C_\ast(X)$ is the standard cellular chain complex of $X$ with one free generator for each cell in $X$. The chain complex $D_\ast(X)$ is a typically smaller chain complex arising from a discrete vector field on $X$. The chain maps $f_\ast, g_\ast$ are chain homotopy equivalences. \\
1295
\\
1296
\\
1297
\\
1298
\index{ChainComplexOfQuotient}::::::::::::::::::::::::\\
1299
1300
\begin{verbatim} ChainComplexOfQuotient(Y):: EquivariantRegCWComplex --> ChainComplex
1301
\end{verbatim}
1302
1303
1304
1305
1306
Inputs a $G$-equivariant regular CW-complex $Y$ and returns the cellular chain complex of the quotient space $Y/G$. \\
1307
\\
1308
\\
1309
\\
1310
\index{ChainMap}::::::::::::::::::::::::\\
1311
1312
\begin{verbatim} ChainMap(X,A,Y,B):: PureCubicalComplex, PureCubicalComplex, PureCubicalComplex, PureCubicalComplex --> ChainMap
1313
\end{verbatim}
1314
1315
\begin{verbatim} ChainMap(f):: RegCWMap --> ChainMap
1316
\end{verbatim}
1317
1318
\begin{verbatim} ChainMap(f):: SimplicialMap --> ChainComplex
1319
\end{verbatim}
1320
1321
1322
1323
1324
Inputs a pure cubical complex $Y$ and pure cubical sucomplexes $X\subset Y$, $B\subset Y$,$A\subset B$. It returns the induced chain map $f_\ast\colon C_\ast(X/A) \rightarrow C_\ast(Y/B)$ of cellular chain complexes of pairs. (Typlically one takes $A$ and $B$ to be empty or contractible subspaces, in which case $C_\ast(X/A) \simeq C_\ast(X)$, $C_\ast(Y/B) \simeq C_\ast(Y)$.)
1325
1326
Inputs a map $f\colon X \rightarrow Y$ between two regular CW-complexes $X,Y$ and returns an induced chain map $f_\ast\colon C_\ast(X) \rightarrow C_\ast(Y)$ where $C_\ast(X)$, $C_\ast(Y)$ are chain homotopic to (but usually smaller than) the cellular chain complexes
1327
of $X$, $Y$.
1328
1329
Inputs a map $f\colon X \rightarrow Y$ between two simplicial complexes $X,Y$ and returns the induced chain map $f_\ast\colon C_\ast(X) \rightarrow C_\ast(Y)$ of cellular chain complexes. \\
1330
\\
1331
\\
1332
\\
1333
\index{CochainComplex}::::::::::::::::::::::::\\
1334
1335
\begin{verbatim} CochainComplex(K):: CubicalComplex --> CochainComplex
1336
\end{verbatim}
1337
1338
\begin{verbatim} CochainComplex(K):: PureCubicalComplex --> CochainComplex
1339
\end{verbatim}
1340
1341
\begin{verbatim} CochainComplex(K):: PurePermComplex --> CochainComplex
1342
\end{verbatim}
1343
1344
\begin{verbatim} CochainComplex(Y):: RegCWComplex --> CochainComplex
1345
\end{verbatim}
1346
1347
\begin{verbatim} CochainComplex(K):: SimplicialComplex --> CohainComplex
1348
\end{verbatim}
1349
1350
1351
1352
1353
Inputs a cubical, or pure cubical, or pure permutahedral or simplicial complex $K$ and returns its cochain complex of free abelian groups. In degree $n$ this cochain complex has one free generator for each $n$-dimensional cell of $K$.
1354
1355
Inputs a regular CW-complex $Y$ and returns a cochain complex $C$ which is chain homotopy equivalent to the cellular cochain complex of $Y$. In degree $n$ the free abelian cochain group $C_n$ has one free generator for each critical $n$-dimensional cell of $Y$ with respect to some discrete vector field on $Y$. \\
1356
\\
1357
\\
1358
\\
1359
\index{CriticalCells}::::::::::::::::::::::::\\
1360
1361
\begin{verbatim} CriticalCells(K):: RegCWComplex --> List
1362
\end{verbatim}
1363
1364
1365
1366
1367
Inputs a regular CW-complex $K$ and returns its critical cells with respect to some discrete vector field on $K$. If no discrete vector field on $K$ is available then one will be computed and stored. \\
1368
\\
1369
\\
1370
\\
1371
\index{DiagonalApproximation}::::::::::::::::::::::::\\
1372
1373
\begin{verbatim} DiagonalApproximation(X):: RegCWComplex --> RegCWMap, RegCWMap
1374
\end{verbatim}
1375
1376
1377
1378
1379
Inputs a regular CW-complex $X$ and outputs a pair $[p,\iota]$ of maps of CW-complexes. The map $p\colon X^\Delta \rightarrow X$ will often be a homotopy equivalence. This is always the case if $X$ is the CW-space of any pure cubical complex. In general, one can test to see
1380
if the induced chain map $p_\ast \colon C_\ast(X^\Delta) \rightarrow C_\ast(X)$ is an isomorphism on integral homology. The second map $\iota \colon X^\Delta \hookrightarrow X\times X$ is an inclusion into the direct product. If $p_\ast$ induces an isomorphism on homology then the chain map $\iota_\ast\colon C_\ast(X^\Delta) \rightarrow C_\ast(X\times X)$ can be used to compute the cup product. \\
1381
\\
1382
\\
1383
\\
1384
\index{Size}::::::::::::::::::::::::\\
1385
1386
\begin{verbatim} Size(Y):: RegCWComplex --> Int
1387
\end{verbatim}
1388
1389
\begin{verbatim} Size(Y):: SimplicialComplex --> Int
1390
\end{verbatim}
1391
1392
\begin{verbatim} Size(K):: PureCubicalComplex --> Int
1393
\end{verbatim}
1394
1395
\begin{verbatim} Size(K):: PurePermComplex --> Int
1396
\end{verbatim}
1397
1398
1399
1400
1401
Inputs a regular CW complex or a simplicial complex $Y$ and returns the number of cells in the complex.
1402
1403
Inputs a $d$-dimensional pure cubical or pure permutahedral complex $K$ and returns the number of $d$-dimensional cells in the complex. \\
1404
\\
1405
\\
1406
(Co)chain Complexes $\longrightarrow $ (Co)chain Complexes \\
1407
\\
1408
\\
1409
\index{FilteredTensorWithInteres}::::::::::::::::::::::::\\
1410
1411
\begin{verbatim} FilteredTensorWithIntegers(R):: FreeResolution, Int --> FilteredChainComplex
1412
\end{verbatim}
1413
1414
1415
Inputs a free $\mathbb ZG$-resolution $R$ for which $"filteredDimension"$ lies in \textsc{NamesOfComponents(R)}. (Such a resolution can be produced using \textsc{TwisterTensorProduct()}, \textsc{ResolutionNormalSubgroups()} or \textsc{FreeGResolution()}.) It returns the filtered chain complex obtained by tensoring with the
1416
trivial module \$\texttt{\symbol{92}}mathbb Z\$. \\
1417
\\
1418
\\
1419
\\
1420
\index{FilteredTensorWithInteresModP}::::::::::::::::::::::::\\
1421
1422
\begin{verbatim} FilteredTensorWithIntegersModP(R,p):: FreeResolution, Int --> FilteredChainComplex
1423
\end{verbatim}
1424
1425
1426
Inputs a free $\mathbb ZG$-resolution $R$ for which $"filteredDimension"$ lies in \textsc{NamesOfComponents(R)}, together with a prime $p$. (Such a resolution can be produced using \textsc{TwisterTensorProduct()}, \textsc{ResolutionNormalSubgroups()} or \textsc{FreeGResolution()}.) It returns the filtered chain complex obtained by tensoring with the
1427
trivial module \$\texttt{\symbol{92}}mathbb F\$, the field of $p$ elements. \\
1428
\\
1429
\\
1430
\\
1431
\index{HomToIntegers}::::::::::::::::::::::::\\
1432
1433
\begin{verbatim} HomToIntegers(C):: ChainComplex --> CochainComplex
1434
\end{verbatim}
1435
1436
\begin{verbatim} HomToIntegers(R):: FreeResolution --> CochainComplex
1437
\end{verbatim}
1438
1439
\begin{verbatim} HomToIntegers(F):: EquiChainMap --> CochainMap
1440
\end{verbatim}
1441
1442
1443
1444
1445
Inputs a chain complex $C$ of free abelian groups and returns the cochain complex $Hom_{\mathbb Z}(C,\mathbb Z)$.
1446
1447
Inputs a free $\mathbb ZG$-resolution $R$ in characteristic $0$ and returns the cochain complex $Hom_{\mathbb ZG}(R,\mathbb Z)$.
1448
1449
Inputs an equivariant chain map $F\colon R\rightarrow S$ of resolutions and returns the induced cochain map $Hom_{\mathbb ZG}(S,\mathbb Z) \longrightarrow Hom_{\mathbb ZG}(R,\mathbb Z)$. \\
1450
\\
1451
\\
1452
\\
1453
\index{TensorWithIntegersModP}::::::::::::::::::::::::\\
1454
1455
\begin{verbatim} TensorWithIntegersModP(C,p):: ChainComplex, Int --> ChainComplex
1456
\end{verbatim}
1457
1458
\begin{verbatim} TensorWithIntegersModP(R,p):: FreeResolution, Int --> ChainComplex
1459
\end{verbatim}
1460
1461
\begin{verbatim} TensorWithIntegersModP(F,p):: EquiChainMap, Int --> ChainMap
1462
\end{verbatim}
1463
1464
1465
1466
1467
Inputs a chain complex $C$ of characteristic $0$ and a prime integer $p$. It returns the chain complex $C \otimes_{\mathbb Z} {\mathbb Z}_p$ of characteristic $p$.
1468
1469
Inputs a free $\mathbb ZG$-resolution $R$ of characteristic $0$ and a prime integer $p$. It returns the chain complex $R \otimes_{\mathbb ZG} {\mathbb Z}_p$ of characteristic $p$.
1470
1471
Inputs an equivariant chain map $F\colon R \rightarrow S$ in characteristic $0$ a prime integer $p$. It returns the induced chain map $F\otimes_{\mathbb ZG}\mathbb Z_p \colon R \otimes_{\mathbb ZG} {\mathbb Z}_p
1472
\longrightarrow S \otimes_{\mathbb ZG} {\mathbb Z}_p$. \\
1473
\\
1474
\\
1475
(Co)chain Complexes $\longrightarrow $ Homotopy Invariants \\
1476
\\
1477
\\
1478
\index{Cohomology}::::::::::::::::::::::::\\
1479
1480
\begin{verbatim} Cohomology(C,n):: CochainComplex, Int --> List
1481
\end{verbatim}
1482
1483
\begin{verbatim} Cohomology(F,n):: CochainMap, Int --> GroupHomomorphism
1484
\end{verbatim}
1485
1486
\begin{verbatim} Cohomology(K,n):: CubicalComplex, Int --> List
1487
\end{verbatim}
1488
1489
\begin{verbatim} Cohomology(K,n):: PureCubicalComplex, Int --> List
1490
\end{verbatim}
1491
1492
\begin{verbatim} Cohomology(K,n):: PurePermComplex, Int --> List
1493
\end{verbatim}
1494
1495
\begin{verbatim} Cohomology(K,n):: RegCWComplex, Int --> List
1496
\end{verbatim}
1497
1498
\begin{verbatim} Cohomology(K,n):: SimplicialComplex, Int --> List
1499
\end{verbatim}
1500
1501
1502
1503
1504
Inputs a cochain complex $C$ and integer $n \ge 0$ and returns the $n$-th cohomology group of $C$ as a list of its abelian invariants.
1505
1506
Inputs a chain map $F$ and integer $n \ge 0$. It returns the induced cohomology homomorphism $H_n(F)$ as a homomorphism of finitely presented groups.
1507
1508
Inputs a cubical, or pure cubical, or pure permutahedral or regular CW or
1509
simplicial complex $K$ together with an integer $n \ge 0$. It returns the $n$-th integral cohomology group of $K$ as a list of its abelian invariants. \\
1510
\\
1511
\\
1512
\\
1513
\index{CupProduct}::::::::::::::::::::::::\\
1514
1515
\begin{verbatim} CupProduct(Y):: RegCWComplex --> Function
1516
\end{verbatim}
1517
1518
\begin{verbatim} CupProduct(R,p,q,P,Q):: FreeRes, Int, Int, List, List --> List
1519
\end{verbatim}
1520
1521
1522
1523
1524
Inputs a regular CW-complex $Y$ and returns a function $f(p,q,P,Q)$. This function $f$ inputs two integers $p,q \ge 0$ and two integer lists $P=[p_1, \ldots, p_m]$, $Q=[q_1, \ldots, q_n]$ representing elements $P\in H^p(Y,\mathbb Z)$ and $Q\in H^q(Y,\mathbb Z)$. The function $f$ returns a list $P \cup Q$ representing the cup product $P \cup Q \in H^{p+q}(Y,\mathbb Z)$.
1525
1526
Inputs a free $\mathbb ZG$ resolution $R$ of $\mathbb Z$ for some group $G$, together with integers $p,q \ge 0$ and integer lists $P, Q$ representing cohomology classes $P\in H^p(G,\mathbb Z)$, $Q\in H^q(G,\mathbb Z)$. An integer list representing the cup product $P\cup Q \in H^{p+q}(G,\mathbb Z)$ is returned. \\
1527
\\
1528
\\
1529
\\
1530
\index{Homology}::::::::::::::::::::::::\\
1531
1532
\begin{verbatim} Homology(C,n):: ChainComplex, Int --> List
1533
\end{verbatim}
1534
1535
\begin{verbatim} Homology(F,n):: ChainMap, Int --> GroupHomomorphism
1536
\end{verbatim}
1537
1538
\begin{verbatim} Homology(K,n):: CubicalComplex, Int --> List
1539
\end{verbatim}
1540
1541
\begin{verbatim} Homology(K,n):: PureCubicalComplex, Int --> List
1542
\end{verbatim}
1543
1544
\begin{verbatim} Homology(K,n):: PurePermComplex, Int --> List
1545
\end{verbatim}
1546
1547
\begin{verbatim} Homology(K,n):: RegCWComplex, Int --> List
1548
\end{verbatim}
1549
1550
\begin{verbatim} Homology(K,n):: SimplicialComplex, Int --> List
1551
\end{verbatim}
1552
1553
1554
1555
1556
Inputs a chain complex $C$ and integer $n \ge 0$ and returns the $n$-th homology group of $C$ as a list of its abelian invariants.
1557
1558
Inputs a chain map $F$ and integer $n \ge 0$. It returns the induced homology homomorphism $H_n(F)$ as a homomorphism of finitely presented groups.
1559
1560
Inputs a cubical, or pure cubical, or pure permutahedral or regular CW or
1561
simplicial complex $K$ together with an integer $n \ge 0$. It returns the $n$-th integral homology group of $K$ as a list of its abelian invariants. \\
1562
\\
1563
\\
1564
Visualization \\
1565
\\
1566
\\
1567
\index{BarCodeDisplay}::::::::::::::::::::::::\\
1568
1569
\begin{verbatim} BarCodeDisplay(L) :: List --> void
1570
\end{verbatim}
1571
1572
1573
1574
1575
Displays a barcode \textsc{L=PersitentBettiNumbers(X,n)}. \\
1576
\\
1577
\\
1578
\\
1579
\index{BarCodeCompactDisplay}::::::::::::::::::::::::\\
1580
1581
\begin{verbatim} BarCodeCompactDisplay(L) :: List --> void
1582
\end{verbatim}
1583
1584
1585
1586
1587
Displays a barcode \textsc{L=PersitentBettiNumbers(X,n)} in compact form. \\
1588
\\
1589
\\
1590
\\
1591
\index{CayleyGraphOfGroupDisplay}::::::::::::::::::::::::\\
1592
1593
\begin{verbatim} CayleyGraphOfGroup(G,L):: Group, List --> Void
1594
\end{verbatim}
1595
1596
1597
1598
1599
Inputs a finite group $G$ and a list $L$ of elements in $G$.It displays the Cayley graph of the group generated by $L$ where edge colours correspond to generators. \\
1600
\\
1601
\\
1602
\\
1603
\index{Display}::::::::::::::::::::::::\\
1604
1605
\begin{verbatim} Display(G) :: Graph --> void
1606
\end{verbatim}
1607
1608
\begin{verbatim} Display(M) :: PureCubicalComplex --> void
1609
\end{verbatim}
1610
1611
\begin{verbatim} Display(M) :: PurePermutahedralComplex --> void
1612
\end{verbatim}
1613
1614
1615
1616
1617
Displays a graph $G$; a \$2\$- or \$3\$-dimensional pure cubical complex $M$; a \$3\$-dimensional pure permutahedral complex $M$. \\
1618
\\
1619
\\
1620
\\
1621
\index{DisplayArcPresentation}::::::::::::::::::::::::\\
1622
1623
\begin{verbatim} DisplayArcPresentation(K) :: PureCubicalComplex --> void
1624
\end{verbatim}
1625
1626
1627
1628
1629
Displays a $3$-dimensional pure cubical knot \textsc{K=PureCubicalKnot(L)} in the form of an arc presentation. \\
1630
\\
1631
\\
1632
\\
1633
\index{DisplayCSVknotFile}::::::::::::::::::::::::\\
1634
1635
\begin{verbatim} DisplayCSVKnotFile(str) :: String --> void
1636
\end{verbatim}
1637
1638
1639
1640
1641
Inputs a string $str$ that identifies a csv file containing the points on a piecewise linear knot in $\mathbb R^3$. It displays the knot. \\
1642
\\
1643
\\
1644
\\
1645
\index{DisplayDendrogram}::::::::::::::::::::::::\\
1646
1647
\begin{verbatim} DisplayDendrogram(L):: List --> Void
1648
\end{verbatim}
1649
1650
1651
1652
1653
Displays the dendrogram \textsc{L:=DendrogramMat(A,t,s)}. \\
1654
\\
1655
\\
1656
\\
1657
\index{DisplayDendrogramMat}::::::::::::::::::::::::\\
1658
1659
\begin{verbatim} DisplayDendrogramMat(A,t,s):: Mat, Rat, Int --> Void
1660
\end{verbatim}
1661
1662
1663
1664
1665
Inputs an $n\times n$ symmetric matrix $A$ over the rationals, a rational $t \ge 0$ and an integer $s \ge 1$. The dendrogram defined by \textsc{DendrogramMat(A,t,s)} is displayed. \\
1666
\\
1667
\\
1668
\\
1669
\index{DisplayPDBfile}::::::::::::::::::::::::\\
1670
1671
\begin{verbatim} DisplayPDBfile(str):: String --> Void
1672
\end{verbatim}
1673
1674
1675
1676
1677
Displays the protein backone described in a PDB (Protein Database) file
1678
identified by a string str such as "file.pdb" or "path/file.pdb". \\
1679
\\
1680
\\
1681
\\
1682
\index{OrbitPolytope}::::::::::::::::::::::::\\
1683
1684
\begin{verbatim} OrbitPolytope(G,v,L) :: PermGroup, List, List --> void
1685
\end{verbatim}
1686
1687
1688
1689
1690
Inputs a permutation group or finite matrix group $G$ of degree $d$ and a rational vector $v\in \mathbb R^d$. In both cases there is a natural action of $G$ on $\mathbb R^d$. Let $P(G,v)$ be the convex hull of the orbit of $v$ under the action of $G$. The function also inputs a sublist $L$ of the following list of strings:
1691
["dimension","vertex\texttt{\symbol{92}}{\textunderscore}degree",
1692
"visual\texttt{\symbol{92}}{\textunderscore}graph", "schlegel", "visual"]
1693
1694
Depending on $L$, the function displays the following
1695
information:\texttt{\symbol{92}}\texttt{\symbol{92}} the dimension of the
1696
orbit polytope $P(G,v)$;\texttt{\symbol{92}}\texttt{\symbol{92}} the degree of a vertex in the graph
1697
of $P(G,v)$;\texttt{\symbol{92}}\texttt{\symbol{92}} a visualization of the graph of $P(G,v)$;\texttt{\symbol{92}}\texttt{\symbol{92}} a visualization of the Schlegel
1698
diagram of $P(G,v)$;\texttt{\symbol{92}}\texttt{\symbol{92}} a visualization of the polytope $P(G,v)$ if $d=2,3$.
1699
1700
The function requires Polymake software. \\
1701
\\
1702
\\
1703
\\
1704
\index{ScatterPlot}::::::::::::::::::::::::\\
1705
1706
\begin{verbatim} ScatterPlot(L):: List --> Void
1707
\end{verbatim}
1708
1709
1710
1711
1712
Inputs a list $L=[[x_1,y_1],\ldots, [x_n,y_n]]$ of pairs of rational numbers and displays a scatter plot of the points in the $x$-$y$-plane. \\
1713
\\
1714
\\
1715
}
1716
1717
1718
\chapter{\textcolor{Chapter }{$\mathbb ZG$-Resolutions and Group Cohomology}}\logpage{[ 2, 0, 0 ]}
1719
\hyperdef{L}{X7C391012839DB4C5}{}
1720
{
1721
Resolutions \begin{center}
1722
\begin{tabular}{|l|} \index{EquivariantChainMap}
1723
\begin{verbatim} EquivariantChainMap(R,S,f):: FreeResolution, FreeResolution, GroupHomomorphisms --> EquiChainMap
1724
\end{verbatim}
1725
1726
1727
Inputs a free $\mathbb ZG$-resolution $R$ of $\mathbb Z$, a free $\mathbb ZQ$-resolution $S$ of $\mathbb Z$, and a group homomorphism $f\colon G \rightarrow Q$. It returns the induced $f$-equivariant chain map $F\colon R \rightarrow S$. \\
1728
\index{FreeGResolution}
1729
\begin{verbatim} FreeGResolution(P,n):: NonFreeResolution, Int --> FreeResolution
1730
\end{verbatim}
1731
1732
1733
Inputs a non-free \$\texttt{\symbol{92}}mathbb ZG\$-resolution
1734
\$P{\textunderscore}\texttt{\symbol{92}}ast\$ and a positive integer $n$. It attempts to return $n$ terms of a free $\mathbb ZG$-resolution of $\mathbb Z$. However, the stabilizer groups in the non-free resolution must be such that
1735
HAP can construct free resolutions with contracting homotopies for them.
1736
1737
The contracting homotopy on the resolution was implemented by Bui Anh Tuan. \\
1738
\index{ResolutionBieberbachGroup}
1739
\begin{verbatim} ResolutionBieberbachGroup(G):: MatrixGroup --> FreeResolution
1740
\end{verbatim}
1741
1742
\begin{verbatim} ResolutionBieberbachGroup(G,v):: MatrixGroup, List --> FreeResolution
1743
\end{verbatim}
1744
1745
1746
1747
1748
Inputs a torsion free crystallographic group $G$, also known as a Bieberbach group, represented using \textsc{AffineCrystGroupOnRight} as in the GAP package Cryst. It also optionally inputs a choice of vector $v$ in the Euclidean space $\mathbb R^n$ on which $G$ acts freely. The function returns $n+1$ terms of the free ZG-resolution of $\mathbb Z$ arising as the cellular chain complex of the tessellation of $\mathbb R^n$ by the Dirichlet-Voronoi fundamental domain determined by $v$. No contracting homotopy is returned with the resolution.
1749
1750
This function is part of the HAPcryst package written by Marc Roeder and thus
1751
requires the HAPcryst package to be loaded.
1752
1753
The function requires the use of Polymake software. \\
1754
\index{ResolutionCubicalCrystGroup}
1755
\begin{verbatim} ResolutionCubicalCrustGroup(G,k):: MatrixGroup, Int --> FreeResolution
1756
\end{verbatim}
1757
1758
1759
Inputs a crystallographic group $G$ represented using \textsc{AffineCrystGroupOnRight} as in the GAP package $Cryst$ together with an integer $k \ge 1$. The function tries to find a cubical fundamental domain in the Euclidean
1760
space $\mathbb R^n$ on which $G$ acts. If it succeeds it uses this domain to return $k+1$ terms of a free ZG-resolution of $\mathbb Z$.
1761
1762
This function was written by Bui Anh Tuan. \\
1763
\index{ResolutionFiniteGroup}
1764
\begin{verbatim} ResolutionFiniteGroup(G,k):: Group, Int --> FreeResolution
1765
\end{verbatim}
1766
1767
1768
1769
1770
Inputs a finite group $G$ and an integer $k \ge 1$. It returns $k+1$ terms of a free ZG-resolution of $\mathbb Z$. \\
1771
\index{ResolutionNilpotentGroup}
1772
\begin{verbatim} ResolutionNilpotentGroup(G,k):: Group, Int --> FreeResolution
1773
\end{verbatim}
1774
1775
1776
1777
1778
Inputs a nilpotent group $G$ (which can be infinite) and an integer $k \ge 1$. It returns $k+1$ terms of a free $\mathbb ZG$-resolution of $\mathbb Z$. \\
1779
\index{ResolutionNormalSeries}
1780
\begin{verbatim} ResolutionNormalSeries(L,k):: List, Int --> FreeResolution
1781
\end{verbatim}
1782
1783
1784
1785
1786
Inputs a a list $L$ consisting of a chain \$$1=N_1 \le N_2 \le \cdots \le N_n =G$ of normal subgroups of $G$, together with an integer $k \ge 1$. It returns $k+1$ terms of a free ZG-resolution of $\mathbb Z$. \\
1787
\index{ResolutionPrimePowerGroup}
1788
\begin{verbatim} ResolutionPrimePowerGroup(G,k):: Group, Int --> FreeResolution
1789
\end{verbatim}
1790
1791
1792
1793
1794
Inputs a finite $p$-group $G$ and an integer $k \ge 1$. It returns $k+1$ terms of a minimal free $\mathbb FG$-resolution of the field $\mathbb F$ of $p$ elements. \\
1795
\index{ResolutionSL2Z}
1796
\begin{verbatim} ResolutionSL2Z(m,k):: Int, Int --> FreeResolution
1797
\end{verbatim}
1798
Inputs positive integers $m, n$ and returns $n$ terms of a free $\mathbb ZG$-resolution of $\mathbb Z$ for the group $G=SL_2(\mathbb Z[1/m])$.
1799
1800
This function is joint work with Bui Anh Tuan. \\
1801
\index{ResolutionSmallGroup}
1802
\begin{verbatim} ResolutionSmallGroup(G,k):: Group, Int --> FreeResolution
1803
\end{verbatim}
1804
1805
\begin{verbatim} ResolutionSmallGroup(G,k):: FpGroup, Int --> FreeResolution
1806
\end{verbatim}
1807
1808
1809
Inputs a small group $G$ and an integer $k \ge 1$. It returns $k+1$ terms of a free ZG-resolution of $\mathbb Z$.
1810
1811
If $G$ is a finitely presented group then up to degree \$2\$ the resolution coincides
1812
with cellular chain complex of the universal cover of the $2$ complex associated to the presentation of $G$. Thus the boundaries of the generators in degree $3$ provide a generating set for the module of identities of the presentation.
1813
1814
This function was written by Irina Kholodna. \\
1815
\index{ResolutionSubgroup}
1816
\begin{verbatim} ResolutionSubgroup(R,H):: FreeResolution, Group --> FreeResolution
1817
\end{verbatim}
1818
1819
1820
1821
1822
Inputs a free ZG-resolution of $\mathbb Z$ and a finite index subgroup $H \le G$. It returns a free ZH-resolution of $\mathbb Z$. \\
1823
\end{tabular}\\[2mm]
1824
\end{center}
1825
1826
Algebras $\longrightarrow $ (Co)chain Complexes \begin{center}
1827
\begin{tabular}{|l|} \index{LeibnizComplex}
1828
\begin{verbatim} LeibnizComplex(g,n):: LeibnizAlgebra, Int --> ChainComplex
1829
\end{verbatim}
1830
1831
1832
Inputs a Leibniz algebra, or Lie algebra, $\mathfrak{g}$ over a ring $\mathbb K$ together with an integer $n\ge 0$. It returns the first $n$ terms of the Leibniz chain complex over $\mathbb K$. The complex was implemented by Pablo Fernandez Ascariz. \\
1833
\end{tabular}\\[2mm]
1834
\end{center}
1835
1836
Resolutions $\longrightarrow $ (Co)chain Complexes \begin{center}
1837
\begin{tabular}{|l|} \index{HomToIntegers}
1838
\begin{verbatim} HomToIntegers(C):: ChainComplex --> CochainComplex
1839
\end{verbatim}
1840
1841
\begin{verbatim} HomToIntegers(R):: FreeResolution --> CochainComplex
1842
\end{verbatim}
1843
1844
\begin{verbatim} HomToIntegers(F):: EquiChainMap --> CochainMap
1845
\end{verbatim}
1846
1847
1848
1849
1850
Inputs a chain complex $C$ of free abelian groups and returns the cochain complex $Hom_{\mathbb Z}(C,\mathbb Z)$.
1851
1852
Inputs a free $\mathbb ZG$-resolution $R$ in characteristic $0$ and returns the cochain complex $Hom_{\mathbb ZG}(R,\mathbb Z)$.
1853
1854
Inputs an equivariant chain map $F\colon R\rightarrow S$ of resolutions and returns the induced cochain map $Hom_{\mathbb ZG}(S,\mathbb Z) \longrightarrow Hom_{\mathbb ZG}(R,\mathbb Z)$. \\
1855
\index{HomToIntegralModule}
1856
\begin{verbatim} HomToIntegralModule(R,A):: FreeResolution, GroupHomomorphism --> CochainComplex
1857
\end{verbatim}
1858
1859
1860
1861
1862
Inputs a free $\mathbb ZG$-resolution $R$ in characteristic $0$ and a group homomorphism $A\colon G \rightarrow {\rm GL}_n(\mathbb Z)$. The homomorphism $A$ can be viewed as the $\mathbb ZG$-module with underlying abelian group $\mathbb Z^n$ on which $G$ acts via the homomorphism $A$. It returns the cochain complex $Hom_{\mathbb ZG}(R,A)$. \\
1863
\index{TensorWithIntegers}
1864
\begin{verbatim} TensorWithIntegers(R):: FreeResolution --> ChainComplex
1865
\end{verbatim}
1866
1867
\begin{verbatim} TensorWithIntegers(F):: EquiChainMap --> ChainMap
1868
\end{verbatim}
1869
1870
1871
1872
1873
Inputs a free $\mathbb ZG$-resolution $R$ of characteristic $0$ and returns the chain complex $R \otimes_{\mathbb ZG} {\mathbb Z}$.
1874
1875
Inputs an equivariant chain map $F\colon R \rightarrow S$ in characteristic $0$ and returns the induced chain map $F\otimes_{\mathbb ZG}\mathbb Z \colon R \otimes_{\mathbb ZG} {\mathbb Z}
1876
\longrightarrow S \otimes_{\mathbb ZG} {\mathbb Z}$. \\
1877
\index{TensorWithIntegersModP}
1878
\begin{verbatim} TensorWithIntegersModP(C,p):: ChainComplex, Int --> ChainComplex
1879
\end{verbatim}
1880
1881
\begin{verbatim} TensorWithIntegersModP(R,p):: FreeResolution, Int --> ChainComplex
1882
\end{verbatim}
1883
1884
\begin{verbatim} TensorWithIntegersModP(F,p):: EquiChainMap, Int --> ChainMap
1885
\end{verbatim}
1886
1887
1888
1889
1890
Inputs a chain complex $C$ of characteristic $0$ and a prime integer $p$. It returns the chain complex $C \otimes_{\mathbb Z} {\mathbb Z}_p$ of characteristic $p$.
1891
1892
Inputs a free $\mathbb ZG$-resolution $R$ of characteristic $0$ and a prime integer $p$. It returns the chain complex $R \otimes_{\mathbb ZG} {\mathbb Z}_p$ of characteristic $p$.
1893
1894
Inputs an equivariant chain map $F\colon R \rightarrow S$ in characteristic $0$ a prime integer $p$. It returns the induced chain map $F\otimes_{\mathbb ZG}\mathbb Z_p \colon R \otimes_{\mathbb ZG} {\mathbb Z}_p
1895
\longrightarrow S \otimes_{\mathbb ZG} {\mathbb Z}_p$. \\
1896
\end{tabular}\\[2mm]
1897
\end{center}
1898
1899
Cohomology rings \begin{center}
1900
\begin{tabular}{|l|} \index{AreIsomorphicGradedAlgebras}
1901
\begin{verbatim} AreIsomorphicGradedAlgebras(A,B):: PresentedGradedAlgebra, PresentedGradedAlgebra --> Boolean
1902
\end{verbatim}
1903
1904
1905
Inputs two freely presented graded algebras $A=\mathbb F[x_1, \ldots, x_m]/I$ and $B=\mathbb F[y_1, \ldots, y_n]/J$ and returns \textsc{true} if they are isomorphic, and \textsc{false} otherwise. This function was implemented by Paul Smith. \\
1906
\index{HAPDerivation}
1907
\begin{verbatim} HAPDerivation(R,I,L):: PolynomialRing, List, List --> Derivation
1908
\end{verbatim}
1909
1910
1911
Inputs a polynomial ring $R=\mathbb F[x_1,\ldots,x_m]$ over a field $\mathbb F$ together with a list $I$ of generators for an ideal in $R$ and a list $L=[y_1,\ldots,y_m]\subset R$. It returns the derivation $d\colon E \rightarrow E$ for $E=R/I$ defined by $d(x_i)=y_i$. This function was written by Paul Smith. It uses the Singular commutative
1912
algebra package. \\
1913
\index{HilbertPoincareSeries}
1914
\begin{verbatim} HilbertPoincareSeries::PresentedGradedAlgebra --> RationalFunction
1915
\end{verbatim}
1916
Inputs a presentation $E=\mathbb F[x_1,\ldots,x_m]/I$ of a graded algebra and returns its Hilbert-Poincar\texttt{\symbol{92}}'e
1917
series. This function was written by Paul Smith and uses the Singular
1918
commutative algebra package. It is essentially a wrapper for Singular's
1919
Hilbert-Poincare series. \\
1920
\index{HomologyOfDerivation}
1921
\begin{verbatim} HomologyOfDerivation(d):: Derivation --> List
1922
\end{verbatim}
1923
1924
1925
Inputs a derivation $d\colon E \rightarrow E$ on a quotient $E=R/I$ of a polynomial ring $R=\mathbb F[x_1,\ldots,x_m]$ over a field $\mathbb F$. It returns a list $[S,J,h]$ where $S$ is a polynomial ring and $J$ is a list of generators for an ideal in \$S\$ such that there is an
1926
isomorphism $\alpha\colon S/J \rightarrow \ker d/{\rm im~} d$. This isomorphism lifts to the ring homomorphism $h\colon S \rightarrow \ker d$. This function was written by Paul Smith. It uses the Singular commutative
1927
algebra package. \\
1928
\index{IntegralCohomologyGenerators}
1929
\begin{verbatim} IntegralCohomologyGenerators(R,n):: FreeResolution, Int --> List
1930
\end{verbatim}
1931
1932
1933
Inputs at least $n+1$ terms of a free $\mathbb ZG$-resolution of $\mathbb Z$ and the integer $ n \ge 1$. It returns a minimal list of cohomology classes in $H^n(G,\mathbb Z)$ which, together with all cup products of lower degree classes, generate the
1934
group $H^n(G,\mathbb Z)$ . (Let $a_i$ be the $i$-th canonical generator of the $d$-generator abelian group $H^n(G,Z)$. The cohomology class $n_1a_1 + ... +n_da_d$ is represented by the integer vector $u=(n_1, ..., n_d)$. ) \\
1935
\index{LHSSpectralSequence}
1936
\begin{verbatim} LHSSpectralSequence(G,N,r):: Group, Int, Int --> List
1937
\end{verbatim}
1938
1939
1940
Inputs a finite $2$-group $G$, and normal subgroup $N$ and an integer $r$. It returns a list of length $r$ whose $i$-th term is a presentation for the $i$-th page of the Lyndon-Hochschild-Serre spectral sequence. This function was
1941
written by Paul Smith. It uses the Singular commutative algebra package. \\
1942
\index{LHSSpectralSequenceLastSheet}
1943
\begin{verbatim} LHSSpectralSequenceLastSheet(G,N):: Group, Int --> List
1944
\end{verbatim}
1945
1946
1947
Inputs a finite $2$-group $G$ and normal subgroup $N$. It returns presentation for the $E_\infty$ page of the Lyndon-Hochschild-Serre spectral sequence. This function was
1948
written by Paul Smith. It uses the Singular commutative algebra package. \\
1949
\index{ModPCohomologyGenerators}
1950
\begin{verbatim} ModPCohomologyGenerators(G,n):: Group, Int --> List
1951
\end{verbatim}
1952
1953
\begin{verbatim} ModPCohomologyGenerators(R):: FreeResolution --> List
1954
\end{verbatim}
1955
1956
1957
Inputs either a $p$-group $G$ and positive integer $n$, or else $n+1$ terms of a minimal $\mathbb FG$-resolution $R$ of the field $\mathbb F$ of $p$ elements. It returns a pair whose first entry is a minimal list of homogeneous
1958
generators for the cohomology ring $A=H^\ast(G,\mathbb F)$ modulo all elements in degree greater than $n$. The second entry of the pair is a function \textsc{deg} which, when applied to a minimal generator, yields its degree. WARNING: the
1959
following rule must be applied when multiplying generators $x_i$ together. Only products of the form $x_1*(x_2*(x_3*(x_4*...)))$ with $deg(x_i) \le deg(x_{i+1})$ should be computed (since the $x_i$ belong to a structure constant algebra with only a partially defined structure
1960
constants table). \\
1961
\index{ModPCohomologyRing}
1962
\begin{verbatim} ModPCohomologyRing(R):: FreeResolution --> SCAlgebra
1963
\end{verbatim}
1964
1965
\begin{verbatim} ModPCohomologyRing(R,level):: FreeResolution, String --> SCAlgebra
1966
\end{verbatim}
1967
1968
\begin{verbatim} ModPCohomologyRing(G,n):: Group, Int --> SCAlgebra
1969
\end{verbatim}
1970
1971
\begin{verbatim} ModPCohomologyRing(G,n,level):: Group, Int, String --> SCAlgebra
1972
\end{verbatim}
1973
1974
1975
Inputs either a $p$-group $G$ and positive integer $n$, or else $n$ terms of a minimal $\mathbb FG$-resolution $R$ of the field $\mathbb F$ of $p$ elements. It returns the cohomology ring $A=H^\ast(G,\mathbb F)$ modulo all elements in degree greater than $n$. The ring is returned as a structure constant algebra $A$. The ring $A$ is graded. It has a component \textsc{A!.degree(x)} which is a function returning the degree of each (homogeneous) element $x$ in \textsc{GeneratorsOfAlgebra(A)}. An optional input variable $"level"$ can be set to one of the strings $"medium"$ or $"high"$. These settings determine parameters in the algorithm. The default setting is $"medium"$. When $"level"$ is set to $"high"$ the ring $A$ is returned with a component \textsc{A!.niceBasis}. This component is a pair $[Coeff,Bas]$. Here $Bas$ is a list of integer lists; a "nice" basis for the vector space $A$ can be constructed using the command \textsc{List(Bas,x-{\textgreater}Product(List(x,i-{\textgreater}Basis(A)[i]))}. The coefficients of the canonical basis element \textsc{Basis(A)[i]} are stored as \textsc{Coeff[i]}. If the ring $A$ is computed using the setting $"level"="medium"$ then the component \textsc{A!.niceBasis} can be added to $A$ using the command \textsc{A:=ModPCohomologyRing\texttt{\symbol{92}}{\textunderscore}part\texttt{\symbol{92}}{\textunderscore}2(A)}. \\
1976
\index{Mod2CohomologyRingPresentation}
1977
\begin{verbatim} Mod2CohomologyRingPresentation(G):: Group --> PresentedGradedAlgebra
1978
\end{verbatim}
1979
1980
\begin{verbatim} Mod2CohomologyRingPresentation(G,n):: Group --> PresentedGradedAlgebra
1981
\end{verbatim}
1982
1983
\begin{verbatim} Mod2CohomologyRingPresentation(A):: Group --> PresentedGradedAlgebra
1984
\end{verbatim}
1985
1986
\begin{verbatim} Mod2CohomologyRingPresentation(R):: Group --> PresentedGradedAlgebra
1987
\end{verbatim}
1988
1989
1990
When applied to a finite $2$-group $G$ this function returns a presentation for the mod-$2$ cohomology ring $H^\ast(G,\mathbb F)$. The Lyndon-Hochschild-Serre spectral sequence is used to prove that the
1991
presentation is complete. When the function is applied to a $2$-group G and positive integer $n$ the function first constructs $n+1$ terms of a free $\mathbb FG$-resolution $R$, then constructs the finite-dimensional graded algebra $A=H^{(\ast \le n)}(G,\mathbb F)$, and finally uses $A$ to approximate a presentation for $H^*(G,\mathbb F)$. For "sufficiently large" $n$ the approximation will be a correct presentation for $H^\ast(G,\mathbb F)$. Alternatively, the function can be applied directly to either the resolution $R$ or graded algebra $A$. This function was written by Paul Smith. It uses the Singular commutative
1992
algebra package to handle the Lyndon-Hochschild-Serre spectral sequence. \\
1993
\end{tabular}\\[2mm]
1994
\end{center}
1995
1996
Group Invariants \begin{center}
1997
\begin{tabular}{|l|} \index{GroupCohomology}
1998
\begin{verbatim} GroupCohomology(G,k):: Group, Int --> List
1999
\end{verbatim}
2000
2001
\begin{verbatim} GroupCohomology(G,k,p):: Group, Int, Int --> List
2002
\end{verbatim}
2003
2004
2005
2006
2007
Inputs a group $G$ and integer $k \ge 0$. The group $G$ should either be finite or else lie in one of a range of classes of infinite
2008
groups (such as nilpotent, crystallographic, Artin etc.). The function returns
2009
the list of abelian invariants of $H^k(G,\mathbb Z)$.
2010
2011
If a prime $p$ is given as an optional third input variable then the function returns the
2012
list of abelian invariants of $H^k(G,\mathbb Z_p)$. In this case each abelian invariant will be equal to $p$ and the length of the list will be the dimension of the vector space $H^k(G,\mathbb Z_p)$. \\
2013
\index{GroupHomology}
2014
\begin{verbatim} GroupHomology(G,k):: Group, Int --> List
2015
\end{verbatim}
2016
2017
\begin{verbatim} GroupHomology(G,k,p):: Group, Int, Int --> List
2018
\end{verbatim}
2019
2020
2021
2022
2023
Inputs a group $G$ and integer $k \ge 0$. The group $G$ should either be finite or else lie in one of a range of classes of infinite
2024
groups (such as nilpotent, crystallographic, Artin etc.). The function returns
2025
the list of abelian invariants of $H_k(G,\mathbb Z)$.
2026
2027
If a prime $p$ is given as an optional third input variable then the function returns the
2028
list of abelian invariants of $H_k(G,\mathbb Z_p)$. In this case each abelian invariant will be equal to $p$ and the length of the list will be the dimension of the vector space $H_k(G,\mathbb Z_p)$. \\
2029
\index{PrimePartDerivedFunctor}
2030
\begin{verbatim} PrimePartDerivedFunctor(G,R,A,k):: Group, FreeResolution, Function, Int --> List
2031
\end{verbatim}
2032
2033
2034
2035
2036
Inputs a group $G$, an integer $k \ge 0$, at least $k+1$ terms of a free $\mathbb ZP$-resolution of $\mathbb Z$ for $P$ a Sylow $p$-subgroup of $G$. A function such as \textsc{A=TensorWithIntegers} is also entered. The abelian invariants of the $p$-primary part $H_k(G,A)_{(p)}$ of the homology with coefficients in $A$ is returned. \\
2037
\index{PoincareSeries}
2038
\begin{verbatim} PoincareSeries(G,n):: Group, Int --> RationalFunction
2039
\end{verbatim}
2040
2041
\begin{verbatim} PoincareSeries(G):: Group --> RationalFunction
2042
\end{verbatim}
2043
2044
\begin{verbatim} PoincareSeries(R,n):: Group, Int --> RationalFunction
2045
\end{verbatim}
2046
2047
\begin{verbatim} PoincareSeries(L,n):: Group, Int --> RationalFunction
2048
\end{verbatim}
2049
2050
2051
2052
2053
Inputs a finite $p$-group $G$ and a positive integer $n$. It returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose expansion has coefficient of $x^k$ equal to the rank of the vector space $H_k(G,\mathbb F_p)$ for all $k$ in the range $1 \le k \le n$. (The second input variable can be omitted, in which case the function tries
2054
to choose a `reasonable' value for $n$. For 2-groups the function \textsc{PoincareSeriesLHS(G)} can be used to produce an $f(x)$ that is correct in all degrees.) In place of the group $G$ the function can also input (at least $n$ terms of) a minimal mod-$p$ resolution $R$ for $G$. Alternatively, the first input variable can be a list $L$ of integers. In this case the coefficient of $x^k$ in $f(x)$ is equal to the $(k+1)$st term in the list. \\
2055
\index{PoincareSeries}
2056
\begin{verbatim} PoincareSeries(G,n):: Group, Int --> RationalFunction
2057
\end{verbatim}
2058
2059
\begin{verbatim} PoincareSeries(G):: Group --> RationalFunction
2060
\end{verbatim}
2061
2062
\begin{verbatim} PoincareSeries(R,n):: Group, Int --> RationalFunction
2063
\end{verbatim}
2064
2065
\begin{verbatim} PoincareSeries(L,n):: Group, Int --> RationalFunction
2066
\end{verbatim}
2067
2068
2069
2070
2071
Inputs a finite $p$-group $G$ and a positive integer $n$. It returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose expansion has coefficient of $x^k$ equal to the rank of the vector space $H_k(G,\mathbb F_p)$ for all $k$ in the range $1 \le k \le n$. (The second input variable can be omitted, in which case the function tries
2072
to choose a `reasonable' value for $n$. For 2-groups the function \textsc{PoincareSeriesLHS(G)} can be used to produce an $f(x)$ that is correct in all degrees.) In place of the group $G$ the function can also input (at least $n$ terms of) a minimal mod-$p$ resolution $R$ for $G$. Alternatively, the first input variable can be a list $L$ of integers. In this case the coefficient of $x^k$ in $f(x)$ is equal to the $(k+1)$st term in the list. \\
2073
\index{RankHomologyPGroup}
2074
\begin{verbatim} RankHomologyPGroup(G,P,n):: Group, RationalFunction, Int --> Int
2075
\end{verbatim}
2076
2077
2078
Inputs a $p$-group $G$, a rational function $P$ representing the Poincar\texttt{\symbol{92}}'e series of the mod-$p$ cohomology of $G$ and a positive integer $n$. It returns the minimum number of generators for the finite abelian $p$-group $H_n{G,\mathbb Z)$. \\
2079
\end{tabular}\\[2mm]
2080
\end{center}
2081
2082
$\mathbb F_p$-modules \begin{center}
2083
\begin{tabular}{|l|} \index{GroupAlgebraAsFpGModule}
2084
\begin{verbatim} GroupAlgebraAsFpGModule:: Group --> FpGModule
2085
\end{verbatim}
2086
2087
2088
2089
2090
Inputs a finite $p$-group $G$ and returns the modular group algebra $\mathbb F_pG$ in the form of an $\mathbb F_pG$-module. \\
2091
\index{Radical}
2092
\begin{verbatim} Radical:: FpGModule --> FpGModule
2093
\end{verbatim}
2094
2095
2096
2097
2098
Inputs an $\mathbb F_pG$-module and returns its radical. \\
2099
\index{RadicalSeries}
2100
\begin{verbatim} RadicalSeries(M):: FpGModule --> List
2101
\end{verbatim}
2102
2103
\begin{verbatim} RadicalSeries(R):: Resolution --> FilteredSparseChainComplex
2104
\end{verbatim}
2105
2106
2107
2108
2109
Inputs an $\mathbb F_pG$-module $M$ and returns its radical series as a list of $\mathbb F_pG$-modules.
2110
2111
Inputs a free $\mathbb F_pG$-resolution R and returns the filtered chain complex $\cdots Rad_2(\mathbb F_pG)R \le Rad_1(\mathbb F_pG)R \le R$. \\
2112
\end{tabular}\\[2mm]
2113
\end{center}
2114
2115
}
2116
2117
2118
\chapter{\textcolor{Chapter }{Homological Group Theory}}\logpage{[ 3, 0, 0 ]}
2119
\hyperdef{L}{X7D59694E84F10ABE}{}
2120
{
2121
Cocycles \begin{center}
2122
\begin{tabular}{|l|} \index{CcGroup}
2123
\begin{verbatim} CcGroup(N,f):: GOuterGroup, StandardCocycle --> CcGroup
2124
\end{verbatim}
2125
2126
2127
Inputs a $G$-outer group $N$ with nonabelian cocycle describing some extension $N \rightarrowtail E \twoheadrightarrow G$ together with standard 2-cocycle $f\colon G \times G \rightarrow A$ where $A=Z(N)$. It returns the extension group determined by the cocycle $f$. The group is returned as a cocyclic group.
2128
2129
This function is part of the HAPcocyclic package of functions implemented by
2130
Robert F. Morse. \\
2131
\index{CocycleCondition}
2132
\begin{verbatim} CocycleCondition(R,n):: FreeRes, Int --> IntMat
2133
\end{verbatim}
2134
2135
2136
Inputs a free $\mathbb ZG$-resolution $R$ of $\mathbb Z$ and an integer $n \ge 1$. It returns an integer matrix $M$ with the following property. Let $d$ be the $\mathbb ZG$-rank of $R_n$. An integer vector $f=[f_1, ... , f_d]$ then represents a $\mathbb ZG$-homomorphism $R_n \rightarrow \mathbb Z_q$ which sends the $i$th generator of $R_n$ to the integer $f_i$ in the trivial $\mathbb ZG$-module $\mathbb Z_q=\mathbb Z/q{\mathbb Z}$ (where possibly $q=0$). The homomorphism $f$ is a cocycle if and only if $M^tf=0$ mod $q$. \\
2137
\index{StandardCocycle}
2138
\begin{verbatim} StandardCocycle(R,f,n):: FreeRes, List, Int --> Function
2139
\end{verbatim}
2140
2141
\begin{verbatim} StandardCocycle(R,f,n,q):: FreeRes, List, Int --> Function
2142
\end{verbatim}
2143
2144
2145
Inputs a free $\mathbb ZG$-resolution $R$ (with contracting homotopy), a positive integer $n$ and an integer vector $f$ representing an $n$-cocycle $R_n \rightarrow \mathbb Z_q=\mathbb Z/q\mathbb Z$ where $G$ acts trivially on $\mathbb Z_q$. It is assumed $q=0$ unless a value for $q$ is entered. The command returns a function $F(g_1, ..., g_n)$ which is the standard cocycle $G^n \rightarrow \mathbb Z_q$ corresponding to $f$. At present the command is implemented only for $n=2$ or $3$. \\
2146
\end{tabular}\\[2mm]
2147
\end{center}
2148
2149
G-Outer Groups \begin{center}
2150
\begin{tabular}{|l|} \index{ActedGRoup}
2151
\begin{verbatim} ActedGroup(M):: GOuterGroup --> Group
2152
\end{verbatim}
2153
2154
2155
2156
2157
Inputs a $G$-outer group $M$ corresponding to a homomorphism $\alpha\colon G\rightarrow {\rm Out}(N)$ and returns the group \$N\$. \\
2158
\index{ActingGRoup}
2159
\begin{verbatim} ActingGroup(M):: GOuterGroup --> Group
2160
\end{verbatim}
2161
2162
2163
2164
2165
Inputs a $G$-outer group $M$ corresponding to a homomorphism $\alpha\colon G\rightarrow {\rm Out}(N)$ and returns the group \$G\$. \\
2166
\index{Centre}
2167
\begin{verbatim} Centre(M):: GOuterGroup --> GOuterGroup
2168
\end{verbatim}
2169
2170
2171
2172
2173
Inputs a $G$-outer group $M$ and returns its group-theoretic centre as a $G$-outer group. \\
2174
\index{GOuterGroup}
2175
\begin{verbatim} GOuterGroup(E,N):: Group, Subgroup --> GOuterGroup
2176
\end{verbatim}
2177
2178
\begin{verbatim} GOuterGroup():: Group, Subgroup --> GOuterGroup
2179
\end{verbatim}
2180
2181
2182
2183
2184
Inputs a group $E$ and normal subgroup $N$. It returns $N$ as a $G$-outer group where $G=E/N$. A nonabelian cocycle $f\colon G\times G\rightarrow N$ is attached as a component of the $G$-Outer group.
2185
2186
The function can be used without an argument. In this case an empty outer
2187
group $C$ is returned. The components must be set using \textsc{SetActingGroup(C,G)}, \textsc{SetActedGroup(C,N)} and \textsc{SetOuterAction(C,alpha)}. \\
2188
\end{tabular}\\[2mm]
2189
\end{center}
2190
2191
$G$-cocomplexes \begin{center}
2192
\begin{tabular}{|l|} \index{CohomologyModule}
2193
\begin{verbatim} CohomologyModule(C,n):: GCocomplex, Int --> GOuterGroup
2194
\end{verbatim}
2195
2196
2197
2198
2199
Inputs a $G$-cocomplex $C$ together with a non-negative integer $n$. It returns the cohomology $H^n(C)$ as a $G$-outer group. If $C$ was constructed from a $\mathbb ZG$-resolution $R$ by homing to an abelian $G$-outer group $A$ then, for each $x$ in $H:=CohomologyModule(C,n)$, there is a function $f:=H!.representativeCocycle(x)$ which is a standard $n$-cocycle corresponding to the cohomology class $x$. (At present this is implemented only for $n=1,2,3$.) \\
2200
\index{HomToGModule}
2201
\begin{verbatim} HomToGModule(R,A):: FreeRes, GOuterGroup --> GCocomplex
2202
\end{verbatim}
2203
2204
2205
2206
2207
Inputs a $\mathbb ZG$-resolution $R$ and an abelian $G$-outer group $A$. It returns the $G$-cocomplex obtained by applying $HomZG( \_ , A)$. (At present this function does not handle equivariant chain maps.) \\
2208
\end{tabular}\\[2mm]
2209
\end{center}
2210
2211
}
2212
2213
2214
\chapter{\textcolor{Chapter }{Parallel Computation}}\logpage{[ 4, 0, 0 ]}
2215
\hyperdef{L}{X7F571E8F7BBC7514}{}
2216
{
2217
Six Core Functions \begin{center}
2218
\begin{tabular}{|l|} \index{ChildCreate}
2219
\begin{verbatim} ChildCreate():: Void --> Child process
2220
\end{verbatim}
2221
2222
\begin{verbatim} ChildProcess("computer.address.ie"):: String --> Child process
2223
\end{verbatim}
2224
2225
\begin{verbatim} ChildProcess(["-m", "100000M", "-T"]):: List --> Child process
2226
\end{verbatim}
2227
2228
\begin{verbatim} ChildProcess("computer.ac.wales", ["-m", "100000M", "-T"]):: String, List --> Child process
2229
\end{verbatim}
2230
2231
2232
Starts a GAP session as a child process and returns a stream to the child
2233
process. If no argument is given then the child process is created on the
2234
local machine; otherwise the argument should be: (1) the address of a remote
2235
computer for which ssh has been configured to require no password from the
2236
user; (2) or a list of GAP command line options; (3) or the address of a
2237
computer followed by a list of command line options. \\
2238
\index{ChildKill}
2239
\begin{verbatim} ChildCreate():: Void --> Child process
2240
\end{verbatim}
2241
2242
\begin{verbatim} ChildProcess("computer.address.ie"):: String --> Child process
2243
\end{verbatim}
2244
2245
\begin{verbatim} ChildProcess(["-m", "100000M", "-T"]):: List --> Child process
2246
\end{verbatim}
2247
2248
\begin{verbatim} ChildProcess("computer.ac.wales", ["-m", "100000M", "-T"]):: String, List --> Child process
2249
\end{verbatim}
2250
2251
2252
Starts a GAP session as a child process and returns a stream to the child
2253
process. If no argument is given then the child process is created on the
2254
local machine; otherwise the argument should be: (1) the address of a remote
2255
computer for which ssh has been configured to require no password from the
2256
user; (2) or a list of GAP command line options; (3) or the address of a
2257
computer followed by a list of command line options. \\
2258
\end{tabular}\\[2mm]
2259
\end{center}
2260
2261
}
2262
2263
2264
\chapter{\textcolor{Chapter }{Resolutions of the ground ring}}\logpage{[ 5, 0, 0 ]}
2265
\hyperdef{L}{X8735FC5E7BB5CE3A}{}
2266
{
2267
\\
2268
\\
2269
\\
2270
\index{TietzeReducedResolution}::::::::::::::::::::::::\\
2271
\texttt{TietzeReducedResolution(R)}\\
2272
2273
2274
Inputs a $\mathbb ZG$-resolution $R$ and returns a $\mathbb ZG$-resolution $S$ which is obtained from $R$ by applying "Tietze like operations" in each dimension. The hope is that $S$ has fewer free generators than $R$. \\
2275
\\
2276
\\
2277
\\
2278
\index{ResolutionArithmeticGroup}::::::::::::::::::::::::\\
2279
\texttt{ResolutionArithmeticGroup("PSL(4,Z)",n)}\\
2280
2281
2282
Inputs a positive integer $n$ and one of the following strings: \\
2283
\\
2284
"SL(2,Z)" , "SL(3,Z)" , "PGL(3,Z[i])" ,
2285
"PGL(3,Eisenstein{\textunderscore}Integers)" , "PSL(4,Z)" ,
2286
"PSL(4,Z){\textunderscore}b" , "PSL(4,Z){\textunderscore}c" ,
2287
"PSL(4,Z){\textunderscore}d" , "Sp(4,Z)" \\
2288
\\
2289
or the string \\
2290
\\
2291
"GL(2,O(-d))" \\
2292
\\
2293
for d=1, 2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 43 \\
2294
\\
2295
or the string \\
2296
\\
2297
"SL(2,O(-d))" \\
2298
\\
2299
for d=2, 3, 5, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 43, 67, 163 \\
2300
\\
2301
or the string \\
2302
\\
2303
"SL(2,O(-d)){\textunderscore}a" \\
2304
\\
2305
for d=2, 7, 11, 19. \\
2306
\\
2307
It returns $n$ terms of a free ZG-resolution for the group $G$ described by the string. Here O(-d) denotes the ring of integers of
2308
Q(sqrt(-d)) and subscripts {\textunderscore}a, {\textunderscore}b ,
2309
{\textunderscore}c , {\textunderscore}d denote alternative non-free
2310
ZG-resolutions for a given group G.\\
2311
\\
2312
Data for the first list of resolutions was provided provided by \textsc{Mathieu Dutour}. Data for GL(2,O(-d)) was provided by \textsc{Sebastian Schoenennbeck}. Data for SL(2,O(-d)) was provided by\textsc{Sebastian Schoennenbeck} for d {\textless}= 26 and by \textsc{Alexander Rahm} for d{\textgreater}26 and for the alternative complexes.\\
2313
\\
2314
\\
2315
\\
2316
\index{FreeGResolution}::::::::::::::::::::::::\\
2317
\texttt{FreeGResolution(P,n)}\\
2318
\texttt{FreeGResolution(P,n,p)}\\
2319
2320
2321
Inputs a non-free $ZG$-resolution $P$ with finite stabilizer groups, and a positive integer $n$. It returns a free $ZG$-resolution of length equal to the minimum of n and the length of $P$. If one requires only a mod $p$ resolution then the prime $p$ can be entered as an optional third argument.
2322
2323
The free resolution is returned without a contracting homotopy. \\
2324
\\
2325
\\
2326
\\
2327
\index{ResolutionGTree}::::::::::::::::::::::::\\
2328
\texttt{ResolutionGTree(P,n)}\\
2329
2330
2331
Inputs a non-free $ZG$-resolution $P$ of dimension 1 (i.e. a G-tree) with finite stabilizer groups, and a positive
2332
integer $n$. It returns a free $ZG$-resolution of length equal to n.
2333
2334
If $P$ has a contracting homotopy then the free resolution is returned with a
2335
contracting homotopy.
2336
2337
This function was written by \textsc{ Bui Anh Tuan}. \\
2338
\\
2339
\\
2340
\\
2341
\index{ResolutionSL2Z}::::::::::::::::::::::::\\
2342
\texttt{ResolutionSL2Z(p,n)}\\
2343
2344
2345
Inputs positive integers $m, n$ and returns $n$ terms of a $ZG$-resolution for the group $G=SL(2,Z[1/m])$ .
2346
2347
2348
2349
This function is joint work with \textsc{Bui Anh Tuan}. \\
2350
\\
2351
\\
2352
\\
2353
\index{ResolutionAbelianGroup}::::::::::::::::::::::::\\
2354
\texttt{ResolutionAbelianGroup(L,n)}\\
2355
\texttt{ResolutionAbelianGroup(G,n)}\\
2356
2357
2358
Inputs a list $L:=[m_1,m_2, ..., m_d]$ of nonnegative integers, and a positive integer $n$. It returns $n$ terms of a ${\mathbb Z}G$-resolution for the abelian group $G=Z_{L[1]}+Z_{L[2]}+{\textperiodcentered}{\textperiodcentered}{\textperiodcentered}+{Z_L[d]}$ .
2359
2360
If $G$ is finite then the first argument can also be the abelian group $G$ itself. \\
2361
\\
2362
\\
2363
\\
2364
\index{ResolutionAlmostCrystalGroup}::::::::::::::::::::::::\\
2365
\texttt{ResolutionAlmostCrystalGroup(G,n)}\\
2366
2367
2368
Inputs a positive integer $n$ and an almost crystallographic pcp group $G$. It returns $n$ terms of a free $ZG$-resolution. (A group is almost crystallographic if it is nilpotent-by-finite
2369
and has no non-trivial finite normal subgroup. Such groups can be constructed
2370
using the ACLIB package.) \\
2371
\\
2372
\\
2373
\\
2374
\index{ResolutionAlmostCrystalQuotient}::::::::::::::::::::::::\\
2375
\texttt{ResolutionAlmostCrystalQuotient(G,n,c)}\\
2376
\texttt{ResolutionAlmostCrystalQuotient(G,n,c,false)}\\
2377
2378
2379
An almost crystallographic group $G$ is an extension of a finite group $P$ by a nilpotent group $T$, and has no non-trivial finite normal subgroup. We define the relative lower
2380
central series by setting $T_1=T$ and $T_{i+1}=[T_i,G]$.
2381
2382
This function inputs an almost crystallographic group $G$ together with positive integers $n$ and $c$. It returns $n$ terms of a free $ZQ$-resolution $R$ for the group $Q=G/T_c$ .
2383
2384
In addition to the usual components, the resolution $R$ has the component $R.quotientHomomorphism$ which gives the quotient homomorphism $G \longrightarrow Q $.
2385
2386
If a fourth optional variable is set equal to "false" then the function omits
2387
to test whether $Q$ is finite and a "more canonical" resolution is constructed. \\
2388
\\
2389
\\
2390
\\
2391
\index{ResolutionArtinGroup}::::::::::::::::::::::::\\
2392
\texttt{ResolutionArtinGroup(D,n)}\\
2393
2394
2395
Inputs a Coxeter diagram $D$ and an integer $n>1$. It returns $n$ terms of a free $ZG$-resolution $R$ where $G$ is the Artin monoid associated to $D$. It is conjectured that $R$ is also a free resolution for the Artin group $G$. The conjecture is known to hold in \href{../www/SideLinks/About/aboutArtinGroups.html} {certain cases}.
2396
2397
$G=R.group$ is infinite and returned as a finitely presented group. The list $R.elts$ is a partial listing of the elements of $G$ which grows as $R$ is used. Initially $R.elts$ is empty and then, any time the boundary of a resolution generator is called, $R.elts$ is updated to include elements of $G$ involved in the boundary.
2398
2399
The contracting homotopy on $R$ has not yet been implemented! Furthermore, the group $G$ is currently returned only as a finitely presented group (without any method
2400
for solving the word problem). \\
2401
\\
2402
\\
2403
\\
2404
\index{ResolutionAsphericalPresentation}::::::::::::::::::::::::\\
2405
\texttt{ResolutionAsphericalPresentation(F,R,n)}\\
2406
2407
2408
Inputs a free group $F$, a set $R$ of words in $F$ which constitute an aspherical presentation for a group $G$, and a positive integer $n$. (Asphericity can be a difficult property to verify. The function $IsAspherical(F,R)$ could be of help.)
2409
2410
The function returns n terms of a free $ZG$-resolution $R$ which has generators in dimensions {\textless} 3 only. No contracting homotopy
2411
on $R$ will be returned. \\
2412
\\
2413
\\
2414
\\
2415
\index{ResolutionBieberbachGroup (HAPcryst)}::::::::::::::::::::::::\\
2416
\texttt{ResolutionBieberbachGroup( G ) }\\
2417
\texttt{ResolutionBieberbachGroup( G, v ) }\\
2418
2419
2420
Inputs a torsion free crystallographic group $G$, also known as a Bieberbach group, represented using AffineCrystGroupOnRight
2421
as in the GAP package Cryst. It also optionally inputs a choice of vector $v$ in the euclidean space $R^n$ on which $G$ acts freely. The function returns $n+1$ terms of the free $ZG$-resolution of $Z$ arising as the cellular chain complex of the tesselation of $R^n$ by the Dirichlet-Voronoi fundamental domain determined by $v$.
2422
2423
This function is part of the HAPcryst package written by \textsc{Marc Roeder} and thus requires the HAPcryst package to be loaded.
2424
2425
The function requires the use of Polymake software. \\
2426
\\
2427
\\
2428
\\
2429
\index{ResolutionCoxeterGroup}::::::::::::::::::::::::\\
2430
\texttt{ResolutionCoxeterGroup(D,n)}\\
2431
2432
2433
Inputs a Coxeter diagram $D$ and an integer $n>1$. It returns $k$ terms of a free $ZG$-resolution $R$ where $G$ is the Coxeter group associated to $D$. Here $k$ is the maximum of n and the number of vertices in the Coxeter diagram. At
2434
present the implementation is only for finite Coxeter groups and the group $G$ is returned as a permutation group. The contracting homotopy on $R$ has not yet been implemented! \\
2435
\\
2436
\\
2437
\\
2438
\index{ResolutionDirectProduct}::::::::::::::::::::::::\\
2439
\texttt{ResolutionDirectProduct(R,S) }\\
2440
\texttt{ResolutionDirectProduct(R,S,"internal")}\\
2441
2442
2443
Inputs a $ZG$-resolution $R$ and $ZH$-resolution $S$. It outputs a $ZD$-resolution for the direct product $D=G x H$.
2444
2445
If $G$ and $H$ lie in a common group $K$, and if they commute and have trivial intersection, then an optional third
2446
variable "internal" can be used. This will force $D$ to be the subgroup $GH$ in $K$. \\
2447
\\
2448
\\
2449
\\
2450
\index{ResolutionExtension}::::::::::::::::::::::::\\
2451
\texttt{ResolutionExtension(g,R,S) }\\
2452
\texttt{ResolutionExtension(g,R, S,"TestFiniteness")}\\
2453
\texttt{ResolutionExtension(g,R,S,"NoTest",GmapE)}\\
2454
2455
2456
Inputs a surjective group homomorphism $g:E \longrightarrow G$ with kernel $N$. It also inputs a $ZN$-resolution $R$ and a $ZG$-resolution $S$. It returns a $ZE$-resolution. The groups $E$ and $G$ can be infinite.
2457
2458
If an optional fourth argument is set equal to "TestFiniteness" then the
2459
groups $N$ and $G$ will be tested to see if they are finite. If they are finite then some speed
2460
saving routines will be invoked.
2461
2462
If the homomorphism $g$ is such that the GAP function $PreImagesElement(g,x)$ doesn't work, then a function $GmapE()$ should be included as a fifth input. For any $x$ in $G$ this function should return an element $GmapE(x)$ in $E$ which gets mapped onto $x$ by $g$.
2463
2464
The contracting homotopy on the $ZE$-resolution has not yet been fully implemented for infinite groups! \\
2465
\\
2466
\\
2467
\\
2468
\index{ResolutionFiniteDirectProduct}::::::::::::::::::::::::\\
2469
\texttt{ResolutionFiniteDirectProduct(R,S) }\\
2470
\texttt{ResolutionFiniteDirectProduct(R,S, "internal")}\\
2471
2472
2473
Inputs a $ZG$-resolution $R$ and $ZH$-resolution $S$ where $G$ and $H$ are finite groups. It outputs a $ZD$-resolution for the direct product $D=G{\ensuremath{\times}}H$.
2474
2475
If $G$ and $H$ lie in a common group $K$, and if they commute and have trivial intersection, then an optional third
2476
variable "internal" can be used. This will force $D$ to be the subgroup $GH$ in $K$. \\
2477
\\
2478
\\
2479
\\
2480
\index{ResolutionFiniteExtension}::::::::::::::::::::::::\\
2481
\texttt{ResolutionFiniteExtension(gensE,gensG,R,n)}\\
2482
\texttt{ResolutionFiniteExtension(gensE,gensG,R,n,true) }\\
2483
\texttt{ResolutionFiniteExtension(gensE,gensG,R,n,false,S) }\\
2484
2485
2486
Inputs: a set $gensE$ of generators for a finite group $E$; a set $gensG$ equal to the image of $gensE$ in a quotient group $G$ of $E$; a $ZG$-resolution $R$ up to dimension at least $n$; a positive integer $n$. It uses the $TwistedTensorProduct()$ construction to return $n$ terms of a $ZE$-resolution.
2487
2488
The function has an optional fourth argument which, when set equal to "true",
2489
invokes tietze reductions in the construction of a resolution for the kernel
2490
of $E \longrightarrow G$.
2491
2492
If a $ZN$-resolution $S$ is available, where $N$ is the kernel of the quotient $E \longrightarrow G$, then this can be incorporated into the computations using an optional fifth
2493
argument. \\
2494
\\
2495
\\
2496
\\
2497
\index{ResolutionFiniteGroup}::::::::::::::::::::::::\\
2498
\texttt{ResolutionFiniteGroup(gens,n)}\\
2499
\texttt{ResolutionFiniteGroup(gens,n,true)}\\
2500
\texttt{ResolutionFiniteGroup(gens,n,false,p) }\\
2501
\texttt{ResolutionFiniteGroup(gens,n,false,0,"extendible") }\\
2502
2503
2504
Inputs a set $gens$ of generators for a finite group $G$ and a positive integer $n$. It outputs $n$ terms of a $ZG$-resolution.
2505
2506
The function has an optional third argument which, when set equal to $true$, invokes tietze reductions in the construction of the resolution.
2507
2508
The function has an optional fourth argument which, when set equal to a prime $p$, records the fact that the resolution will only be used for mod $p$ calculations. This could speed up subsequent constructions.
2509
2510
The function has an optional fifth argument which, when set equal to
2511
"extendible", returns a resolution whose length can be increased using the
2512
command R!.extend() . \\
2513
\\
2514
\\
2515
\\
2516
\index{ResolutionFiniteSubgroup}::::::::::::::::::::::::\\
2517
\texttt{ResolutionFiniteSubgroup(R,K)}\\
2518
\texttt{ResolutionFiniteSubgroup(R,gensG,gensK)}\\
2519
2520
2521
Inputs a $ZG$-resolution for a finite group $G$ and a subgroup $K$ of index $|G:K|$. It returns a free $ZK$-resolution whose $ZK$-rank is $|G:K|$ times the $ZG$-rank in each dimension.
2522
2523
Generating sets $gensG$, $gensK$ for $G$ and $K$ can also be input to the function (though the method does not depend on a
2524
choice of generators).
2525
2526
This $ZK$-resolution is not reduced. ie. it has more than one generator in dimension $0$. \\
2527
\\
2528
\\
2529
\\
2530
\index{ResolutionGraphOfGroups}::::::::::::::::::::::::\\
2531
\texttt{ResolutionGraphOfGroups(D,n) }\\
2532
\texttt{ResolutionGraphOfGroups(D,n,L) }\\
2533
2534
2535
Inputs a graph of groups $D$ and a positive integer $n$. It returns $n$ terms of a free $ZG$-resolution for the fundamental group $G$ of $D$.
2536
2537
An optional third argument $L=[R_1 , \ldots , R_t]$ can be used to list (in any order) free resolutions for some/all of the vertex
2538
and edge groups in $D$. If for some vertex or edge group no resolution is listed in $L$ then the function $ResolutionFiniteGroup()$ will be used to try to construct the resolution.
2539
2540
The $ZG$-resolution is usually not reduced. i.e. it has more than one generator in
2541
dimension 0.
2542
2543
The contracting homotopy on the $ZG$-resolution has not yet been implemented! Furthermore, the group $G$ is currently returned only as a finitely presented group (without any method
2544
for solving the word problem). \\
2545
\\
2546
\\
2547
\\
2548
\index{ResolutionNilpotentGroup}::::::::::::::::::::::::\\
2549
\texttt{ResolutionNilpotentGroup(G,n) }\\
2550
\texttt{ResolutionNilpotentGroup(G,n,"TestFiniteness")}\\
2551
2552
2553
Inputs a nilpotent group $G$ and positive integer $n$. It returns $n$ terms of a free $ZG$-resolution. The resolution is computed using a divide-and-conquer technique
2554
involving the lower central series.
2555
2556
This function can be applied to infinite groups $G$. For finite groups the function $ResolutionNormalSeries()$ probably gives better results.
2557
2558
If an optional third argument is set equal to "TestFiniteness" then the groups $N$ and $G$ will be tested to see if they are finite. If they are finite then some speed
2559
saving routines will be invoked.
2560
2561
The contracting homotopy on the $ZE$-resolution has not yet been fully implemented for infinite groups. \\
2562
\\
2563
\\
2564
\\
2565
\index{ResolutionNormalSeries}::::::::::::::::::::::::\\
2566
\texttt{ResolutionNormalSeries(L,n) }\\
2567
\texttt{ResolutionNormalSeries(L,n,true)}\\
2568
\texttt{ResolutionNormalSeries(L,n,false,p)}\\
2569
2570
2571
Inputs a positive integer $n$ and a list $L = [L_1 , ..., L_k]$ of normal subgroups $L_i$ of a finite group $G$ satisfying $G = L_1$ {\textgreater} $L2$ {\textgreater}$ \ldots $ {\textgreater}$ L_k$. Alternatively, $L = [gensL_1, ... gensL_k]$ can be a list of generating sets for the $L_i$ (and these particular generators will be used in the construction of
2572
resolutions). It returns a $ZG$-resolution by repeatedly using the function $ResolutionFiniteExtension()$.
2573
2574
The function has an optional third argument which, if set equal to true,
2575
invokes tietze reductions in the construction of resolutions.
2576
2577
The function has an optional fourth argument which, if set equal to p
2578
{\textgreater} 0, produces a resolution which is only valid for mod $p$ calculations. \\
2579
\\
2580
\\
2581
\\
2582
\index{ResolutionPrimePowerGroup}::::::::::::::::::::::::\\
2583
\texttt{ResolutionPrimePowerGroup(P,n) }\\
2584
\texttt{ResolutionPrimePowerGroup(G,n,p)}\\
2585
2586
2587
Inputs a $p$-group $P$ and integer $n${\textgreater}$0$. It uses GAP's standard linear algebra functions over the field $F$ of p elements to construct a free $FP$-resolution for mod $p$ calculations only. The resolution is minimal - meaning that the number of
2588
generators of $R_n$ equals the rank of $H_n(P,F)$.
2589
2590
The function can also be used to obtain a free non-minimal $FG$-resolution of a small group $G$ of non-prime-power order. In this case the prime $p$ must be entered as the third input variable. (In the non-prime-power case the
2591
algorithm is naive and not very good.) \\
2592
\\
2593
\\
2594
\\
2595
\index{ResolutionSmallFpGroup}::::::::::::::::::::::::\\
2596
\texttt{ResolutionSmallFpGroup(G,n) }\\
2597
\texttt{ResolutionSmallFpGroup(G,n,p) }\\
2598
2599
2600
Inputs a small finitely presented group $G$ and an integer $n${\textgreater}$0$. It returns $n$ terms of a $ZG$-resolution which, in dimensions 1 and 2, corresponds to the given
2601
presentation for $G$. The method returns no contracting homotopy for the resolution.
2602
2603
The function has an optional fourth argument which, when set equal to a prime $p$, records the fact that the resolution will only be used for mod $p$ calculations. This could speed up subsequent constructions.
2604
2605
This function was written by Irina Kholodna. \\
2606
\\
2607
\\
2608
\\
2609
\index{ResolutionSubgroup}::::::::::::::::::::::::\\
2610
\texttt{ResolutionSubgroup(R,K)}\\
2611
2612
2613
Inputs a $ZG$-resolution for an (infinite) group $G$ and a subgroup $K$ of finite index $|G:K|$. It returns a free $ZK$-resolution whose $ZK$-rank is $|G:K|$ times the $ZG$-rank in each dimension.
2614
2615
If $G$ is finite then the function $ResolutionFiniteSubgroup(R,G,K)$ will probably work better. In particular, resolutions from this function
2616
probably won't work with the function $EquivariantChainMap()$. This $ZK$-resolution is not reduced. i.e. it has more than one generator in dimension
2617
0. \\
2618
\\
2619
\\
2620
\\
2621
\index{ResolutionSubnormalSeries}::::::::::::::::::::::::\\
2622
\texttt{ResolutionSubnormalSeries(L,n) }\\
2623
2624
2625
Inputs a positive integer n and a list $L = [L_1 , \ldots , L_k]$ of subgroups $L_i$ of a finite group $G=L_1$ such that $L_1$ {\textgreater} $L2 \ldots $ {\textgreater} $L_k$ is a subnormal series in $G$ (meaning that each $L_{i+1}$ must be normal in $L_i$). It returns a $ZG$-resolution by repeatedly using the function $ResolutionFiniteExtension()$.
2626
2627
If $L$ is a series of normal subgroups in $G$ then the function $ResolutionNormalSeries(L,n)$ will possibly work more efficiently. \\
2628
\\
2629
\\
2630
\\
2631
\index{TwistedTensorProduct}::::::::::::::::::::::::\\
2632
\texttt{TwistedTensorProduct(R,S,EhomG,GmapE,NhomE,NEhomN,EltsE,Mult,InvE)}\\
2633
2634
2635
Inputs a $ZG$-resolution $R$, a $ZN$-resolution $S$, and other data relating to a short exact sequence $1 \longrightarrow N \longrightarrow E \longrightarrow G \longrightarrow 1$. It uses a perturbation technique of CTC Wall to construct a $ZE$-resolution $F$. Both $G$ and $N$ could be infinite. The "length" of $F$ is equal to the minimum of the "length"s of $R$ and $S$. The resolution $R$ needs no contracting homotopy if no such homotopy is requied for $F$. \\
2636
\\
2637
\\
2638
\\
2639
\index{ConjugatedResolution}::::::::::::::::::::::::\\
2640
\texttt{ConjugatedResolution(R,x)}\\
2641
2642
2643
Inputs a ZG-resoluton $R$ and an element $x$ from some group containing $G$. It returns a $ZG^x$-resolution $S$ where the group $G^x$ is the conjugate of $G$ by $x$. (The component $S!.elts$ will be a pseudolist rather than a list.) \\
2644
\\
2645
\\
2646
\\
2647
\index{RecalculateIncidenceNumbers}::::::::::::::::::::::::\\
2648
\texttt{RecalculateIncidenceNumbers(R)}\\
2649
2650
2651
Inputs a ZG-resoluton $R$ which arises as the cellular chain complex of a regular CW-complex. (Thus the
2652
boundary of any cell is a list of distinct cells.) It recalculates the
2653
incidence numbers for $R$. If it is applied to a resolution that is not regular then a wrong answer may
2654
be returned. \\
2655
\\
2656
\\
2657
}
2658
2659
2660
\chapter{\textcolor{Chapter }{ Resolutions of modules}}\logpage{[ 6, 0, 0 ]}
2661
\hyperdef{L}{X841673BA782D0D1D}{}
2662
{
2663
\\
2664
\\
2665
\\
2666
\index{ResolutionFpGModule}::::::::::::::::::::::::\\
2667
\texttt{ResolutionFpGModule(M,n)}\\
2668
2669
2670
Inputs an $FpG$-module $M$ and a positive integer $n$. It returns $n$ terms of a minimal free $FG$-resolution of the module $M$ (where $G$ is a finite group and $F$ the field of $p$ elements). \\
2671
\\
2672
\\
2673
}
2674
2675
2676
\chapter{\textcolor{Chapter }{ Induced equivariant chain maps}}\logpage{[ 7, 0, 0 ]}
2677
\hyperdef{L}{X7E91068780486C3A}{}
2678
{
2679
\\
2680
\\
2681
\\
2682
\index{EquivariantChainMap}::::::::::::::::::::::::\\
2683
\texttt{EquivariantChainMap(R,S,f)}\\
2684
2685
2686
Inputs a $ZG$-resolution $R$, a $ZG'$-resolution $S$, and a group homomorphism $f : G \longrightarrow G'$. It outputs a component object $M$ with the following components.
2687
2688
\\
2689
\\
2690
$M!.source$ is the resolution $R$.\\
2691
\\
2692
$M!.target$ is the resolution $S$.\\
2693
\\
2694
$M!.mapping(w,n)$ is a function which gives the image in $S_n$, under a chain map induced by $f$, of a word $w$ in $R_n$. (Here $R_n$ and $S_n$ are the $n$-th modules in the resolutions $R$ and $S$.)\\
2695
\\
2696
$F!.properties$ is a list of pairs such as ["type", "equivariantChainMap"].\\
2697
\\
2698
2699
2700
The resolution $S$ must have a contracting homotopy. \\
2701
\\
2702
\\
2703
}
2704
2705
2706
\chapter{\textcolor{Chapter }{ Functors}}\logpage{[ 8, 0, 0 ]}
2707
\hyperdef{L}{X78D1062D78BE08C1}{}
2708
{
2709
\\
2710
\\
2711
\\
2712
\index{ExtendScalars}::::::::::::::::::::::::\\
2713
\texttt{ExtendScalars(R,G,EltsG)}\\
2714
2715
2716
Inputs a $ZH$-resolution $R$, a group $G$ containing $H$ as a subgroup, and a list $EltsG$ of elements of $G$. It returns the free $ZG$-resolution $(R \otimes_{ZH} ZG)$. The returned resolution $S$ has S!.elts:=EltsG. This is a resolution of the $ZG$-module $(Z \otimes_{ZH} ZG)$. (Here $\otimes_{ZH}$ means tensor over $ZH$.) \\
2717
\\
2718
\\
2719
\\
2720
\index{HomToIntegers}::::::::::::::::::::::::\\
2721
\texttt{HomToIntegers(X) }\\
2722
2723
2724
Inputs either a $ZG$-resolution $X=R$, or an equivariant chain map $X = (F:R \longrightarrow S)$. It returns the cochain complex or cochain map obtained by applying $HomZG( _ , Z)$ where $Z$ is the trivial module of integers (characteristic 0). \\
2725
\\
2726
\\
2727
\\
2728
\index{HomToIntegersModP}::::::::::::::::::::::::\\
2729
\texttt{HomToIntegersModP(R) }\\
2730
2731
2732
Inputs a $ZG$-resolution $R$ and returns the cochain complex obtained by applying $HomZG( _ , Z_p)$ where $Z_p$ is the trivial module of integers mod $p$. (At present this functor does not handle equivariant chain maps.) \\
2733
\\
2734
\\
2735
\\
2736
\index{HomToIntegralModule}::::::::::::::::::::::::\\
2737
\texttt{HomToIntegralModule(R,f) }\\
2738
2739
2740
Inputs a $ZG$-resolution $R$ and a group homomorphism $f:G \longrightarrow GL_n(Z)$ to the group of $n{\ensuremath{\times}}n$ invertible integer matrices. Here $Z$ must have characteristic 0. It returns the cochain complex obtained by
2741
applying $HomZG( _ , A)$ where $A$ is the $ZG$-module $Z^n$ with $G$ action via $f$. (At present this function does not handle equivariant chain maps.) \\
2742
\\
2743
\\
2744
\\
2745
\index{TensorWithIntegralModule}::::::::::::::::::::::::\\
2746
\texttt{TensorWithIntegralModule(R,f) }\\
2747
2748
2749
Inputs a $ZG$-resolution $R$ and a group homomorphism $f:G \longrightarrow GL_n(Z)$ to the group of $n{\ensuremath{\times}}n$ invertible integer matrices. Here $Z$ must have characteristic 0. It returns the chain complex obtained by tensoring
2750
over $ZG$ with the $ZG$-module $A=Z^n$ with $G$ action via $f$. (At present this function does not handle equivariant chain maps.) \\
2751
\\
2752
\\
2753
\\
2754
\index{HomToGModule}::::::::::::::::::::::::\\
2755
\texttt{HomToGModule(R,A) }\\
2756
2757
2758
Inputs a $ZG$-resolution $R$ and an abelian G-outer group A. It returns the G-cocomplex obtained by
2759
applying $HomZG( _ , A)$. (At present this function does not handle equivariant chain maps.) \\
2760
\\
2761
\\
2762
\\
2763
\index{InduceScalars}::::::::::::::::::::::::\\
2764
\texttt{InduceScalars(R,hom) }\\
2765
2766
2767
Inputs a $ZQ$-resolution $R$ and a surjective group homomorphism $hom:G\rightarrow Q$. It returns the unduced non-free $ZG$-resolution. \\
2768
\\
2769
\\
2770
\\
2771
\index{LowerCentralSeriesLieAlgebra}::::::::::::::::::::::::\\
2772
\texttt{LowerCentralSeriesLieAlgebra(G) }\\
2773
\texttt{LowerCentralSeriesLieAlgebra(f) }\\
2774
2775
2776
Inputs a pcp group $G$. If each quotient $G_c/G_{c+1}$ of the lower central series is free abelian or p-elementary abelian (for fixed
2777
prime p) then a Lie algebra $L(G)$ is returned. The abelian group underlying $L(G)$ is the direct sum of the quotients $G_c/G_{c+1}$ . The Lie bracket on $L(G)$ is induced by the commutator in $G$. (Here $G_1=G$, $G_{c+1}=[G_c,G]$ .)
2778
2779
The function can also be applied to a group homomorphism $f: G \longrightarrow G'$ . In this case the induced homomorphism of Lie algebras $L(f):L(G) \longrightarrow L(G')$ is returned.
2780
2781
If the quotients of the lower central series are not all free or p-elementary
2782
abelian then the function returns fail.
2783
2784
This function was written by Pablo Fernandez Ascariz \\
2785
\\
2786
\\
2787
\\
2788
\index{TensorWithIntegers}::::::::::::::::::::::::\\
2789
\texttt{TensorWithIntegers(X) }\\
2790
2791
2792
Inputs either a $ZG$-resolution $X=R$, or an equivariant chain map $X = (F:R \longrightarrow S)$. It returns the chain complex or chain map obtained by tensoring with the
2793
trivial module of integers (characteristic 0). \\
2794
\\
2795
\\
2796
\\
2797
\index{FilteredTensorWithIntegers}::::::::::::::::::::::::\\
2798
\texttt{FilteredTensorWithIntegers(R) }\\
2799
2800
2801
Inputs a $ZG$-resolution $R$ for which "filteredDimension" lies in NamesOfComponents(R). (Such a resolution
2802
can be produced using TwisterTensorProduct(), ResolutionNormalSubgroups() or
2803
FreeGResolution().) It returns the filtered chain complex obtained by
2804
tensoring with the trivial module of integers (characteristic 0). \\
2805
\\
2806
\\
2807
\\
2808
\index{TensorWithTwistedIntegers}::::::::::::::::::::::::\\
2809
\texttt{TensorWithTwistedIntegers(X,rho) }\\
2810
2811
2812
Inputs either a $ZG$-resolution $X=R$, or an equivariant chain map $X = (F:R \longrightarrow S)$. It also inputs a function $rho\colon G\rightarrow \mathbb Z$ where the action of $g \in G$ on $\mathbb Z$ is such that $g.1 = rho(g)$. It returns the chain complex or chain map obtained by tensoring with the
2813
(twisted) module of integers (characteristic 0). \\
2814
\\
2815
\\
2816
\\
2817
\index{TensorWithIntegersModP}::::::::::::::::::::::::\\
2818
\texttt{TensorWithIntegersModP(X,p) }\\
2819
2820
2821
Inputs either a $ZG$-resolution $X=R$, or a characteristics 0 chain complex, or an equivariant chain map $X = (F:R \longrightarrow S)$, or a chain map between characteristic 0 chain complexes, together with a
2822
prime $p$. It returns the chain complex or chain map obtained by tensoring with the
2823
trivial module of integers modulo $p$. \\
2824
\\
2825
\\
2826
\\
2827
\index{TensorWithTwistedIntegersModP}::::::::::::::::::::::::\\
2828
\texttt{TensorWithTwistedIntegersModP(X,p,rho)}\\
2829
2830
2831
Inputs either a $ZG$-resolution $X=R$, or an equivariant chain map $X = (F:R \longrightarrow S)$, and a prime $p$. It also inputs a function $rho\colon G\rightarrow \mathbb Z$ where the action of $g \in G$ on $\mathbb Z$ is such that $g.1 = rho(g)$. It returns the chain complex or chain map obtained by tensoring with the
2832
trivial module of integers modulo $p$. \\
2833
\\
2834
\\
2835
\\
2836
\index{TensorWithRationals}::::::::::::::::::::::::\\
2837
\texttt{TensorWithRationals(R)}\\
2838
2839
2840
Inputs a $ZG$-resolution $R$ and returns the chain complex obtained by tensoring with the trivial module of
2841
rational numbers. \\
2842
\\
2843
\\
2844
}
2845
2846
2847
\chapter{\textcolor{Chapter }{ Chain complexes}}\logpage{[ 9, 0, 0 ]}
2848
\hyperdef{L}{X7A06103979B92808}{}
2849
{
2850
\\
2851
\\
2852
\\
2853
\index{ChainComplex}::::::::::::::::::::::::\\
2854
\texttt{ChainComplex(T)}\\
2855
2856
2857
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and returns the (often very large) cellular chain complex of $T$. \\
2858
\\
2859
\\
2860
\\
2861
\index{ChainComplexOfPair}::::::::::::::::::::::::\\
2862
\texttt{ChainComplexOfPair(T,S)}\\
2863
2864
2865
Inputs a pure cubical complex or cubical complex $T$ and contractible subcomplex $S$. It returns the quotient $C(T)/C(S)$ of cellular chain complexes. \\
2866
\\
2867
\\
2868
\\
2869
\index{ChevalleyEilenbergComplex}::::::::::::::::::::::::\\
2870
\texttt{ ChevalleyEilenbergComplex(X,n) }\\
2871
2872
2873
Inputs either a Lie algebra $X=A$ (over the ring of integers $Z$ or over a field $K$) or a homomorphism of Lie algebras $X=(f:A \longrightarrow B)$, together with a positive integer $n$. It returns either the first $n$ terms of the Chevalley-Eilenberg chain complex $C(A)$, or the induced map of Chevalley-Eilenberg complexes $C(f):C(A) \longrightarrow C(B)$.
2874
2875
(The homology of the Chevalley-Eilenberg complex $C(A)$ is by definition the homology of the Lie algebra $A$ with trivial coefficients in $Z$ or $K$).
2876
2877
This function was written by \textsc{Pablo Fernandez Ascariz} \\
2878
\\
2879
\\
2880
\\
2881
\index{LeibnizComplex}::::::::::::::::::::::::\\
2882
\texttt{ LeibnizComplex(X,n) }\\
2883
2884
2885
Inputs either a Lie or Leibniz algebra $X=A$ (over the ring of integers $Z$ or over a field $K$) or a homomorphism of Lie or Leibniz algebras $X=(f:A \longrightarrow B)$, together with a positive integer $n$. It returns either the first $n$ terms of the Leibniz chain complex $C(A)$, or the induced map of Leibniz complexes $C(f):C(A) \longrightarrow C(B)$.
2886
2887
(The Leibniz complex $C(A)$ was defined by J.-L.Loday. Its homology is by definition the Leibniz homology
2888
of the algebra $A$).
2889
2890
This function was written by \textsc{Pablo Fernandez Ascariz} \\
2891
\\
2892
\\
2893
\\
2894
\index{SuspendedChainComplex}::::::::::::::::::::::::\\
2895
\texttt{SuspendedChainComplex(C)}\\
2896
2897
2898
Inputs a chain complex $C$ and returns the chain complex $S$ defined by applying the degree shift $S_n = C_{n-1}$ to chain groups and boundary homomorphisms. \\
2899
\\
2900
\\
2901
\\
2902
\index{ReducedSuspendedChainComplex}::::::::::::::::::::::::\\
2903
\texttt{ReducedSuspendedChainComplex(C)}\\
2904
2905
2906
Inputs a chain complex $C$ and returns the chain complex $S$ defined by applying the degree shift $S_n = C_{n-1}$ to chain groups and boundary homomorphisms for all $n > 0$. The chain complex $S$ has trivial homology in degree $0$ and $S_0=\mathbb Z$. \\
2907
\\
2908
\\
2909
\\
2910
\index{CoreducedChainComplex}::::::::::::::::::::::::\\
2911
\texttt{CoreducedChainComplex(C)}\\
2912
\texttt{CoreducedChainComplex(C,2)}\\
2913
2914
2915
Inputs a chain complex $C$ and returns a quasi-isomorphic chain complex $D$. In many cases the complex $D$ should be smaller than $C$. If an optional second input argument is set equal to 2 then an alternative
2916
method is used for reducing the size of the chain complex. \\
2917
\\
2918
\\
2919
\\
2920
\index{TensorProductOfChainComplexes}::::::::::::::::::::::::\\
2921
\texttt{TensorProductOfChainComplexes(C,D)}\\
2922
2923
2924
Inputs two chain complexes $C$ and $D$ of the same characteristic and returns their tensor product as a chain
2925
complex.
2926
2927
This function was written by \textsc{ Le Van Luyen}. \\
2928
\\
2929
\\
2930
\\
2931
\index{LefschetzNumber}::::::::::::::::::::::::\\
2932
\texttt{LefschetzNumber(F)}\\
2933
2934
2935
Inputs a chain map $F\colon C\rightarrow C$ with common source and target. It returns the Lefschetz number of the map
2936
(that is, the alternating sum of the traces of the homology maps in each
2937
degree). \\
2938
\\
2939
\\
2940
}
2941
2942
2943
\chapter{\textcolor{Chapter }{ Sparse Chain complexes}}\logpage{[ 10, 0, 0 ]}
2944
\hyperdef{L}{X856F202D823280F8}{}
2945
{
2946
\\
2947
\\
2948
\\
2949
\index{SparseMat}::::::::::::::::::::::::\\
2950
\texttt{SparseMat(A)}\\
2951
2952
2953
Inputs a matrix $A$ and returns the matrix in sparse format. \\
2954
\\
2955
\\
2956
\\
2957
\index{TransposeOfSparseMat}::::::::::::::::::::::::\\
2958
\texttt{TransposeOfSparseMat(A)}\\
2959
2960
2961
Inputs a sparse matrix $A$ and returns its transpose sparse format. \\
2962
\\
2963
\\
2964
\\
2965
\index{ReverseSparseMat}::::::::::::::::::::::::\\
2966
\texttt{ReverseSparseMat(A)}\\
2967
2968
2969
Inputs a sparse matrix $A$ and modifies it by reversing the order of the columns. This function modifies $A$ and returns no value. \\
2970
\\
2971
\\
2972
\\
2973
\index{SparseRowMult}::::::::::::::::::::::::\\
2974
\texttt{SparseRowMult(A,i,k)}\\
2975
2976
2977
Multiplies the i-th row of a sparse matrix $A$ by $k$. The sparse matrix $A$ is modified but nothing is returned. \\
2978
\\
2979
\\
2980
\\
2981
\index{SparseRowInterchange}::::::::::::::::::::::::\\
2982
\texttt{SparseRowInterchange(A,i,k)}\\
2983
2984
2985
Interchanges the i-th and j-th rows of a sparse matrix $A$ by $k$. The sparse matrix $A$ is modified but nothing is returned. \\
2986
\\
2987
\\
2988
\\
2989
\index{SparseRowAdd}::::::::::::::::::::::::\\
2990
\texttt{SparseRowAdd(A,i,j,k)}\\
2991
2992
2993
Adds $k$ times the j-th row to the i-th row of a sparse matrix $A$. The sparse matrix $A$ is modified but nothing is returned. \\
2994
\\
2995
\\
2996
\\
2997
\index{SparseSemiEchelon}::::::::::::::::::::::::\\
2998
\texttt{SparseSemiEchelon(A)}\\
2999
3000
3001
Converts a sparse matrix $A$ to semi-echelon form (which means echelon form up to a permutation of rows).
3002
The sparse matrix $A$ is modified but nothing is returned. \\
3003
\\
3004
\\
3005
\\
3006
\index{RankMatDestructive}::::::::::::::::::::::::\\
3007
\texttt{RankMatDestructive(A)}\\
3008
3009
3010
Returns the rank of a sparse matrix $A$. The sparse matrix $A$ is modified during the calculation. \\
3011
\\
3012
\\
3013
\\
3014
\index{RankMat}::::::::::::::::::::::::\\
3015
\texttt{RankMat(A)}\\
3016
3017
3018
Returns the rank of a sparse matrix $A$. \\
3019
\\
3020
\\
3021
\\
3022
\index{SparseChainComplex}::::::::::::::::::::::::\\
3023
\texttt{SparseChainComplex(Y)}\\
3024
3025
3026
Inputs a regular CW-complex $Y$ and returns a sparse chain complex which is chain homotopy equivalent to the
3027
cellular chain complex of $Y$. The function uses discrete vector fields to calculate a smallish chain
3028
complex. \\
3029
\\
3030
\\
3031
\\
3032
\index{SparseChainComplexOfRegularCWComplex}::::::::::::::::::::::::\\
3033
\texttt{SparseChainComplexOfRegularCWComplex(Y)}\\
3034
3035
3036
Inputs a regular CW-complex $Y$ and returns its cellular chain complex as a sparse chain complex. The function
3037
SparseChainComplex(Y) will usually return a smaller chain complex. \\
3038
\\
3039
\\
3040
\\
3041
\index{SparseBoundaryMatrix}::::::::::::::::::::::::\\
3042
\texttt{SparseBoundaryMatrix(C,n)}\\
3043
3044
3045
Inputs a sparse chain complex $C$ and integer $n$. Returns the n-th boundary matrix of the chain complex in sparse format. \\
3046
\\
3047
\\
3048
\\
3049
\index{Bettinumbers}::::::::::::::::::::::::\\
3050
\texttt{Bettinumbers(C,n)}\\
3051
3052
3053
Inputs a sparse chain complex $C$ and integer $n$. Returns the n-th Netti number of the chain complex. \\
3054
\\
3055
\\
3056
}
3057
3058
3059
\chapter{\textcolor{Chapter }{ Homology and cohomology groups}}\logpage{[ 11, 0, 0 ]}
3060
\hyperdef{L}{X782177107A5D6D19}{}
3061
{
3062
\\
3063
\\
3064
\\
3065
\index{Cohomology}::::::::::::::::::::::::\\
3066
\texttt{Cohomology(X,n) }\\
3067
3068
3069
Inputs either a cochain complex $X=C$ (or G-cocomplex C) or a cochain map $X=(C \longrightarrow D)$ in characteristic $p$ together with a non-negative intereg $n$. \\
3070
\\
3071
If $X=C$ and $p=0$ then the torsion coefficients of $H^n(C)$ are retuned. If $X=C$ and $p$ is prime then the dimension of $H^n(C)$ are retuned. \\
3072
\\
3073
If $X=(C \longrightarrow D)$ then the induced homomorphism $H^n(C)\longrightarrow H^n(D)$ is returned as a homomorphism of finitely presented groups. \\
3074
\\
3075
A $G$-cocomplex $C$ can also be input. The cohomology groups of such a complex may not be abelian. \textsc{Warning:} in this case Cohomology(C,n) returns the abelian invariants of the $n$-th cohomology group of $C$. \\
3076
\\
3077
\\
3078
\\
3079
\index{CohomologyModule}::::::::::::::::::::::::\\
3080
\texttt{CohomologyModule(C,n) }\\
3081
3082
3083
Inputs a $G$-cocomplex $C$ together with a non-negative integer $n$. It returns the cohomology $H^n(C)$ as a $G$-outer group. If $C$ was constructed from a resolution $R$ by homing to an abelian $G$-outer group $A$ then, for each x in H:=CohomologyModule(C,n), there is a function
3084
f:=H!.representativeCocycle(x) which is a standard n-cocycle corresponding to
3085
the cohomology class x. (At present this works only for n=1,2,3.) \\
3086
\\
3087
\\
3088
\\
3089
\index{CohomologyPrimePart}::::::::::::::::::::::::\\
3090
\texttt{CohomologyPrimePart(C,n,p)}\\
3091
3092
3093
Inputs a cochain complex $C$ in characteristic 0, a positive integer $n$, and a prime $p$. It returns a list of those torsion coefficients of $H^n(C)$ that are positive powers of $p$. The function uses the EDIM package by Frank Luebeck. \\
3094
\\
3095
\\
3096
\\
3097
\index{GroupCohomology}::::::::::::::::::::::::\\
3098
\texttt{GroupCohomology(X,n) }\\
3099
\texttt{GroupCohomology(X,n,p)}\\
3100
3101
3102
Inputs a positive integer $n$ and either \\
3103
\\
3104
a finite group $X=G$ \\
3105
\\
3106
or a nilpotent Pcp-group $X=G$ \\
3107
\\
3108
or a space group $X=G$ \\
3109
\\
3110
or a list $X=D$ representing a graph of groups\\
3111
\\
3112
or a pair $X=["Artin",D]$ where $D$ is a Coxeter diagram representing an infinite Artin group $G$.\\
3113
\\
3114
or a pair $X=["Coxeter",D]$ where $D$ is a Coxeter diagram representing a finite Coxeter group $G$.\\
3115
\\
3116
It returns the torsion coefficients of the integral cohomology $H^n(G,Z)$.
3117
3118
There is an optional third argument which, when set equal to a prime $p$, causes the function to return the the mod $p$ cohomology $H^n(G,Z_p)$ as a list of length equal to its rank.
3119
3120
This function is a composite of more basic functions, and makes choices for a
3121
number of parameters. For a particular group you would almost certainly be
3122
better using the more basic functions and making the choices yourself! \\
3123
\\
3124
\\
3125
\\
3126
\index{GroupHomology}::::::::::::::::::::::::\\
3127
\texttt{GroupHomology(X,n)}\\
3128
\texttt{GroupHomology(X,n,p)}\\
3129
3130
3131
Inputs a positive integer $n$ and either \\
3132
\\
3133
a finite group $X=G$ \\
3134
\\
3135
or a nilpotent Pcp-group $X=G$ \\
3136
\\
3137
or a space group $X=G$ \\
3138
\\
3139
or a list $X=D$ representing a graph of groups\\
3140
\\
3141
or a pair $X=["Artin",D]$ where $D$ is a Coxeter diagram representing an infinite Artin group $G$.\\
3142
\\
3143
or a pair $X=["Coxeter",D]$ where $D$ is a Coxeter diagram representing a finite Coxeter group $G$.\\
3144
\\
3145
It returns the torsion coefficients of the integral homology $H_n(G,Z)$.
3146
3147
There is an optional third argument which, when set equal to a prime $p$, causes the function to return the mod $p$ homology $H_n(G,Z_p)$ as a list of lenth equal to its rank.
3148
3149
This function is a composite of more basic functions, and makes choices for a
3150
number of parameters. For a particular group you would almost certainly be
3151
better using the more basic functions and making the choices yourself! \\
3152
\\
3153
\\
3154
\\
3155
\index{PersistentHomologyOfQuotientGroupSeries}::::::::::::::::::::::::\\
3156
\texttt{PersistentHomologyOfQuotientGroupSeries(S,n)}\\
3157
\texttt{PersistentHomologyOfQuotientGroupSeries(S,n,p,Resolution{\textunderscore}Algorithm)}\\
3158
3159
3160
Inputs a positive integer $n$ and a decreasing chain $S=[S_1, S_2, ..., S_k]$ of normal subgroups in a finite $p$-group $G=S_1$. It returns the bar code of the persistent mod $p$ homology in degree $n$ of the sequence of quotient homomorphisms $G \rightarrow G/S_k \rightarrow G/S_{k-1} \rightarrow ... \rightarrow G/S_2 $. The bar code is returned as a matrix containing the dimensions of the images
3161
of the induced homology maps.
3162
3163
If one sets $p=0$ then the integral persitent homology bar code is returned. This is a matrix
3164
whose entries are pairs of the lists: the list of abelian invariants of the
3165
images of the induced homology maps and the cokernels of the induced homology
3166
maps. (The matrix probably does not uniquely determine the induced homology
3167
maps.)
3168
3169
Non prime-power (and possibly infinite) groups $G$ can also be handled; in this case the prime must be entered as a third
3170
argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) can be
3171
entered as a fourth argument. (The default algorithm is ResolutionFiniteGroup,
3172
so this must be changed for infinite groups.) \\
3173
\\
3174
\\
3175
\\
3176
\index{PersistentCohomologyOfQuotientGroupSeries}::::::::::::::::::::::::\\
3177
\texttt{PersistentCohomologyOfQuotientGroupSeries(S,n)}\\
3178
\texttt{PersistentCohomologyOfQuotientGroupSeries(S,n,p,Resolution{\textunderscore}Algorithm)}\\
3179
3180
3181
Inputs a positive integer $n$ and a decreasing chain $S=[S_1, S_2, ..., S_k]$ of normal subgroups in a finite $p$-group $G=S_1$. It returns the bar code of the persistent mod $p$ cohomology in degree $n$ of the sequence of quotient homomorphisms $G \rightarrow G/S_k \rightarrow G/S_{k-1} \rightarrow ... \rightarrow G/S_2 $. The bar code is returned as a matrix containing the dimensions of the images
3182
of the induced homology maps.
3183
3184
If one sets $p=0$ then the integral persitent cohomology bar code is returned. This is a matrix
3185
whose entries are pairs of the lists: the list of abelian invariants of the
3186
images of the induced cohomology maps and the cokernels of the induced
3187
cohomology maps. (The matrix probably does not uniquely determine the induced
3188
homology maps.)
3189
3190
Non prime-power (and possibly infinite) groups $G$ can also be handled; in this case the prime must be entered as a third
3191
argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) can be
3192
entered as a fourth argument. (The default algorithm is ResolutionFiniteGroup,
3193
so this must be changed for infinite groups.)
3194
3195
(The implementation is possibly a little less efficient than that of the
3196
corresponding persistent homology function.) \\
3197
\\
3198
\\
3199
\\
3200
\index{UniversalBarCode}::::::::::::::::::::::::\\
3201
\texttt{UniversalBarCode("UpperCentralSeries",n,d)}\\
3202
\texttt{UniversalBarCode("UpperCentralSeries",n,d,k)}\\
3203
3204
3205
Inputs integers $n,d$ that identify a prime power group G=SmallGroup(n,d), together with one of the
3206
strings "UpperCentralSeries", LowerCentralSeries", "DerivedSeries",
3207
"UpperPCentralSeries", "LowerPCentralSeries". The function returns a matrix of
3208
rational functions; the coefficients of $x^k$ in their expansions yield the persistence matrix for the degree $k$ homology with trivial mod p coefficients associated to the quotients of $G$ by the terms of the given series.
3209
3210
If the additional integer argument $k$ is supplied then the function returns the degree k homology persistence
3211
matrix. \\
3212
\\
3213
\\
3214
\\
3215
\index{PersistentHomologyOfSubGroupSeries}::::::::::::::::::::::::\\
3216
\texttt{PersistentHomologyOfSubGroupSeries(S,n)}\\
3217
\texttt{PersistentHomologyOfSubGroupSeries(S,n,p,Resolution{\textunderscore}Algorithm)}\\
3218
3219
3220
Inputs a positive integer $n$ and a decreasing chain $S=[S_1, S_2, ..., S_k]$ of subgroups in a finite $p$-group $G=S_1$. It returns the bar code of the persistent mod $p$ homology in degree $n$ of the sequence of inclusion homomorphisms $S_k \rightarrow S_{k-1} \rightarrow ... \rightarrow S_1=G $. The bar code is returned as a binary matrix.
3221
3222
Non prime-power (and possibly infinite) groups $G$ can also be handled; in this case the prime must be entered as a third
3223
argument, and the resolution algorithm (e.g. ResolutionNilpotentGroup) must be
3224
entered as a fourth argument. \\
3225
\\
3226
\\
3227
\\
3228
\index{PersistentHomologyOfFilteredChainComplex}::::::::::::::::::::::::\\
3229
\texttt{PersistentHomologyOfFilteredChainComplex(C,n,p) }\\
3230
3231
3232
Inputs a filtered chain complex $C$ (of characteristic $0$ or $p$) together with a positive integer $n$ and prime $p$. It returns the bar code of the persistent mod $p$ homology in degree $n$ of the filtered chain complex $C$. (This function needs a more efficient implementation. Its fine as it stands
3233
for investigation in group homology, but not sufficiently efficient for the
3234
homology of large complexes arising in applied topology.) \\
3235
\\
3236
\\
3237
\\
3238
\texttt{PersistentHomologyOfCommutativeDiagramOfPGroups(D,n) }\\
3239
3240
3241
Inputs a commutative diagram $D$ of finite $p$-groups and a positive integer $n$. It returns a list containing, for each homomorphism in the nerve of $D$, a triple $[k,l,m]$ where $k$ is the dimension of the source of the induced mod $p$ homology map in degree $n$, $l$ is the dimension of the image, and $m$ is the dimension of the cokernel. \\
3242
\\
3243
\\
3244
\\
3245
\index{PersistentHomologyOfFilteredPureCubicalComplex}::::::::::::::::::::::::\\
3246
\texttt{PersistentHomologyOfFilteredPureCubicalComplex(M,n)}\\
3247
3248
3249
Inputs a filtered pure cubical complex $M$ and a non-negative integer $n$. It returns the degree $n$ persistent homology of $ M$ with rational coefficients. \\
3250
\\
3251
\\
3252
\\
3253
\index{PersistentHomologyOfPureCubicalComplex}::::::::::::::::::::::::\\
3254
\texttt{PersistentHomologyOfPureCubicalComplex(L,n,p)}\\
3255
3256
3257
Inputs a positive integer $n$, a prime $p$ and an increasing chain $L=[L_1, L_2, ..., L_k]$ of subcomplexes in a pure cubical complex $L_k$. It returns the bar code of the persistent mod $p$ homology in degree $n$ of the sequence of inclusion maps. The bar code is returned as a matrix. (This
3258
function is extremely inefficient and it is better to use
3259
PersistentHomologyOFilteredfPureCubicalComplex.
3260
3261
\\
3262
\\
3263
\\
3264
\\
3265
\index{ZZPersistentHomologyOfPureCubicalComplex}::::::::::::::::::::::::\\
3266
\texttt{ZZPersistentHomologyOfPureCubicalComplex(L,n,p)}\\
3267
3268
3269
Inputs a positive integer $n$, a prime $p$ and any sequence $L=[L_1, L_2, ..., L_k]$ of subcomplexes of some pure cubical complex. It returns the bar code of the
3270
zig-zag persistent mod $p$ homology in degree $n$ of the sequence of maps $L_1 \rightarrow L_1 \cup L_2 \leftarrow L_2 \rightarrow L_2 \cup L_3
3271
\leftarrow L_4 \rightarrow ... \leftarrow L_k$. The bar code is returned as a matrix.
3272
3273
\\
3274
\\
3275
\\
3276
\\
3277
\index{RipsHomology}::::::::::::::::::::::::\\
3278
\texttt{RipsHomology(G,n)}\\
3279
\texttt{RipsHomology(G,n,p)}\\
3280
3281
3282
Inputs a graph $G$, a non-negative integer $n$ (and optionally a prime number $p$). It returns the integral homology (or mod p homology) in degree $n$ of the Rips complex of $G$. \\
3283
\\
3284
\\
3285
\\
3286
\index{BarCode}::::::::::::::::::::::::\\
3287
\texttt{BarCode(P)}\\
3288
3289
3290
Inputs an integer persistence matrix P and returns the same information in the
3291
form of a binary matrix (corresponding to the usual bar code). \\
3292
\\
3293
\\
3294
\\
3295
\index{BarCodeDisplay}::::::::::::::::::::::::\\
3296
\index{BarCodeCompactDisplay}::::::::::::::::::::::::\\
3297
\texttt{BarCodeDisplay(P)}\\
3298
\texttt{BarCodeDisplay(P,"mozilla")}\\
3299
\texttt{BarCodeCompactDisplay(P)}\\
3300
\texttt{BarCodeCompactDisplay(P,"mozilla")}\\
3301
3302
3303
Inputs an integer persistence matrix P, and an optional string specifying a
3304
viewer/browser. It displays a picture of the bar code (using GraphViz
3305
software). The compact display is better for large bar codes. \\
3306
\\
3307
\\
3308
\\
3309
\index{Homology}::::::::::::::::::::::::\\
3310
\texttt{Homology(X,n)}\\
3311
3312
3313
Inputs either a chain complex $X=C$ or a chain map $X=(C \longrightarrow D)$. \\
3314
\\
3315
If $X=C$ then the torsion coefficients of $H_n(C)$ are retuned.\\
3316
\\
3317
If $X=(C \longrightarrow D)$ then the induced homomorphism $H_n(C) \longrightarrow H_n(D)$ is returned as a homomorphism of finitely presented groups. \\
3318
\\
3319
A $G$-complex $C$ can also be input. The homology groups of such a complex may not be abelian. \textsc{Warning:} in this case Homology(C,n) returns the abelian invariants of the $n$-th homology group of $C$. \\
3320
\\
3321
\\
3322
\\
3323
\index{HomologyPb}::::::::::::::::::::::::\\
3324
\texttt{HomologyPb(C,n)}\\
3325
3326
3327
This is a back-up function which might work in some instances where $Homology(C,n)$ fails. It is most useful for chain complexes whose boundary homomorphisms are
3328
sparse.
3329
3330
It inputs a chain complex $C$ in characteristic $0$ and returns the torsion coefficients of $H_n(C)$ . There is a small probability that an incorrect answer could be returned. The
3331
computation relies on probabilistic Smith Normal Form algorithms implemented
3332
in the Simplicial Homology GAP package. This package therefore needs to be
3333
loaded. The computation is stored as a component of $C$ so, when called a second time for a given $C$ and $n$, the calculation is recalled without rerunning the algorithm.
3334
3335
The choice of probabalistic algorithm can be changed using the command
3336
3337
SetHomologyAlgorithm(HomologyAlgorithm[i]);
3338
3339
where i = 1,2,3 or 4. The upper limit for the probability of an incorrect
3340
answer can be set to any rational number $0${\textless}$e${\textless}= $1$ using the following command.
3341
3342
SetUncertaintyTolerence(e);
3343
3344
See the Simplicial Homology package manual for further details. \\
3345
\\
3346
\\
3347
\\
3348
\index{HomologyVectorSpace}::::::::::::::::::::::::\\
3349
\texttt{HomologyVectorSpace(X,n)}\\
3350
3351
3352
Inputs either a chain complex $X=C$ or a chain map $X=(C \longrightarrow D)$ in prime characteristic. \\
3353
\\
3354
If $X=C$ then $H_n(C)$ is retuned as a vector space.\\
3355
\\
3356
If $X=(C \longrightarrow D)$ then the induced homomorphism $H_n(C) \longrightarrow H_n(D)$ is returned as a homomorphism of vector spaces. \\
3357
\\
3358
\\
3359
\\
3360
\\
3361
\\
3362
\index{HomologyPrimePart}::::::::::::::::::::::::\\
3363
\texttt{HomologyPrimePart(C,n,p)}\\
3364
3365
3366
Inputs a chain complex $C$ in characteristic 0, a positive integer $n$, and a prime $p$. It returns a list of those torsion coefficients of $H_n(C)$ that are positive powers of $p$. The function uses the EDIM GAP package by Frank Luebeck. \\
3367
\\
3368
\\
3369
\\
3370
\index{LeibnizAlgebraHomology}::::::::::::::::::::::::\\
3371
\texttt{LeibnizAlgebraHomology(A,n)}\\
3372
3373
3374
Inputs a Lie or Leibniz algebra $X=A$ (over the ring of integers $Z$ or over a field $K$), together with a positive integer $n$. It returns the $n$-dimensional Leibniz homology of $A$. \\
3375
\\
3376
\\
3377
\\
3378
\index{LieAlgebraHomology}::::::::::::::::::::::::\\
3379
\texttt{LieAlgebraHomology(A,n)}\\
3380
3381
3382
Inputs a Lie algebra $A$ (over the integers or a field) and a positive integer $n$. It returns the homology $H_n(A,k)$ where $k$ denotes the ground ring. \\
3383
\\
3384
\\
3385
\\
3386
\index{PrimePartDerivedFunctor}::::::::::::::::::::::::\\
3387
\texttt{PrimePartDerivedFunctor(G,R,F,n)}\\
3388
3389
3390
Inputs a finite group $G$, a positive integer $n$, at least $n+1$ terms of a $ZP$-resolution for a Sylow subgroup $P${\textless}$G$ and a "mathematically suitable" covariant additive functor $F$ such as TensorWithIntegers . It returns the abelian invariants of the $p$-component of the homology $H_n(F(R))$ .
3391
3392
Warning: All calculations are assumed to be in characteristic 0. The function
3393
should not be used if the coefficient module is over the field of $p$ elements.
3394
3395
"Mathematically suitable" means that the Cartan-Eilenberg double coset formula
3396
must hold. \\
3397
\\
3398
\\
3399
\\
3400
\index{RankHomologyPGroup}::::::::::::::::::::::::\\
3401
\texttt{RankHomologyPGroup(G,n)}\\
3402
\texttt{RankHomologyPGroup(R,n)}\\
3403
\texttt{RankHomologyPGroup(G,n,"empirical")}\\
3404
3405
3406
Inputs a (smallish) $p$-group $G$, or $n$ terms of a minimal $Z_pG$-resolution $R$ of $Z_p$ , together with a positive integer $n$. It returns the minimal number of generators of the integral homology group $H_n(G,Z)$.
3407
3408
If an option third string argument "empirical" is included then an empirical
3409
algorithm will be used. This is one which always seems to yield the right
3410
answer but which we can't prove yields the correct answer. \\
3411
\\
3412
\\
3413
\\
3414
\index{RankPrimeHomology}::::::::::::::::::::::::\\
3415
\texttt{RankPrimeHomology(G,n)}\\
3416
3417
3418
Inputs a (smallish) $p$-group $G$ together with a positive integer $n$. It returns a function $dim(k)$ which gives the rank of the vector space $H_k(G,Z_p)$ for all $0$ {\textless}= $k$ {\textless}= $n$. \\
3419
\\
3420
\\
3421
}
3422
3423
3424
\chapter{\textcolor{Chapter }{ Poincare series}}\logpage{[ 12, 0, 0 ]}
3425
\hyperdef{L}{X850CDAFE801E2B2A}{}
3426
{
3427
\\
3428
\\
3429
\\
3430
\texttt{EfficientNormalSubgroups(G)}\\
3431
\texttt{EfficientNormalSubgroups(G,k)}\\
3432
3433
3434
Inputs a prime-power group $G$ and, optionally, a positive integer $k$. The default is $k=4$. The function returns a list of normal subgroups $N$ in $G$ such that the Poincare series for $G$ equals the Poincare series for the direct product $(N \times (G/N))$ up to degree $k$. \\
3435
\\
3436
\\
3437
\\
3438
\index{ExpansionOfRationalFunction}::::::::::::::::::::::::\\
3439
\texttt{ExpansionOfRationalFunction(f,n)}\\
3440
3441
3442
Inputs a positive integer $n$ and a rational function $f(x)=p(x)/q(x)$ where the degree of the polynomial $p(x)$ is less than that of $q(x)$. It returns a list $[a_0 , a_1 , a_2 , a_3 , \ldots ,a_n]$ of the first $n+1$ coefficients of the infinite expansion
3443
3444
$f(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + \ldots $ . \\
3445
\\
3446
\\
3447
\\
3448
\index{PoincareSeries}::::::::::::::::::::::::\\
3449
\texttt{PoincareSeries(G,n) }\\
3450
\texttt{ PoincareSeries(R,n) }\\
3451
\texttt{ PoincareSeries(L,n) }\\
3452
\texttt{ PoincareSeries(G) }\\
3453
3454
3455
Inputs a finite $p$-group $G$ and a positive integer $n$. It returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose coefficient of $x^k$ equals the rank of the vector space $H_k(G,Z_p)$ for all $k$ in the range $k=1$ to $k=n$. (The second input variable can be omitted, in which case the function tries
3456
to choose a "reasonable" value for $n$. For $2$-groups the function PoincareSeriesLHS(G) can be used to produce an $f(x)$ that is correct in all degrees.)
3457
3458
In place of the group $G$ the function can also input (at least $n$ terms of) a minimal mod $p$ resolution $R$ for $G$.
3459
3460
Alternatively, the first input variable can be a list $L$ of integers. In this case the coefficient of $x^k$ in $f(x)$ is equal to the $(k+1)$st term in the list. \\
3461
\\
3462
\\
3463
\\
3464
\index{PoincareSeriesPrimePart}::::::::::::::::::::::::\\
3465
\texttt{PoincareSeriesPrimePart(G,p,n) }\\
3466
3467
3468
Inputs a finite group $G$, a prime $p$, and a positive integer $n$. It returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose coefficient of $x^k$ equals the rank of the vector space $H_k(G,Z_p)$ for all $k$ in the range $k=1$ to $k=n$.
3469
3470
The efficiency of this function needs to be improved. \\
3471
\\
3472
\\
3473
\\
3474
\texttt{PoincareSeriesLHS(G) }\\
3475
3476
3477
Inputs a finite $2$-group $G$ and returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose coefficient of $x^k$ equals the rank of the vector space $H_k(G,Z_2)$ for all $k$.
3478
3479
This function was written by \textsc{Paul Smith}. It use the Singular system for commutative algebra. \\
3480
\\
3481
\\
3482
\\
3483
\index{Prank}::::::::::::::::::::::::\\
3484
\texttt{Prank(G) }\\
3485
3486
3487
Inputs a $p$-group $G$ and returns the rank of the largest elementary abelian subgroup. \\
3488
\\
3489
\\
3490
}
3491
3492
3493
\chapter{\textcolor{Chapter }{ Cohomology ring structure}}\logpage{[ 13, 0, 0 ]}
3494
\hyperdef{L}{X7A9561E47A4994F5}{}
3495
{
3496
\\
3497
\\
3498
\\
3499
\index{IntegralCupProduct}::::::::::::::::::::::::\\
3500
\texttt{IntegralCupProduct(R,u,v,p,q) }\\
3501
\texttt{ IntegralCupProduct(R,u,v,p,q,P,Q,N) }\\
3502
3503
3504
(Various functions used to construct the cup product are also \href{ CR_functions.html} {available}.)
3505
3506
Inputs a $ZG$-resolution $R$, a vector $u$ representing an element in $H^p(G,Z)$, a vector $v$ representing an element in $H^q(G,Z)$ and the two integers $p,q$ {\textgreater}$ 0$. It returns a vector $w$ representing the cup product $u\cdot v$ in $H^{p+q}(G,Z)$. This product is associative and $u\cdot v = (-1)pqv\cdot u$ . It provides $H^\ast(G,Z)$ with the structure of an anti-commutative graded ring. This function
3507
implements the cup product for characteristic 0 only.
3508
3509
The resolution $R$ needs a contracting homotopy.
3510
3511
To save the function from having to calculate the abelian groups $H^n(G,Z)$ additional input variables can be used in the form $IntegralCupProduct(R,u,v,p,q,P,Q,N)$ , where \\
3512
\\
3513
$P$ is the output of the command $CR_CocyclesAndCoboundaries(R,p,true)$ \\
3514
\\
3515
$Q$ is the output of the command $CR_CocyclesAndCoboundaries(R,q,true)$\\
3516
\\
3517
$N$ is the output of the command $CR_CocyclesAndCoboundaries(R,p+q,true)$ . \\
3518
\\
3519
\\
3520
\\
3521
\\
3522
\\
3523
\index{IntegralRingGenerators}::::::::::::::::::::::::\\
3524
\texttt{IntegralRingGenerators(R,n) }\\
3525
3526
3527
Inputs at least $n+1$ terms of a $ZG$-resolution and integer $n${\textgreater} $0$. It returns a minimal list of cohomology classes in $H^n(G,Z)$ which, together with all cup products of lower degree classes, generate the
3528
group $H^n(G,Z)$ .
3529
3530
(Let $a_i$ be the $i$-th canonical generator of the $d$-generator abelian group $H^n(G,Z)$. The cohomology class $n_1a_1 + ... +n_da_d$ is represented by the integer vector $u=(n_1, ..., n_d)$. ) \\
3531
\\
3532
\\
3533
\\
3534
\index{ModPCohomologyGenerators}::::::::::::::::::::::::\\
3535
\texttt{ModPCohomologyGenerators(G,n) }\\
3536
\texttt{ModPCohomologyGenerators(R) }\\
3537
3538
3539
Inputs either a $p$-group $G$ and positive integer $n$, or else $n$ terms of a minimal $Z_pG$-resolution $R$ of $Z_p$. It returns a pair whose first entry is a minimal set of homogeneous
3540
generators for the cohomology ring $A=H^*(G,Z_p)$ modulo all elements in degree greater than $n$. The second entry of the pair is a function $deg$ which, when applied to a minimal generator, yields its degree.
3541
3542
WARNING: the following rule must be applied when multiplying generators $x_i$ together. Only products of the form $x_1*(x_2*(x_3*(x_4*...)))$ with $deg(x_i) \le deg(x_{i+1})$ should be computed (since the $x_i$ belong to a structure constant algebra with only a partially defined structure
3543
constants table). \\
3544
\\
3545
\\
3546
\\
3547
\index{ModPCohomologyRing}::::::::::::::::::::::::\\
3548
\texttt{ModPCohomologyRing(G,n) }\\
3549
\texttt{ModPCohomologyRing(G,n,level) }\\
3550
\texttt{ModPCohomologyRing(R) }\\
3551
\texttt{ModPCohomologyRing(R,level)}\\
3552
3553
3554
Inputs either a $p$-group $G$ and positive integer $n$, or else $n$ terms of a minimal $Z_pG$-resolution $R$ of $Z_p$. It returns the cohomology ring $A=H^*(G,Z_p)$ modulo all elements in degree greater than $n$.
3555
3556
The ring is returned as a structure constant algebra $A$.
3557
3558
The ring $A$ is graded. It has a component $A!.degree(x)$ which is a function returning the degree of each (homogeneous) element $x$ in $GeneratorsOfAlgebra(A)$.
3559
3560
An optional input variable "level" can be set to one of the strings "medium"
3561
or "high". These settings determine parameters in the algorithm. The default
3562
setting is "medium".
3563
3564
When "level" is set to "high" the ring $A$ is returned with a component $A!.niceBasis$. This component is a pair $[Coeff,Bas]$. Here $Bas$ is a list of integer lists; a "nice" basis for the vector space $A$ can be constructed using the command $List(Bas,x->Product(List(x,i->Basis(A)[i]))$. The coefficients of the canonical basis element $Basis(A)[i]$ are stored as $Coeff[i]$.
3565
3566
If the ring $A$ is computed using the setting "level"="medium" then the component $A!.niceBasis$ can be added to $A$ using the command $ A:=ModPCohomologyRing_part_2(A) $. \\
3567
\\
3568
\\
3569
\\
3570
\index{ModPRingGenerators}::::::::::::::::::::::::\\
3571
\texttt{ModPRingGenerators(A) }\\
3572
3573
3574
Inputs a mod $p$ cohomology ring $A$ (created using the preceeding function). It returns a minimal generating set
3575
for the ring $A$. Each generator is homogeneous. \\
3576
\\
3577
\\
3578
\\
3579
\texttt{Mod2CohomologyRingPresentation(G) }\\
3580
\texttt{Mod2CohomologyRingPresentation(G,n) }\\
3581
\texttt{Mod2CohomologyRingPresentation(A) }\\
3582
\texttt{Mod2CohomologyRingPresentation(R)}\\
3583
3584
3585
When applied to a finite $2$-group $G$ this function returns a presentation for the mod 2 cohomology ring $H^*(G,Z_2)$. The Lyndon-Hochschild-Serre spectral sequence is used to prove that the
3586
presentation is correct.
3587
3588
When the function is applied to a $2$-group $G$ and positive integer $n$ the function first constructs $n$ terms of a free $Z_2G$-resolution $R$, then constructs the finite-dimensional graded algebra $A=H^(*\le n)(G,Z_2)$, and finally uses $A$ to approximate a presentation for $H^*(G,Z_2)$. For "sufficiently large" the approximation will be a correct presentation
3589
for $H^*(G,Z_2)$.
3590
3591
Alternatively, the function can be applied directly to either the resolution $R$ or graded algebra $A$.
3592
3593
This function was written by \textsc{Paul Smith}. It uses the Singular commutative algebra package to handle the
3594
Lyndon-Hochschild-Serre spectral sequence. \\
3595
\\
3596
\\
3597
}
3598
3599
3600
\chapter{\textcolor{Chapter }{ Cohomology rings of $p$-groups (mainly $p=2)$}}\logpage{[ 14, 0, 0 ]}
3601
\hyperdef{L}{X84A36BFC7E73C2BF}{}
3602
{
3603
The functions on this page were written by \textsc{Paul Smith}. (They are included in HAP but they are also independently included in Paul
3604
Smiths HAPprime package.) \\
3605
\\
3606
\\
3607
\index{Mod2CohomologyRingPresentation (HAPprime)}::::::::::::::::::::::::\\
3608
\texttt{Mod2CohomologyRingPresentation(G) }\\
3609
\texttt{Mod2CohomologyRingPresentation(G,n) }\\
3610
\texttt{Mod2CohomologyRingPresentation(A) }\\
3611
\texttt{Mod2CohomologyRingPresentation(R) }\\
3612
3613
3614
When applied to a finite $2$-group $G$ this function returns a presentation for the mod 2 cohomology ring $H^*(G,Z_2)$. The Lyndon-Hochschild-Serre spectral sequence is used to prove that the
3615
presentation is correct.
3616
3617
When the function is applied to a $2$-group $G$ and positive integer $n$ the function first constructs $n$ terms of a free $Z_2G$-resolution $R$, then constructs the finite-dimensional graded algebra $A=H^(*\le n)(G,Z_2)$, and finally uses $A$ to approximate a presentation for $H^*(G,Z_2)$. For "sufficiently large" the approximation will be a correct presentation
3618
for $H^*(G,Z_2)$.
3619
3620
Alternatively, the function can be applied directly to either the resolution $R$ or graded algebra $A$.
3621
3622
This function was written by \textsc{Paul Smith}. It uses the Singular commutative algebra package to handle the
3623
Lyndon-Hochschild-Serre spectral sequence. \\
3624
\\
3625
\\
3626
\\
3627
\index{PoincareSeriesLHS (HAPprime)}::::::::::::::::::::::::\\
3628
\texttt{PoincareSeriesLHS(G) }\\
3629
3630
3631
Inputs a finite $2$-group $G$ and returns a quotient of polynomials $f(x)=P(x)/Q(x)$ whose coefficient of $x^k$ equals the rank of the vector space $H_k(G,Z_2)$ for all $k$.
3632
3633
This function was written by \textsc{Paul Smith}. It use the Singular system for commutative algebra. \\
3634
\\
3635
\\
3636
}
3637
3638
3639
\chapter{\textcolor{Chapter }{ Commutator and nonabelian tensor computations}}\logpage{[ 15, 0, 0 ]}
3640
\hyperdef{L}{X86DE968B7B20BD48}{}
3641
{
3642
\\
3643
\\
3644
\\
3645
\index{BaerInvariant}::::::::::::::::::::::::\\
3646
\texttt{BaerInvariant(G,c) }\\
3647
3648
3649
Inputs a nilpotent group $G$ and integer $c${\textgreater}$0$. It returns the Baer invariant $M^(c)(G)$ defined as follows. For an arbitrary group $G$ let $L^*_{c+1}(G)$ be the $(c+1)$-st term of the upper central series of the group $U=F/[[[R,F],F]...]$ (with $c$ copies of $F$ in the denominator) where $F/R$ is any free presentation of $G$. This is an invariant of $G$ and we define $M^{(c)}(G)$ to be the kernel of the canonical homomorphism $M^{(c)}(G) \longrightarrow G$. For $c=1$ the Baer invariant $M^(1)(G)$ is isomorphic to the second integral homology $H_2(G,Z)$.
3650
3651
This function requires the NQ package. \\
3652
\\
3653
\\
3654
\\
3655
\index{BogomolovMultiplier}::::::::::::::::::::::::\\
3656
\texttt{BogomolovMultiplier(G) }\\
3657
\\
3658
\texttt{BogomolovMultiplier(G, "standard") }\\
3659
\texttt{BogomolovMultiplier(G, "homology") }\\
3660
\texttt{BogomolovMultiplier(G, "tensor") }\\
3661
3662
3663
Inputs a finite group $G$ and returns the quotient $H_2(G,Z)/K(G)$ of the second integral homology of $G$ where $K(G)$ is the subgroup of $H_2(G,Z)$ generated by the images of all homomorphisms $H_2(A,Z) \rightarrow H_2(G,Z)$ induced from abelian subgroups of $G$.
3664
3665
Three slight variants of the implementation are available. The defaults
3666
"standard" implementation seems to work best on average. But for some groups
3667
the "homology" implementation or the "tensor" implementation will be faster.
3668
The variants are called by including the appropriate string as the second
3669
argument. \\
3670
\\
3671
\\
3672
\\
3673
\index{Bogomology}::::::::::::::::::::::::\\
3674
\texttt{Bogomology(G,n) }\\
3675
3676
3677
Inputs a finite group $G$ and positive integer $n$, and returns the quotient $H_n(G,Z)/K(G)$ of the degree $n$ integral homology of $G$ where $K(G)$ is the subgroup of $H_n(G,Z)$ generated by the images of all homomorphisms $H_n(A,Z) \rightarrow H_n(G,Z)$ induced from abelian subgroups of $G$. \\
3678
\\
3679
\\
3680
\\
3681
\index{Coclass}::::::::::::::::::::::::\\
3682
\texttt{Coclass(G) }\\
3683
3684
3685
Inputs a group $G$ of prime-power order $p^n$ and nilpotency class $c$ say. It returns the integer $r=n-c$ . \\
3686
\\
3687
\\
3688
\\
3689
\index{EpiCentre}::::::::::::::::::::::::\\
3690
\texttt{EpiCentre(G,N) }\\
3691
\texttt{EpiCentre(G)}\\
3692
3693
3694
Inputs a finite group $G$ and normal subgroup $N$ and returns a subgroup $Z^\ast(G,N)$ of the centre of $N$. The group $Z^\ast(G,N)$ is trivial if and only if there is a crossed module $d:E \longrightarrow G$ with $N=Image(d)$ and with $Ker(d)$ equal to the subgroup of $E$ consisting of those elements on which $G$ acts trivially.
3695
3696
If no value for $N$ is entered then it is assumed that $N=G$. In this case the group $Z^\ast(G,G)$ is trivial if and only if $G$ is isomorphic to a quotient $G=E/Z(E)$ of some group $E$ by the centre of $E$. (See also the command $UpperEpicentralSeries(G,c)$. ) \\
3697
\\
3698
\\
3699
\\
3700
\index{NonabelianExteriorProduct}::::::::::::::::::::::::\\
3701
\texttt{NonabelianExteriorProduct(G,N) }\\
3702
3703
3704
Inputs a finite group $G$ and normal subgroup $N$. It returns a record $E$ with the following components. \\
3705
\\
3706
$E.homomorphism$ is a group homomorphism ${\ensuremath{\mu}} : (G \wedge N) \longrightarrow G$ from the nonabelian exterior product $(G \wedge N)$ to $G$. The kernel of ${\ensuremath{\mu}}$ is the relative Schur multiplier. \\
3707
\\
3708
$E.pairing(x,y)$ is a function which inputs an element $x$ in $G$ and an element $y$ in $N$ and returns $(x \wedge y)$ in the exterior product $(G \wedge N)$ . \\
3709
\\
3710
This function should work for reasonably small nilpotent groups or extremely
3711
small non-nilpotent groups. \\
3712
\\
3713
\\
3714
\\
3715
\index{NonabelianSymmetricKernel}::::::::::::::::::::::::\\
3716
\texttt{NonabelianSymmetricKernel(G) }\\
3717
\texttt{NonabelianSymmetricKernel(G,m) }\\
3718
3719
3720
Inputs a finite or nilpotent infinite group $G$ and returns the abelian invariants of the Fourth homotopy group $SG$ of the double suspension $SSK(G,1)$ of the Eilenberg-Mac Lane space $K(G,1)$.
3721
3722
For non-nilpotent groups the implementation of the function $NonabelianSymmetricKernel(G)$ is far from optimal and will soon be improved. As a temporary solution to this
3723
problem, an optional second variable $m$ can be set equal to $0$, and then the function efficiently returns the abelian invariants of groups $A$ and $B$ such that there is an exact sequence $0 \longrightarrow B \longrightarrow SG \longrightarrow A \longrightarrow 0$.
3724
3725
Alternatively, the optional second varible $m$ can be set equal to a positive multiple of the order of the symmetric square $(G \tilde\otimes G)$. In this case the function returns the abelian invariants of $SG$. This might help when $G$ is solvable but not nilpotent (especially if the estimated upper bound $m$ is reasonable accurate). \\
3726
\\
3727
\\
3728
\\
3729
\index{NonabelianSymmetricSquare}::::::::::::::::::::::::\\
3730
\texttt{NonabelianSymmetricSquare(G) }\\
3731
\texttt{NonabelianSymmetricSquare(G,m) }\\
3732
3733
3734
Inputs a finite or nilpotent infinite group $G$ and returns a record $T$ with the following components. \\
3735
\\
3736
$T.homomorphism$ is a group homomorphism ${\ensuremath{\mu}} : (G \tilde\otimes G) \longrightarrow G$ from the nonabelian symmetric square of $G$ to $G$. The kernel of ${\ensuremath{\mu}}$ is isomorphic to the fourth homotopy group of the double suspension $SSK(G,1)$ of an Eilenberg-Mac Lane space. \\
3737
\\
3738
$T.pairing(x,y)$ is a function which inputs two elements $x, y$ in $G$ and returns the tensor $(x \otimes y)$ in the symmetric square $(G \otimes G)$ . \\
3739
\\
3740
An optional second varible $m$ can be set equal to a multiple of the order of the symmetric square $(G \tilde\otimes G)$. This might help when $G$ is solvable but not nilpotent (especially if the estimated upper bound $m$ is reasonable accurate) as the bound is used in the solvable quotient
3741
algorithm.
3742
3743
The optional second variable $m$ can also be set equal to $0$. In this case the Todd-Coxeter procedure will be used to enumerate the
3744
symmetric square even when $G$ is solvable.
3745
3746
This function should work for reasonably small solvable groups or extremely
3747
small non-solvable groups. \\
3748
\\
3749
\\
3750
\\
3751
\index{NonabelianTensorProduct}::::::::::::::::::::::::\\
3752
\texttt{NonabelianTensorProduct(G,N) }\\
3753
3754
3755
Inputs a finite group $G$ and normal subgroup $N$. It returns a record $E$ with the following components. \\
3756
\\
3757
$E.homomorphism$ is a group homomorphism ${\ensuremath{\mu}} : (G \otimes N ) \longrightarrow G$ from the nonabelian exterior product $(G \otimes N)$ to $G$. \\
3758
\\
3759
$E.pairing(x,y)$ is a function which inputs an element $x$ in $G$ and an element $y$ in $N$ and returns $(x \otimes y)$ in the tensor product $(G \otimes N)$ . \\
3760
\\
3761
This function should work for reasonably small nilpotent groups or extremely
3762
small non-nilpotent groups. \\
3763
\\
3764
\\
3765
\\
3766
\index{NonabelianTensorSquare}::::::::::::::::::::::::\\
3767
\texttt{NonabelianTensorSquare(G) }\\
3768
\texttt{NonabelianTensorSquare(G,m) }\\
3769
3770
3771
Inputs a finite or nilpotent infinite group $G$ and returns a record $T$ with the following components. \\
3772
\\
3773
$T.homomorphism$ is a group homomorphism ${\ensuremath{\mu}} : (G \otimes G) \longrightarrow G$ from the nonabelian tensor square of $G$ to $G$. The kernel of ${\ensuremath{\mu}}$ is isomorphic to the third homotopy group of the suspension $SK(G,1)$ of an Eilenberg-Mac Lane space. \\
3774
\\
3775
$T.pairing(x,y)$ is a function which inputs two elements $x, y$ in $G$ and returns the tensor $(x \otimes y)$ in the tensor square $(G \otimes G)$ . \\
3776
\\
3777
An optional second varible $m$ can be set equal to a multiple of the order of the tensor square $(G \otimes G)$. This might help when $G$ is solvable but not nilpotent (especially if the estimated upper bound $m$ is reasonable accurate) as the bound is used in the solvable quotient
3778
algorithm.
3779
3780
The optional second variable $m$ can also be set equal to $0$. In this case the Todd-Coxeter procedure will be used to enumerate the tensor
3781
square even when $G$ is solvable.
3782
3783
This function should work for reasonably small solvable groups or extremely
3784
small non-solvable groups. \\
3785
\\
3786
\\
3787
\\
3788
\index{RelativeSchurMultiplier}::::::::::::::::::::::::\\
3789
\texttt{RelativeSchurMultiplier(G,N) }\\
3790
3791
3792
Inputs a finite group $G$ and normal subgroup $N$. It returns the homology group $H_2(G,N,Z)$ that fits into the exact sequence
3793
3794
$\ldots\longrightarrow H_3(G,Z) \longrightarrow H_3(G/N,Z) \longrightarrow
3795
H_2(G,N,Z) \longrightarrow H_3(G,Z) \longrightarrow H_3(G/N,Z) \longrightarrow
3796
\ldots. $
3797
3798
This function should work for reasonably small nilpotent groups $G$ or extremely small non-nilpotent groups. \\
3799
\\
3800
\\
3801
\\
3802
\index{TensorCentre}::::::::::::::::::::::::\\
3803
\texttt{TensorCentre(G) }\\
3804
3805
3806
Inputs a group $G$ and returns the largest central subgroup $N$ such that the induced homomorphism of nonabelian tensor squares $(G \otimes G) \longrightarrow (G/N \otimes G/N)$ is an isomorphism. Equivalently, $N$ is the largest central subgroup such that $\pi_3(SK(G,1)) \longrightarrow \pi_3(SK(G/N,1))$ is injective. \\
3807
\\
3808
\\
3809
\\
3810
\index{ThirdHomotopyGroupOfSuspensionB}::::::::::::::::::::::::\\
3811
\texttt{ThirdHomotopyGroupOfSuspensionB(G) }\\
3812
\texttt{ThirdHomotopyGroupOfSuspensionB(G,m) }\\
3813
3814
3815
Inputs a finite or nilpotent infinite group $G$ and returns the abelian invariants of the third homotopy group $JG$ of the suspension $SK(G,1)$ of the Eilenberg-Mac Lane space $K(G,1)$.
3816
3817
For non-nilpotent groups the implementation of the function $ThirdHomotopyGroupOfSuspensionB(G)$ is far from optimal and will soon be improved. As a temporary solution to this
3818
problem, an optional second variable $m$ can be set equal to $0$, and then the function efficiently returns the abelian invariants of groups $A$ and $B$ such that there is an exact sequence $0 \longrightarrow B \longrightarrow JG \longrightarrow A \longrightarrow 0$.
3819
3820
Alternatively, the optional second varible $m$ can be set equal to a positive multiple of the order of the tensor square $(G \otimes G)$. In this case the function returns the abelian invariants of $JG$. This might help when $G$ is solvable but not nilpotent (especially if the estimated upper bound $m$ is reasonable accurate). \\
3821
\\
3822
\\
3823
\\
3824
\index{UpperEpicentralSeries}::::::::::::::::::::::::\\
3825
\texttt{UpperEpicentralSeries(G,c) }\\
3826
3827
3828
Inputs a nilpotent group $G$ and an integer $c$. It returns the $c$-th term of the upper epicentral series $1$ {\textless} $ Z_1^\ast(G)$ {\textless} $Z_2^\ast(G)$ {\textless} $ \ldots $.
3829
3830
The upper epicentral series is defined for an arbitrary group $G$. The group $Z_c^\ast (G)$ is the image in $G$ of the $c$-th term $Z_c(U)$ of the upper central series of the group $U=F/[[[R,F],F] \ldots ]$ (with $c$ copies of $F$ in the denominator) where $F/R$ is any free presentation of $G$.
3831
3832
This functions requires the NQ package. \\
3833
\\
3834
\\
3835
}
3836
3837
3838
\chapter{\textcolor{Chapter }{ Lie commutators and nonabelian Lie tensors}}\logpage{[ 16, 0, 0 ]}
3839
\hyperdef{L}{X7A3DC9327EE1BE6C}{}
3840
{
3841
\\
3842
\\
3843
\\
3844
Functions on this page are joint work with \textsc{Hamid Mohammadzadeh}, and implemented by him. \\
3845
\\
3846
\\
3847
\\
3848
\index{LieCoveringHomomorphism}::::::::::::::::::::::::\\
3849
\texttt{LieCoveringHomomorphism(L)}\\
3850
3851
3852
Inputs a finite dimensional Lie algebra $L$ over a field, and returns a surjective Lie homomorphism $phi : C\rightarrow L$ where: \\
3853
\\
3854
the kernel of $phi$ lies in both the centre of $C$ and the derived subalgebra of $C$, \\
3855
\\
3856
the kernel of $phi$ is a vector space of rank equal to the rank of the second Chevalley-Eilenberg
3857
homology of $L$. \\
3858
\\
3859
\\
3860
\\
3861
\\
3862
\\
3863
\index{LeibnizQuasiCoveringHomomorphism}::::::::::::::::::::::::\\
3864
\texttt{LeibnizQuasiCoveringHomomorphism(L)}\\
3865
3866
3867
Inputs a finite dimensional Lie algebra $L$ over a field, and returns a surjective homomorphism $phi : C\rightarrow L$ of Leibniz algebras where: \\
3868
\\
3869
the kernel of $phi$ lies in both the centre of $C$ and the derived subalgebra of $C$, \\
3870
\\
3871
the kernel of $phi$ is a vector space of rank equal to the rank of the kernel $J$ of the homomorphism $L \otimes L \rightarrow L$ from the tensor square to $L$. (We note that, in general, $J$ is NOT equal to the second Leibniz homology of $L$.) \\
3872
\\
3873
\\
3874
\\
3875
\\
3876
\\
3877
\index{LieEpiCentre}::::::::::::::::::::::::\\
3878
\texttt{LieEpiCentre(L)}\\
3879
3880
3881
Inputs a finite dimensional Lie algebra $L$ over a field, and returns an ideal $Z^\ast(L)$ of the centre of $L$. The ideal $Z^\ast(L)$ is trivial if and only if $L$ is isomorphic to a quotient $L=E/Z(E)$ of some Lie algebra $E$ by the centre of $E$. \\
3882
\\
3883
\\
3884
\\
3885
\index{LieExteriorSquare}::::::::::::::::::::::::\\
3886
\texttt{LieExteriorSquare(L) }\\
3887
3888
3889
Inputs a finite dimensional Lie algebra $L$ over a field. It returns a record $E$ with the following components. \\
3890
\\
3891
$E.homomorphism$ is a Lie homomorphism ${\ensuremath{\mu}} : (L \wedge L) \longrightarrow L$ from the nonabelian exterior square $(L \wedge L)$ to $L$. The kernel of ${\ensuremath{\mu}}$ is the Lie multiplier. \\
3892
\\
3893
$E.pairing(x,y)$ is a function which inputs elements $x, y$ in $L$ and returns $(x \wedge y)$ in the exterior square $(L \wedge L)$ . \\
3894
\\
3895
\\
3896
\\
3897
\\
3898
\\
3899
\index{LieTensorSquare}::::::::::::::::::::::::\\
3900
\texttt{LieTensorSquare(L) }\\
3901
3902
3903
Inputs a finite dimensional Lie algebra $L$ over a field and returns a record $T$ with the following components. \\
3904
\\
3905
$T.homomorphism$ is a Lie homomorphism ${\ensuremath{\mu}} : (L \otimes L) \longrightarrow L$ from the nonabelian tensor square of $L$ to $L$. \\
3906
\\
3907
$T.pairing(x,y)$ is a function which inputs two elements $x, y$ in $L$ and returns the tensor $(x \otimes y)$ in the tensor square $(L \otimes L)$ . \\
3908
\\
3909
\\
3910
\\
3911
\\
3912
\\
3913
\index{LieTensorCentre}::::::::::::::::::::::::\\
3914
\texttt{LieTensorCentre(L) }\\
3915
3916
3917
Inputs a finite dimensional Lie algebra $L$ over a field and returns the largest ideal $N$ such that the induced homomorphism of nonabelian tensor squares $(L \otimes L) \longrightarrow (L/N \otimes L/N)$ is an isomorphism. \\
3918
\\
3919
\\
3920
}
3921
3922
3923
\chapter{\textcolor{Chapter }{ Generators and relators of groups}}\logpage{[ 17, 0, 0 ]}
3924
\hyperdef{L}{X7A2144518112F830}{}
3925
{
3926
\\
3927
\\
3928
\\
3929
\index{CayleyGraphOfGroupDisplay}::::::::::::::::::::::::\\
3930
\texttt{CayleyGraphOfGroupDisplay(G,X) }\\
3931
\texttt{CayleyGraphOfGroupDisplay(G,X,"mozilla") }\\
3932
3933
3934
Inputs a finite group $G$ together with a subset $X$ of $G$. It displays the corresponding Cayley graph as a .gif file. It uses the
3935
Mozilla web browser as a default to view the diagram. An alternative browser
3936
can be set using a second argument.
3937
3938
The argument $G$ can also be a finite set of elements in a (possibly infinite) group containing $X$. The edges of the graph are coloured according to which element of $X$ they are labelled by. The list $X$ corresponds to the list of colours [blue, red, green, yellow, brown, black] in
3939
that order.
3940
3941
This function requires Graphviz software. \\
3942
\\
3943
\\
3944
\\
3945
\index{IdentityAmongRelatorsDisplay}::::::::::::::::::::::::\\
3946
\texttt{IdentityAmongRelatorsDisplay(R,n) }\\
3947
\texttt{IdentityAmongRelatorsDisplay(R,n,"mozilla") }\\
3948
3949
3950
Inputs a free $ZG$-resolution $R$ and an integer $n$. It displays the boundary R!.boundary(3,n) as a tessellation of a sphere. It
3951
displays the tessellation as a .gif file and uses the Mozilla web browser as a
3952
default display mechanism. An alternative browser can be set using a second
3953
argument. (The resolution $R$ should be reduced and, preferably, in dimension 1 it should correspond to a
3954
Cayley graph for $G$. )
3955
3956
This function uses GraphViz software. \\
3957
\\
3958
\\
3959
\\
3960
\index{IsAspherical}::::::::::::::::::::::::\\
3961
\texttt{IsAspherical(F,R) }\\
3962
3963
3964
Inputs a free group $F$ and a set $R$ of words in $F$. It performs a test on the 2-dimensional CW-space $K$ associated to this presentation for the group $G=F/${\textless}$R${\textgreater}$^F$.
3965
3966
The function returns "true" if $K$ has trivial second homotopy group. In this case it prints: Presentation is
3967
aspherical.
3968
3969
Otherwise it returns "fail" and prints: Presentation is NOT piece-wise
3970
Euclidean non-positively curved. (In this case $K$ may or may not have trivial second homotopy group. But it is NOT possible to
3971
impose a metric on K which restricts to a Euclidean metric on each 2-cell.)
3972
3973
The function uses Polymake software. \\
3974
\\
3975
\\
3976
\\
3977
\index{PresentationOfResolution}::::::::::::::::::::::::\\
3978
\texttt{PresentationOfResolution(R) }\\
3979
3980
3981
Inputs at least two terms of a reduced $ZG$-resolution $R$ and returns a record $P$ with components \\
3982
\\
3983
$P.freeGroup$ is a free group $F$, \\
3984
\\
3985
$P.relators$ is a list $S$ of words in $F$, \\
3986
\\
3987
$P.gens$ is a list of positive integers such that the $i$-th generator of the presentation corresponds to the group element
3988
R!.elts[P[i]] . \\
3989
\\
3990
where $G$ is isomorphic to $F$ modulo the normal closure of $S$. This presentation for $G$ corresponds to the 2-skeleton of the classifying CW-space from which $R$ was constructed. The resolution $R$ requires no contracting homotopy. \\
3991
\\
3992
\\
3993
\\
3994
\index{TorsionGeneratorsAbelianGroup}::::::::::::::::::::::::\\
3995
\texttt{TorsionGeneratorsAbelianGroup(G) }\\
3996
3997
3998
Inputs an abelian group $G$ and returns a generating set $[x_1, \ldots ,x_n]$ where no pair of generators have coprime orders. \\
3999
\\
4000
\\
4001
}
4002
4003
4004
\chapter{\textcolor{Chapter }{ Orbit polytopes and fundamental domains}}\logpage{[ 18, 0, 0 ]}
4005
\hyperdef{L}{X7CD67FEA7A1B6345}{}
4006
{
4007
\\
4008
\\
4009
\\
4010
\index{CoxeterComplex}::::::::::::::::::::::::\\
4011
\texttt{CoxeterComplex(D)}\\
4012
\texttt{CoxeterComplex(D,n)}\\
4013
4014
4015
Inputs a Coxeter diagram $D$ of finite type. It returns a non-free ZW-resolution for the associated Coxeter
4016
group $W$. The non-free resolution is obtained from the permutahedron of type $W$. A positive integer $n$ can be entered as an optional second variable; just the first $n$ terms of the non-free resolution are then returned. \\
4017
\\
4018
\\
4019
\\
4020
\index{ContractibleGcomplex}::::::::::::::::::::::::\\
4021
\texttt{ContractibleGcomplex("PSL(4,Z)")}\\
4022
4023
4024
Inputs one of the following strings: \\
4025
\\
4026
"SL(2,Z)" , "SL(3,Z)" , "PGL(3,Z[i])" ,
4027
"PGL(3,Eisenstein{\textunderscore}Integers)" , "PSL(4,Z)" ,
4028
"PSL(4,Z){\textunderscore}b" , "PSL(4,Z){\textunderscore}c" ,
4029
"PSL(4,Z){\textunderscore}d" , "Sp(4,Z)" \\
4030
\\
4031
or one of the following strings \\
4032
\\
4033
"SL(2,O-2)" , "SL(2,O-7)" , "SL(2,O-11)" , "SL(2,O-19)" , "SL(2,O-43)" ,
4034
"SL(2,O-67)" , "SL(2,O-163)" \\
4035
\\
4036
It returns a non-free ZG-resolution for the group $G$ described by the string. The stabilizer groups of cells are finite.
4037
(Subscripts {\textunderscore}b , {\textunderscore}c , {\textunderscore}d
4038
denote alternative non-free ZG-resolutions for a given group G.)\\
4039
\\
4040
Data for the first list of non-free resolutions was provided provided by \textsc{Mathieu Dutour}. Data for the second list was provided by \textsc{Alexander Rahm}. \\
4041
\\
4042
\\
4043
\\
4044
\index{QuotientOfContractibleGcomplex}::::::::::::::::::::::::\\
4045
\texttt{QuotientOfContractibleGcomplex(C,D)}\\
4046
4047
4048
Inputs a non-free $ZG$-resolution $C$ and a finite subgroup $D$ of $G$ which is a subgroup of each cell stabilizer group for $C$. Each element of $D$ must preserves the orientation of any cell stabilized by it. It returns the
4049
corresponding non-free $Z(G/D)$-resolution. (So, for instance, from the $SL(2,O)$ complex $C=ContractibleGcomplex("SL(2,O-2)");$ we can construct a $PSL(2,O)$-complex using this function.) \\
4050
\\
4051
\\
4052
\\
4053
\index{TruncatedGComplex}::::::::::::::::::::::::\\
4054
\texttt{TruncatedGComplex(R,m,n)}\\
4055
4056
4057
Inputs a non-free $ZG$-resolution $R$ and two positive integers $m $ and $ n $. It returns the non-free $ZG$-resolution consisting of those modules in $R$ of degree at least $m$ and at most $n$. \\
4058
\\
4059
\\
4060
\\
4061
\index{FundamentalDomainStandardSpaceGroup (HAPcryst)}::::::::::::::::::::::::\\
4062
\texttt{FundamentalDomainStandardSpaceGroup(v,G)}\\
4063
4064
4065
Inputs a crystallographic group G (represented using AffineCrystGroupOnRight
4066
as in the GAP package Cryst). It also inputs a choice of vector v in the
4067
euclidean space $R^n$ on which $G$ acts. It returns the Dirichlet-Voronoi fundamental cell for the action of $G$ on euclidean space corresponding to the vector $v$. The fundamental cell is a fundamental domain if $G$ is Bieberbach. The fundamental cell/domain is returned as a ``Polymake object''. Currently the function only applies to certain crystallographic groups. See
4068
the manuals to HAPcryst and HAPpolymake for full details.
4069
4070
This function is part of the HAPcryst package written by \textsc{Marc Roeder} and is thus only available if HAPcryst is loaded.
4071
4072
The function requires the use of Polymake software. \\
4073
\\
4074
\\
4075
\\
4076
\index{OrbitPolytope}::::::::::::::::::::::::\\
4077
\texttt{OrbitPolytope(G,v,L) }\\
4078
4079
4080
Inputs a permutation group or matrix group $G$ of degree $n$ and a rational vector $v$ of length $n$. In both cases there is a natural action of $G$ on $v$. Let $P(G,v)$ be the convex polytope arising as the convex hull of the Euclidean points in
4081
the orbit of $v$ under the action of $G$. The function also inputs a sublist $L$ of the following list of strings:
4082
4083
["dimension","vertex{\textunderscore}degree", "visual{\textunderscore}graph",
4084
"schlegel","visual"]
4085
4086
Depending on the sublist, the function: \\
4087
\\
4088
prints the dimension of the orbit polytope $P(G,v)$;\\
4089
\\
4090
prints the degree of a vertex in the graph of $P(G,v)$;\\
4091
\\
4092
visualizes the graph of $P(G,v)$;\\
4093
\\
4094
visualizes the Schlegel diagram of $P(G,v)$;\\
4095
\\
4096
visualizes $P(G,v)$ if the polytope is of dimension 2 or 3.\\
4097
\\
4098
The function uses Polymake software. \\
4099
\\
4100
\\
4101
\\
4102
\index{PolytopalComplex}::::::::::::::::::::::::\\
4103
\texttt{PolytopalComplex(G,v) }\\
4104
\texttt{PolytopalComplex(G,v,n) }\\
4105
4106
4107
Inputs a permutation group or matrix group $G$ of degree $n$ and a rational vector $v$ of length $n$. In both cases there is a natural action of $G$ on $v$. Let $P(G,v)$ be the convex polytope arising as the convex hull of the Euclidean points in
4108
the orbit of $v$ under the action of $G$. The cellular chain complex $C_*=C_*(P(G,v))$ is an exact sequence of (not necessarily free) $ZG$-modules. The function returns a component object $R$ with components: \\
4109
\\
4110
$R!.dimension(k)$ is a function which returns the number of $G$-orbits of the $k$-dimensional faces in $P(G,v)$. If each $k$-face has trivial stabilizer subgroup in $G$ then $C_k$ is a free $ZG$-module of rank $R.dimension(k)$. \\
4111
\\
4112
$R!.stabilizer(k,n)$ is a function which returns the stabilizer subgroup for a face in the $n$-th orbit of $k$-faces. \\
4113
\\
4114
If all faces of dimension {\textless}$k+1$ have trivial stabilizer group then the first $k$ terms of $C_*$ constitute part of a free $ZG$-resolution. The boundary map is described by the function $boundary(k,n)$ . (If some faces have non-trivial stabilizer group then $C_*$ is not free and no attempt is made to determine signs for the boundary map.) \\
4115
\\
4116
$R!.elements$, $R!.group$, $R!.properties$ are as in a $ZG$-resolution. \\
4117
\\
4118
If an optional third input variable $n$ is used, then only the first $n$ terms of the resolution $C_*$ will be computed.
4119
4120
The function uses Polymake software. \\
4121
\\
4122
\\
4123
\\
4124
\index{PolytopalGenerators}::::::::::::::::::::::::\\
4125
\texttt{PolytopalGenerators(G,v) }\\
4126
4127
4128
Inputs a permutation group or matrix group $G$ of degree $n$ and a rational vector $v$ of length $n$. In both cases there is a natural action of $G$ on $v$, and the vector $v$ must be chosen so that it has trivial stabilizer subgroup in $G$. Let $P(G,v)$ be the convex polytope arising as the convex hull of the Euclidean points in
4129
the orbit of $v$ under the action of $G$. The function returns a record $P$ with components: \\
4130
\\
4131
$P.generators$ is a list of all those elements $g$ in $G$ such that $g\cdot v$ has an edge in common with $v$. The list is a generating set for $G$.\\
4132
\\
4133
$P.vector$ is the vector $v$.\\
4134
\\
4135
$P.hasseDiagram$ is the Hasse diagram of the cone at $v$. \\
4136
\\
4137
The function uses Polymake software. The function is joint work with Seamus
4138
Kelly. \\
4139
\\
4140
\\
4141
\\
4142
\index{VectorStabilizer}::::::::::::::::::::::::\\
4143
\texttt{VectorStabilizer(G,v) }\\
4144
4145
4146
Inputs a permutation group or matrix group $G$ of degree $n$ and a rational vector of degree $n$. In both cases there is a natural action of $G$ on $v$ and the function returns the group of elements in $G$ that fix $v$. \\
4147
\\
4148
\\
4149
}
4150
4151
4152
\chapter{\textcolor{Chapter }{ Cocycles}}\logpage{[ 19, 0, 0 ]}
4153
\hyperdef{L}{X85A9B66278AF63D9}{}
4154
{
4155
\\
4156
\\
4157
\\
4158
\index{CcGroup (HAPcocyclic)}::::::::::::::::::::::::\\
4159
\texttt{CcGroup(A,f) }\\
4160
4161
4162
Inputs a $G$-module $A$ (i.e. an abelian $G$-outer group) and a standard 2-cocycle f $G x G ---> A$. It returns the extension group determined by the cocycle. The group is
4163
returned as a CcGroup.
4164
4165
This is a HAPcocyclic function and thus only works when HAPcocyclic is loaded. \\
4166
\\
4167
\\
4168
\\
4169
\index{CocycleCondition}::::::::::::::::::::::::\\
4170
\texttt{CocycleCondition(R,n) }\\
4171
4172
4173
Inputs a resolution $R$ and an integer $n${\textgreater}$0$. It returns an integer matrix $M$ with the following property. Suppose $d=R.dimension(n)$. An integer vector $f=[f_1, \ldots , f_d]$ then represents a $ZG$-homomorphism $R_n \longrightarrow Z_q$ which sends the $i$th generator of $R_n$ to the integer $f_i$ in the trivial $ZG$-module $Z_q$ (where possibly $q=0$ ). The homomorphism $f$ is a cocycle if and only if $M^tf=0$ mod $q$. \\
4174
\\
4175
\\
4176
\\
4177
\index{StandardCocycle}::::::::::::::::::::::::\\
4178
\texttt{StandardCocycle(R,f,n) }\\
4179
\\
4180
\texttt{StandardCocycle(R,f,n,q) }\\
4181
4182
4183
Inputs a $ZG$-resolution $R$ (with contracting homotopy), a positive integer $n$ and an integer vector $f$ representing an $n$-cocycle $R_n \longrightarrow Z_q$ where $G$ acts trivially on $Z_q$. It is assumed $q=0$ unless a value for $q$ is entered. The command returns a function $F(g_1, ..., g_n)$ which is the standard cocycle $G_n \longrightarrow Z_q$ corresponding to $f$. At present the command is implemented only for $n=2$ or $3$. \\
4184
\\
4185
\\
4186
\\
4187
\index{Syzygy}::::::::::::::::::::::::\\
4188
\texttt{Syzygy(R,g) }\\
4189
4190
4191
Inputs a $ZG$-resolution $R$ (with contracting homotopy) and a list $g = [g[1], ..., g[n]]$ of elements in $G$. It returns a word $w$ in $R_n$. The word $w$ is the image of the $n$-simplex in the standard bar resolution corresponding to the $n$-tuple $g$. This function can be used to construct explicit standard $n$-cocycles. (Currently implemented only for n{\textless}4.) \\
4192
\\
4193
\\
4194
}
4195
4196
4197
\chapter{\textcolor{Chapter }{ Words in free $ZG$-modules }}\logpage{[ 20, 0, 0 ]}
4198
\hyperdef{L}{X78CFBBCC85F3EE32}{}
4199
{
4200
\\
4201
\\
4202
\\
4203
\index{AddFreeWords}::::::::::::::::::::::::\\
4204
\texttt{AddFreeWords(v,w) }\\
4205
4206
4207
Inputs two words $v,w$ in a free $ZG$-module and returns their sum $v+w$. If the characteristic of $Z$ is greater than $0$ then the next function might be more efficient. \\
4208
\\
4209
\\
4210
\\
4211
\index{AddFreeWordsModP}::::::::::::::::::::::::\\
4212
\texttt{AddFreeWordsModP(v,w,p) }\\
4213
4214
4215
Inputs two words $v,w$ in a free $ZG$-module and the characteristic $p$ of $Z$. It returns the sum $v+w$. If $p=0$ the previous function might be fractionally quicker. \\
4216
\\
4217
\\
4218
\\
4219
\index{AlgebraicReduction}::::::::::::::::::::::::\\
4220
\texttt{AlgebraicReduction(w) }\\
4221
\\
4222
\texttt{AlgebraicReduction(w,p) }\\
4223
4224
4225
Inputs a word $w$ in a free $ZG$-module and returns a reduced version of the word in which all pairs of
4226
mutually inverse letters have been cancelled. The reduction is performed in a
4227
free abelian group unless the characteristic $p$ of $Z$ is entered. \\
4228
\\
4229
\\
4230
\\
4231
\index{MultiplyWord}::::::::::::::::::::::::\\
4232
\texttt{Multiply Word(n,w) }\\
4233
4234
4235
Inputs a word $w$ and integer $n$. It returns the scalar multiple $n\cdot w$. \\
4236
\\
4237
\\
4238
\\
4239
\index{Negate}::::::::::::::::::::::::\\
4240
\texttt{Negate([i,j]) }\\
4241
4242
4243
Inputs a pair $[i,j]$ of integers and returns $[-i,j]$. \\
4244
\\
4245
\\
4246
\\
4247
\index{NegateWord}::::::::::::::::::::::::\\
4248
\texttt{NegateWord(w) }\\
4249
4250
4251
Inputs a word $w$ in a free $ZG$-module and returns the negated word $-w$. \\
4252
\\
4253
\\
4254
\\
4255
\index{PrintZGword}::::::::::::::::::::::::\\
4256
\texttt{PrintZGword(w,elts) }\\
4257
4258
4259
Inputs a word $w$ in a free $ZG$-module and a (possibly partial but sufficient) listing elts of the elements
4260
of $G$. The function prints the word $w$ to the screen in the form
4261
4262
$r_1E_1 + \ldots + r_nE_n$
4263
4264
where $r_i$ are elements in the group ring $ZG$, and $E_i$ denotes the $i$-th free generator of the module. \\
4265
\\
4266
\\
4267
\\
4268
\index{TietzeReduction}::::::::::::::::::::::::\\
4269
\texttt{TietzeReduction(S,w) }\\
4270
4271
4272
Inputs a set $S$ of words in a free $ZG$-module, and a word $w$ in the module. The function returns a word $w'$ such that \texttt{\symbol{123}}$S,w'$\texttt{\symbol{125}} generates the same abelian group as
4273
\texttt{\symbol{123}}$S,w$\texttt{\symbol{125}}. The word $w'$ is possibly shorter (and certainly no longer) than $w$. This function needs to be improved! \\
4274
\\
4275
\\
4276
\\
4277
\index{ResolutionBoundaryOfWord}::::::::::::::::::::::::\\
4278
\texttt{ResolutionBoundaryOfWord(R,n,w)}\\
4279
4280
4281
Inputs a resolution $R$, a positive integer $n$ and a list $w$ representing a word in the free module $R_n$. It returns the image of $w$ under the $n$-th boundary homomorphism. \\
4282
\\
4283
\\
4284
}
4285
4286
4287
\chapter{\textcolor{Chapter }{ $FpG$-modules}}\logpage{[ 21, 0, 0 ]}
4288
\hyperdef{L}{X7A7916087F55765C}{}
4289
{
4290
\\
4291
\\
4292
\\
4293
\index{CompositionSeriesOfFpGModules}::::::::::::::::::::::::\\
4294
\texttt{CompositionSeriesOfFpGModules(M) }\\
4295
4296
4297
Inputs an $FpG$-module $M$ and returns a list of $FpG$-modules that constitute a composition series for $M$. \\
4298
\\
4299
\\
4300
\\
4301
\index{DirectSumOfFpGModules}::::::::::::::::::::::::\\
4302
\texttt{DirectSumOfFpGModules(M,N) }\\
4303
\texttt{DirectSumOfFpGModules([ M[1], M[2], ..., M[k] ])) }\\
4304
4305
4306
Inputs two $FpG$-modules $M$ and $N$ with common group and characteristic. It returns the direct sum of $M$ and $N$ as an $FpG$-Module.
4307
4308
Alternatively, the function can input a list of $FpG$-modules with common group $G$. It returns the direct sum of the list. \\
4309
\\
4310
\\
4311
\\
4312
\index{FpGModule}::::::::::::::::::::::::\\
4313
\texttt{FpGModule(A,P) }\\
4314
\texttt{FpGModule(A,G,p) }\\
4315
4316
4317
Inputs a $p$-group $P$ and a matrix $A$ whose rows have length a multiple of the order of $G$. It returns the ``canonical'' $FpG$-module generated by the rows of $A$.
4318
4319
A small non-prime-power group $G$ can also be input, provided the characteristic $p$ is entered as a third input variable. \\
4320
\\
4321
\\
4322
\\
4323
\index{FpGModuleDualBasis}::::::::::::::::::::::::\\
4324
\texttt{FpGModuleDualBasis(M) }\\
4325
4326
4327
Inputs an $FpG$-module $M$. It returns a record $R$ with two components: \\
4328
\\
4329
$R.freeModule$ is the free module $FG$ of rank one.\\
4330
\\
4331
$R.basis$ is a list representing an $F$-basis for the module $Hom_{FG}(M,FG)$. Each term in the list is a matrix $A$ whose rows are vectors in $FG$ such that $M!.generators[i] \longrightarrow A[i]$ extends to a module homomorphism $M \longrightarrow FG$. \\
4332
\\
4333
\\
4334
\\
4335
\\
4336
\\
4337
\index{FpGModuleHomomorphism}::::::::::::::::::::::::\\
4338
\texttt{FpGModuleHomomorphism(M,N,A) }\\
4339
\texttt{FpGModuleHomomorphismNC(M,N,A) }\\
4340
4341
4342
Inputs $FpG$-modules $M$ and $N$ over a common $p$-group $G$. Also inputs a list $A$ of vectors in the vector space spanned by $N!.matrix$. It tests that the function
4343
4344
$ M!.generators[i] \longrightarrow A[i]$
4345
4346
extends to a homomorphism of $FpG$-modules and, if the test is passed, returns the corresponding $FpG$-module homomorphism. If the test is failed it returns fail.
4347
4348
The "NC" version of the function assumes that the input defines a homomorphism
4349
and simply returns the $FpG$-module homomorphism. \\
4350
\\
4351
\\
4352
\\
4353
\index{DesuspensionFpGModule}::::::::::::::::::::::::\\
4354
\texttt{ DesuspensionFpGModule(M,n)}\\
4355
\texttt{DesuspensionFpGModule(R,n) }\\
4356
4357
4358
Inputs a positive integer $n$ and and FpG-module $M$. It returns an FpG-module $D^nM$ which is mathematically related to $M$ via an exact sequence $ 0 \longrightarrow D^nM \longrightarrow R_n \longrightarrow \ldots
4359
\longrightarrow R_0 \longrightarrow M \longrightarrow 0$ where $R_\ast$ is a free resolution. (If $G=Group(M)$ is of prime-power order then the resolution is minimal.)
4360
4361
Alternatively, the function can input a positive integer $n$ and at least $n$ terms of a free resolution $R$ of $M$. \\
4362
\\
4363
\\
4364
\\
4365
\index{RadicalOfFpGModule}::::::::::::::::::::::::\\
4366
\texttt{RadicalOfFpGModule(M) }\\
4367
4368
4369
Inputs an $FpG$-module $M$ with $G$ a $p$-group, and returns the Radical of $M$ as an $FpG$-module. (Ig $G$ is not a $p$-group then a submodule of the radical is returned. \\
4370
\\
4371
\\
4372
\\
4373
\index{RadicalSeriesOfFpGModule}::::::::::::::::::::::::\\
4374
\texttt{RadicalSeriesOfFpGModule(M) }\\
4375
4376
4377
Inputs an $FpG$-module $M$ and returns a list of $FpG$-modules that constitute the radical series for $M$. \\
4378
\\
4379
\\
4380
\\
4381
\index{GeneratorsOfFpGModule}::::::::::::::::::::::::\\
4382
\texttt{GeneratorsOfFpGModule(M) }\\
4383
4384
4385
Inputs an $FpG$-module $M$ and returns a matrix whose rows correspond to a minimal generating set for $M$. \\
4386
\\
4387
\\
4388
\\
4389
\index{ImageOfFpGModuleHomomorphism}::::::::::::::::::::::::\\
4390
\texttt{ImageOfFpGModuleHomomorphism(f) }\\
4391
4392
4393
Inputs an $FpG$-module homomorphism $f:M \longrightarrow N$ and returns its image $f(M)$ as an $FpG$-module. \\
4394
\\
4395
\\
4396
\\
4397
\index{GroupAlgebraAsFpGModule}::::::::::::::::::::::::\\
4398
\texttt{GroupAlgebraAsFpGModule(G) }\\
4399
4400
4401
Inputs a $p$-group $G$ and returns its mod $p$ group algebra as an $FpG$-module. \\
4402
\\
4403
\\
4404
\\
4405
\index{IntersectionOfFpGModules}::::::::::::::::::::::::\\
4406
\texttt{IntersectionOfFpGModules(M,N) }\\
4407
4408
4409
Inputs two $FpG$-modules $M, N$ arising as submodules in a common free module $(FG)^n$ where $G$ is a finite group and $F$ the field of $p$-elements. It returns the $FpG$-module arising as the intersection of $M$ and $N$. \\
4410
\\
4411
\\
4412
\\
4413
\index{IsFpGModuleHomomorphismData}::::::::::::::::::::::::\\
4414
\texttt{IsFpGModuleHomomorphismData(M,N,A) }\\
4415
4416
4417
Inputs $FpG$-modules $M$ and $N$ over a common $p$-group $G$. Also inputs a list $A$ of vectors in the vector space spanned by $N!.matrix$. It returns true if the function
4418
4419
$ M!.generators[i] \longrightarrow A[i]$
4420
4421
extends to a homomorphism of $FpG$-modules. Otherwise it returns false. \\
4422
\\
4423
\\
4424
\\
4425
\index{MaximalSubmoduleOfFpGModule}::::::::::::::::::::::::\\
4426
\texttt{MaximalSubmoduleOfFpGModule(M) }\\
4427
4428
4429
Inputs an $FpG$-module $M$ and returns one maximal $FpG$-submodule of $M$. \\
4430
\\
4431
\\
4432
\\
4433
\index{MaximalSubmodulesOfFpGModule}::::::::::::::::::::::::\\
4434
\texttt{MaximalSubmodulesOfFpGModule(M) }\\
4435
4436
4437
Inputs an $FpG$-module $M$ and returns the list of maximal $FpG$-submodules of $M$. \\
4438
\\
4439
\\
4440
\\
4441
\index{MultipleOfFpGModule}::::::::::::::::::::::::\\
4442
\texttt{MultipleOfFpGModule(w,M) }\\
4443
4444
4445
Inputs an $FpG$-module $M$ and a list $w:=[g_1 , ..., g_t]$ of elements in the group $G=M!.group$. The list $w$ can be thought of as representing the element $w=g_1 + \ldots + g_t$ in the group algebra $FG$, and the function returns a semi-echelon matrix $B$ which is a basis for the vector subspace $wM$ . \\
4446
\\
4447
\\
4448
\\
4449
\index{ProjectedFpGModule}::::::::::::::::::::::::\\
4450
\texttt{ProjectedFpGModule(M,k) }\\
4451
4452
4453
Inputs an $FpG$-module $M$ of ambient dimension $n|G|$, and an integer $k$ between $1$ and $n$. The module $M$ is a submodule of the free module $(FG)^n$ . Let $M_k$ denote the intersection of $M$ with the last $k$ summands of $(FG)^n$ . The function returns the image of the projection of $M_k$ onto the $k$-th summand of $(FG)^n$ . This image is returned an $FpG$-module with ambient dimension $|G|$. \\
4454
\\
4455
\\
4456
\\
4457
\index{RandomHomomorphismOfFpGModules}::::::::::::::::::::::::\\
4458
\texttt{RandomHomomorphismOfFpGModules(M,N) }\\
4459
4460
4461
Inputs two $FpG$-modules $M$ and $N$ over a common group $G$. It returns a random matrix $A$ whose rows are vectors in $N$ such that the function
4462
4463
$ M!.generators[i] \longrightarrow A[i]$
4464
4465
extends to a homomorphism $M \longrightarrow N$ of $FpG$-modules. (There is a problem with this function at present.) \\
4466
\\
4467
\\
4468
\\
4469
\index{Rank}::::::::::::::::::::::::\\
4470
\texttt{Rank(f) }\\
4471
4472
4473
Inputs an $FpG$-module homomorphism $f:M \longrightarrow N$ and returns the dimension of the image of $f$ as a vector space over the field $F$ of $p$ elements. \\
4474
\\
4475
\\
4476
\\
4477
\index{SumOfFpGModules}::::::::::::::::::::::::\\
4478
\texttt{SumOfFpGModules(M,N) }\\
4479
4480
4481
Inputs two $FpG$-modules $M, N$ arising as submodules in a common free module $(FG)^n$ where $G$ is a finite group and $F$ the field of $p$-elements. It returns the $FpG$-Module arising as the sum of $M$ and $N$. \\
4482
\\
4483
\\
4484
\\
4485
\index{SumOp}::::::::::::::::::::::::\\
4486
\texttt{SumOp(f,g) }\\
4487
4488
4489
Inputs two $FpG$-module homomorphisms $f,g:M \longrightarrow N$ with common sorce and common target. It returns the sum $f+g:M \longrightarrow N$ . (This operation is also available using "+". \\
4490
\\
4491
\\
4492
\\
4493
\index{VectorsToFpGModuleWords}::::::::::::::::::::::::\\
4494
\texttt{VectorsToFpGModuleWords(M,L) }\\
4495
4496
4497
Inputs an $FpG$-module $M$ and a list $L=[v_1,\ldots ,v_k]$ of vectors in $M$. It returns a list $L'= [x_1,...,x_k]$ . Each $x_j=[[W_1,G_1],...,[W_t,G_t]]$ is a list of integer pairs corresponding to an expression of $v_j$ as a word
4498
4499
$ v_j = g_1*w_1 + g_2*w_1 + ... + g_t*w_t $
4500
4501
where
4502
4503
$g_i=Elements(M!.group)[G_i]$
4504
4505
$w_i=GeneratorsOfFpGModule(M)[W_i]$ . \\
4506
\\
4507
\\
4508
}
4509
4510
4511
\chapter{\textcolor{Chapter }{ Meataxe modules}}\logpage{[ 22, 0, 0 ]}
4512
\hyperdef{L}{X85B05BBA78ED7BE2}{}
4513
{
4514
\\
4515
\\
4516
\\
4517
\index{DesuspensionMtxModule}::::::::::::::::::::::::\\
4518
\texttt{DesuspensionMtxModule(M)}\\
4519
4520
4521
Inputs a meataxe module $M$ over the field of $p$ elements and returns an FpG-module DM. The two modules are related
4522
mathematically by the existence of a short exact sequence $DM \longrightarrow FM \longrightarrow M$ with $FM$ a free module. Thus the homological properties of $DM$ are equal to those of $M$ with a dimension shift.
4523
4524
(If $G:=Group(M.generators)$ is a $p$-group then $FM$ is a projective cover of $M$ in the sense that the homomorphism $FM \longrightarrow M$ does not factor as $FM \longrightarrow P \longrightarrow M$ for any projective module $P$.) \\
4525
\\
4526
\\
4527
\\
4528
\index{FpG{\textunderscore}to{\textunderscore}MtxModule}::::::::::::::::::::::::\\
4529
\texttt{FpG{\textunderscore}to{\textunderscore}MtxModule(M)}\\
4530
4531
4532
Inputs an FpG-module $M$ and returns an isomorphic meataxe module. \\
4533
\\
4534
\\
4535
\\
4536
\index{GeneratorsOfMtxModule}::::::::::::::::::::::::\\
4537
\texttt{GeneratorsOfMtxModule(M)}\\
4538
4539
4540
Inputs a meataxe module $M$ acting on, say, the vector space $V$. The function returns a minimal list of row vectors in $V$ which generate $V$ as a $G$-module (where G=Group(M.generators) ). \\
4541
\\
4542
\\
4543
}
4544
4545
4546
\chapter{\textcolor{Chapter }{ G-Outer Groups}}\logpage{[ 23, 0, 0 ]}
4547
\hyperdef{L}{X7D02CE0A83211FB7}{}
4548
{
4549
\\
4550
\\
4551
\\
4552
\index{GOuterGroup}::::::::::::::::::::::::\\
4553
\texttt{GOuterGroup(E,N)}\\
4554
\texttt{GOuterGroup()}\\
4555
4556
4557
Inputs a group $E$ and normal subgroup $N$. It returns $N$ as a $G$-outer group where $G=E/N$.
4558
4559
The function can be used without an argument. In this case an empty outer
4560
group $C$ is returned. The components must be set using SetActingGroup(C,G),
4561
SetActedGroup(C,N) and SetOuterAction(C,alpha). \\
4562
\\
4563
\\
4564
\\
4565
\index{GOuterGroupHomomorphismNC}::::::::::::::::::::::::\\
4566
\texttt{GOuterGroupHomomorphismNC(A,B,phi)}\\
4567
\texttt{GOuterGroupHomomorphismNC()}\\
4568
4569
4570
Inputs G-outer groups $A$ and $B$ with common acting group, and a group homomorphism phi:ActedGroup(A)
4571
--{\textgreater} ActedGroup(B). It returns the corresponding G-outer
4572
homomorphism PHI:A--{\textgreater} B. No check is made to verify that phi is
4573
actually a group homomorphism which preserves the G-action.
4574
4575
The function can be used without an argument. In this case an empty outer
4576
group homomorphism $PHI$ is returned. The components must then be set. \\
4577
\\
4578
\\
4579
\\
4580
\index{GOuterHomomorphismTester}::::::::::::::::::::::::\\
4581
\texttt{GOuterHomomorphismTester(A,B,phi)}\\
4582
4583
4584
Inputs G-outer groups $A$ and $B$ with common acting group, and a group homomorphism phi:ActedGroup(A)
4585
--{\textgreater} ActedGroup(B). It tests whether phi is a group homomorphism
4586
which preserves the G-action.
4587
4588
The function can be used without an argument. In this case an empty outer
4589
group homomorphism $PHI$ is returned. The components must then be set. \\
4590
\\
4591
\\
4592
\\
4593
\index{Centre}::::::::::::::::::::::::\\
4594
\texttt{Centre(A)}\\
4595
4596
4597
Inputs G-outer group $A$ and returns the group theoretic centre of ActedGroup(A) as a G-outer group. \\
4598
\\
4599
\\
4600
\\
4601
\index{DirectProductGog}::::::::::::::::::::::::\\
4602
\texttt{DirectProductGog(A,B)}\\
4603
\texttt{DirectProductGog(Lst)}\\
4604
4605
4606
Inputs G-outer groups $A$ and $B$ with common acting group, and returns their group-theoretic direct product as
4607
a G-outer group. The outer action on the direct product is the diagonal one.
4608
4609
The function also applies to a list Lst of G-outer groups with common acting
4610
group.
4611
4612
For a direct product D constructed using this function, the embeddings and
4613
projections can be obtained (as G-outer group homomorphisms) using the
4614
functions Embedding(D,i) and Projection(D,i). \\
4615
\\
4616
\\
4617
}
4618
4619
4620
\chapter{\textcolor{Chapter }{ Cat-1-groups}}\logpage{[ 24, 0, 0 ]}
4621
\hyperdef{L}{X7B54B8CA841C517B}{}
4622
{
4623
\\
4624
\\
4625
\\
4626
\index{AutomorphismGroupAsCatOneGroup}::::::::::::::::::::::::\\
4627
\texttt{AutomorphismGroupAsCatOneGroup(G)}\\
4628
4629
4630
Inputs a group $G$ and returns the Cat-1-group $C$ corresponding to the crossed module $G\rightarrow Aut(G)$. \\
4631
\\
4632
\\
4633
\\
4634
\index{HomotopyGroup}::::::::::::::::::::::::\\
4635
\texttt{HomotopyGroup(C,n)}\\
4636
4637
4638
Inputs a cat-1-group $C$ and an integer n. It returns the $n$th homotopy group of $C$. \\
4639
\\
4640
\\
4641
\\
4642
\index{HomotopyModule}::::::::::::::::::::::::\\
4643
\texttt{HomotopyModule(C,2)}\\
4644
4645
4646
Inputs a cat-1-group $C$ and an integer n=2. It returns the second homotopy group of $C$ as a G-module (i.e. abelian G-outer group) where G is the fundamental group of
4647
C. \\
4648
\\
4649
\\
4650
\\
4651
\index{QuasiIsomorph}::::::::::::::::::::::::\\
4652
\texttt{QuasiIsomorph(C)}\\
4653
4654
4655
Inputs a cat-1-group $C$ and returns a cat-1-group $D$ for which there exists some homomorphism $C\rightarrow D$ that induces isomorphisms on homotopy groups.
4656
4657
This function was implemented by \textsc{Le Van Luyen}. \\
4658
\\
4659
\\
4660
\\
4661
\index{ModuleAsCatOneGroup}::::::::::::::::::::::::\\
4662
\texttt{ModuleAsCatOneGroup(G,alpha,M)}\\
4663
4664
4665
Inputs a group $G$, an abelian group $M$ and a homomorphism $\alpha\colon G\rightarrow Aut(M)$. It returns the Cat-1-group $C$ corresponding th the zero crossed module $0\colon M\rightarrow G$. \\
4666
\\
4667
\\
4668
\\
4669
\index{MooreComplex}::::::::::::::::::::::::\\
4670
\texttt{MooreComplex(C)}\\
4671
4672
4673
Inputs a cat-1-group $C$ and returns its Moore complex as a G-complex (i.e. as a complex of groups
4674
considered as 1-outer groups). \\
4675
\\
4676
\\
4677
\\
4678
\index{NormalSubgroupAsCatOneGroup}::::::::::::::::::::::::\\
4679
\texttt{NormalSubgroupAsCatOneGroup(G,N)}\\
4680
4681
4682
Inputs a group $G$ with normal subgroup $N$. It returns the Cat-1-group $C$ corresponding th the inclusion crossed module $ N\rightarrow G$. \\
4683
\\
4684
\\
4685
\\
4686
\index{XmodToHAP}::::::::::::::::::::::::\\
4687
\texttt{XmodToHAP(C)}\\
4688
4689
4690
Inputs a cat-1-group $C$ obtained from the Xmod package and returns a cat-1-group $D$ for which IsHapCatOneGroup(D) returns true.
4691
4692
It returns "fail" id $C$ has not been produced by the Xmod package. \\
4693
\\
4694
\\
4695
}
4696
4697
4698
\chapter{\textcolor{Chapter }{ Simplicial groups}}\logpage{[ 25, 0, 0 ]}
4699
\hyperdef{L}{X7D818E5F80F4CF63}{}
4700
{
4701
\\
4702
\\
4703
\\
4704
\index{NerveOfCatOneGroup}::::::::::::::::::::::::\\
4705
\texttt{NerveOfCatOneGroup(G,n)}\\
4706
4707
4708
Inputs a cat-1-group $G$ and a positive integer $n$. It returns the low-dimensional part of the nerve of $G$ as a simplicial group of length $n$. \\
4709
\\
4710
This function applies both to cat-1-groups for which IsHapCatOneGroup(G) is
4711
true, and to cat-1-groups produced using the Xmod package. \\
4712
\\
4713
This function was implemented by \textsc{Van Luyen Le}. \\
4714
\\
4715
\\
4716
\\
4717
\index{EilenbergMacLaneSimplicialGroup}::::::::::::::::::::::::\\
4718
\texttt{EilenbergMacLaneSimplicialGroup(G,n,dim)}\\
4719
4720
4721
Inputs a group $G$, a positive integer $n$, and a positive integer $dim $. The function returns the first $1+dim$ terms of a simplicial group with $n-1$st homotopy group equal to $G$ and all other homotopy groups equal to zero. \\
4722
\\
4723
This function was implemented by \textsc{Van Luyen Le}. \\
4724
\\
4725
\\
4726
\\
4727
\index{EilenbergMacLaneSimplicialGroupMap}::::::::::::::::::::::::\\
4728
\texttt{EilenbergMacLaneSimplicialGroupMap(f,n,dim)}\\
4729
4730
4731
Inputs a group homomorphism $f:G\rightarrow Q$, a positive integer $n$, and a positive integer $dim $. The function returns the first $1+dim$ terms of a simplicial group homomorphism $f:K(G,n) \rightarrow K(Q,n)$ of Eilenberg-MacLane simplicial groups. \\
4732
\\
4733
This function was implemented by \textsc{Van Luyen Le}. \\
4734
\\
4735
\\
4736
\\
4737
\index{MooreComplex}::::::::::::::::::::::::\\
4738
\texttt{MooreComplex(G)}\\
4739
4740
4741
Inputs a simplicial group $G$ and returns its Moore complex as a $G$-complex. \\
4742
\\
4743
This function was implemented by \textsc{Van Luyen Le}. \\
4744
\\
4745
\\
4746
\\
4747
\index{ChainComplexOfSimplicialGroup}::::::::::::::::::::::::\\
4748
\texttt{ChainComplexOfSimplicialGroup(G)}\\
4749
4750
4751
Inputs a simplicial group $G$ and returns the cellular chain complex $C$ of a CW-space $X$ represented by the homotopy type of the simplicial group. Thus the homology
4752
groups of $C$ are the integral homology groups of $X$. \\
4753
\\
4754
This function was implemented by \textsc{Van Luyen Le}. \\
4755
\\
4756
\\
4757
\\
4758
\index{SimplicialGroupMap}::::::::::::::::::::::::\\
4759
\texttt{SimplicialGroupMap(f)}\\
4760
4761
4762
Inputs a homomorphism $f:G\rightarrow Q$ of simplicial groups. The function returns an induced map $f:C(G) \rightarrow C(Q)$ of chain complexes whose homology is the integral homology of the simplicial
4763
group G and Q respectively. \\
4764
\\
4765
This function was implemented by \textsc{Van Luyen Le}. \\
4766
\\
4767
\\
4768
\\
4769
\index{HomotopyGroup}::::::::::::::::::::::::\\
4770
\texttt{HomotopyGroup(G,n)}\\
4771
4772
4773
Inputs a simplicial group $G$ and a positive integer $n$. The integer $n$ must be less than the length of $G$. It returns, as a group, the (n)-th homology group of its Moore complex. Thus
4774
HomotopyGroup(G,0) returns the "fundamental group" of $G$. \\
4775
\\
4776
\\
4777
\\
4778
\index{Bar Resolution}::::::::::::::::::::::::\\
4779
\texttt{Representation of elements in the bar resolution}\\
4780
4781
4782
For a group G we denote by $B_n(G)$ the free $\mathbb ZG$-module with basis the lists $[g_1 | g_2 | ... | g_n]$ where the $g_i$ range over $G$. \\
4783
\\
4784
We represent a word \\
4785
\\
4786
$w = h_1.[g_{11} | g_{12} | ... | g_{1n}] - h_2.[g_{21} | g_{22} | ... |
4787
g_{2n}] + ... + h_k.[g_{k1} | g_{k2} | ... | g_{kn}] $ \\
4788
\\
4789
in $B_n(G)$ as a list of lists: \\
4790
\\
4791
$ [ [+1,h_1,g_{11} , g_{12} , ... , g_{1n}] , [-1, h_2,g_{21} , g_{22} , ... |
4792
g_{2n}] + ... + [+1, h_k,g_{k1} , g_{k2} , ... , g_{kn}] $. \\
4793
\\
4794
\\
4795
\\
4796
\index{BarResolutionBoundary}::::::::::::::::::::::::\\
4797
\texttt{BarResolutionBoundary(w)}\\
4798
4799
4800
This function inputs a word $w$ in the bar resolution module $B_n(G)$ and returns its image under the boundary homomorphism $d_n\colon B_n(G) \rightarrow B_{n-1}(G)$ in the bar resolution. \\
4801
\\
4802
This function was implemented by \textsc{Van Luyen Le}. \\
4803
\\
4804
\\
4805
\\
4806
\index{BarResolutionHomotopy}::::::::::::::::::::::::\\
4807
\texttt{BarResolutionHomotopy(w)}\\
4808
4809
4810
This function inputs a word $w$ in the bar resolution module $B_n(G)$ and returns its image under the contracting homotopy $h_n\colon B_n(G) \rightarrow B_{n+1}(G)$ in the bar resolution. \\
4811
\\
4812
This function is currently being implemented by \textsc{Van Luyen Le}. \\
4813
\\
4814
\\
4815
\\
4816
\index{Bar Complex}::::::::::::::::::::::::\\
4817
\texttt{Representation of elements in the bar complex}\\
4818
4819
4820
For a group G we denote by $BC_n(G)$ the free abelian group with basis the lists $[g_1 | g_2 | ... | g_n]$ where the $g_i$ range over $G$. \\
4821
\\
4822
We represent a word \\
4823
\\
4824
$w = [g_{11} | g_{12} | ... | g_{1n}] - [g_{21} | g_{22} | ... | g_{2n}] + ...
4825
+ [g_{k1} | g_{k2} | ... | g_{kn}] $ \\
4826
\\
4827
in $BC_n(G)$ as a list of lists: \\
4828
\\
4829
$ [ [+1,g_{11} , g_{12} , ... , g_{1n}] , [-1, g_{21} , g_{22} , ... | g_{2n}] +
4830
... + [+1, g_{k1} , g_{k2} , ... , g_{kn}] $. \\
4831
\\
4832
\\
4833
\\
4834
\index{BarComplexBoundary}::::::::::::::::::::::::\\
4835
\texttt{BarComplexBoundary(w)}\\
4836
4837
4838
This function inputs a word $w$ in the n-th term of the bar complex $BC_n(G)$ and returns its image under the boundary homomorphism $d_n\colon BC_n(G) \rightarrow BC_{n-1}(G)$ in the bar complex. \\
4839
\\
4840
This function was implemented by \textsc{Van Luyen Le}. \\
4841
\\
4842
\\
4843
\\
4844
\index{BarResolutionEquivalence}::::::::::::::::::::::::\\
4845
\texttt{BarResolutionEquivalence(R)}\\
4846
4847
4848
This function inputs a free $ZG$-resolution $R$. It returns a component object HE with components \\
4849
\\
4850
HE!.phi(n,w) is a function which inputs a non-negative integer $n$ and a word $w$ in $B_n(G)$. It returns the image of $w$ in $R_n$ under a chain equivalence $\phi\colon B_n(G) \rightarrow R_n$.\\
4851
\\
4852
HE!.psi(n,w) is a function which inputs a non-negative integer $n$ and a word $w$ in $R_n$. It returns the image of $w$ in $B_n(G)$ under a chain equivalence $\psi\colon R_n \rightarrow B_n(G)$.\\
4853
\\
4854
HE!.equiv(n,w) is a function which inputs a non-negative integer $n$ and a word $w$ in $B_n(G)$. It returns the image of $w$ in $B_{n+1}(G)$ under a $ZG$-equivariant homomorphism \\
4855
\\
4856
$equiv(n,-) \colon B_n(G) \rightarrow B_{n+1}(G)$ \\
4857
\\
4858
satisfying
4859
\[w - \psi ( \phi (w)) = d(n+1, equiv(n,w)) + equiv(n-1,d(n,w)) . \]
4860
where $d(n,-)\colon B_n(G) \rightarrow B_{n-1}(G)$ is the boundary homomorphism in the bar resolution. \\
4861
\\
4862
This function was implemented by \textsc{Van Luyen Le}. \\
4863
\\
4864
\\
4865
\\
4866
\index{BarComplexEquivalence}::::::::::::::::::::::::\\
4867
\texttt{BarComplexEquivalence(R)}\\
4868
4869
4870
This function inputs a free $ZG$-resolution $R$. It first constructs the chain complex $T=TensorWithIntegerts(R)$. The function returns a component object HE with components \\
4871
\\
4872
HE!.phi(n,w) is a function which inputs a non-negative integer $n$ and a word $w$ in $BC_n(G)$. It returns the image of $w$ in $T_n$ under a chain equivalence $\phi\colon BC_n(G) \rightarrow T_n$.\\
4873
\\
4874
HE!.psi(n,w) is a function which inputs a non-negative integer $n$ and an element $w$ in $T_n$. It returns the image of $w$ in $BC_n(G)$ under a chain equivalence $\psi\colon T_n \rightarrow BC_n(G)$.\\
4875
\\
4876
HE!.equiv(n,w) is a function which inputs a non-negative integer $n$ and a word $w$ in $BC_n(G)$. It returns the image of $w$ in $BC_{n+1}(G)$ under a homomorphism \\
4877
\\
4878
$equiv(n,-) \colon BC_n(G) \rightarrow BC_{n+1}(G)$ \\
4879
\\
4880
satisfying
4881
\[w - \psi ( \phi (w)) = d(n+1, equiv(n,w)) + equiv(n-1,d(n,w)) . \]
4882
where $d(n,-)\colon BC_n(G) \rightarrow BC_{n-1}(G)$ is the boundary homomorphism in the bar complex. \\
4883
\\
4884
This function was implemented by \textsc{Van Luyen Le}. \\
4885
\\
4886
\\
4887
\\
4888
\index{Bar Cocomplex}::::::::::::::::::::::::\\
4889
\texttt{Representation of elements in the bar cocomplex}\\
4890
4891
4892
For a group G we denote by $BC^n(G)$ the free abelian group with basis the lists $[g_1 | g_2 | ... | g_n]$ where the $g_i$ range over $G$. \\
4893
\\
4894
We represent a word \\
4895
\\
4896
$w = [g_{11} | g_{12} | ... | g_{1n}] - [g_{21} | g_{22} | ... | g_{2n}] + ...
4897
+ [g_{k1} | g_{k2} | ... | g_{kn}] $ \\
4898
\\
4899
in $BC^n(G)$ as a list of lists: \\
4900
\\
4901
$ [ [+1,g_{11} , g_{12} , ... , g_{1n}] , [-1, g_{21} , g_{22} , ... | g_{2n}] +
4902
... + [+1, g_{k1} , g_{k2} , ... , g_{kn}] $. \\
4903
\\
4904
\\
4905
\\
4906
\index{BarCocomplexCoboundary}::::::::::::::::::::::::\\
4907
\texttt{BarCocomplexCoboundary(w)}\\
4908
4909
4910
This function inputs a word $w$ in the n-th term of the bar cocomplex $BC^n(G)$ and returns its image under the coboundary homomorphism $d^n\colon BC^n(G) \rightarrow BC^{n+1}(G)$ in the bar cocomplex. \\
4911
\\
4912
This function was implemented by \textsc{Van Luyen Le}. \\
4913
\\
4914
\\
4915
}
4916
4917
4918
\chapter{\textcolor{Chapter }{ Coxeter diagrams and graphs of groups}}\logpage{[ 26, 0, 0 ]}
4919
\hyperdef{L}{X79D0502085B6734A}{}
4920
{
4921
\\
4922
\\
4923
\\
4924
\index{CoxeterDiagramComponents}::::::::::::::::::::::::\\
4925
\texttt{CoxeterDiagramComponents(D) }\\
4926
4927
4928
Inputs a Coxeter diagram $D$ and returns a list $[D_1, ..., D_d]$ of the maximal connected subgraphs $D_i$. \\
4929
\\
4930
\\
4931
\\
4932
\index{CoxeterDiagramDegree}::::::::::::::::::::::::\\
4933
\texttt{CoxeterDiagramDegree(D,v) }\\
4934
4935
4936
Inputs a Coxeter diagram $D$ and vertex $v$. It returns the degree of $v$ (i.e. the number of edges incident with $v$). \\
4937
\\
4938
\\
4939
\\
4940
\index{CoxeterDiagramDisplay}::::::::::::::::::::::::\\
4941
\texttt{CoxeterDiagramDisplay(D) }\\
4942
\texttt{CoxeterDiagramDisplay(D,"web browser") }\\
4943
4944
4945
Inputs a Coxeter diagram $D$ and displays it as a .gif file. It uses the Mozilla web browser as a default
4946
to view the diagram. An alternative browser can be set using a second
4947
argument.
4948
4949
This function requires Graphviz software. \\
4950
\\
4951
\\
4952
\\
4953
\index{CoxeterDiagramFpArtinGroup}::::::::::::::::::::::::\\
4954
\texttt{CoxeterDiagramFpArtinGroup(D) }\\
4955
4956
4957
Inputs a Coxeter diagram $D$ and returns the corresponding finitely presented Artin group. \\
4958
\\
4959
\\
4960
\\
4961
\index{CoxeterDiagramFpCoxeterGroup}::::::::::::::::::::::::\\
4962
\texttt{CoxeterDiagramFpCoxeterGroup(D) }\\
4963
4964
4965
Inputs a Coxeter diagram $D$ and returns the corresponding finitely presented Coxeter group. \\
4966
\\
4967
\\
4968
\\
4969
\index{CoxeterDiagramIsSpherical}::::::::::::::::::::::::\\
4970
\texttt{CoxeterDiagramIsSpherical(D) }\\
4971
4972
4973
Inputs a Coxeter diagram $D$ and returns "true" if the associated Coxeter groups is finite, and returns
4974
"false" otherwise. \\
4975
\\
4976
\\
4977
\\
4978
\index{CoxeterDiagramMatrix}::::::::::::::::::::::::\\
4979
\texttt{CoxeterDiagramMatrix(D) }\\
4980
4981
4982
Inputs a Coxeter diagram $D$ and returns a matrix representation of it. The matrix is given as a function $DiagramMatrix(D)(i,j)$ where $i,j$ can range over the vertices. \\
4983
\\
4984
\\
4985
\\
4986
\index{CoxeterSubDiagram}::::::::::::::::::::::::\\
4987
\texttt{CoxeterSubDiagram(D,V) }\\
4988
4989
4990
Inputs a Coxeter diagram $D$ and a subset $V$ of its vertices. It returns the full sub-diagram of $D$ with vertex set $V$. \\
4991
\\
4992
\\
4993
\\
4994
\index{CoxeterDiagramVertices}::::::::::::::::::::::::\\
4995
\texttt{CoxeterDiagramVertices(D) }\\
4996
4997
4998
Inputs a Coxeter diagram $D$ and returns its set of vertices. \\
4999
\\
5000
\\
5001
\\
5002
\index{EvenSubgroup}::::::::::::::::::::::::\\
5003
\texttt{EvenSubgroup(G) }\\
5004
5005
5006
Inputs a group $G$ and returns a subgroup $G^+$. The subgroup is that generated by all products $xy$ where $x$ and $y$ range over the generating set for $G$ stored by GAP. The subgroup is probably only meaningful when $G$ is an Artin or Coxeter group. \\
5007
\\
5008
\\
5009
\\
5010
\index{GraphOfGroupsDisplay}::::::::::::::::::::::::\\
5011
\texttt{ GraphOfGroupsDisplay(D) }\\
5012
\texttt{GraphOfGroupsDisplay(D,"web browser") }\\
5013
5014
5015
Inputs a graph of groups $D$ and displays it as a .gif file. It uses the Mozilla web browser as a default
5016
to view the diagram. An alternative browser can be set using a second
5017
argument.
5018
5019
This function requires Graphviz software. \\
5020
\\
5021
\\
5022
\\
5023
\index{GraphOfResolutions}::::::::::::::::::::::::\\
5024
\texttt{ GraphOfResolutions(D,n) }\\
5025
5026
5027
Inputs a graph of groups $D$ and a positive integer $n$. It returns a graph of resolutions, each resolution being of length $n$. It uses the function ResolutionGenericGroup() to produce the resolutions. \\
5028
\\
5029
\\
5030
\\
5031
\index{GraphOfGroups}::::::::::::::::::::::::\\
5032
\texttt{ GraphOfGroups(D) }\\
5033
5034
5035
Inputs a graph of resolutions $D$ and returns the corresponding graph of groups. \\
5036
\\
5037
\\
5038
\\
5039
\index{GraphOfResolutionsDisplay}::::::::::::::::::::::::\\
5040
\texttt{ GraphOfResolutionsDisplay(D) }\\
5041
5042
5043
Inputs a graph of resolutions $D$ and displays it as a .gif file. It uses the Mozilla web browser as a default
5044
to view the diagram.
5045
5046
This function requires Graphviz software. \\
5047
\\
5048
\\
5049
\\
5050
\index{GraphOfGroupsTest}::::::::::::::::::::::::\\
5051
\texttt{GraphOfGroupsTest(D) }\\
5052
5053
5054
Inputs an object $D$ and itries to test whether it is a Graph of Groups. However, it DOES NOT test
5055
the injectivity of any homomorphisms. It returns true if $D$ passes the test, and false otherwise.
5056
5057
Note that there is no function $IsHapGraphOfGroups()$ because no special data type has been created for these graphs. \\
5058
\\
5059
\\
5060
\\
5061
\index{TreeOfGroupsToContractibleGcomplex}::::::::::::::::::::::::\\
5062
\texttt{TreeOfGroupsToContractibleGcomplex(D,G) }\\
5063
5064
5065
Inputs a graph of groups $D$ which is a tree, and also inputs the fundamental group $G$ of the tree in a form which contains each of the groups in the graph as
5066
subgroups. It returns a corresponding contractible G-complex. \\
5067
\\
5068
\\
5069
\\
5070
\index{TreeOfResolutionsToContractibleGcomplex}::::::::::::::::::::::::\\
5071
\texttt{TreeOfResolutionsToContractibleGcomplex(D,G) }\\
5072
5073
5074
Inputs a graph of resolutions $D$ which is a tree, and also inputs the fundamental group $G$ of the tree in a form which contains each of the groups in the graph as
5075
subgroups. It returns a corresponding contractible G-complex. The resolutions
5076
are stored as a component of the contractible $G$-complex. \\
5077
\\
5078
\\
5079
}
5080
5081
\#
5082
\chapter{\textcolor{Chapter }{Torsion Subcomplexes}}\logpage{[ 27, 0, 0 ]}
5083
\hyperdef{L}{X8213E6467969C33F}{}
5084
{
5085
\begin{center}
5086
\begin{tabular}{|l|} The Torsion Subcomplex subpackage has been conceived and implemented by \textsc{Bui Anh Tuan} and \textsc{ Alexander D. Rahm}\\
5087
\index{RigidFacetsSubdivision} \texttt{RigidFacetsSubdivision( X )}
5088
5089
It inputs an $n$-dimensional $G$-equivariant CW-complex $X$ on which all the cell stabilizer subgroups in $G$ are finite. It returns an $n$-dimensional $G$-equivariant CW-complex $Y$ which is topologically the same as $X$, but equipped with a $G$-CW-structure which is rigid. \\
5090
\index{IsPNormal} \texttt{ IsPNormal( G, p)}
5091
5092
Inputs a finite group $G$ and a prime $p$. Checks if the group G is p-normal for the prime p. Zassenhaus defines a
5093
finite group to be p-normal if the center of one of its Sylow p-groups is the
5094
center of every Sylow p-group in which it is contained. \\
5095
\index{TorsionSubcomplex} \texttt{TorsionSubcomplex( C, p)}
5096
5097
Inputs either a cell complex with action of a group as a variable or a group
5098
name. In HAP, presently the following cell complexes with stabilisers fixing
5099
their cells pointwise are available, specified by the following "groupName"
5100
strings: \\
5101
\\
5102
"SL(2,O-2)" , "SL(2,O-7)" , "SL(2,O-11)" , "SL(2,O-19)" , "SL(2,O-43)" ,
5103
"SL(2,O-67)" , "SL(2,O-163)", \\
5104
\\
5105
where the symbol O[-m] stands for the ring of integers in the imaginary
5106
quadratic number field Q(sqrt(-m)), the latter being the extension of the
5107
field of rational numbers by the square root of minus the square-free positive
5108
integer m. The additive structure of this ring O[-m] is given as the module
5109
Z[omega] over the natural integers Z with basis \texttt{\symbol{123}}1,
5110
omega\texttt{\symbol{125}}, and omega being the square root of minus m if m is
5111
congruent to 1 or 2 modulo four; else, in the case m congruent 3 modulo 4, the
5112
element omega is the arithmetic mean with 1, namely $(1+sqrt(-m))/2$. \\
5113
\\
5114
The function TorsionSubcomplex prints the cells with p-torsion in their
5115
stabilizer on the screen and returns the incidence matrix of the 1-skeleton of
5116
this cellular subcomplex, as well as a Boolean value on whether the cell
5117
complex has its cell stabilisers fixing their cells pointwise. \\
5118
\\
5119
It is also possible to input the cell complexes \\
5120
\\
5121
"SL(2,Z)" , "SL(3,Z)" , "PGL(3,Z[i])" ,
5122
"PGL(3,Eisenstein{\textunderscore}Integers)" , "PSL(4,Z)" ,
5123
"PSL(4,Z){\textunderscore}b" , "PSL(4,Z){\textunderscore}c" ,
5124
"PSL(4,Z){\textunderscore}d" , "Sp(4,Z)" \\
5125
\\
5126
provided by \textsc{Mathieu Dutour}. \\
5127
\index{DisplayAvailableCellComplexes} \texttt{DisplayAvailableCellComplexes();}
5128
5129
Displays the cell complexes that are available in HAP. \\
5130
\index{VisualizeTorsionSkeleton} \texttt{VisualizeTorsionSkeleton( groupName, p)}
5131
5132
Executes the function TorsionSubcomplex( groupName, p) and visualizes its
5133
output, namely the incidence matrix of the 1-skeleton of the p-torsion
5134
subcomplex, as a graph. \\
5135
\index{ReduceTorsionSubcomplex} \texttt{ReduceTorsionSubcomplex( C, p)}
5136
5137
This function start with the same operations as the function
5138
TorsionSubcomplex( C, p), and if the cell stabilisers are fixing their cells
5139
pointwise, it continues as follows. \\
5140
\\
5141
It prints on the screen which cells to merge and which edges to cut off in
5142
order to reduce the p-torsion subcomplex without changing the equivariant
5143
Farrell cohomology. Finally, it prints the representative cells, their
5144
stabilizers and the Abelianization of the latter. \\
5145
\index{EquivariantEulerCharacteristic} \texttt{EquivariantEulerCharacteristic( X )}
5146
5147
It inputs an $n$-dimensional $\Gamma$-equivariant CW-complex $X$ all the cell stabilizer subgroups in $\Gamma$ are finite. It returns the equivariant euler characteristic obtained by using
5148
mass formula $\sum_{\sigma}(-1)^{dim\sigma}\frac{1}{card(\Gamma_{\sigma})}$ \\
5149
\index{CountingCellsOfACellComplex} \texttt{CountingCellsOfACellComplex( X )}
5150
5151
It inputs an $n$-dimensional $\Gamma$-equivariant CW-complex $X$ on which all the cell stabilizer subgroups in $\Gamma$ are finite. It returns the number of cells in $X$ \\
5152
\index{CountingControlledSubdividedCells} \texttt{CountingControlledSubdividedCells( X )}
5153
5154
It inputs an $n$-dimensional $\Gamma$-equivariant CW-complex $X$ on which all the cell stabilizer subgroups in $\Gamma$ are finite. It returns the number of cells in $X$ appear during the subdivision process using the RigidFacetsSubdivision. \\
5155
\index{CountingBaryCentricSubdividedCells} \texttt{CountingBaryCentricSubdividedCells( X )}
5156
5157
It inputs an $n$-dimensional $\Gamma$-equivariant CW-complex $X$ on which all the cell stabilizer subgroups in $\Gamma$ are finite. It returns the number of cells in $X$ appear during the subdivision process using the barycentric subdivision. \\
5158
\index{EquivariantSpectralSequencePage} \texttt{EquivariantSpectralSequencePage( C, m, n)}
5159
5160
It inputs a triple (C,m,n) where C is either a groupName explained as in
5161
TorsionSubcomplex, m is the dimension of the reduced torsion subcomplex, and n
5162
is the highest vertical degree in the spectral sequence page. At the moment,
5163
the function works only when m=1,i.e, after reduction the torsion subcomplex
5164
has degree 1. It returns a component object R consists of the first page of
5165
spectral sequence, and i-th cohomology groups for i less than n. \\
5166
\index{ExportHapCellcomplexToDisk} \texttt{ExportHapCellcomplexToDisk( C, groupName)}
5167
5168
It inputs a cell complex $C$ which is stored as a variable in the memory, together with a user's desire
5169
name. In case, the input is a torsion cell complex then the user's desire name
5170
should be in the form "group{\textunderscore}ptorsion" in order to use the
5171
function EquivariantSpectralSequencePage. The function will export C to the
5172
hard disk. \\
5173
\end{tabular}\\[2mm]
5174
\end{center}
5175
5176
}
5177
5178
5179
\chapter{\textcolor{Chapter }{ Simplicial Complexes}}\logpage{[ 28, 0, 0 ]}
5180
\hyperdef{L}{X7AC76D657C578FEE}{}
5181
{
5182
\\
5183
\\
5184
\\
5185
\texttt{Homology(T,n)}\\
5186
\texttt{Homology(T)}\\
5187
5188
5189
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and a non-negative integer $n$. It returns the n-th integral homology of $T$ as a list of torsion integers. If no value of $n$ is input then the list of all homologies of $T$ in dimensions 0 to Dimension(T) is returned . \\
5190
\\
5191
\\
5192
\\
5193
\texttt{RipsHomology(G,n)}\\
5194
\texttt{RipsHomology(G,n,p)}\\
5195
5196
5197
Inputs a graph $G$, a non-negative integer $n$ (and optionally a prime number $p$). It returns the integral homology (or mod p homology) in degree $n$ of the Rips complex of $G$. \\
5198
\\
5199
\\
5200
\\
5201
\index{Bettinumbers}::::::::::::::::::::::::\\
5202
\texttt{ Bettinumbers(T,n)}\\
5203
\texttt{ Bettinumbers(T)}\\
5204
5205
5206
Inputs a pure cubical complex, or cubical complex, simplicial complex or chain
5207
complex $T$ and a non-negative integer $n$. The rank of the n-th rational homology group $H_n(T,\mathbb Q)$ is returned. If no value for n is input then the list of Betti numbers in
5208
dimensions 0 to Dimension(T) is returned . \\
5209
\\
5210
\\
5211
\\
5212
\texttt{ChainComplex(T)}\\
5213
5214
5215
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and returns the (often very large) cellular chain complex of $T$. \\
5216
\\
5217
\\
5218
\\
5219
\index{CechComplexOfPureCubicalComplex}::::::::::::::::::::::::\\
5220
\texttt{CechComplexOfPureCubicalComplex(T)}\\
5221
5222
5223
Inputs a d-dimensional pure cubical complex $T$ and returns a simplicial complex $S$. The simplicial complex $S$ has one vertex for each d-cube in $T$, and an n-simplex for each collection of n+1 d-cubes with non-trivial common
5224
intersection. The homotopy types of $T$ and $S$ are equal. \\
5225
\\
5226
\\
5227
\\
5228
\index{PureComplexToSimplicialComplex}::::::::::::::::::::::::\\
5229
\texttt{PureComplexToSimplicialComplex(T,k)}\\
5230
5231
5232
Inputs either a d-dimensional pure cubical complex $T$ or a d-dimensional pure permutahedral complex $T$ together with a non-negative integer $k$. It returns the first $k$ dimensions of a simplicial complex $S$. The simplicial complex $S$ has one vertex for each d-cell in $T$, and an n-simplex for each collection of n+1 d-cells with non-trivial common
5233
intersection. The homotopy types of $T$ and $S$ are equal.
5234
5235
For a pure cubical complex $T$ this uses a slightly different algorithm to the function
5236
CechComplexOfPureCubicalComplex(T) but constructs the same simplicial complex. \\
5237
\\
5238
\\
5239
\\
5240
\index{RipsChainComplex}::::::::::::::::::::::::\\
5241
\texttt{RipsChainComplex(G,n)}\\
5242
5243
5244
Inputs a graph $G$ and a non-negative integer $n$. It returns $n+1$ terms of a chain complex whose homology is that of the nerve (or Rips complex)
5245
of the graph in degrees up to $n$. \\
5246
\\
5247
\\
5248
\\
5249
\index{VectorsToSymmetricMatrix}::::::::::::::::::::::::\\
5250
\texttt{VectorsToSymmetricMatrix(M)}\\
5251
\texttt{VectorsToSymmetricMatrix(M,distance)}\\
5252
5253
5254
Inputs a matrix $M$ of rational numbers and returns a symmetric matrix $S$ whose $(i,j)$ entry is the distance between the $i$-th row and $j$-th rows of $M$ where distance is given by the sum of the absolute values of the coordinate
5255
differences.
5256
5257
Optionally, a function distance(v,w) can be entered as a second argument. This
5258
function has to return a rational number for each pair of rational vectors $v,w$ of length Length(M[1]). \\
5259
\\
5260
\\
5261
\\
5262
\index{EulerCharacteristic}::::::::::::::::::::::::\\
5263
\texttt{EulerCharacteristic(T)}\\
5264
5265
5266
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and returns its Euler characteristic. \\
5267
\\
5268
\\
5269
\\
5270
\index{MaximalSimplicesToSimplicialComplex}::::::::::::::::::::::::\\
5271
\texttt{MaximalSimplicesToSimplicialComplex(L)}\\
5272
5273
5274
Inputs a list L whose entries are lists of vertices representing the maximal
5275
simplices of a simplicial complex. The simplicial complex is returned. Here a
5276
"vertex" is a GAP object such as an integer or a subgroup. \\
5277
\\
5278
\\
5279
\\
5280
\index{SkeletonOfSimplicialComplex}::::::::::::::::::::::::\\
5281
\texttt{SkeletonOfSimplicialComplex(S,k)}\\
5282
5283
5284
Inputs a simplicial complex $S$ and a positive integer $k$ less than or equal to the dimension of $S$. It returns the truncated $k$-dimensional simplicial complex $S^k$ (and leaves $S$ unchanged). \\
5285
\\
5286
\\
5287
\\
5288
\index{GraphOfSimplicialComplex}::::::::::::::::::::::::\\
5289
\texttt{GraphOfSimplicialComplex(S)}\\
5290
5291
5292
Inputs a simplicial complex $S$ and returns the graph of $S$. \\
5293
\\
5294
\\
5295
\\
5296
\index{ContractibleSubcomplexOfSimplicialComplex}::::::::::::::::::::::::\\
5297
\texttt{ContractibleSubcomplexOfSimplicialComplex(S)}\\
5298
5299
5300
Inputs a simplicial complex $S$ and returns a (probably maximal) contractible subcomplex of $S$. \\
5301
\\
5302
\\
5303
\\
5304
\index{PathComponentsOfSimplicialComplex}::::::::::::::::::::::::\\
5305
\texttt{PathComponentsOfSimplicialComplex(S,n)}\\
5306
5307
5308
Inputs a simplicial complex $S$ and a nonnegative integer $n$. If $n=0$ the number of path components of $S$ is returned. Otherwise the n-th path component is returned (as a simplicial
5309
complex). \\
5310
\\
5311
\\
5312
\\
5313
\index{QuillenComplex}::::::::::::::::::::::::\\
5314
\texttt{QuillenComplex(G)}\\
5315
5316
5317
Inputs a finite group $G$ and returns, as a simplicial complex, the order complex of the poset of
5318
non-trivial elementary abelian subgroups of $G$. \\
5319
\\
5320
\\
5321
\\
5322
\index{SymmetricMatrixToIncidenceMatrix}::::::::::::::::::::::::\\
5323
\texttt{SymmetricMatrixToIncidenceMatrix(S,t)}\\
5324
\texttt{SymmetricMatrixToIncidenceMatrix(S,t,d)}\\
5325
5326
5327
Inputs a symmetric integer matrix S and an integer t. It returns the matrix $M$ with $M_{ij}=1$ if $I_{ij}$ is less than $ t$ and $I_{ij}=1$ otherwise.
5328
5329
An optional integer $d$ can be given as a third argument. In this case the incidence matrix should
5330
have roughly at most $d$ entries in each row (corresponding to the \$d\$ smallest entries in each row
5331
of $S$). \\
5332
\\
5333
\\
5334
\\
5335
\index{IncidenceMatrixToGraph}::::::::::::::::::::::::\\
5336
\texttt{IncidenceMatrixToGraph(M)}\\
5337
5338
5339
Inputs a symmetric 0/1 matrix M. It returns the graph with one vertex for each
5340
row of $M$ and an edges between vertices $i$ and $j$ if the $(i,j)$ entry in $M$ equals 1. \\
5341
\\
5342
\\
5343
\\
5344
\index{CayleyGraphOfGroup}::::::::::::::::::::::::\\
5345
\texttt{CayleyGraphOfGroup(G,A)}\\
5346
5347
5348
Inputs a group $G$ and a set $A$ of generators. It returns the Cayley graph. \\
5349
\\
5350
\\
5351
\\
5352
\index{PathComponentsOfGraph}::::::::::::::::::::::::\\
5353
\texttt{PathComponentsOfGraph(G,n)}\\
5354
5355
5356
Inputs a graph $G$ and a nonnegative integer $n$. If $n=0$ the number of path components is returned. Otherwise the n-th path component
5357
is returned (as a graph). \\
5358
\\
5359
\\
5360
\\
5361
\index{ContractGraph}::::::::::::::::::::::::\\
5362
\texttt{ContractGraph(G)}\\
5363
5364
5365
Inputs a graph $G$ and tries to remove vertices and edges to produce a smaller graph $G'$ such that the indlusion $G' \rightarrow G$ induces a homotopy equivalence $RG \rightarrow RG'$ of Rips complexes. If the graph $G$ is modified the function returns true, and otherwise returns false. \\
5366
\\
5367
\\
5368
\\
5369
\index{GraphDisplay}::::::::::::::::::::::::\\
5370
\texttt{GraphDisplay(G)}\\
5371
5372
5373
This function uses GraphViz software to display a graph $G$. \\
5374
\\
5375
\\
5376
\\
5377
\index{SimplicialMap}::::::::::::::::::::::::\\
5378
\index{SimplicialMapNC}::::::::::::::::::::::::\\
5379
\texttt{SimplicialMap(K,L,f)}\\
5380
\texttt{SimplicialMapNC(K,L,f)}\\
5381
5382
5383
Inputs simplicial complexes $K$ , $L$ and a function $f\colon K!.vertices \rightarrow L!.vertices$ representing a simplicial map. It returns a simplicial map $K \rightarrow L$. If $f$ does not happen to represent a simplicial map then SimplicialMap(K,L,f) will
5384
return fail; SimplicialMapNC(K,L,f) will not do any check and always return
5385
something of the data type "simplicial map". \\
5386
\\
5387
\\
5388
\\
5389
\index{ChainMapOfSimplicialMap}::::::::::::::::::::::::\\
5390
\texttt{ChainMapOfSimplicialMap(f)}\\
5391
5392
5393
Inputs a simplicial map $f\colon K \rightarrow L$ and returns the corresponding chain map $C_\ast(f) \colon C_\ast(K) \rightarrow C_\ast(L)$ of the simplicial chain complexes.. \\
5394
\\
5395
\\
5396
\\
5397
\index{SimplicialNerveOfGraph}::::::::::::::::::::::::\\
5398
\texttt{SimplicialNerveOfGraph(G,d)}\\
5399
5400
5401
Inputs a graph $G$ and returns a $d$-dimensional simplicial complex $K$ whose 1-skeleton is equal to $G$. There is a simplicial inclusion $K \rightarrow RG$ where: (i) the inclusion induces isomorphisms on homotopy groups in dimensions
5402
less than $d$; (ii) the complex $RG$ is the Rips complex (with one $n$-simplex for each complete subgraph of $G$ on $n+1$ vertices). \\
5403
\\
5404
\\
5405
}
5406
5407
5408
\chapter{\textcolor{Chapter }{Cubical Complexes}}\logpage{[ 29, 0, 0 ]}
5409
\hyperdef{L}{X7D67D5F3820637AD}{}
5410
{
5411
\\
5412
\\
5413
\\
5414
\index{ArrayToPureCubicalComplex}::::::::::::::::::::::::\\
5415
\texttt{ArrayToPureCubicalComplexA,n)}\\
5416
5417
5418
Inputs an integer array $A$ of dimension $d$ and an integer $n$. It returns a d-dimensional pure cubical complex corresponding to the
5419
black/white "image" determined by the threshold $n$ and the values of the entries in $A$. (Integers below the threshold correspond to a black pixel, and higher
5420
integers correspond to a white pixel.) \\
5421
\\
5422
\\
5423
\\
5424
\index{PureCubicalComplex}::::::::::::::::::::::::\\
5425
\texttt{PureCubicalComplexA,n)}\\
5426
5427
5428
Inputs a binary array $A$ of dimension $d$. It returns the corresponding d-dimensional pure cubical complex. \\
5429
\\
5430
\\
5431
\\
5432
\index{FramedPureCubicalComplex}::::::::::::::::::::::::\\
5433
\texttt{FramedPureCubicalComplex(M)}\\
5434
5435
5436
Inputs a pure cubical complex $M$ and returns the pure cubical complex with a border of zeros attached the each
5437
face of the boundary array M!.boundaryArray. This function just adds a bit of
5438
space for performing operations such as thickenings to $M$. \\
5439
\\
5440
\\
5441
\\
5442
\index{RandomCubeOfPureCubicalComplex}::::::::::::::::::::::::\\
5443
\texttt{RandomCubeOfPureCubicalComplex(M)}\\
5444
5445
5446
Inputs a pure cubical complex $M$ and returns a pure cubical complex $R$ with precisely the same dimensions as $M$. The complex $R$ consist of one cube selected at random from $M$. \\
5447
\\
5448
\\
5449
\\
5450
\index{PureCubicalComplexIntersection}::::::::::::::::::::::::\\
5451
\texttt{PureCubicalComplexIntersection(S,T)}\\
5452
5453
5454
Inputs two pure cubical complexes with common dimension and array size. It
5455
returns the intersection of the two complexes. (An entry in the binary array
5456
of the intersection has value 1 if and only if the corresponding entries in
5457
the binary arrays of S and T both have value 1.) \\
5458
\\
5459
\\
5460
\\
5461
\index{PureCubicalComplexUnion}::::::::::::::::::::::::\\
5462
\texttt{PureCubicalComplexUnion(S,T)}\\
5463
5464
5465
Inputs two pure cubical complexes with common dimension and array size. It
5466
returns the union of the two complexes. (An entry in the binary array of the
5467
union has value 1 if and only if at least one of the corresponding entries in
5468
the binary arrays of S and T has value 1.) \\
5469
\\
5470
\\
5471
\\
5472
\index{PureCubicalComplexDifference}::::::::::::::::::::::::\\
5473
\texttt{PureCubicalComplexDifference(S,T)}\\
5474
5475
5476
Inputs two pure cubical complexes with common dimension and array size. It
5477
returns the difference S-T. (An entry in the binary array of the difference
5478
has value 1 if and only if the corresponding entry in the binary array of S is
5479
1 and the corresponding entry in the binary array of T is 0.) \\
5480
\\
5481
\\
5482
\\
5483
\index{ReadImageAsPureCubicalComplex}::::::::::::::::::::::::\\
5484
\texttt{ ReadImageAsPureCubicalComplex("file.png",n)}\\
5485
5486
5487
Reads an image file ("file.png", "file.eps", "file.bmp" etc) and an integer $n$ between 0 and 765. It returns a 2-dimensional pure cubical complex based on
5488
the black/white version of the image determined by the threshold $n$. \\
5489
\\
5490
\\
5491
\\
5492
\index{ReadLinkImageAsPureCubicalComplex}::::::::::::::::::::::::\\
5493
\texttt{ ReadLinkImageAsPureCubicalComplex("file.png")}\\
5494
\texttt{ ReadLinkImageAsPureCubicalComplex("file.png",n)}\\
5495
5496
5497
Reads an image file ("file.png", "file.eps", "file.bmp" etc) containing a knot
5498
or link diagram, and optionally a positive integer $n$. The integer $n$ should be a little larger than the line thickness in the link diagram, and if
5499
not provided then $n$ is set equal to 10. The function tries to output the corresponding knot or
5500
link as a 3-dimensional pure cubical complex. Ideally the link diagram should
5501
be produced with line thickness 6 in Xfig, and the under-crossing spaces
5502
should not be too large or too small or too near one another. The function
5503
does not always succeed: it applies several checks, and if one of these checks
5504
fails then the function returns "fail". \\
5505
\\
5506
\\
5507
\\
5508
\index{ReadImageSequenceAsPureCubicalComplex}::::::::::::::::::::::::\\
5509
\texttt{ReadImageSequenceAsPureCubicalComplex("directory",n)}\\
5510
5511
5512
Reads the name of a directory containing a sequence of image files (ordered
5513
alphanumerically), and an integer $n$ between 0 and 765. It returns a 3-dimensional pure cubical complex based on
5514
the black/white version of the images determined by the threshold $n$. \\
5515
\\
5516
\\
5517
\\
5518
\texttt{Size(T)}\\
5519
5520
5521
This returns the number of non-zero entries in the binary array of the cubical
5522
complex, or pure cubical complex T. \\
5523
\\
5524
\\
5525
\\
5526
\texttt{Dimension(T)}\\
5527
5528
5529
This returns the dimension of the cubical complex, or pure cubical complex T. \\
5530
\\
5531
\\
5532
\\
5533
\index{WritePureCubicalComplexAsImage}::::::::::::::::::::::::\\
5534
\texttt{WritePureCubicalComplexAsImage(T,"filename","ext")}\\
5535
5536
5537
Inputs a 2-dimensional pure cubical complex T, and a filename followed by its
5538
extension (e.g. "myfile" followed by "png"). A black/white image is saved to
5539
the file. \\
5540
\\
5541
\\
5542
\\
5543
\index{ViewPureCubicalComplex}::::::::::::::::::::::::\\
5544
\texttt{ViewPureCubicalComplex(T)}\\
5545
\texttt{ViewPureCubicalComplex(T,"mozilla")}\\
5546
5547
5548
Inputs a 2-dimensional pure cubical complex T, and optionally a command such
5549
as "mozilla" for viewing image files. A black/white image is displayed. \\
5550
\\
5551
\\
5552
\\
5553
\index{Homology}::::::::::::::::::::::::\\
5554
\texttt{Homology(T,n)}\\
5555
\texttt{Homology(T)}\\
5556
5557
5558
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and a non-negative integer $n$. It returns the n-th integral homology of $T$ as a list of torsion integers. If no value of $n$ is input then the list of all homologies of $T$ in dimensions 0 to Dimension(T) is returned . \\
5559
\\
5560
\\
5561
\\
5562
\index{Bettinumbers}::::::::::::::::::::::::\\
5563
\texttt{Bettinumbers(T,n)}\\
5564
\texttt{Bettinumbers(T)}\\
5565
5566
5567
Inputs a pure cubical complex, or cubical complex, simplicial complex or chain
5568
complex $T$ and a non-negative integer $n$. The rank of the n-th rational homology group $H_n(T,\mathbb Q)$ is returned. If no value for n is input then the list of Betti numbers in
5569
dimensions 0 to Dimension(T) is returned . \\
5570
\\
5571
\\
5572
\\
5573
\index{DirectProductOfPureCubicalComplexes}::::::::::::::::::::::::\\
5574
\texttt{DirectProductOfPureCubicalComplexes(M,N)}\\
5575
5576
5577
Inputs two pure cubical complexes $M,N$ and returns their direct product $D$ as a pure cubical complex. The dimension of $D$ is the sum of the dimensions of $M$ and $N$. \\
5578
\\
5579
\\
5580
\\
5581
\index{SuspensionOfPureCubicalComplex}::::::::::::::::::::::::\\
5582
\texttt{SuspensionOfPureCubicalComplex(M)}\\
5583
5584
5585
Inputs a pure cubical complex $M$ and returns a pure cubical complex with the homotopy type of the suspension of $M$. \\
5586
\\
5587
\\
5588
\\
5589
\texttt{EulerCharacteristic(T)}\\
5590
5591
5592
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and returns its Euler characteristic. \\
5593
\\
5594
\\
5595
\\
5596
\index{PathComponentOfPureCubicalComplex}::::::::::::::::::::::::\\
5597
\texttt{PathComponentOfPureCubicalComplex(T,n)}\\
5598
5599
5600
Inputs a pure cubical complex $T$ and an integer $n$ in the rane 1, ..., Bettinumbers(T)[1] . It returns the n-th path component of $T$ as a pure cubical complex. The value $n=0$ is also allowed, in which case the number of path components is returned. \\
5601
\\
5602
\\
5603
\\
5604
\texttt{ChainComplex(T)}\\
5605
5606
5607
Inputs a pure cubical complex, or cubical complex, or simplicial complex $T$ and returns the (often very large) cellular chain complex of $T$. \\
5608
\\
5609
\\
5610
\\
5611
\texttt{ChainComplexOfPair(T,S)}\\
5612
5613
5614
Inputs a pure cubical complex or cubical complex $T$ and subcomplex $S$. It returns the quotient $C(T)/C(S)$ of cellular chain complexes. \\
5615
\\
5616
\\
5617
\\
5618
\texttt{ExcisedPureCubicalPair(T,S)}\\
5619
5620
5621
Inputs a pure cubical complex $T$ and subcomplex $S$. It returns the pair $[T\setminus intS, S\setminus intS])$ of pure cubical complexes where $intS$ is the pure cubical complex obtained from $S$ by removing its boundary. \\
5622
\\
5623
\\
5624
\\
5625
\index{ChainInclusionOfPureCubicalPair}::::::::::::::::::::::::\\
5626
\texttt{ChainInclusionOfPureCubicalPair(S,T)}\\
5627
5628
5629
Inputs a pure cubical complex $T$ and subcomplex $S$. It returns the chain inclusion $C(S) \rightarrow C(T)$ of cellular chain complexes. \\
5630
\\
5631
\\
5632
\\
5633
\index{ChainMapOfPureCubicalPairs}::::::::::::::::::::::::\\
5634
\texttt{ChainMapOfPureCubicalPairs(M,S,N,T)}\\
5635
5636
5637
Inputs a pure cubical complex $N$ and subcomplexes $M$, $T$ and $S$ in $T$. It returns the chain map $C(M/S) \rightarrow C(N/T)$ of quotient cellular chain complexes. \\
5638
\\
5639
\\
5640
\\
5641
\index{ContractPureCubicalComplex}::::::::::::::::::::::::\\
5642
\texttt{ContractPureCubicalComplex(T)}\\
5643
5644
5645
Inputs a pure cubical complex $T$ of dimension $d$ and removes $d$-dimensional cells from $T$ without changing the homotopy type of $T$. When the function has been applied, no further $d$-cells can be removed from $T$ without changing its homotopy type. This function modifies $T$. \\
5646
\\
5647
\\
5648
\\
5649
\index{ContractedComplex}::::::::::::::::::::::::\\
5650
\texttt{ContractedComplex(T)}\\
5651
5652
5653
Inputs a pure cubical complex $T$ and returns a structural copy of the complex obtained from $T$ by applying the function ContractPureCubicalComplex(T). \\
5654
\\
5655
\\
5656
\\
5657
\index{ZigZagContractedPureCubicalComplex}::::::::::::::::::::::::\\
5658
\texttt{ZigZagContractedPureCubicalComplex(T)}\\
5659
5660
5661
Inputs a pure cubical complex $T$ and returns a homotopy equivalent pure cubical complex $S$. The aim is for $S$ to involve fewer cells than $T$ and certainly to involve no more cells than $T$. \\
5662
\\
5663
\\
5664
\\
5665
\index{ContractCubicalComplex}::::::::::::::::::::::::\\
5666
\texttt{ContractCubicalComplex(T)}\\
5667
5668
5669
Inputs a cubical complex $T$ and removes cells without changing the homotopy type of $T$. It changes $T$. In particular, it adds the components T.vectors and T.rewrite of a discrete
5670
vector field.
5671
5672
At present this function only works for cubical complexes of dimension 2 or 3. \\
5673
\\
5674
\\
5675
\\
5676
\index{DVFReducedCubicalComplex}::::::::::::::::::::::::\\
5677
\texttt{DVFReducedCubicalComplex(T)}\\
5678
5679
5680
Inputs a cubical complex $T$ and returns a non-regular cubical complex $R$ by constructing a discrete vector field. The vector field is designed to
5681
minimize the number of critical cells in $R$ at the cost of allowing cell attaching maps that are not homeomorphisms on
5682
boundaries.
5683
5684
At present this function works only for 2- and 3-dimensional cubical
5685
complexes.
5686
5687
The function ChainComplex(R) can be used to obtain the cellular chain complex
5688
of $R$. \\
5689
\\
5690
\\
5691
\\
5692
\index{SkeletonOfCubicalComplex}::::::::::::::::::::::::\\
5693
\texttt{SkeletonOfCubicalComplex(T,n)}\\
5694
5695
5696
Inputs a cubical complex, or pure cubical complex $T$ and positive integer $n$. It returns the $n$-skeleton of $T$ as a cubical complex. \\
5697
\\
5698
\\
5699
\\
5700
\index{ContractibleSubomplexOfPureCubicalComplex}::::::::::::::::::::::::\\
5701
\texttt{ContractibleSubomplexOfPureCubicalComplex(T)}\\
5702
5703
5704
Inputs a pure cubical complex $T$ and returns a maximal contractible pure cubical subcomplex. \\
5705
\\
5706
\\
5707
\\
5708
\index{AcyclicSubomplexOfPureCubicalComplex}::::::::::::::::::::::::\\
5709
\texttt{AcyclicSubomplexOfPureCubicalComplex(T)}\\
5710
5711
5712
Inputs a pure cubical complex $T$ and returns a (not necessarily connected) pure cubical subcomplex having
5713
trivial homology in all degrees greater than $0$. \\
5714
\\
5715
\\
5716
\\
5717
\index{HomotopyEquivalentMaximalPureCubicalSubcomplex}::::::::::::::::::::::::\\
5718
\texttt{HomotopyEquivalentMaximalPureCubicalSubcomplex(T,S)}\\
5719
5720
5721
Inputs a pure cubical complex $T$ together with a pure cubical subcomplex $S$. It returns a pure cubical subcomplex $H$ of $T$ which contains $S$ and is maximal with respect to the property that it is homotopy equivalent to $S$. \\
5722
\\
5723
\\
5724
\\
5725
\index{HomotopyEquivalentMinimalPureCubicalSubcomplex}::::::::::::::::::::::::\\
5726
\texttt{HomotopyEquivalentMinimalPureCubicalSubcomplex(T,S)}\\
5727
5728
5729
Inputs a pure cubical complex $T$ together with a pure cubical subcomplex $S$. It returns a pure cubical subcomplex $H$ of $T$ which contains $S$ and is minimal with respect to the property that it is homotopy equivalent to $T$. \\
5730
\\
5731
\\
5732
\\
5733
\index{BoundaryOfPureCubicalComplex}::::::::::::::::::::::::\\
5734
\texttt{BoundaryOfPureCubicalComplex(T)}\\
5735
5736
5737
Inputs a pure cubical complex $T$ and returns its boundary as a pure cubical complex. The boundary consists of
5738
all cubes which have one or more facets that lie in just the one cube. \\
5739
\\
5740
\\
5741
\\
5742
\index{SingularitiesOfPureCubicalComplex}::::::::::::::::::::::::\\
5743
\texttt{SingularitiesOfPureCubicalComplex(T,radius,tolerance)}\\
5744
5745
5746
Inputs a pure cubical complex $T$ together with a positive integer "radius" and an integer "tolerance" in the
5747
range 1..100. It returns the pure cubical subcomplex of those cells in the
5748
boundary where the boundary is not differentiable. (The method for deciding
5749
differentiability at a point is crude/discrete, prone to errors and depends on
5750
the radius and tolerance.) \\
5751
\\
5752
\\
5753
\\
5754
\index{ThickenedPureCubicalComplex}::::::::::::::::::::::::\\
5755
\texttt{ThickenedPureCubicalComplex(T)}\\
5756
5757
5758
Inputs a pure cubical complex $T$ and returns a pure cubical complex $S$. If a euclidean cube is in $T$ then this cube and all its neighbouring cubes are included in $S$. \\
5759
\\
5760
\\
5761
\\
5762
\index{CropPureCubicalComplex}::::::::::::::::::::::::\\
5763
\texttt{CropPureCubicalComplex(T)}\\
5764
5765
5766
Inputs a pure cubical complex $T$ and returns a pure cubical complex $S$ obtained from $T$ by removing any "zero boundary sheets" of the binary array. Thus $S$ and $T$ are isometric as euclidean spaces but there may be fewer zero entries in the
5767
binary array for $S$. \\
5768
\\
5769
\\
5770
\\
5771
\index{BoundingPureCubicalComplex}::::::::::::::::::::::::\\
5772
\texttt{BoundingPureCubicalComplex(T)}\\
5773
5774
5775
Inputs a pure cubical complex $T$ and returns a contractible pure cubical complex $S$ containing $T$. \\
5776
\\
5777
\\
5778
\\
5779
\index{MorseFiltration}::::::::::::::::::::::::\\
5780
\texttt{MorseFiltration(M,i,t,bool)}\\
5781
\texttt{MorseFiltration(M,i,t)}\\
5782
5783
5784
Inputs a pure cubical complex $M$ of dimension $d$, an integer $i$ between $1$ and $d$, a positive integer $t$ and a boolean value True or False. The function returns a list $[M_1, M_2, ..., M_t]$ of pure cubical complexes with $M_k$ a subcomplex of $M_{k+1}$. The list is constructed by setting all slices of $M$ perpendicular to the $i$-th axis equal to zero if they meet the $i$th axis at a sufficiently high coordinate (if bool=True) or sufficiently low
5785
coordinate (if bool=False).
5786
5787
If the variable bool is not specified then it is assumed to have the value
5788
True. \\
5789
\\
5790
\\
5791
\\
5792
\index{ComplementOfPureCubicalComplex}::::::::::::::::::::::::\\
5793
\texttt{ComplementOfPureCubicalComplex(T)}\\
5794
5795
5796
Inputs a pure cubical complex $T$ and returns a pure cubical complex $S$. A euclidean cube is in $S$ precisely when the cube is not in $T$. \\
5797
\\
5798
\\
5799
\\
5800
\index{PureCubicalComplexToTextFile}::::::::::::::::::::::::\\
5801
\texttt{PureCubicalComplexToTextFile(file,M)}\\
5802
5803
5804
Inputs a pure cubical complex $M$ and a string containing the address of a file. A representation of this
5805
complex is written to the file in a format that can be read by the CAPD
5806
(Computer Assisted Proofs in Dynamics) software developed by Marian Mrozek and
5807
others. \\
5808
\\
5809
\\
5810
\\
5811
\index{ThickeningFiltration}::::::::::::::::::::::::\\
5812
\texttt{ThickeningFiltration(M,n)}\\
5813
\texttt{ThickeningFiltration(M,n,k)}\\
5814
5815
5816
Inputs a pure cubical complex $M$ and a positive integer $n$. It returns a filtered pure cubical complex constructed frim $n$ thickenings of $M$. If a positive integer $k$ is supplied as an optional third argument, then each step of the filtration is
5817
obtained from a $k$-fold thickening. \\
5818
\\
5819
\\
5820
\\
5821
\index{Dendrogram}::::::::::::::::::::::::\\
5822
\texttt{Dendrogram(M)}\\
5823
5824
5825
Inputs a filtered pure cubical complex $M$ and returns data that specifies the dendrogram (or phylogenetic tree)
5826
describing how path components are born and then merge during the filtration. \\
5827
\\
5828
\\
5829
\\
5830
\index{DendrogramDisplay}::::::::::::::::::::::::\\
5831
\texttt{DendrogramDisplay(M)}\\
5832
5833
5834
Inputs a filtered pure cubical complex $M$, or alternatively inputs the out from the command Dendrogram(M), and then
5835
uses GraphViz software to display the path component dendrogram of $M$. \\
5836
\\
5837
\\
5838
\\
5839
\index{DendrogramToPersistenceMat}::::::::::::::::::::::::\\
5840
\texttt{DendrogramToPersistenceMat(D)}\\
5841
5842
5843
Inputs the output of the function Dendrogram(M) and returns the corresponding
5844
degree 0 Betti bar code. \\
5845
\\
5846
\\
5847
\\
5848
\index{ReadImageAsFilteredPureCubicalComplex}::::::::::::::::::::::::\\
5849
\texttt{ReadImageAsFilteredPureCubicalComplex(file,n)}\\
5850
5851
5852
Inputs a string containing the path to an image file, together with a positive
5853
integer n. It returns a filtered pure cubical complex of filtration length $n$. \\
5854
\\
5855
\\
5856
\\
5857
\index{ComplementOfFilteredPureCubicalComplex}::::::::::::::::::::::::\\
5858
\texttt{ComplementOfFilteredPureCubicalComplex(M)}\\
5859
5860
5861
Inputs a filtered pure cubical complex $M$ and returns the complement as a filtered pure cubical complex. \\
5862
\\
5863
\\
5864
\\
5865
\index{PersistentHomologyOfFilteredPureCubicalComplex}::::::::::::::::::::::::\\
5866
\texttt{PersistentHomologyOfFilteredPureCubicalComplex(M,n)}\\
5867
5868
5869
Inputs a filtered pure cubical complex $M$ and a non-negative integer $n$. It returns the degree $n$ persistent homology of $ M$ with rational coefficients. \\
5870
\\
5871
\\
5872
}
5873
5874
5875
\chapter{\textcolor{Chapter }{Regular CW-Complexes}}\logpage{[ 30, 0, 0 ]}
5876
\hyperdef{L}{X855CD0808058727D}{}
5877
{
5878
\begin{center}
5879
\begin{tabular}{|l|} \index{SimplicialComplexToRegularCWComplex} \texttt{SimplicialComplexToRegularCWComplex(K)}
5880
5881
Inputs a simplicial complex $K$ and returns the corresponding regular CW-complex. \\
5882
\index{CubicalComplexToRegularCWComplex} \texttt{CubicalComplexToRegularCWComplex(K)} \texttt{CubicalComplexToRegularCWComplex(K,n)}
5883
5884
Inputs a pure cubical complex (or cubical complex) $K$ and returns the corresponding regular CW-complex. If a positive integer $n$ is entered as an optional second argument, then just the $n$-skeleton of $K$ is returned. \\
5885
\index{CriticalCellsOfRegularCWComplex} \texttt{CriticalCellsOfRegularCWComplex(Y)} \texttt{CriticalCellsOfRegularCWComplex(Y,n)}
5886
5887
Inputs a regular CW-complex $Y$ and returns the critical cells of $Y$ with respect to some discrete vector field. If $Y$ does not initially have a discrete vector field then one is constructed.
5888
5889
If a positive integer $n$ is given as a second optional input, then just the critical cells in
5890
dimensions up to and including $n$ are returned.
5891
5892
The function $CriticalCellsOfRegularCWComplex(Y)$ works by homotopy reducing cells starting at the top dimension. The function $CriticalCellsOfRegularCWComplex(Y,n)$ works by homotopy coreducing cells starting at dimension 0. The two methods
5893
may well return different numbers of cells. \\
5894
\index{ChainComplex} \texttt{ChainComplex(Y)}
5895
5896
Inputs a regular CW-complex $Y$ and returns the cellular chain complex of a CW-complex W whose cells
5897
correspond to the critical cells of $Y$ with respect to some discrete vector field. If $Y$ does not initially have a discrete vector field then one is constructed. \\
5898
\index{ChainComplexOfRegularCWComplex} \texttt{ChainComplexOfRegularCWComplex(Y)}
5899
5900
Inputs a regular CW-complex $Y$ and returns the cellular chain complex of $Y$. \\
5901
\index{FundamentalGroup} \index{FundamentalGroupOfRegularCWComplex} \texttt{FundamentalGroup(Y)} \texttt{FundamentalGroup(Y,n)}
5902
5903
Inputs a regular CW-complex $Y$ and, optionally, the number of some 0-cell. It returns the fundamental group
5904
of $Y$ based at the 0-cell $n$. The group is returned as a finitely presented group. If $n$ is not specified then it is set $n=1$. The algorithm requires a discrete vector field on $Y$. If $Y$ does not initially have a discrete vector field then one is constructed. \\
5905
\end{tabular}\\[2mm]
5906
\end{center}
5907
5908
}
5909
5910
5911
\chapter{\textcolor{Chapter }{ Knots and Links}}\logpage{[ 31, 0, 0 ]}
5912
\hyperdef{L}{X82DADC508677F1EE}{}
5913
{
5914
\begin{center}
5915
\begin{tabular}{|l|} \index{PureCubicalKnot} \texttt{PureCubicalKnot(L)} \texttt{PureCubicalKnot(n,i)}
5916
5917
Inputs a list $L=[[m1,n1], [m2,n2], ..., [mk,nk]]$ of pairs of integers describing a cubical arc presentation of a link with all
5918
vertical lines at the front and all horizontal lines at the back. The bottom
5919
horizontal line extends from the m1-th column to the n1-th column. The second
5920
to bottom horizontal line extends from the m2-th column to the n2-th column.
5921
And so on. The link is returned as a 3-dimensional pure cubical complex.
5922
5923
Alternatively the function inputs two integers $n$, $i$ and returns the $i$-th prime knot on $n$ crossings. \\
5924
\index{ViewPureCubicalKnot} \texttt{ViewPureCubicalKnot(L)}
5925
5926
Inputs a pure cubical link $L$ and displays it.
5927
5928
\\
5929
\index{KnotSum} \texttt{KnotSum(K,L)}
5930
5931
Inputs two pure cubical knots $K$, $L$ and returns their sum as a pure cubical knot. This function is not defined for
5932
links with more than one component.
5933
5934
\\
5935
\index{KnotGroup} \texttt{KnotGroup(K)}
5936
5937
Inputs a pure cubical link $K$ and returns the fundamental group of its complement. The group is returned as
5938
a finitely presented group.
5939
5940
\\
5941
\index{AlexanderMatrix} \texttt{AlexanderMatrix(G)}
5942
5943
Inputs a finitely presented group $G$ whose abelianization is infinite cyclic. It returns the Alexander matrix of
5944
the presentation.
5945
5946
\\
5947
\index{AlexanderPolynomial} \texttt{AlexanderPolynomial(K)} \texttt{AlexanderPolynomial(G)}
5948
5949
Inputs either a pure cubical knot $K$ or a finitely presented group $G$ whose abelianization is infinite cyclic. The Alexander Polynomial is returned.
5950
5951
\\
5952
\index{ProjectionOfPureCubicalComplex} \texttt{ProjectionOfPureCubicalComplex(K)}
5953
5954
Inputs an \$n\$-dimensional pure cubical complex $K$ and returns an n-1-dimensional pure cubical complex K'. The returned complex
5955
is obtained by projecting Euclidean n-space onto Euclidean n-1-space.
5956
5957
\\
5958
\index{ReadPDBfileAsPureCubicalComplex} \texttt{ReadPDBfileAsPureCubicalComplex(file)} \texttt{ReadPDBfileAsPureCubicalComplex(file,m ,c)}
5959
5960
Inputs a protein database file describing a protein, and optionally inputs a
5961
positive integer m and character string c. The default values for the optional
5962
inputs are m=5 and c="A". It loads the chain of amino acids labelled by c in
5963
the file as a 3-dimensional pure cubical complex of the homotopy type of a
5964
circle.
5965
5966
It might happen that the function fails to construct a pure cubical complex of
5967
the homotopy type of a circle. In this case retry with a larger integer m. \\
5968
\end{tabular}\\[2mm]
5969
\end{center}
5970
5971
}
5972
5973
5974
\chapter{\textcolor{Chapter }{ Knots and Quandles }}\logpage{[ 32, 0, 0 ]}
5975
\hyperdef{L}{X83856E7178651841}{}
5976
{
5977
\begin{center}
5978
\begin{tabular}{|l|} Knots \\
5979
\index{PresentationKnotQuandle} \texttt{PresentationKnotQuandle(gaussCode) }
5980
5981
Inputs a Gauss Code of a knot (with the orientations; see $GaussCodeOfPureCubicalKnot$ in HAP package) and outputs the generators and relators of the knot quandle
5982
associated (in the form of a record). \\
5983
\index{PD2GC} \texttt{PD2GC(PD) }
5984
5985
Inputs a Planar Diagram of a knot; outputs the Gauss Code associated (with the
5986
orientations). \\
5987
\index{PlanarDiagramKnot} \texttt{PlanarDiagramKnot(n,k) }
5988
5989
Returns a Planar Diagram for the $k$-th knot with $n$ crossings ($n$UNKNOWNEntity(le)$12$) if it exists; fail otherwise. \\
5990
\index{GaussCodeKnot} \texttt{GaussCodeKnot(n,k) }
5991
5992
Returns a Gauss Code (with orientations) for the $k$-th knot with $n$ crossings ($n$UNKNOWNEntity(le)$12$) if it exists; fail otherwise. \\
5993
\index{PresentationKnotQuandleKnot} \texttt{PresentationKnotQuandleKnot(n,k) }
5994
5995
Returns generators and relators (in the form of a record) for the $k$-th knot with $n$ crossings ($n$UNKNOWNEntity(le)$12$) if it exists; fail otherwise. \\
5996
\index{NumberOfHomomorphisms} \texttt{NumberOfHomomorphisms(genRelQ,finiteQ) }
5997
5998
Inputs generators and relators $genRelQ$ of a knot quandle (in the form of a record, see above) and a finite quandle $finiteQ$; outputs the number of homomorphisms from the former to the latter. \\
5999
\index{PartitionedNumberOfHomomorphisms} \texttt{PartitionedNumberOfHomomorphisms(genRelQ,finiteQ) }
6000
6001
Inputs generators and relators $genRelQ$ of a knot quandle (in the form of a record, see above) and a finite connected
6002
quandle $finiteQ$; outputs a partition of the number of homomorphisms from the former to the
6003
latter. \\
6004
Quandles \\
6005
\index{ConjugationQuandle} \texttt{ConjugationQuandle(G,n) }
6006
6007
Inputs a finite group $G$ and an integer $n$; outputs the associated $n$-fold conjugation quandle. \\
6008
\index{QuandleAxiomIsSatisfied} \texttt{FirstQuandleAxiomIsSatisfied(M) } \\
6009
\texttt{SecondQuandleAxiomIsSatisfied(M) } \\
6010
\texttt{ThirdQuandleAxiomIsSatisfied(M) }
6011
6012
Inputs a finite magma $M$; returns true if $M$ satisfy the first/second/third axiom of a quandle, false otherwise. \\
6013
\index{IsQuandle} \texttt{ IsQuandle(M) }
6014
6015
Inputs a finite magma $M$; returns true if $M$ is a quandle, false otherwise. \\
6016
\index{Quandles} \texttt{Quandles(n) }
6017
6018
Returns a list of all quandles of size $n$, $n$UNKNOWNEntity(le)$6$. If $n$UNKNOWNEntity(ge)$7$, it returns fail. \\
6019
\index{Quandle} \texttt{ Quandle(n,k) }
6020
6021
Returns the $k$-th quandle of size $n$ ($n$UNKNOWNEntity(le)$6$) if such a quandle exists, fail otherwise. \\
6022
\index{IdQuandle} \texttt{IdQuandle(Q) }
6023
6024
Inputs a quandle $Q$; and outputs a list of integers [$n$,$k$] such that $Q$ is isomorphic to \texttt{Quandle(n,k)}. If $n$UNKNOWNEntity(ge)$7$, then it returns [$n$,fail] (where $n$ is the size of $Q$). \\
6025
\index{IsLatin} \texttt{IsLatin(Q) }
6026
6027
Inputs a finite quandle $Q$; returns true if $Q$ is latin, false otherwise. \\
6028
\index{IsConnectedQuandle} \texttt{IsConnectedQuandle(Q) }
6029
6030
Inputs a finite quandle $Q$; returns true if $Q$ is connected, false otherwise. \\
6031
\index{ConnectedQuandles} \texttt{ConnectedQuandles(n) }
6032
6033
Returns a list of all connected quandles of size $n$. \\
6034
\index{ConnectedQuandle} \texttt{ConnectedQuandle(n,k) }
6035
6036
Returns the $k$-th quandle of size $n$ if such a quandle exists, fail otherwise. \\
6037
\index{IdConnectedQuandle} \texttt{IdConnectedQuandle(Q) }
6038
6039
Inputs a connected quandle $Q$; and outputs a list of integers [$n$,$k$] such that $Q$ is isomorphic to \texttt{ConnectedQuandle(n,k)}. \\
6040
\index{IsQuandleEnvelope} \texttt{IsQuandleEnvelope(Q,G,e,stigma) }
6041
6042
Inputs a set $Q$, a permutation group $G$, an element $e$ UNKNOWNEntity(isin) $Q$ and an element $stigma $ UNKNOWNEntity(isin) $G$; returns true if this structure describes a quandle envelope, false
6043
otherwise. \\
6044
\index{QuandleQuandleEnveloppe} \texttt{ QuandleQuandleEnveloppe(Q,G,e,stigma) }
6045
6046
Inputs a set $Q$, a permutation group $G$, an element $e$ UNKNOWNEntity(isin) $Q$ and an element $stigma$ UNKNOWNEntity(isin) $G$. If this structure describes a quandle envelope, the function returns the
6047
quandle from this quandle envelope; and fail otherwise. Nb: this quandle is a
6048
connected quandle. \\
6049
\index{KnotInvariantCedric} \texttt{ KnotInvariantCedric(genRelQ,n,m) }
6050
6051
Inputs generators and relators of a knot quandle (in the form of a record, see
6052
above) and two integers $n$ and $m$; outputs a list [$n$1,$n$2,...,$n$k] where $n$j is a partition of the number of homomorphisms from the considered knot
6053
quandle to the $j$-th connected quandle of size $n$UNKNOWNEntity(le)$i$UNKNOWNEntity(le)$m$. \\
6054
\index{RightMultiplicationGroupAsPerm} \texttt{RightMultiplicationGroupAsPerm(Q) }
6055
6056
Inputs a connected quandle $Q$; output its right multiplication group whose elements are permutations. \\
6057
\index{RightMultiplicationGroup} \texttt{RightMultiplicationGroup(Q) }
6058
6059
Inputs a connected quandle $Q$; output its right multiplication group whose elements are mappings from $Q$ to $Q$. \\
6060
\index{AutomorphismGroupQuandleAsPerm} \texttt{AutomorphismGroupQuandleAsPerm(Q) }
6061
6062
Inputs a connected quandle $Q$; outputs its automorphism group whose elements are permutations. \\
6063
\index{AutomorphismGroupQuandle} \texttt{AutomorphismGroupQuandle(Q)}
6064
6065
Inputs a connected quandle $Q$; outputs its automorphism group whose elements are mappings from $Q$ to $Q$. \\
6066
\end{tabular}\\[2mm]
6067
\end{center}
6068
6069
}
6070
6071
6072
\chapter{\textcolor{Chapter }{ Finite metric spaces and their filtered complexes }}\logpage{[ 33, 0, 0 ]}
6073
\hyperdef{L}{X7988ECB7803BA915}{}
6074
{
6075
\begin{center}
6076
\begin{tabular}{|l|} \index{CayleyMetric} \texttt{CayleyMetric(g,h,N) } \texttt{CayleyMetric(g,h) }
6077
6078
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the minimum number of
6079
transpositions needed to express $g*h^-1$ as a product of transpositions. \\
6080
\index{HammingMetric} \texttt{HammingMetric(g,h,N) } \texttt{HammingMetric(g,h) }
6081
6082
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the number of integers moved
6083
by the permutation $g*h^-1$. \\
6084
\index{KendallMetric} \texttt{KendallMetric(g,h,N) } \texttt{KendallMetric(g,h) }
6085
6086
Inputs two permutations $g,h$ and optionally the degree $N$ of a symmetric group containing them. It returns the minimum number of
6087
adjacent transpositions needed to express $g*h^-1$ as a product of adjacent transpositions. An adjacent transposition has the for $(i,i+1)$. \\
6088
\index{EuclideanSquaredMetric} \texttt{EuclideanSquaredMetric(v,w) }
6089
6090
Inputs two vectors $v,w$ of equal length and returns the sum of the squares of the components of $v-w$. In other words, it returns the square of the Euclidean distance between $v$ and $w$. \\
6091
\index{EuclideanApproximatedMetric} \texttt{EuclideanApproximatedMetric(v,w) }
6092
6093
Inputs two vectors $v,w$ of equal length and returns a rational approximation to the square root of the
6094
sum of the squares of the components of $v-w$. In other words, it returns an approximation to the Euclidean distance
6095
between $v$ and $w$. \\
6096
\index{ManhattanMetric} \texttt{ManhattanMetric(v,w) }
6097
6098
Inputs two vectors $v,w$ of equal length and returns the sum of the absolute values of the components
6099
of $v-w$. This is often referred to as the taxi-cab distance between $v$ and $w$. \\
6100
\index{VectorsToSymmetricMatrix} \texttt{VectorsToSymmetricMatrix(L) } \texttt{VectorsToSymmetricMatrix(L,D) }
6101
6102
Inputs a list $L$ of vectors and optionally a metric $D$. The default is $D=ManhattanMetric$. It returns the symmetric matrix whose i-j-entry is $S[i][j]=D(L[i],L[j])$. \\
6103
\index{SymmetricMatDisplay} \texttt{SymmetricMatDisplay(S) } \texttt{SymmetricMatDisplay(L,V) }
6104
6105
Inputs an $n \times n$ symmetric matrix $S$ of non-negative integers and an integer $t$ in $[0 .. 100]$. Optionally it inputs a list $V=[V_1, ... , V_k]$ of disjoint subsets of $[1 .. n]$. It displays the graph with vertex set $[1 .. n]$ and with an edge between $i$ and $j$ if $S[i][j] < t$. If the optional list $V$ is input then the vertices in $V_i$ will be given a common colour distinct from other vertices. \\
6106
\index{SymmetricMatrixToFilteredGraph} \texttt{SymmetricMatrixToFilteredGraph(S,t,m) }
6107
6108
Inputs an integer symmetric matrix $S$, a positive integer $t$ and a positive integer $m$. The function returns a filtered graph of filtration length $t$. The $k$-th term of the filtration is a graph with one vertex for each row of $S$. There is an edge in this graph between the $i$-th and $j$-th vertices if the entry $S[i][j]$ is less than or equal to $k*m/t$. \\
6109
\index{PermGroupToFilteredGraph} \texttt{PermGroupToFilteredGraph(S,D) }
6110
6111
Inputs a permutation group $G$ and a metric $D$ defined on permutations. The function returns a filtered graph. The $k$-th term of the filtration is a graph with one vertex for each element of the
6112
group $G$. There is an edge in this graph between vertices $g$ and $h$ if $D(g,h)$ is less than some integer threshold $t_k$. The thresholds $t_1 < t_2 < ... < t_N$ are chosen to form as long a sequence as possible subject to each term of the
6113
filtration being a distinct graph. \\
6114
\end{tabular}\\[2mm]
6115
\end{center}
6116
6117
}
6118
6119
6120
\chapter{\textcolor{Chapter }{ Commutative diagrams and abstract categories}}\logpage{[ 34, 0, 0 ]}
6121
\hyperdef{L}{X83AAC8367CC7686F}{}
6122
{
6123
\\
6124
\textsc{COMMUTATIVE DIAGRAMS} \\
6125
\\
6126
\\
6127
\\
6128
\\
6129
\index{HomomorphismChainToCommutativeDiagram}::::::::::::::::::::::::\\
6130
\texttt{HomomorphismChainToCommutativeDiagram(H) }\\
6131
6132
6133
Inputs a list $H=[h_1,h_2,...,h_n]$ of mappings such that the composite $h_1h_2...h_n$ is defined. It returns the list of composable homomorphism as a commutative
6134
diagram. \\
6135
\\
6136
\\
6137
\\
6138
\index{NormalSeriesToQuotientDiagram}::::::::::::::::::::::::\\
6139
\texttt{NormalSeriesToQuotientDiagram(L) }\\
6140
\texttt{NormalSeriesToQuotientDiagram(L,M)}\\
6141
6142
6143
Inputs an increasing (or decreasing) list $L=[L_1,L_2,...,L_n]$ of normal subgroups of a group $G$ with $G=L_n$. It returns the chain of quotient homomorphisms $G/L_i \rightarrow G/L_{i+1}$ as a commutative diagram.
6144
6145
Optionally a subseries $M$ of $L$ can be entered as a second variable. Then the resulting diagram of quotient
6146
groups has two rows of horizontal arrows and one row of vertical arrows. \\
6147
\\
6148
\\
6149
\\
6150
\index{NerveOfCommutativeDiagram}::::::::::::::::::::::::\\
6151
\texttt{NerveOfCommutativeDiagram(D) }\\
6152
6153
6154
Inputs a commutative diagram $D$ and returns the commutative diagram $ND$ consisting of all possible composites of the arrows in $D$. \\
6155
\\
6156
\\
6157
\\
6158
\index{GroupHomologyOfCommutativeDiagram}::::::::::::::::::::::::\\
6159
\texttt{GroupHomologyOfCommutativeDiagram(D,n) }\\
6160
\texttt{GroupHomologyOfCommutativeDiagram(D,n,prime) }\\
6161
\texttt{GroupHomologyOfCommutativeDiagram(D,n,prime,Resolution{\textunderscore}Algorithm) }\\
6162
6163
6164
Inputs a commutative diagram $D$ of $p$-groups and positive integer $n$. It returns the commutative diagram of vector spaces obtained by applying mod
6165
p homology.
6166
6167
Non-prime power groups can also be handled if a prime $p$ is entered as the third argument. Integral homology can be obtained by setting $p=0$. For $p=0$ the result is a diagram of groups.
6168
6169
A particular resolution algorithm, such as ResolutionNilpotentGroup, can be
6170
entered as a fourth argument. For positive $p$ the default is ResolutionPrimePowerGroup. For $p=0$ the default is ResolutionFiniteGroup. \\
6171
\\
6172
\\
6173
\\
6174
\index{PersistentHomologyOfCommutativeDiagramOfPGroups}::::::::::::::::::::::::\\
6175
\texttt{PersistentHomologyOfCommutativeDiagramOfPGroups(D,n) }\\
6176
6177
6178
Inputs a commutative diagram $D$ of finite $p$-groups and a positive integer $n$. It returns a list containing, for each homomorphism in the nerve of $D$, a triple $[k,l,m]$ where $k$ is the dimension of the source of the induced mod $p$ homology map in degree $n$, $l$ is the dimension of the image, and $m$ is the dimension of the cokernel. \\
6179
\\
6180
\\
6181
\textsc{ABSTRACT CATEGORIES} \\
6182
\\
6183
\\
6184
\\
6185
\\
6186
\index{CategoricalEnrichment}::::::::::::::::::::::::\\
6187
\texttt{CategoricalEnrichment(X,Name) }\\
6188
6189
6190
Inputs a structure $X$ such as a group or group homomorphism, together with the name of some existing
6191
category such as Name:=Category{\textunderscore}of{\textunderscore}Groups or
6192
Category{\textunderscore}of{\textunderscore}Abelian{\textunderscore}Groups. It
6193
returns, as appropriate, an object or arrow in the named category. \\
6194
\\
6195
\\
6196
\\
6197
\index{IdentityArrow}::::::::::::::::::::::::\\
6198
\texttt{IdentityArrow(X) }\\
6199
6200
6201
Inputs an object $X$ in some category, and returns the identity arrow on the object $X$. \\
6202
\\
6203
\\
6204
\\
6205
\index{InitialArrow}::::::::::::::::::::::::\\
6206
\texttt{InitialArrow(X) }\\
6207
6208
6209
Inputs an object $X$ in some category, and returns the arrow from the initial object in the
6210
category to $X$. \\
6211
\\
6212
\\
6213
\\
6214
\index{TerminalArrow}::::::::::::::::::::::::\\
6215
\texttt{TerminalArrow(X) }\\
6216
6217
6218
Inputs an object $X$ in some category, and returns the arrow from $X$ to the terminal object in the category. \\
6219
\\
6220
\\
6221
\\
6222
\index{HasInitialObject}::::::::::::::::::::::::\\
6223
\texttt{HasInitialObject(Name) }\\
6224
6225
6226
Inputs the name of a category and returns true or false depending on whether
6227
the category has an initial object. \\
6228
\\
6229
\\
6230
\\
6231
\index{HasTerminalObject}::::::::::::::::::::::::\\
6232
\texttt{HasTerminalObject(Name) }\\
6233
6234
6235
Inputs the name of a category and returns true or false depending on whether
6236
the category has a terminal object. \\
6237
\\
6238
\\
6239
\\
6240
\index{Source}::::::::::::::::::::::::\\
6241
\texttt{Source(f) }\\
6242
6243
6244
Inputs an arrow $f$ in some category, and returns its source. \\
6245
\\
6246
\\
6247
\\
6248
\index{Target}::::::::::::::::::::::::\\
6249
\texttt{Target(f) }\\
6250
6251
6252
Inputs an arrow $f$ in some category, and returns its target. \\
6253
\\
6254
\\
6255
\\
6256
\index{CategoryName}::::::::::::::::::::::::\\
6257
\texttt{CategoryName(X) }\\
6258
6259
6260
Inputs an object or arrow $X$ in some category, and returns the name of the category. \\
6261
\\
6262
\\
6263
\\
6264
\texttt{"*", "=", "+", "-" }\\
6265
6266
6267
Composition of suitable arrows $f,g$ is given by $f*g$ when the source of $f$ equals the target of $g$. (Warning: this differes to the standard GAP convention.)
6268
6269
Equality is tested using $f=g$.
6270
6271
In an additive category the sum and difference of suitable arrows is given by $f+g$ and $f-g$. \\
6272
\\
6273
\\
6274
\\
6275
\index{Object}::::::::::::::::::::::::\\
6276
\texttt{Object(X) }\\
6277
6278
6279
Inputs an object $X$ in some category, and returns the GAP structure $Y$ such that $X=CategoricalEnrichment(Y,CategoryName(X))$. \\
6280
\\
6281
\\
6282
\\
6283
\index{Mapping}::::::::::::::::::::::::\\
6284
\texttt{Mapping(X) }\\
6285
6286
6287
Inputs an arrow $f$ in some category, and returns the GAP structure $Y$ such that $f=CategoricalEnrichment(Y,CategoryName(X))$. \\
6288
\\
6289
\\
6290
\\
6291
\index{IsCategoryObject}::::::::::::::::::::::::\\
6292
\texttt{IsCategoryObject(X) }\\
6293
6294
6295
Inputs $X$ and returns true if $X$ is an object in some category. \\
6296
\\
6297
\\
6298
\\
6299
\index{IsCategoryArrow}::::::::::::::::::::::::\\
6300
\texttt{IsCategoryArrow(X) }\\
6301
6302
6303
Inputs $X$ and returns true if $X$ is an arrow in some category. \\
6304
\\
6305
\\
6306
}
6307
6308
6309
\chapter{\textcolor{Chapter }{ Arrays and Pseudo lists}}\logpage{[ 35, 0, 0 ]}
6310
\hyperdef{L}{X7B71D3EA7B30ADAB}{}
6311
{
6312
\\
6313
\\
6314
\\
6315
\index{Array}::::::::::::::::::::::::\\
6316
\texttt{Array(A,f)}\\
6317
6318
6319
Inputs an array $A$ and a function $f$. It returns the the array obtained by applying $f$ to each entry of $A$ (and leaves $A$ unchanged). \\
6320
\\
6321
\\
6322
\\
6323
\index{PermuteArray}::::::::::::::::::::::::\\
6324
\texttt{PermuteArray(A,f)}\\
6325
6326
6327
Inputs an array $A$ of dimension $d$ and a permutation $f$ of degree at most $d$. It returns the array $B$ defined by $B[i1][i2]...[id] = A[f(i1)][f(i2)]...A[f(id)]$ (and leaves $A$ unchanged). \\
6328
\\
6329
\\
6330
\\
6331
\index{ArrayDimension}::::::::::::::::::::::::\\
6332
\texttt{ArrayDimension(A)}\\
6333
6334
6335
Inputs an array $A$ and returns its dimension. \\
6336
\\
6337
\\
6338
\\
6339
\index{ArrayDimensions}::::::::::::::::::::::::\\
6340
\texttt{ArrayDimensions(A)}\\
6341
6342
6343
Inputs an array $A$ and returns its dimensions. \\
6344
\\
6345
\\
6346
\\
6347
\index{ArraySum}::::::::::::::::::::::::\\
6348
\texttt{ArraySum(A)}\\
6349
6350
6351
Inputs an array $A$ and returns the sum of its entries. \\
6352
\\
6353
\\
6354
\\
6355
\index{ArrayValue}::::::::::::::::::::::::\\
6356
\texttt{ArrayValue(A,x)}\\
6357
6358
6359
Inputs an array $A$ and a coordinate vector $x$. It returns the value of the entry in $A$ with coordinate $x$. \\
6360
\\
6361
\\
6362
\\
6363
\index{ArrayValueFunctions}::::::::::::::::::::::::\\
6364
\texttt{ArrayValueFunctions(d)}\\
6365
6366
6367
Inputs a positive integer $d$ and returns an efficient version of the function ArrayValue for arrays of
6368
dimension $d$. \\
6369
\\
6370
\\
6371
\\
6372
\index{ArrayAssign}::::::::::::::::::::::::\\
6373
\texttt{ArrayAssign(A,x,n)}\\
6374
6375
6376
Inputs an array $A$ and a coordinate vector $x$ and an integer $n$. It sets the entry of $A$ with coordinate $x$ equal to $n$. \\
6377
\\
6378
\\
6379
\\
6380
\index{ArrayAssignFunctions}::::::::::::::::::::::::\\
6381
\texttt{ArrayAssignFunctions(d)}\\
6382
6383
6384
Inputs a positive integer $d$ and returns an efficient version of the function ArrayAssign for arrays of
6385
dimension $d$. \\
6386
\\
6387
\\
6388
\\
6389
\index{ArrayIterate}::::::::::::::::::::::::\\
6390
\texttt{ArrayIterate(d)}\\
6391
6392
6393
Inputs a positive integer $d$ and returns a function ArrayIt(Dimensions,f). This function inputs a list
6394
Dimensions of $d$ positive integers and also a function $f(x)$. It applies the function $f(x)$ to each integer list $x$ of length $d$ with entries $x[i]$ in the range [1..Dimension[i]]. \\
6395
\\
6396
\\
6397
\\
6398
\index{BinaryArrayToTextFile}::::::::::::::::::::::::\\
6399
\texttt{BinaryArrayToTextFile(file,A)}\\
6400
6401
6402
Inputs a string containing the address of a file, and an array $A$ of 0s and 1s. The array represents a pure cubical complex. A representation of
6403
this complex is written to the file in a format that can be read by the CAPD
6404
(Computer Assisted Proofs in Dynamics) software developed by Marian Mrozek and
6405
others.
6406
6407
The second input $A$ can also be a pure cubical complex. \\
6408
\\
6409
\\
6410
\\
6411
\index{FrameArray}::::::::::::::::::::::::\\
6412
\texttt{FrameArray(A)}\\
6413
6414
6415
Inputs an array $A$ and returns the array obtained by appending a 0 to the beginning and end of
6416
each "row" of the array. \\
6417
\\
6418
\\
6419
\\
6420
\index{UnframeArray}::::::::::::::::::::::::\\
6421
\texttt{UnframeArray(A)}\\
6422
6423
6424
Inputs an array $A$ and returns the array obtained by removing the first and last entry in each
6425
"row" of the array. \\
6426
\\
6427
\\
6428
\\
6429
\index{Add}::::::::::::::::::::::::\\
6430
\texttt{Add(L,x)}\\
6431
6432
6433
Let $L$ be a pseudo list of length $n$, and $x$ an object compatible with the entries in $L$. If $x$ is not in $L$ then this operation converts $L$ into a pseudo list of length n+1 by adding $x$ as the final entry. If $x$ is in $L$ the operation has no effect on $L$. \\
6434
\\
6435
\\
6436
\\
6437
\index{Append}::::::::::::::::::::::::\\
6438
\texttt{Append(L,K)}\\
6439
6440
6441
Let $L$ be a pseudo list and $K$ a list whose objects are compatible with those in $L$. This operation applies Add(L,x) for each x in $K$. \\
6442
\\
6443
\\
6444
\\
6445
\index{ListToPseudoList}::::::::::::::::::::::::\\
6446
\texttt{ListToPseudoList(L)}\\
6447
6448
6449
Inputs a list $L$ and returns the pseudo list representation of $L$. \\
6450
\\
6451
\\
6452
}
6453
6454
6455
\chapter{\textcolor{Chapter }{ Parallel Computation - Core Functions}}\logpage{[ 36, 0, 0 ]}
6456
\hyperdef{L}{X85F9DF1985B88C37}{}
6457
{
6458
\\
6459
\\
6460
\\
6461
\index{ChildProcess}::::::::::::::::::::::::\\
6462
\texttt{ChildProcess()}\\
6463
\texttt{ChildProcess("computer.ac.wales")}\\
6464
\texttt{ChildProcess(["-m", "100000M", "-T"])}\\
6465
\texttt{ChildProcess("computer.ac.wales", ["-m", "100000M", "-T"])}\\
6466
6467
6468
This starts a GAP session as a child process and returns a stream to the child
6469
process. If no argument is given then the child process is created on the
6470
local machine; otherwise the argument should be: 1) the address of a remote
6471
computer for which ssh has been configured to require no password from the
6472
user; (2) or a list of GAP command line options; (3) or the address of a
6473
computer followed by a list of command line options.
6474
6475
(To configure ssh so that the user can login without a password prompt from
6476
"thishost" to "remotehost" either consult "man ssh" or \\
6477
\\
6478
- open a shell on thishost\\
6479
- cd .ssh\\
6480
- ls\\
6481
-{\textgreater} if id{\textunderscore}dsa, id{\textunderscore}rsa etc exists,
6482
skip the next two steps!\\
6483
- ssh-keygen -t rsa\\
6484
- ssh-keygen -t dsa\\
6485
- scp *.pub user@remotehost:\texttt{\symbol{126}}/\\
6486
- ssh remotehost -l user\\
6487
- cat id{\textunderscore}rsa.pub {\textgreater}{\textgreater}
6488
.ssh/authorized{\textunderscore}keys\\
6489
- cat id{\textunderscore}dsa.pub {\textgreater}{\textgreater}
6490
.ssh/authorized{\textunderscore}keys\\
6491
- rm id{\textunderscore}rsa.pub id{\textunderscore}dsa.pub\\
6492
- exit\\
6493
\\
6494
You should now be able to connect from "thishost" to "remotehost" without a
6495
password prompt.) \\
6496
\\
6497
\\
6498
\\
6499
\index{ChildClose}::::::::::::::::::::::::\\
6500
\texttt{ChildClose(s)}\\
6501
6502
6503
This closes the stream s to a child GAP process. \\
6504
\\
6505
\\
6506
\\
6507
\index{ChildCommand}::::::::::::::::::::::::\\
6508
\texttt{ChildCommand("cmd;",s)}\\
6509
6510
6511
This runs a GAP command "cmd;" on the child process accessed by the stream s.
6512
Here "cmd;" is a string representing the command. \\
6513
\\
6514
\\
6515
\\
6516
\index{NextAvailableChild}::::::::::::::::::::::::\\
6517
\texttt{NextAvailableChild(L)}\\
6518
6519
6520
Inputs a list $L$ of child processes and returns a child in $L$ which is ready for computation (as soon as such a child is available). \\
6521
\\
6522
\\
6523
\\
6524
\index{IsAvailableChild}::::::::::::::::::::::::\\
6525
\texttt{IsAvailableChild(s)}\\
6526
6527
6528
Inputs a child process $s$ and returns true if s is currently available for computations, and false
6529
otherwise. \\
6530
\\
6531
\\
6532
\\
6533
\index{ChildPut}::::::::::::::::::::::::\\
6534
\texttt{ChildPut(A,"B",s)}\\
6535
6536
6537
This copies a GAP object A on the parent process to an object B on the child
6538
process s. (The copying relies on the function PrintObj(A); ) \\
6539
\\
6540
\\
6541
\\
6542
\index{ChildGet}::::::::::::::::::::::::\\
6543
\texttt{ChildGet("A",s)}\\
6544
6545
6546
This functions copies a GAP object A on the child process s and returns it on
6547
the parent process. (The copying relies on the function PrintObj(A); ) \\
6548
\\
6549
\\
6550
\\
6551
\index{HAPPrintTo}::::::::::::::::::::::::\\
6552
\texttt{HAPPrintTo("file",R)}\\
6553
6554
6555
Inputs a name "file" of a new text file and a HAP object R. It writes the
6556
object R to "file". Currently this is only implemented for R equal to a
6557
resolution. \\
6558
\\
6559
\\
6560
\\
6561
\index{HAPRead}::::::::::::::::::::::::\\
6562
\texttt{HAPRead("file",R)}\\
6563
6564
6565
Inputs a name "file" containing a HAP object R and returns the object.
6566
Currently this is only implemented for R equal to a resolution. \\
6567
\\
6568
\\
6569
}
6570
6571
6572
\chapter{\textcolor{Chapter }{ Parallel Computation - Extra Functions}}\logpage{[ 37, 0, 0 ]}
6573
\hyperdef{L}{X85B21D56816A1B39}{}
6574
{
6575
\\
6576
\\
6577
\\
6578
\index{ChildFunction}::::::::::::::::::::::::\\
6579
\texttt{ChildFunction("function(arg);",s)}\\
6580
6581
6582
This runs the GAP function "function(arg);" on a child process accessed by the
6583
stream s. The output from "func;" can be accessed via the stream. \\
6584
\\
6585
\\
6586
\\
6587
\index{ChildRead}::::::::::::::::::::::::\\
6588
\texttt{ChildRead(s)}\\
6589
6590
6591
This returns, as a string, the output of the last application of $ChildFunction("function(arg);",s)$. \\
6592
\\
6593
\\
6594
\\
6595
\index{ChildReadEval}::::::::::::::::::::::::\\
6596
\texttt{ChildReadEval(s)}\\
6597
6598
6599
This returns, as an evaluated string, the output of the last application of $ChildFunction("function(arg);",s)$. \\
6600
\\
6601
\\
6602
\\
6603
\index{ParallelList}::::::::::::::::::::::::\\
6604
\texttt{ParallelList(I,fn,L)}\\
6605
6606
6607
Inputs a list $I$, a function $fn$ such that $fn(x)$ is defined for all $x$ in $I$, and a list of children $L$. It uses the children in $L$ to compute $List(I,x->fn(x))$. (Obviously the function $fn$ must be defined on all child processes in $L$.) \\
6608
\\
6609
\\
6610
}
6611
6612
6613
\chapter{\textcolor{Chapter }{ Some functions for accessing basic data}}\logpage{[ 38, 0, 0 ]}
6614
\hyperdef{L}{X7AE3B902812A10B0}{}
6615
{
6616
\\
6617
\\
6618
\\
6619
\index{BoundaryMap}::::::::::::::::::::::::\\
6620
\texttt{BoundaryMap(C)}\\
6621
6622
6623
Inputs a resolution, chain complex or cochain complex $C$ and returns the function $C!.boundary$. \\
6624
\\
6625
\\
6626
\\
6627
\index{BoundaryMatrix}::::::::::::::::::::::::\\
6628
\texttt{BoundaryMatrix(C,n)}\\
6629
6630
6631
Inputs a chain or cochain complex $C$ and integer $n${\textgreater}$0$. It returns the $n$-th boundary map of $C$ as a matrix. \\
6632
\\
6633
\\
6634
\\
6635
\index{Dimension}::::::::::::::::::::::::\\
6636
\texttt{Dimension(C) }\\
6637
\\
6638
\texttt{Dimension(M) }\\
6639
6640
6641
Inputs a resolution, chain complex or cochain complex $C$ and returns the function $C!.dimension$ .
6642
6643
Alternatively, inputs an $FpG$-module $M$ and returns its dimension as a vector space over the field of $p$ elements. \\
6644
\\
6645
\\
6646
\\
6647
\index{EvaluateProperty}::::::::::::::::::::::::\\
6648
\texttt{EvaluateProperty(X,"name") }\\
6649
6650
6651
Inputs a component object $X$ (such as a $ZG$-resolution or chain map) and a string "name" (such as "characteristic" or
6652
"type"). It searches $X.property$ for the pair ["name",value] and returns value. If $X.property$ does not exist, or if ["name",value] does not exist, it returns fail. \\
6653
\\
6654
\\
6655
\\
6656
\index{GroupOfResolution}::::::::::::::::::::::::\\
6657
\texttt{GroupOfResolution(R)}\\
6658
6659
6660
Inputs a $ZG$-resolution $R$ and returns the group $G$. \\
6661
\\
6662
\\
6663
\\
6664
\index{Length}::::::::::::::::::::::::\\
6665
\texttt{Length(R)}\\
6666
6667
6668
Inputs a resolution $R$ and returns its length (i.e. the number of terms of $R$ that HAP has computed). \\
6669
\\
6670
\\
6671
\\
6672
\index{Map}::::::::::::::::::::::::\\
6673
\texttt{Map(f)}\\
6674
6675
6676
Inputs a chain map, or cochain map or equivariant chain map $f$ and returns the mapping function (as opposed to the target or the source of $f$) . \\
6677
\\
6678
\\
6679
\\
6680
\index{Source}::::::::::::::::::::::::\\
6681
\texttt{Source(f)}\\
6682
6683
6684
Inputs a chain map, or cochain map, or equivariant chain map, or $FpG$-module homomorphism $f$ and returns it source. \\
6685
\\
6686
\\
6687
\\
6688
\index{Target}::::::::::::::::::::::::\\
6689
\texttt{Target(f)}\\
6690
6691
6692
Inputs a chain map, or cochain map, or equivariant chain map, or $FpG$-module homomorphism $f$ and returns its target. \\
6693
\\
6694
\\
6695
}
6696
6697
6698
\chapter{\textcolor{Chapter }{ Miscellaneous}}\logpage{[ 39, 0, 0 ]}
6699
\hyperdef{L}{X7C5563A37D566DA5}{}
6700
{
6701
\\
6702
\\
6703
\\
6704
\index{SL2Z}::::::::::::::::::::::::\\
6705
\texttt{SL2Z(p) }\\
6706
\texttt{SL2Z(1/m) }\\
6707
6708
6709
Inputs a prime $p$ or the reciprocal $1/m$ of a square free integer $m$. In the first case the function returns the conjugate $SL(2,Z)^P$ of the special linear group $SL(2,Z)$ by the matrix $P=[[1,0],[0,p]]$. In the second case it returns the group $SL(2,Z[1/m])$. \\
6710
\\
6711
\\
6712
\\
6713
\index{BigStepLCS}::::::::::::::::::::::::\\
6714
\texttt{BigStepLCS(G,n) }\\
6715
6716
6717
Inputs a group $G$ and a positive integer $n$. It returns a subseries $G=L_1${\textgreater}$L_2${\textgreater}$ \ldots L_k=1$ of the lower central series of $G$ such that $L_i/L_{i+1}$ has order greater than $n$. \\
6718
\\
6719
\\
6720
\\
6721
\index{Classify}::::::::::::::::::::::::\\
6722
\texttt{Classify(L,Inv) }\\
6723
6724
6725
Inputs a list of objects $L$ and a function $Inv$ which computes an invariant of each object. It returns a list of lists which
6726
classifies the objects of $L$ according to the invariant.. \\
6727
\\
6728
\\
6729
\\
6730
\index{RefineClassification}::::::::::::::::::::::::\\
6731
\texttt{RefineClassification(C,Inv) }\\
6732
6733
6734
Inputs a list $C:=Classify(L,OldInv)$ and returns a refined classification according to the invariant $Inv$. \\
6735
\\
6736
\\
6737
\\
6738
\index{Compose(f,g)}::::::::::::::::::::::::\\
6739
\texttt{Compose(f,g) }\\
6740
6741
6742
Inputs two $FpG$-module homomorphisms $ f:M \longrightarrow N$ and $g:L \longrightarrow M$ with $Source(f)=Target(g)$ . It returns the composite homomorphism $fg:L \longrightarrow N$ .
6743
6744
This also applies to group homomorphisms $f,g$. \\
6745
\\
6746
\\
6747
\\
6748
\index{HAPcopyright}::::::::::::::::::::::::\\
6749
\texttt{HAPcopyright() }\\
6750
6751
6752
This function provides details of HAP'S GNU public copyright licence. \\
6753
\\
6754
\\
6755
\\
6756
\index{IsLieAlgebraHomomorphism}::::::::::::::::::::::::\\
6757
\texttt{IsLieAlgebraHomomorphism(f) }\\
6758
6759
6760
Inputs an object $f$ and returns true if $f$ is a homomorphism $f:A \longrightarrow B$ of Lie algebras (preserving the Lie bracket). \\
6761
\\
6762
\\
6763
\\
6764
\index{IsSuperperfect}::::::::::::::::::::::::\\
6765
\texttt{IsSuperperfect(G) }\\
6766
6767
6768
Inputs a group $G$ and returns "true" if both the first and second integral homology of $G$ is trivial. Otherwise, it returns "false". \\
6769
\\
6770
\\
6771
\\
6772
\index{MakeHAPManual}::::::::::::::::::::::::\\
6773
\texttt{MakeHAPManual()}\\
6774
6775
6776
This function creates the manual for HAP from an XML file. \\
6777
\\
6778
\\
6779
\\
6780
\index{PermToMatrixGroup}::::::::::::::::::::::::\\
6781
\texttt{PermToMatrixGroup(G,n) }\\
6782
6783
6784
Inputs a permutation group $G$ and its degree $n$. Returns a bijective homomorphism $f:G \longrightarrow M$ where $M$ is a group of permutation matrices. \\
6785
\\
6786
\\
6787
\\
6788
\index{SolutionsMatDestructive}::::::::::::::::::::::::\\
6789
\texttt{SolutionsMatDestructive(M,B) }\\
6790
6791
6792
Inputs an $m{\ensuremath{\times}}n$ matrix $M$ and a $k{\ensuremath{\times}}n$ matrix $B$ over a field. It returns a k{\ensuremath{\times}}m matrix $S$ satisfying $SM=B$.
6793
6794
The function will leave matrix $M$ unchanged but will probably change matrix $B$.
6795
6796
(This is a trivial rewrite of the standard GAP function $SolutionMatDestructive(${\textless}$mat${\textgreater},{\textless}$vec${\textgreater}) .) \\
6797
\\
6798
\\
6799
\\
6800
\index{LinearHomomorphismsPersistenceMat}::::::::::::::::::::::::\\
6801
\texttt{LinearHomomorphismsPersistenceMat(L) }\\
6802
6803
6804
Inputs a composable sequence $L$ of vector space homomorphisms. It returns an integer matrix containing the
6805
dimensions of the images of the various composites. The sequence $L$ is determined up to isomorphism by this matrix. \\
6806
\\
6807
\\
6808
\\
6809
\index{NormalSeriesToQuotientHomomorphisms}::::::::::::::::::::::::\\
6810
\texttt{NormalSeriesToQuotientHomomorphisms(L) }\\
6811
6812
6813
Inputs an (increasing or decreasing) chain $L$ of normal subgroups in some group $G$. This $G$ is the largest group in the chain. It returns the sequence of composable group
6814
homomorphisms $G/L[i] \rightarrow G/L[i+/-1]$. \\
6815
\\
6816
\\
6817
\\
6818
\index{TestHap}::::::::::::::::::::::::\\
6819
\texttt{TestHap() }\\
6820
6821
6822
This runs a representative sample of HAP functions and checks to see that they
6823
produce the correct output. \\
6824
\\
6825
\\
6826
}
6827
6828
\def\indexname{Index\logpage{[ "Ind", 0, 0 ]}
6829
\hyperdef{L}{X83A0356F839C696F}{}
6830
}
6831
6832
\cleardoublepage
6833
\phantomsection
6834
\addcontentsline{toc}{chapter}{Index}
6835
6836
6837
\printindex
6838
6839
\newpage
6840
\immediate\write\pagenrlog{["End"], \arabic{page}];}
6841
\immediate\closeout\pagenrlog
6842
\end{document}
6843
6844