Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

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

562602 views
1
% generated by GAPDoc2LaTeX from XML source (Frank Luebeck)
2
\documentclass[a4paper,11pt]{report}
3
\usepackage{a4wide}
4
\sloppy
5
\pagestyle{myheadings}
6
\usepackage{amssymb}
7
\usepackage[latin1]{inputenc}
8
\usepackage{makeidx}
9
\makeindex
10
\usepackage{color}
11
\definecolor{DarkOlive}{rgb}{0.1047,0.2412,0.0064}
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
\definecolor{FuncColor}{rgb}{1.0,0.0,0.0}
19
%% strange name because of pdflatex bug:
20
\definecolor{Chapter }{rgb}{0.0,0.0,1.0}
21
22
\usepackage{fancyvrb}
23
24
\usepackage{pslatex}
25
26
\usepackage[pdftex=true,
27
a4paper=true,bookmarks=false,pdftitle={Written with GAPDoc},
28
pdfcreator={LaTeX with hyperref package / GAPDoc},
29
colorlinks=true,backref=page,breaklinks=true,linkcolor=RoyalBlue,
30
citecolor=RoyalGreen,filecolor=RoyalRed,
31
urlcolor=RoyalRed,pagecolor=RoyalBlue]{hyperref}
32
33
% write page numbers to a .pnr log file for online help
34
\newwrite\pagenrlog
35
\immediate\openout\pagenrlog =\jobname.pnr
36
\immediate\write\pagenrlog{PAGENRS := [}
37
\newcommand{\logpage}[1]{\protect\write\pagenrlog{#1, \thepage,}}
38
%% were never documented, give conflicts with some additional packages
39
40
41
\newcommand{\GAP}{\textsf{GAP}}
42
43
\begin{document}
44
45
\logpage{[ 0, 0, 0 ]}
46
\begin{titlepage}
47
\begin{center}{\Huge \textbf{\textsf{Hap Programming} {\textendash} An experimental framework for objectifying the data structures
48
of Hap\mbox{}}}\\[1cm]
49
\hypersetup{pdftitle=\textsf{Hap Programming} {\textendash} An experimental framework for objectifying the data structures
50
of Hap}
51
\markright{\scriptsize \mbox{}\hfill \textsf{Hap Programming} {\textendash} An experimental framework for objectifying the data structures
52
of Hap \hfill\mbox{}}
53
{( development version of 27.10.2013 ) \mbox{}}\\[1cm]
54
\mbox{}\\[2cm]
55
{\large \textbf{Marc R{\"o}der \mbox{}}}\\
56
\hypersetup{pdfauthor=Marc R{\"o}der }
57
\end{center}\vfill
58
59
\mbox{}\\
60
{\mbox{}\\
61
\small \noindent \textbf{Marc R{\"o}der } --- Email: \href{mailto://marc.roeder(at)nuigalway.ie} {\texttt{marc.roeder(at)nuigalway.ie}}}\\
62
63
\noindent \textbf{Address: }\begin{minipage}[t]{8cm}\noindent
64
Marc R{\"o}der, Department of Mathematics, NUI Galway, Irleland \end{minipage}
65
\end{titlepage}
66
67
\newpage\setcounter{page}{2}
68
{\small
69
\section*{Abstract}
70
\logpage{[ 0, 0, 1 ]}
71
This extension does not change the behaviour of Hap and is fully
72
backwards-compatible. It is not a part of Hap and there is no guarantee that
73
it will at any point be supported by Hap. Use at your own risk. \mbox{}}\\[1cm]
74
{\small
75
\section*{Copyright}
76
\logpage{[ 0, 0, 3 ]}
77
{\copyright} 2007 Marc R{\"o}der.
78
79
This package is distributed under the terms of the GNU General Public License
80
version 2 or later (at your convenience). See the file \texttt{LICENSE.txt} or \href{http://www.gnu.org/copyleft/gpl.html} {\texttt{http://www.gnu.org/copyleft/gpl.html}} \mbox{}}\\[1cm]
81
{\small
82
\section*{Acknowledgements}
83
\logpage{[ 0, 0, 2 ]}
84
This work was supported by Marie Curie Grant No. MTKD-CT-2006-042685 \mbox{}}\\[1cm]
85
\newpage
86
87
\def\contentsname{Contents\logpage{[ 0, 0, 4 ]}}
88
89
\tableofcontents
90
\newpage
91
92
93
\chapter{\textcolor{Chapter }{Resolutions in Hap}}\label{hapresolution}
94
\logpage{[ 1, 0, 0 ]}
95
\hyperdef{L}{X7C6DD73E7BB931AB}{}
96
{
97
This document is only concerned with the representation of resolutions in Hap.
98
Note that it is not a part of Hap. The framework provided here is just an
99
extension of Hap data types used in HAPcryst and HAPprime.
100
101
From now on, let $G$ be a group and $\dots \to M_n\to M_{n-1}\to\dots\to M_1\to M_0\to Z$ be a resolution with free $ZG$ modules $M_i$.
102
103
The elements of the modules $M_i$ can be represented in different ways. This is what makes different
104
representations for resolutions desirable. First, we will look at the standard
105
representation (\texttt{HapResolutionRep}) as it is defined in Hap. After that, we will present another representation
106
for infinite groups. Note that all non-standard representations must be
107
sub-representations of the standard representation to ensure compatibility
108
with Hap.
109
\section{\textcolor{Chapter }{The Standard Representation \texttt{HapResolutionRep}}}\label{hapresolutionrep}
110
\logpage{[ 1, 1, 0 ]}
111
\hyperdef{L}{X804F611B7E23BDB1}{}
112
{
113
For every $M_i$ we fix a basis and number its elements. Furthermore, it is assumed that we
114
have a (partial) enumeration of the group of a resolution. In practice this is
115
done by generating a lookup table on the fly.
116
117
In standard representation, the elements of the modules $M_k$ are represented by lists -"words"- of pairs of integers. A letter \texttt{[i,g]} of such a word consists of the number of a basis element \texttt{i} or \texttt{-i} for its additive inverse and a number $g$ representing a group element.
118
119
A \texttt{HapResolution} in \texttt{HapResolutionRep} representation is a component object with the components
120
\begin{itemize}
121
\item \texttt{group}, a group of arbitrary type.
122
\item \texttt{elts}, a (partial) list of (possibly duplicate) elements in G. This list provides
123
the "enumeration" of the group. Note that there are functions in Hap which
124
assume that \texttt{elts[1]} is the identity element of G.
125
\item \texttt{appendToElts(g)} a function that appends the group element \texttt{g} to \texttt{.elts}. This is not documented in Hap 1.8.6 but seems to be required for infinite
126
groups. This requirement might vanish in some later version of Hap [G. Ellis,
127
private communication].
128
\item \texttt{dimension(k)}, a function which returns the ZG-rank of the Module $M_k$
129
\item \texttt{boundary(k,j)}, a function which returns the image in $M_{k-1}$ of the $j$th free generator of $M_k$. Note that negative $j$ are valid as input as well. In this case the additive inverse of the boundary
130
of the $j$th generator is returned
131
\item \texttt{homotopy(k,[i,g])} a function which returns the image in $M_{k+1}$, under a contracting homotopy $M_k \to M_{k+1}$, of the element \texttt{[[i,g]]} in $M_k$. The value of this might be \texttt{fail}. However, currently (version 1.8.4) some Hap functions assume that \texttt{homotopy} is a function without testing.
132
\item \texttt{properties}, a list of pairs \texttt{["name","value"]} "name" is a string and value is anything (boolean, number, string...). Every \texttt{HapResolution} (regardless of representation) has to have \texttt{["type","resolution"]}, \texttt{["length",length]} where \texttt{length} is the length of the resolution and \texttt{["characteristic",char]}. Currently (Hap 1.8.6), \texttt{length} must not be \texttt{infinity}. The values of these properties can be tested using the Hap function \texttt{EvaluateProperty(resolution,propertyname)}.
133
\end{itemize}
134
Note that making \texttt{HapResolution}s immutable will make the \texttt{.elts} component immutable. As this lookup table might change during calculations, we
135
do not recommend using immutable resolutions (in any representation). }
136
137
138
\section{\textcolor{Chapter }{The \texttt{HapLargeGroupResolutionRep} Representation}}\label{largegrouprep}
139
\logpage{[ 1, 2, 0 ]}
140
\hyperdef{L}{X8024014D8488FE30}{}
141
{
142
In this sub-representation of the standard representation, the module elements
143
in this resolution are lists of groupring elements. So the lookup table \texttt{.elts} is not used as long as no conversion to standard representation takes place.
144
In addition to the components of a \texttt{HapResolution}, a resolution in large group representation has the following components:
145
\begin{itemize}
146
\item \texttt{boundary2(resolution,term,gen)}, a function that returns the boundary of the \mbox{\texttt{\slshape gen}}th generator of the \mbox{\texttt{\slshape term}}th module.
147
\item \texttt{groupring} the group ring of the resolution \mbox{\texttt{\slshape resolution}}.
148
\item \texttt{dimension2(resolution,term)} a function that returns the dimension of the \mbox{\texttt{\slshape term}}th module of the resolution \mbox{\texttt{\slshape resolution}}.
149
\end{itemize}
150
The effort of having two versions of \texttt{boundary} and \texttt{dimension} is necessary to keep the structure compatible with the usual Hap resolution. }
151
152
}
153
154
155
\chapter{\textcolor{Chapter }{Accessing and Manipulating Resolutions}}\logpage{[ 2, 0, 0 ]}
156
\hyperdef{L}{X86374CEA7CDC6946}{}
157
{
158
159
\section{\textcolor{Chapter }{Representation-Independent Access Methods}}\logpage{[ 2, 1, 0 ]}
160
\hyperdef{L}{X7A7225067E7895A9}{}
161
{
162
All methods listed below take a \texttt{HapResolution} in any representation. If the other arguments are compatible with the
163
representation of the resolution, the returned value will be in the form
164
defined by this representation. If the other arguments are in a different
165
representation, \textsf{GAP}s method selection is used via \texttt{TryNextMethod()} to find an applicable method (a suitable representation).
166
167
The idea behind this is that the results of computations have the same form as
168
the input. And as all representations are sub-representations of the \texttt{HapResolutionRep} representation, input which is compatible with the \texttt{HapResolutionRep} representation is always valid.
169
170
Every new representation must support the functions of this section.
171
172
\subsection{\textcolor{Chapter }{StrongestValidRepresentationForLetter}}
173
\logpage{[ 2, 1, 1 ]}\nobreak
174
\hyperdef{L}{X7CBC6D4C783383BE}{}
175
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{StrongestValidRepresentationForLetter({\slshape resolution, term, letter})\index{StrongestValidRepresentationForLetter@\texttt{StrongestValidRepresentationForLetter}}
176
\label{StrongestValidRepresentationForLetter}
177
}\hfill{\scriptsize (method)}}\\
178
\textbf{\indent Returns:\ }
179
filter
180
181
182
183
Finds the sub-representation of \texttt{HapResolutionRep} for which \mbox{\texttt{\slshape letter}} is a valid letter of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. Note that \mbox{\texttt{\slshape resolution}} automatically is in some sub-representation of \texttt{HapResolutionRep}.This is mainly meant for debugging. }
184
185
186
187
\subsection{\textcolor{Chapter }{StrongestValidRepresentationForWord}}
188
\logpage{[ 2, 1, 2 ]}\nobreak
189
\hyperdef{L}{X7C10841285614D04}{}
190
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{StrongestValidRepresentationForWord({\slshape resolution, term, word})\index{StrongestValidRepresentationForWord@\texttt{StrongestValidRepresentationForWord}}
191
\label{StrongestValidRepresentationForWord}
192
}\hfill{\scriptsize (method)}}\\
193
\textbf{\indent Returns:\ }
194
filter
195
196
197
198
Finds the sub-representation of \texttt{HapResolutionRep} for which \mbox{\texttt{\slshape word}} is a valid word of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. Note that \mbox{\texttt{\slshape resolution}} automatically is in some sub-representation of \texttt{HapResolutionRep}. This is mainly meant for debugging. }
199
200
201
202
\subsection{\textcolor{Chapter }{PositionInGroupOfResolution}}
203
\logpage{[ 2, 1, 3 ]}\nobreak
204
\hyperdef{L}{X780AD2DB7F5D4935}{}
205
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PositionInGroupOfResolution({\slshape resolution, g})\index{PositionInGroupOfResolution@\texttt{PositionInGroupOfResolution}}
206
\label{PositionInGroupOfResolution}
207
}\hfill{\scriptsize (method)}}\\
208
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PositionInGroupOfResolutionNC({\slshape resolution, g})\index{PositionInGroupOfResolutionNC@\texttt{PositionInGroupOfResolutionNC}}
209
\label{PositionInGroupOfResolutionNC}
210
}\hfill{\scriptsize (method)}}\\
211
\textbf{\indent Returns:\ }
212
positive integer
213
214
215
216
This returns the position of the group element \mbox{\texttt{\slshape g}} in the enumeration of the group of \mbox{\texttt{\slshape resolution}}. The NC version does not check if \mbox{\texttt{\slshape g}} really is an element of the group of \mbox{\texttt{\slshape resolution}}. }
217
218
219
220
\subsection{\textcolor{Chapter }{IsValidGroupInt}}
221
\logpage{[ 2, 1, 4 ]}\nobreak
222
\hyperdef{L}{X7A58EC7B8130D6E2}{}
223
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsValidGroupInt({\slshape resolution, n})\index{IsValidGroupInt@\texttt{IsValidGroupInt}}
224
\label{IsValidGroupInt}
225
}\hfill{\scriptsize (method)}}\\
226
\textbf{\indent Returns:\ }
227
boolean
228
229
230
231
Returns true if the \mbox{\texttt{\slshape n}}th element of the group of \mbox{\texttt{\slshape resolution}} is known. }
232
233
234
235
\subsection{\textcolor{Chapter }{GroupElementFromPosition}}
236
\logpage{[ 2, 1, 5 ]}\nobreak
237
\hyperdef{L}{X822604B67B2A9133}{}
238
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{GroupElementFromPosition({\slshape resolution, n})\index{GroupElementFromPosition@\texttt{GroupElementFromPosition}}
239
\label{GroupElementFromPosition}
240
}\hfill{\scriptsize (method)}}\\
241
\textbf{\indent Returns:\ }
242
group element or \texttt{fail}
243
244
245
246
Returns \mbox{\texttt{\slshape n}}th element of the group of \mbox{\texttt{\slshape resolution}}. If the \mbox{\texttt{\slshape n}}th element is not known, \texttt{fail} is returned. }
247
248
249
250
\subsection{\textcolor{Chapter }{MultiplyGroupElts}}
251
\logpage{[ 2, 1, 6 ]}\nobreak
252
\hyperdef{L}{X7D3673E8840FA0B6}{}
253
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyGroupElts({\slshape resolution, x, y})\index{MultiplyGroupElts@\texttt{MultiplyGroupElts}}
254
\label{MultiplyGroupElts}
255
}\hfill{\scriptsize (method)}}\\
256
\textbf{\indent Returns:\ }
257
positive integer or group element, depending on the type of \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape y}}
258
259
260
261
If \texttt{x} and \texttt{y} are given in standard representation (i.e. as integers), this returns the
262
position of the product of the group elements represented by the positive
263
integers \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape x}}.
264
265
If \texttt{x} and \texttt{y} are given in any other representation, the returned group element will also be
266
represented in this way. }
267
268
269
270
\subsection{\textcolor{Chapter }{MultiplyFreeZGLetterWithGroupElt}}
271
\logpage{[ 2, 1, 7 ]}\nobreak
272
\hyperdef{L}{X8540F3B37BAC695F}{}
273
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGLetterWithGroupElt({\slshape resolution, letter, g})\index{MultiplyFreeZGLetterWithGroupElt@\texttt{MultiplyFreeZGLetterWithGroupElt}}
274
\label{MultiplyFreeZGLetterWithGroupElt}
275
}\hfill{\scriptsize (method)}}\\
276
\textbf{\indent Returns:\ }
277
A letter
278
279
280
281
Multiplies the letter \mbox{\texttt{\slshape letter}} with the group element \mbox{\texttt{\slshape g}} and returns the result. If \mbox{\texttt{\slshape resolution}} is in standard representation, \mbox{\texttt{\slshape g}} has to be an integer and \mbox{\texttt{\slshape letter}} has to be a pair of integer. If \mbox{\texttt{\slshape resolution}} is in any other representation, \mbox{\texttt{\slshape letter}} and \mbox{\texttt{\slshape g}} can be in a form compatible with that representation or in the standard form
282
(in the latter case, the returned value will also have standard form). }
283
284
285
286
\subsection{\textcolor{Chapter }{MultiplyFreeZGWordWithGroupElt}}
287
\logpage{[ 2, 1, 8 ]}\nobreak
288
\hyperdef{L}{X826835B185CA4DAF}{}
289
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGWordWithGroupElt({\slshape resolution, word, g})\index{MultiplyFreeZGWordWithGroupElt@\texttt{MultiplyFreeZGWordWithGroupElt}}
290
\label{MultiplyFreeZGWordWithGroupElt}
291
}\hfill{\scriptsize (method)}}\\
292
\textbf{\indent Returns:\ }
293
A word
294
295
296
297
Multiplies the word \mbox{\texttt{\slshape word}} with the group element \mbox{\texttt{\slshape g}} and returns the result. If \mbox{\texttt{\slshape resolution}} is in standard representation, \mbox{\texttt{\slshape g}} has to be an integer and \mbox{\texttt{\slshape word}} has to be a list of pairs of integers. If \mbox{\texttt{\slshape resolution}} is in any other representation, \mbox{\texttt{\slshape word}} and \mbox{\texttt{\slshape g}} can be in a form compatible with that representation or in the standard form
298
(in the latter case, the returned value will also have standard form). }
299
300
301
302
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGLetter}}
303
\logpage{[ 2, 1, 9 ]}\nobreak
304
\hyperdef{L}{X7D8B54D7828D7C5C}{}
305
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGLetter({\slshape resolution, term, letter})\index{BoundaryOfFreeZGLetter@\texttt{BoundaryOfFreeZGLetter}}
306
\label{BoundaryOfFreeZGLetter}
307
}\hfill{\scriptsize (method)}}\\
308
\textbf{\indent Returns:\ }
309
free ZG word (in the same representation as \mbox{\texttt{\slshape letter}})
310
311
312
313
Calculates the boundary of the letter (word of length 1) \mbox{\texttt{\slshape letter}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}.
314
315
The returned value is a word of the \mbox{\texttt{\slshape term}}-1st module and comes in the same representation as \mbox{\texttt{\slshape letter}}. }
316
317
318
319
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGWord}}
320
\logpage{[ 2, 1, 10 ]}\nobreak
321
\hyperdef{L}{X81A6037F82C3C31E}{}
322
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGWord({\slshape resolution, term, word})\index{BoundaryOfFreeZGWord@\texttt{BoundaryOfFreeZGWord}}
323
\label{BoundaryOfFreeZGWord}
324
}\hfill{\scriptsize (method)}}\\
325
\textbf{\indent Returns:\ }
326
free ZG word (in the same representation as \mbox{\texttt{\slshape letter}})
327
328
329
330
Calculates the boundary of the word \mbox{\texttt{\slshape word}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}.
331
332
The returned value is a word of the \mbox{\texttt{\slshape term}}-1st module and comes in the same representation as \mbox{\texttt{\slshape word}}. }
333
334
}
335
336
337
\section{\textcolor{Chapter }{Converting Between Representations}}\logpage{[ 2, 2, 0 ]}
338
\hyperdef{L}{X7B94A2ED857C62D5}{}
339
{
340
Four methods are provided to convert letters and words from standard
341
representation to any other representation and back again.
342
343
\subsection{\textcolor{Chapter }{ConvertStandardLetter}}
344
\logpage{[ 2, 2, 1 ]}\nobreak
345
\hyperdef{L}{X7EB515317948BE8E}{}
346
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertStandardLetter({\slshape resolution, term, letter})\index{ConvertStandardLetter@\texttt{ConvertStandardLetter}}
347
\label{ConvertStandardLetter}
348
}\hfill{\scriptsize (method)}}\\
349
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertStandardLetterNC({\slshape resolution, term, letter})\index{ConvertStandardLetterNC@\texttt{ConvertStandardLetterNC}}
350
\label{ConvertStandardLetterNC}
351
}\hfill{\scriptsize (method)}}\\
352
\textbf{\indent Returns:\ }
353
letter in the representation of \mbox{\texttt{\slshape resolution}}
354
355
356
357
Converts the letter \mbox{\texttt{\slshape letter}} in standard representation to the representation of \mbox{\texttt{\slshape resolution}}. The NC version does not check whether \mbox{\texttt{\slshape letter}} really is a letter in standard representation. }
358
359
360
361
\subsection{\textcolor{Chapter }{ConvertStandardWord}}
362
\logpage{[ 2, 2, 2 ]}\nobreak
363
\hyperdef{L}{X7A1CB5DF7A459D76}{}
364
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertStandardWord({\slshape resolution, term, word})\index{ConvertStandardWord@\texttt{ConvertStandardWord}}
365
\label{ConvertStandardWord}
366
}\hfill{\scriptsize (method)}}\\
367
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertStandardWordNC({\slshape resolution, term, word})\index{ConvertStandardWordNC@\texttt{ConvertStandardWordNC}}
368
\label{ConvertStandardWordNC}
369
}\hfill{\scriptsize (method)}}\\
370
\textbf{\indent Returns:\ }
371
word in the representation of \mbox{\texttt{\slshape resolution}}
372
373
374
375
Converts the word \mbox{\texttt{\slshape word}} in standard representation to the representation of \mbox{\texttt{\slshape resolution}}. The NC version does not check whether \mbox{\texttt{\slshape word}} is a valid word in standard representation. }
376
377
378
379
\subsection{\textcolor{Chapter }{ConvertLetterToStandardRep}}
380
\logpage{[ 2, 2, 3 ]}\nobreak
381
\hyperdef{L}{X83153E2682184860}{}
382
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertLetterToStandardRep({\slshape resolution, term, letter})\index{ConvertLetterToStandardRep@\texttt{ConvertLetterToStandardRep}}
383
\label{ConvertLetterToStandardRep}
384
}\hfill{\scriptsize (method)}}\\
385
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertLetterToStandardRepNC({\slshape resolution, term, letter})\index{ConvertLetterToStandardRepNC@\texttt{ConvertLetterToStandardRepNC}}
386
\label{ConvertLetterToStandardRepNC}
387
}\hfill{\scriptsize (method)}}\\
388
\textbf{\indent Returns:\ }
389
letter in standard representation
390
391
392
393
Converts the letter \mbox{\texttt{\slshape letter}} in the representation of \mbox{\texttt{\slshape resolution}} to the standard representation. The NC version does not check whether \mbox{\texttt{\slshape letter}} is a valid letter of \mbox{\texttt{\slshape resolution}}. }
394
395
396
397
\subsection{\textcolor{Chapter }{ConvertWordToStandardRep}}
398
\logpage{[ 2, 2, 4 ]}\nobreak
399
\hyperdef{L}{X848203218271A166}{}
400
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertWordToStandardRep({\slshape resolution, term, word})\index{ConvertWordToStandardRep@\texttt{ConvertWordToStandardRep}}
401
\label{ConvertWordToStandardRep}
402
}\hfill{\scriptsize (method)}}\\
403
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ConvertWordToStandardRepNC({\slshape resolution, term, word})\index{ConvertWordToStandardRepNC@\texttt{ConvertWordToStandardRepNC}}
404
\label{ConvertWordToStandardRepNC}
405
}\hfill{\scriptsize (method)}}\\
406
\textbf{\indent Returns:\ }
407
word in standard representation
408
409
410
411
Converts the word \mbox{\texttt{\slshape word}} in the representation of \mbox{\texttt{\slshape resolution}} to the standard representation. The NC version does not check whether \mbox{\texttt{\slshape word}} is a valid word of \mbox{\texttt{\slshape resolution}}. }
412
413
}
414
415
416
\section{\textcolor{Chapter }{Special Methods for \texttt{HapResolutionRep}}}\logpage{[ 2, 3, 0 ]}
417
\hyperdef{L}{X84FB45EB83B5822C}{}
418
{
419
Some methods explicitely require the input to be in the standard
420
representation (\mbox{\texttt{\slshape HapResolutionRep}}). Two of these test if a word/letter is really in standard representation,
421
the other ones are non-check versions of the universal methods.
422
423
\subsection{\textcolor{Chapter }{IsFreeZGLetter}}
424
\logpage{[ 2, 3, 1 ]}\nobreak
425
\hyperdef{L}{X7B803CC184BD2612}{}
426
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGLetter({\slshape resolution, term, letter})\index{IsFreeZGLetter@\texttt{IsFreeZGLetter}}
427
\label{IsFreeZGLetter}
428
}\hfill{\scriptsize (method)}}\\
429
\textbf{\indent Returns:\ }
430
boolean
431
432
433
434
Checks if \mbox{\texttt{\slshape letter}} is an valid letter (word of length 1) in standard representation of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. }
435
436
437
438
\subsection{\textcolor{Chapter }{IsFreeZGWord}}
439
\logpage{[ 2, 3, 2 ]}\nobreak
440
\hyperdef{L}{X7A36FB7B84E9A892}{}
441
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGWord({\slshape resolution, term, word})\index{IsFreeZGWord@\texttt{IsFreeZGWord}}
442
\label{IsFreeZGWord}
443
}\hfill{\scriptsize (method)}}\\
444
\textbf{\indent Returns:\ }
445
boolean
446
447
448
449
Check if \mbox{\texttt{\slshape word}} is a valid word in large standard representation of the \mbox{\texttt{\slshape term}}th module in \mbox{\texttt{\slshape resolution}}. }
450
451
452
453
\subsection{\textcolor{Chapter }{MultiplyGroupEltsNC}}
454
\logpage{[ 2, 3, 3 ]}\nobreak
455
\hyperdef{L}{X836D3F9886EED6AC}{}
456
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyGroupEltsNC({\slshape resolution, x, y})\index{MultiplyGroupEltsNC@\texttt{MultiplyGroupEltsNC}}
457
\label{MultiplyGroupEltsNC}
458
}\hfill{\scriptsize (method)}}\\
459
\textbf{\indent Returns:\ }
460
positive integer
461
462
463
464
Given positive integers \texttt{x} and \texttt{y}, this returns the position of the product of the group elements represented
465
by the positive integers \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape x}}. This assumes that all input is in standard representation and does not check
466
the input. }
467
468
469
470
\subsection{\textcolor{Chapter }{MultiplyFreeZGLetterWithGroupEltNC}}
471
\logpage{[ 2, 3, 4 ]}\nobreak
472
\hyperdef{L}{X85893CC5823508A8}{}
473
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGLetterWithGroupEltNC({\slshape resolution, letter, g})\index{MultiplyFreeZGLetterWithGroupEltNC@\texttt{MultiplyFreeZGLetterWithGroupEltNC}}
474
\label{MultiplyFreeZGLetterWithGroupEltNC}
475
}\hfill{\scriptsize (method)}}\\
476
\textbf{\indent Returns:\ }
477
A letter in standard representation
478
479
480
481
Multiplies the letter \mbox{\texttt{\slshape letter}} with the group element represented by the positive integer \mbox{\texttt{\slshape g}} and returns the result. The input is assumed to be in \mbox{\texttt{\slshape HapResolutionRep}} and is not checked. }
482
483
484
485
\subsection{\textcolor{Chapter }{MultiplyFreeZGWordWithGroupEltNC}}
486
\logpage{[ 2, 3, 5 ]}\nobreak
487
\hyperdef{L}{X8073DE7E7AD8B7CB}{}
488
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGWordWithGroupEltNC({\slshape resolution, word, g})\index{MultiplyFreeZGWordWithGroupEltNC@\texttt{MultiplyFreeZGWordWithGroupEltNC}}
489
\label{MultiplyFreeZGWordWithGroupEltNC}
490
}\hfill{\scriptsize (method)}}\\
491
\textbf{\indent Returns:\ }
492
A letter in standard representation
493
494
495
496
Multiplies the word \mbox{\texttt{\slshape word}} with the group element represented by the positive integer \mbox{\texttt{\slshape g}} and returns the result. The input is assumed to be in \mbox{\texttt{\slshape HapResolutionRep}} and is not checked. }
497
498
499
500
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGLetterNC}}
501
\logpage{[ 2, 3, 6 ]}\nobreak
502
\hyperdef{L}{X7BD3994E7C414149}{}
503
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGLetterNC({\slshape resolution, term, letter})\index{BoundaryOfFreeZGLetterNC@\texttt{BoundaryOfFreeZGLetterNC}}
504
\label{BoundaryOfFreeZGLetterNC}
505
}\hfill{\scriptsize (method)}}\\
506
\textbf{\indent Returns:\ }
507
free ZG word in standard representation
508
509
510
511
Calculates the boundary of the letter (word of length 1) \mbox{\texttt{\slshape letter}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. The input is assumed to be in standard representation and not checked. }
512
513
514
515
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGWordNC}}
516
\logpage{[ 2, 3, 7 ]}\nobreak
517
\hyperdef{L}{X84B1DA21805A0880}{}
518
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGWordNC({\slshape resolution, term, word})\index{BoundaryOfFreeZGWordNC@\texttt{BoundaryOfFreeZGWordNC}}
519
\label{BoundaryOfFreeZGWordNC}
520
}\hfill{\scriptsize (method)}}\\
521
\textbf{\indent Returns:\ }
522
free ZG word in standard representation
523
524
525
526
Calculates the boundary of the word \mbox{\texttt{\slshape word}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. The input is assumed to be in standard representation and not checked. }
527
528
}
529
530
531
\section{\textcolor{Chapter }{The \texttt{HapLargeGroupResolutionRep} Representation}}\logpage{[ 2, 4, 0 ]}
532
\hyperdef{L}{X8024014D8488FE30}{}
533
{
534
The large group representation has one additional component called \texttt{groupring}. Elements of the modules in a resolution are represented by lists of group
535
ring elements. The length of the list corresponds to the dimension of the free
536
module.
537
538
All methods for the generic representation do also work for the large group
539
representation. Some of them are wrappers for special methods which do only
540
work for this representation. The following list only contains the methods
541
which are not already present in the generic representation.
542
543
Note that the input or the output of these functions does not comply with the
544
standard representation.
545
546
\subsection{\textcolor{Chapter }{GroupRingOfResolution}}
547
\logpage{[ 2, 4, 1 ]}\nobreak
548
\hyperdef{L}{X861BE6C787FA8032}{}
549
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{GroupRingOfResolution({\slshape resolution})\index{GroupRingOfResolution@\texttt{GroupRingOfResolution}}
550
\label{GroupRingOfResolution}
551
}\hfill{\scriptsize (method)}}\\
552
\textbf{\indent Returns:\ }
553
group ring
554
555
556
557
This returns the group ring of \mbox{\texttt{\slshape resolution}}. Note that by the way that group rings are handled in \textsf{GAP}, this is not equal to \texttt{GroupRing(R,GroupOfResolution(\mbox{\texttt{\slshape resolution}}))} where \texttt{R} is the ring of the resolution. }
558
559
560
561
\subsection{\textcolor{Chapter }{MultiplyGroupElts{\textunderscore}LargeGroupRep}}
562
\logpage{[ 2, 4, 2 ]}\nobreak
563
\hyperdef{L}{X8338F7A37F240E33}{}
564
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyGroupElts{\textunderscore}LargeGroupRep({\slshape resolution, x, y})\index{MultiplyGroupEltsLargeGroupRep@\texttt{Multiply}\-\texttt{Group}\-\texttt{Elts{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
565
\label{MultiplyGroupEltsLargeGroupRep}
566
}\hfill{\scriptsize (method)}}\\
567
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyGroupEltsNC{\textunderscore}LargeGroupRep({\slshape resolution, x, y})\index{MultiplyGroupEltsNCLargeGroupRep@\texttt{Multiply}\-\texttt{Group}\-\texttt{Elts}\-\texttt{N}\-\texttt{C{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
568
\label{MultiplyGroupEltsNCLargeGroupRep}
569
}\hfill{\scriptsize (method)}}\\
570
\textbf{\indent Returns:\ }
571
group element
572
573
574
575
Returns the product of \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape y}}. The NC version does not check whether \mbox{\texttt{\slshape x}} and \mbox{\texttt{\slshape y}} are actually elements of the group of \mbox{\texttt{\slshape resolution}}. }
576
577
578
579
\subsection{\textcolor{Chapter }{IsFreeZGLetterNoTermCheck{\textunderscore}LargeGroupRep}}
580
\logpage{[ 2, 4, 3 ]}\nobreak
581
\hyperdef{L}{X86F91A948022DEBB}{}
582
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGLetterNoTermCheck{\textunderscore}LargeGroupRep({\slshape resolution, letter})\index{IsFreeZGLetterNoTermCheckLargeGroupRep@\texttt{IsFree}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter}\-\texttt{No}\-\texttt{Term}\-\texttt{Check{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
583
\label{IsFreeZGLetterNoTermCheckLargeGroupRep}
584
}\hfill{\scriptsize (method)}}\\
585
\textbf{\indent Returns:\ }
586
boolean
587
588
589
590
Returns \texttt{true} if \mbox{\texttt{\slshape letter}} has the form of a letter (a module element with exactly one non-zero entry
591
which has exactly one non-zero coefficient) a module of \mbox{\texttt{\slshape resolution}} in the \texttt{HapLargeGroupResolution} representation. Note that it is not tested if \mbox{\texttt{\slshape letter}} actually is a letter in any term of \mbox{\texttt{\slshape resolution}} }
592
593
594
595
\subsection{\textcolor{Chapter }{IsFreeZGWordNoTermCheck{\textunderscore}LargeGroupRep}}
596
\logpage{[ 2, 4, 4 ]}\nobreak
597
\hyperdef{L}{X793BA61478AEBE16}{}
598
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGWordNoTermCheck{\textunderscore}LargeGroupRep({\slshape resolution, word})\index{IsFreeZGWordNoTermCheckLargeGroupRep@\texttt{IsFree}\-\texttt{Z}\-\texttt{G}\-\texttt{Word}\-\texttt{No}\-\texttt{Term}\-\texttt{Check{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
599
\label{IsFreeZGWordNoTermCheckLargeGroupRep}
600
}\hfill{\scriptsize (method)}}\\
601
\textbf{\indent Returns:\ }
602
boolean
603
604
605
606
Returns \texttt{true} if \mbox{\texttt{\slshape word}} has the form of a word of a module of \mbox{\texttt{\slshape resolution}} in the \texttt{HapLargeGroupResolution} representation. Note that it is not tested if \mbox{\texttt{\slshape word}} actually is a word in any term of \mbox{\texttt{\slshape resolution}}. }
607
608
609
610
\subsection{\textcolor{Chapter }{IsFreeZGLetter{\textunderscore}LargeGroupRep}}
611
\logpage{[ 2, 4, 5 ]}\nobreak
612
\hyperdef{L}{X85A7BFC284E9D9CB}{}
613
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGLetter{\textunderscore}LargeGroupRep({\slshape resolution, term, letter})\index{IsFreeZGLetterLargeGroupRep@\texttt{IsFree}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
614
\label{IsFreeZGLetterLargeGroupRep}
615
}\hfill{\scriptsize (method)}}\\
616
\textbf{\indent Returns:\ }
617
boolean
618
619
620
621
Returns \texttt{true} if and only if \mbox{\texttt{\slshape letter}} is a letter (a word of length 1) of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}} in the \texttt{hapLargeGroupResolution} representation. I.e. it tests if \mbox{\texttt{\slshape letter}} is a module element with exactly one non-zero entry which has exactly one
622
non-zero coefficient. }
623
624
625
626
\subsection{\textcolor{Chapter }{IsFreeZGWord{\textunderscore}LargeGroupRep}}
627
\logpage{[ 2, 4, 6 ]}\nobreak
628
\hyperdef{L}{X7BF4A7EC83BE61C8}{}
629
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{IsFreeZGWord{\textunderscore}LargeGroupRep({\slshape resolution, term, word})\index{IsFreeZGWordLargeGroupRep@\texttt{IsFree}\-\texttt{Z}\-\texttt{G}\-\texttt{Word{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
630
\label{IsFreeZGWordLargeGroupRep}
631
}\hfill{\scriptsize (method)}}\\
632
\textbf{\indent Returns:\ }
633
boolean
634
635
636
637
Tests if \mbox{\texttt{\slshape word}} is an element of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resoultion}}. }
638
639
640
641
\subsection{\textcolor{Chapter }{MultiplyFreeZGLetterWithGroupElt{\textunderscore}LargeGroupRep}}
642
\logpage{[ 2, 4, 7 ]}\nobreak
643
\hyperdef{L}{X7A4B682079630694}{}
644
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGLetterWithGroupElt{\textunderscore}LargeGroupRep({\slshape resolution, letter, g})\index{MultiplyFreeZGLetterWithGroupEltLargeGroupRep@\texttt{Multiply}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter}\-\texttt{With}\-\texttt{Group}\-\texttt{Elt{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
645
\label{MultiplyFreeZGLetterWithGroupEltLargeGroupRep}
646
}\hfill{\scriptsize (method)}}\\
647
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGLetterWithGroupEltNC{\textunderscore}LargeGroupRep({\slshape resolution, letter, g})\index{MultiplyFreeZGLetterWithGroupEltNCLargeGroupRep@\texttt{Multiply}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter}\-\texttt{With}\-\texttt{Group}\-\texttt{Elt}\-\texttt{N}\-\texttt{C{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
648
\label{MultiplyFreeZGLetterWithGroupEltNCLargeGroupRep}
649
}\hfill{\scriptsize (method)}}\\
650
\textbf{\indent Returns:\ }
651
free ZG letter in large group representation
652
653
654
655
Multiplies the letter \mbox{\texttt{\slshape letter}} with the group element \mbox{\texttt{\slshape g}} and returns the result. The NC version does not check whether \mbox{\texttt{\slshape g}} is an element of the group of \mbox{\texttt{\slshape resolution}} and \mbox{\texttt{\slshape letter}} can be a letter. }
656
657
658
659
\subsection{\textcolor{Chapter }{MultiplyFreeZGWordWithGroupElt{\textunderscore}LargeGroupRep}}
660
\logpage{[ 2, 4, 8 ]}\nobreak
661
\hyperdef{L}{X7F2365D2851E3E3C}{}
662
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGWordWithGroupElt{\textunderscore}LargeGroupRep({\slshape resolution, word, g})\index{MultiplyFreeZGWordWithGroupEltLargeGroupRep@\texttt{Multiply}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Word}\-\texttt{With}\-\texttt{Group}\-\texttt{Elt{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
663
\label{MultiplyFreeZGWordWithGroupEltLargeGroupRep}
664
}\hfill{\scriptsize (method)}}\\
665
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{MultiplyFreeZGWordWithGroupEltNC{\textunderscore}LargeGroupRep({\slshape resolution, word, g})\index{MultiplyFreeZGWordWithGroupEltNCLargeGroupRep@\texttt{Multiply}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Word}\-\texttt{With}\-\texttt{Group}\-\texttt{Elt}\-\texttt{N}\-\texttt{C{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
666
\label{MultiplyFreeZGWordWithGroupEltNCLargeGroupRep}
667
}\hfill{\scriptsize (method)}}\\
668
\textbf{\indent Returns:\ }
669
free ZG word in large group representation
670
671
672
673
Multiplies the word \mbox{\texttt{\slshape word}} with the group element \mbox{\texttt{\slshape g}} and returns the result. The NC version does not check whether \mbox{\texttt{\slshape g}} is an element of the group of \mbox{\texttt{\slshape resolution}} and \mbox{\texttt{\slshape word}} can be a word. }
674
675
676
677
\subsection{\textcolor{Chapter }{GeneratorsOfModuleOfResolution{\textunderscore}LargeGroupRep}}
678
\logpage{[ 2, 4, 9 ]}\nobreak
679
\hyperdef{L}{X8355F6E8842B3D8C}{}
680
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{GeneratorsOfModuleOfResolution{\textunderscore}LargeGroupRep({\slshape resolution, term})\index{GeneratorsOfModuleOfResolutionLargeGroupRep@\texttt{Generators}\-\texttt{Of}\-\texttt{Module}\-\texttt{Of}\-\texttt{Resolution{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
681
\label{GeneratorsOfModuleOfResolutionLargeGroupRep}
682
}\hfill{\scriptsize (method)}}\\
683
\textbf{\indent Returns:\ }
684
list of letters/words in large group representation
685
686
687
688
Returns a set of generators for the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}}. The returned value is a list of vectors of group ring elements. }
689
690
691
692
\subsection{\textcolor{Chapter }{BoundaryOfGenerator{\textunderscore}LargeGroupRep}}
693
\logpage{[ 2, 4, 10 ]}\nobreak
694
\hyperdef{L}{X840DF79086D5473E}{}
695
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfGenerator{\textunderscore}LargeGroupRep({\slshape resolution, term, n})\index{BoundaryOfGeneratorLargeGroupRep@\texttt{Boundary}\-\texttt{Of}\-\texttt{Generator{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
696
\label{BoundaryOfGeneratorLargeGroupRep}
697
}\hfill{\scriptsize (method)}}\\
698
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfGeneratorNC{\textunderscore}LargeGroupRep({\slshape resolution, term, n})\index{BoundaryOfGeneratorNCLargeGroupRep@\texttt{Boundary}\-\texttt{Of}\-\texttt{Generator}\-\texttt{N}\-\texttt{C{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
699
\label{BoundaryOfGeneratorNCLargeGroupRep}
700
}\hfill{\scriptsize (method)}}\\
701
\textbf{\indent Returns:\ }
702
free ZG word in the large group representation
703
704
705
706
Returns the boundary of the \mbox{\texttt{\slshape n}}th generator of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}} as a word in the \mbox{\texttt{\slshape n-1}}st module (in large group representation). The NC version does not check
707
whether there is a \mbox{\texttt{\slshape term}}th module and if it has at least \mbox{\texttt{\slshape n}} generators. }
708
709
710
711
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGLetterNC{\textunderscore}LargeGroupRep}}
712
\logpage{[ 2, 4, 11 ]}\nobreak
713
\hyperdef{L}{X83D90EC28357DCCE}{}
714
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGLetterNC{\textunderscore}LargeGroupRep({\slshape resolution, term, letter})\index{BoundaryOfFreeZGLetterNCLargeGroupRep@\texttt{Boundary}\-\texttt{Of}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter}\-\texttt{N}\-\texttt{C{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
715
\label{BoundaryOfFreeZGLetterNCLargeGroupRep}
716
}\hfill{\scriptsize (method)}}\\
717
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGLetter{\textunderscore}LargeGroupRep({\slshape resolution, term, letter})\index{BoundaryOfFreeZGLetterLargeGroupRep@\texttt{Boundary}\-\texttt{Of}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Letter{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
718
\label{BoundaryOfFreeZGLetterLargeGroupRep}
719
}\hfill{\scriptsize (method)}}\\
720
\textbf{\indent Returns:\ }
721
free ZG word in large group representation
722
723
724
725
Calculates the boundary of the letter \mbox{\texttt{\slshape letter}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}} in large group representation. The NC version does not check whether \mbox{\texttt{\slshape letter}} actually is a letter in the \mbox{\texttt{\slshape term}}th module. }
726
727
728
729
\subsection{\textcolor{Chapter }{BoundaryOfFreeZGWord{\textunderscore}LargeGroupRep}}
730
\logpage{[ 2, 4, 12 ]}\nobreak
731
\hyperdef{L}{X78C681D37F8DC2A1}{}
732
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{BoundaryOfFreeZGWord{\textunderscore}LargeGroupRep({\slshape resolution, term, word})\index{BoundaryOfFreeZGWordLargeGroupRep@\texttt{Boundary}\-\texttt{Of}\-\texttt{Free}\-\texttt{Z}\-\texttt{G}\-\texttt{Word{\textunderscore}}\-\texttt{Large}\-\texttt{GroupRep}}
733
\label{BoundaryOfFreeZGWordLargeGroupRep}
734
}\hfill{\scriptsize (method)}}\\
735
\textbf{\indent Returns:\ }
736
free ZG word in large group representation
737
738
739
740
Calculates the boundary of the element \mbox{\texttt{\slshape word}} of the \mbox{\texttt{\slshape term}}th module of \mbox{\texttt{\slshape resolution}} in large group representation. The NC version does not check whether \mbox{\texttt{\slshape word}} actually is a word in the \mbox{\texttt{\slshape term}}th module. }
741
742
}
743
744
}
745
746
747
\chapter{\textcolor{Chapter }{Contracting Homotopies}}\logpage{[ 3, 0, 0 ]}
748
\hyperdef{L}{X792B9CC97C670AEA}{}
749
{
750
751
\section{\textcolor{Chapter }{The \texttt{PartialContractingHomotopy} Data Type}}\logpage{[ 3, 1, 0 ]}
752
\hyperdef{L}{X7E957D2381DBE362}{}
753
{
754
A partial contracting homotopy is a component object that knows the values of
755
a contracting homotopy on some subspace of a resolution. It has two mandatory
756
components:
757
\begin{itemize}
758
\item \texttt{.resolution} a \texttt{HapResolution} on which the contraction is defined.
759
\item \texttt{.knownPartOfHomotopy} a list of \texttt{Record}s with components \texttt{.space} and \texttt{.map}.
760
\end{itemize}
761
Let \texttt{h} be a contracting homotopy. The lookup table \texttt{.knownPartOfHomotopy} has one entry for each term of the resolution \texttt{h.resolution} (that is, one more than \texttt{Length(h.resolution)}).
762
763
The $i$ th element of \texttt{.knownPartOfHomotopy} contains a record with components \texttt{.space} and \texttt{.map} where \texttt{.space} is a \texttt{FreeZGWord} of the $i-1$ st term of the resolution. The component \texttt{.map} is a list of length \texttt{Dimension(h.resolution)(i-1)}. The entries of this list are pairs \texttt{[g,im]} where \texttt{g} represents a group element and \texttt{im} represents the image of the contraction. So the entry \texttt{[g,im]} in the \texttt{k}th component of the list \texttt{.map} means that the \texttt{k}th free generator of the corresponding module multiplied with the group
764
element represented by \texttt{g} is mapped to \texttt{im} under the partial contracting homotopy. Note that the data type of \texttt{g} or \texttt{im} are not fixed at this level. They must be specified by the sub
765
representations. Also, \texttt{im} need not represent the actual image under a contracting homotopy. It is
766
possible to just store a bit of information that is then used to generate the
767
actual image.
768
769
As this is a very general data type, it has very few methods.
770
771
\subsection{\textcolor{Chapter }{ResolutionOfContractingHomotopy}}
772
\logpage{[ 3, 1, 1 ]}\nobreak
773
\hyperdef{L}{X7D899ACD7EB512FA}{}
774
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{ResolutionOfContractingHomotopy({\slshape homotopy})\index{ResolutionOfContractingHomotopy@\texttt{ResolutionOfContractingHomotopy}}
775
\label{ResolutionOfContractingHomotopy}
776
}\hfill{\scriptsize (method)}}\\
777
\textbf{\indent Returns:\ }
778
A \texttt{HapResolution}
779
780
781
782
This returns the resolution of the homotopy \mbox{\texttt{\slshape homotopy}} (the component \mbox{\texttt{\slshape homotopy!.resolution}}). }
783
784
785
786
\subsection{\textcolor{Chapter }{PartialContractingHomotopyLookup}}
787
\logpage{[ 3, 1, 2 ]}\nobreak
788
\hyperdef{L}{X79C69C9B877C6D60}{}
789
{\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PartialContractingHomotopyLookup({\slshape homotopy, term, generator, groupel})\index{PartialContractingHomotopyLookup@\texttt{PartialContractingHomotopyLookup}}
790
\label{PartialContractingHomotopyLookup}
791
}\hfill{\scriptsize (method)}}\\
792
\noindent\textcolor{FuncColor}{$\Diamond$\ \texttt{PartialContractingHomotopyLookupNC({\slshape homotopy, term, generator, groupel})\index{PartialContractingHomotopyLookupNC@\texttt{PartialContractingHomotopyLookupNC}}
793
\label{PartialContractingHomotopyLookupNC}
794
}\hfill{\scriptsize (method)}}\\
795
\textbf{\indent Returns:\ }
796
The entry \texttt{im} of the corresponding lookup table
797
798
799
800
Looks up the known part of the contracting homotopy \mbox{\texttt{\slshape homotopy}} and returns the corresponding image. More precisely, it returns the image of
801
the \mbox{\texttt{\slshape generator}}th generator times the group element represented by \mbox{\texttt{\slshape groupel}} in term \mbox{\texttt{\slshape term}} under the partial homotopy. The data type of this image depends on the
802
representation of \mbox{\texttt{\slshape homotopy}}.
803
804
\mbox{\texttt{\slshape term}} has to be an integer and \mbox{\texttt{\slshape generator}} a positive integer. \mbox{\texttt{\slshape groupel}} only has to be an \texttt{Object}.
805
806
The NC version does not do any checks on the input. The other version checks
807
if \mbox{\texttt{\slshape term}} and \mbox{\texttt{\slshape generator}} are sensible. It does not check \mbox{\texttt{\slshape groupel}}. }
808
809
}
810
811
}
812
813
\newpage
814
\immediate\write\pagenrlog{["End"], \arabic{page}];}
815
\immediate\closeout\pagenrlog
816
\end{document}
817
818