Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 1510

gap-system-4.4.12-5mdv2010.0.i586.rpm

<html><head><title>[FPLSA] 1 The FPLSA Package</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href = "theindex.htm">Index</a>]
<h1>1 The FPLSA Package</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP001.htm#SECT001">Main Functions</a>
<li> <A HREF="CHAP001.htm#SECT002">Auxiliary Variables of FPLSA</a>
<li> <A HREF="CHAP001.htm#SECT003">Installing the FPLSA Package</a>
</ol><p>
<p>
This chapter describes the <font face="Gill Sans,Helvetica,Arial">GAP</font> package <font face="Gill Sans,Helvetica,Arial">FPLSA</font> ,
an interface to the <code>fplsa</code> program by V.&nbsp;Gerdt and V.&nbsp;Kornyak (version 4)
for the computation with finitely presented Lie superalgebras.
<p>
At present <font face="Gill Sans,Helvetica,Arial">GAP</font> uses only the facility to compute a structure constants
table of a finite dimensional Lie algebra over the rationals
that is given by a finite presentation.
<p>
The package uses an external binary,
probably it will only work on UNIX platforms. 
<p>
<p>
<h2><a name="SECT001">1.1 Main Functions</a></h2>
<p><p>
A finitely presented Lie algebra is a quotient of a free Lie algebra
by an ideal generated by a finite number of elements.
In <font face="Gill Sans,Helvetica,Arial">GAP</font> a free Lie algebra can be created by the command <code>FreeLieAlgebra</code>;
we refer to the <font face="Gill Sans,Helvetica,Arial">GAP</font> Reference Manual for more details.
A finitely presented Lie algebra
<var>K</var> can be constructed by <code></code><var>K</var><code> := </code><var>L</var><code>/</code><var>rels</var><code></code>, where <var>L</var> is a free Lie algebra
and <var>rels</var> a list of elements of <var>L</var> that constitute the relations 
that hold in <var>K</var>. Given a finitle presented Lie algebra we want to calculate 
a basis and a multiplication table of it. The interface to the <font face="Gill Sans,Helvetica,Arial">FPLSA</font> 
package comes with two related functions for doing that. 
<p>
<a name = "SSEC001.1"></a>
<li><code>SCAlgebraInfoOfFpLieAlgebra( </code><var>L</var><code>, </code><var>rels</var><code>, </code><var>limit</var><code>, </code><var>words</var><code>, </code><var>rels</var><code> ) F</code>
<p>
Let <var>L</var> be a free Lie algebra over the rationals,
<var>rels</var> a list of elements in <var>L</var>,
<var>limit</var> a positive integer 
and <var>words</var> and <var>rels</var> two booleans.
<p>
If the algebra <code></code><var>L</var><code> / </code><var>rels</var><code></code> is finite-dimensional and if a basis of
this algebra can be constructed using elements in <var>L</var> that involve only
words of length at most <var>limit</var> then <code>SCAlgebraInfoOfFpLieAlgebra</code>
returns a record whose component <code>sc</code> contains an algebra that is
isomorphic with <code></code><var>L</var><code> / </code><var>rels</var><code></code>.
Otherwise <code>fail</code> is returned.
<p>
The function calls the <code>fplsa</code> standalone.
<p>
If <var>words</var> is <code>true</code> then the component <code>words</code> of the result record
contains a list of elements in <var>L</var> that correspond to the basis elements.
<p>
If <var>rels</var> is <code>true</code> then the component <code>rels</code> of the result record
contains a list of reduced relators in <var>L</var> that describes how algebra
generators of <var>L</var> are expressed in terms of the basis elements.
<p>
<pre>
gap&gt; LoadPackage( "fplsa" );
true
gap&gt; L:= FreeLieAlgebra( Rationals, "x", "y" );
&lt;Lie algebra over Rationals, with 2 generators&gt;
gap&gt; g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
gap&gt; rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];
[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]
gap&gt; SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );
rec( sc := &lt;Lie algebra of dimension 4 over Rationals&gt;, 
  words := [ (1)*x, (1)*y, (1)*(y*x), (1)*((y*x)*y) ], 
  rels := [ (1)*((y*x)*x)+(1)*(y*x), (1)*(((y*x)*y)*y), (1)*(((y*x)*y)*(y*x)) 
     ] )
</pre>
<p>
<a name = "SSEC001.2"></a>
<li><code>IsomorphicSCAlgebra( </code><var>K</var><code> [,</code><var>bound</var><code>] ) F</code>
<p>
computes a Lie algebra given by a multiplication table isomorphic to the 
finitely presented Lie algebra <var>K</var>.
If the optional parameter <var>bound</var> is specified the computation will
be carried out using monomials of degree at most <var>bound</var>. 
If <var>bound</var> is not specified, then it will initially be set to
10000. If this does not suffice to calculate a multiplication tabel
of the algebra, then the bound will be increased until a multiplication
table is found.
<p>
If the computation was successful then a structure constants algebra
will be returned isomorphic to <var>K</var>.
Otherwise <code>fail</code> will be returned.
<p>
<pre>
gap&gt; LoadPackage( "fplsa" );
true
gap&gt; L:= FreeLieAlgebra( Rationals, "x", "y" );
&lt;Lie algebra over Rationals, with 2 generators&gt;
gap&gt; g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
gap&gt; rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];
[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]
gap&gt; K:= L/rels;
&lt;Lie algebra over Rationals, with 2 generators&gt;
gap&gt; IsomorphicSCAlgebra( K );
&lt;Lie algebra of dimension 4 over Rationals&gt;
</pre>
<p>
<p>
<h2><a name="SECT002">1.2 Auxiliary Variables of FPLSA</a></h2>
<p><p>
<a name = "SSEC002.1"></a>
<li><code>FPLSA V</code>
<p>
is the global record used by the functions in the package.
Besides components that describe parameters for the standalone,
the following components are used.
<p>
<dl compact>
<dt><code>Relation_size</code> <dd> 
       parameter that controls the memory usage by the fplsa program,
<p>
<dt><code>Lie_monomial_table_size</code> <dd>
       parameter that controls the memory usage by the fplsa program,
<p>
<dt><code>Node_Lie_term_size</code> <dd> 
       parameter that controls the memory usage by the fplsa program,
<p>
<dt><code>Node_scalar_factor_size</code> <dd>
       parameter that controls the memory usage by the fplsa program,
<p>
<dt><code>Node_scalar_term_size</code> <dd>
       parameter that controls the memory usage by the fplsa program,
<p>
<dt><code>progname</code> <dd>
    the file name of the executable,
<p>
<dt><code>T</code> <dd>
    structure constants table of the algebra under consideration,
<p>
<dt><code>words</code> <dd>
    list of elements in the free Lie algebra that correspond to the
    basis elements,
<p>
<dt><code>rels</code> <dd>
    list of relators in the free Lie algebra that are used to express
    redundant algebra generators in terms of the basis.
</dl>
<p>
In order to be able to run the <code>fplsa</code> program successfully, it might be
necessary
to customize the parameters that control the memory the the program uses, 
to suit the computer the user is working on. In particular if the program exits
with an error message of the form: <code>Error, the process did not succeed</code>,
then it may be necessary to change these parameters.
<p>
<pre>
gap&gt; LoadPackage( "fplsa" );
true
gap&gt; L:= FreeLieAlgebra( Rationals, "x", "y" );;
gap&gt; g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;
gap&gt; rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];;
gap&gt; SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );;
gap&gt; FPLSA;
rec( Relation_size := 2500000, Lie_monomial_table_size := 1000000, 
  Node_Lie_term_size := 2000000, Node_scalar_factor_size := 2000, 
  Node_scalar_term_size := 20000, progname := "fplsa4", 
  T := [ [ [ [  ], [  ] ], [ [ 3 ], [ -1 ] ], [ [ 3 ], [ 1 ] ], 
          [ [ 4 ], [ 1 ] ] ], 
      [ [ [ 3 ], [ 1 ] ], [ [  ], [  ] ], [ [ 4 ], [ -1 ] ], [ [  ], [  ] ] ],
      [ [ [ 3 ], [ -1 ] ], [ [ 4 ], [ 1 ] ], [ [  ], [  ] ], [ [  ], [  ] ] ],
      [ [ [ 4 ], [ -1 ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], 
      -1, 0 ], words := [ 1, 2, [ 2, 1 ], [ [ 2, 1 ], 2 ] ], 
  rels := [ [ [ [ 2, 1 ], 1 ], 1, [ 2, 1 ], 1 ], 
      [ [ [ [ 2, 1 ], 2 ], 2 ], 1 ], [ [ [ [ 2, 1 ], 2 ], [ 2, 1 ] ], 1 ] ] )
</pre>
<p>
<p>
<h2><a name="SECT003">1.3 Installing the FPLSA Package</a></h2>
<p><p>
To install unpack the archive file in a directory in the <code>pkg</code> hierarchy
of your version of <font face="Gill Sans,Helvetica,Arial">GAP</font>.
(This might be the <code>pkg</code> directory of the <font face="Gill Sans,Helvetica,Arial">GAP</font> home directory;
it is however also possible to keep an additional <code>pkg</code> directory in your
private directories, see Section&nbsp;<a href="../../../doc/htm/ref/CHAP074.htm#SECT001">Installing a GAP Package</a>
of the <font face="Gill Sans,Helvetica,Arial">GAP</font> Reference Manual for details on how to do this.)
Go to the newly created <code>fplsa</code> directory and call <code>./configure </code><var>path</var><code></code>
where <var>path</var> is the path to the <font face="Gill Sans,Helvetica,Arial">GAP</font> home directory.
So for example if you install the package in the main <code>pkg</code> directory call
<pre>
./configure ../..
</pre>
This will fetch the architecture type for which <font face="Gill Sans,Helvetica,Arial">GAP</font> has been compiled last
and create a <code>Makefile</code>. 
Now simply call
<pre>
make
</pre>
to compile the binary and to install it in the appropriate place.
<p>
If you use this installation of <font face="Gill Sans,Helvetica,Arial">GAP</font> on different hardware platforms you will
have to compile the binary for each platform separately. This is done by
calling <code>configure</code> and <code>make</code> for the package anew immediately after
compiling <font face="Gill Sans,Helvetica,Arial">GAP</font> itself for the respective architecture.
If your version of <font face="Gill Sans,Helvetica,Arial">GAP</font> is already compiled (and has last been compiled on
the same architecture) you do not need to compile <font face="Gill Sans,Helvetica,Arial">GAP</font>
again, it is sufficient to call the <code>configure</code> script in the <font face="Gill Sans,Helvetica,Arial">GAP</font> home
directory.
<p>
<p>
[<a href = "chapters.htm">Up</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>FPLSA manual<br>November 2003
</address></body></html>