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
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
%%
3
%W fplsa.tex GAP documentation Thomas Breuer
4
%%
5
%Y Copyright (C) 1997, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
6
%%
7
8
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
9
\Chapter{The FPLSA Package}
10
11
This chapter describes the {\GAP} package {\FPLSA} ,
12
an interface to the `fplsa' program by V.~Gerdt and V.~Kornyak (version 4)
13
for the computation with finitely presented Lie superalgebras.
14
15
At present {\GAP} uses only the facility to compute a structure constants
16
table of a finite dimensional Lie algebra over the rationals
17
that is given by a finite presentation.
18
19
The package uses an external binary,
20
probably it will only work on UNIX platforms.
21
22
23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
24
\Section{Main Functions}
25
26
A finitely presented Lie algebra is a quotient of a free Lie algebra
27
by an ideal generated by a finite number of elements.
28
In {\GAP} a free Lie algebra can be created by the command `FreeLieAlgebra';
29
we refer to the {\GAP} Reference Manual for more details.
30
A finitely presented Lie algebra
31
<K> can be constructed by `<K> := <L>/<rels>', where <L> is a free Lie algebra
32
and <rels> a list of elements of <L> that constitute the relations
33
that hold in <K>. Given a finitle presented Lie algebra we want to calculate
34
a basis and a multiplication table of it. The interface to the {\FPLSA}
35
package comes with two related functions for doing that.
36
37
\>SCAlgebraInfoOfFpLieAlgebra( <L>, <rels>, <limit>, <words>, <rels> ) F
38
39
Let <L> be a free Lie algebra over the rationals,
40
<rels> a list of elements in <L>,
41
<limit> a positive integer
42
and <words> and <rels> two booleans.
43
44
If the algebra `<L> / <rels>' is finite-dimensional and if a basis of
45
this algebra can be constructed using elements in <L> that involve only
46
words of length at most <limit> then `SCAlgebraInfoOfFpLieAlgebra'
47
returns a record whose component `sc' contains an algebra that is
48
isomorphic with `<L> / <rels>'.
49
Otherwise `fail' is returned.
50
51
The function calls the `fplsa' standalone.
52
53
If <words> is `true' then the component `words' of the result record
54
contains a list of elements in <L> that correspond to the basis elements.
55
56
If <rels> is `true' then the component `rels' of the result record
57
contains a list of reduced relators in <L> that describes how algebra
58
generators of <L> are expressed in terms of the basis elements.
59
60
\beginexample
61
gap> LoadPackage( "fplsa" );
62
true
63
gap> L:= FreeLieAlgebra( Rationals, "x", "y" );
64
<Lie algebra over Rationals, with 2 generators>
65
gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
66
gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];
67
[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]
68
gap> SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );
69
rec( sc := <Lie algebra of dimension 4 over Rationals>,
70
words := [ (1)*x, (1)*y, (1)*(y*x), (1)*((y*x)*y) ],
71
rels := [ (1)*((y*x)*x)+(1)*(y*x), (1)*(((y*x)*y)*y), (1)*(((y*x)*y)*(y*x))
72
] )
73
\endexample
74
75
\> IsomorphicSCAlgebra( <K> [,<bound>] ) F
76
77
computes a Lie algebra given by a multiplication table isomorphic to the
78
finitely presented Lie algebra <K>.
79
If the optional parameter <bound> is specified the computation will
80
be carried out using monomials of degree at most <bound>.
81
If <bound> is not specified, then it will initially be set to
82
10000. If this does not suffice to calculate a multiplication tabel
83
of the algebra, then the bound will be increased until a multiplication
84
table is found.
85
86
If the computation was successful then a structure constants algebra
87
will be returned isomorphic to <K>.
88
Otherwise `fail' will be returned.
89
90
\beginexample
91
gap> LoadPackage( "fplsa" );
92
true
93
gap> L:= FreeLieAlgebra( Rationals, "x", "y" );
94
<Lie algebra over Rationals, with 2 generators>
95
gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
96
gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];
97
[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]
98
gap> K:= L/rels;
99
<Lie algebra over Rationals, with 2 generators>
100
gap> IsomorphicSCAlgebra( K );
101
<Lie algebra of dimension 4 over Rationals>
102
\endexample
103
104
105
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106
\Section{Auxiliary Variables of FPLSA}
107
108
\>`FPLSA' V
109
110
is the global record used by the functions in the package.
111
Besides components that describe parameters for the standalone,
112
the following components are used.
113
\beginitems
114
`Relation_size' &
115
parameter that controls the memory usage by the fplsa program,
116
117
`Lie_monomial_table_size' &
118
parameter that controls the memory usage by the fplsa program,
119
120
`Node_Lie_term_size' &
121
parameter that controls the memory usage by the fplsa program,
122
123
`Node_scalar_factor_size' &
124
parameter that controls the memory usage by the fplsa program,
125
126
`Node_scalar_term_size' &
127
parameter that controls the memory usage by the fplsa program,
128
129
`progname' &
130
the file name of the executable,
131
132
`T' &
133
structure constants table of the algebra under consideration,
134
135
`words' &
136
list of elements in the free Lie algebra that correspond to the
137
basis elements,
138
139
`rels' &
140
list of relators in the free Lie algebra that are used to express
141
redundant algebra generators in terms of the basis.
142
\enditems
143
144
In order to be able to run the `fplsa' program successfully, it might be
145
necessary
146
to customize the parameters that control the memory the the program uses,
147
to suit the computer the user is working on. In particular if the program exits
148
with an error message of the form: `Error, the process did not succeed',
149
then it may be necessary to change these parameters.
150
151
\beginexample
152
gap> LoadPackage( "fplsa" );
153
true
154
gap> L:= FreeLieAlgebra( Rationals, "x", "y" );;
155
gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
156
gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];;
157
gap> SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );;
158
gap> FPLSA;
159
rec( Relation_size := 2500000, Lie_monomial_table_size := 1000000,
160
Node_Lie_term_size := 2000000, Node_scalar_factor_size := 2000,
161
Node_scalar_term_size := 20000, progname := "fplsa4",
162
T := [ [ [ [ ], [ ] ], [ [ 3 ], [ -1 ] ], [ [ 3 ], [ 1 ] ],
163
[ [ 4 ], [ 1 ] ] ],
164
[ [ [ 3 ], [ 1 ] ], [ [ ], [ ] ], [ [ 4 ], [ -1 ] ], [ [ ], [ ] ] ],
165
[ [ [ 3 ], [ -1 ] ], [ [ 4 ], [ 1 ] ], [ [ ], [ ] ], [ [ ], [ ] ] ],
166
[ [ [ 4 ], [ -1 ] ], [ [ ], [ ] ], [ [ ], [ ] ], [ [ ], [ ] ] ],
167
-1, 0 ], words := [ 1, 2, [ 2, 1 ], [ [ 2, 1 ], 2 ] ],
168
rels := [ [ [ [ 2, 1 ], 1 ], 1, [ 2, 1 ], 1 ],
169
[ [ [ [ 2, 1 ], 2 ], 2 ], 1 ], [ [ [ [ 2, 1 ], 2 ], [ 2, 1 ] ], 1 ] ] )
170
\endexample
171
172
173
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174
\Section{Installing the FPLSA Package}
175
176
To install unpack the archive file in a directory in the `pkg' hierarchy
177
of your version of {\GAP}.
178
(This might be the `pkg' directory of the {\GAP} home directory;
179
it is however also possible to keep an additional `pkg' directory in your
180
private directories, see Section~"ref:Installing a GAP Package"
181
of the {\GAP} Reference Manual for details on how to do this.)
182
Go to the newly created `fplsa' directory and call `./configure <path>'
183
where <path> is the path to the {\GAP} home directory.
184
So for example if you install the package in the main `pkg' directory call
185
\begintt
186
./configure ../..
187
\endtt
188
This will fetch the architecture type for which {\GAP} has been compiled last
189
and create a `Makefile'.
190
Now simply call
191
\begintt
192
make
193
\endtt
194
to compile the binary and to install it in the appropriate place.
195
196
If you use this installation of {\GAP} on different hardware platforms you will
197
have to compile the binary for each platform separately. This is done by
198
calling `configure' and `make' for the package anew immediately after
199
compiling {\GAP} itself for the respective architecture.
200
If your version of {\GAP} is already compiled (and has last been compiled on
201
the same architecture) you do not need to compile {\GAP}
202
again, it is sufficient to call the `configure' script in the {\GAP} home
203
directory.
204
205
206
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
207
%%
208
%E
209
210
211