Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1%%2%W fplsa.tex GAP documentation Thomas Breuer3%%4%Y Copyright (C) 1997, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany5%%67%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%8\Chapter{The FPLSA Package}910This chapter describes the {\GAP} package {\FPLSA} ,11an interface to the `fplsa' program by V.~Gerdt and V.~Kornyak (version 4)12for the computation with finitely presented Lie superalgebras.1314At present {\GAP} uses only the facility to compute a structure constants15table of a finite dimensional Lie algebra over the rationals16that is given by a finite presentation.1718The package uses an external binary,19probably it will only work on UNIX platforms.202122%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%23\Section{Main Functions}2425A finitely presented Lie algebra is a quotient of a free Lie algebra26by an ideal generated by a finite number of elements.27In {\GAP} a free Lie algebra can be created by the command `FreeLieAlgebra';28we refer to the {\GAP} Reference Manual for more details.29A finitely presented Lie algebra30<K> can be constructed by `<K> := <L>/<rels>', where <L> is a free Lie algebra31and <rels> a list of elements of <L> that constitute the relations32that hold in <K>. Given a finitle presented Lie algebra we want to calculate33a basis and a multiplication table of it. The interface to the {\FPLSA}34package comes with two related functions for doing that.3536\>SCAlgebraInfoOfFpLieAlgebra( <L>, <rels>, <limit>, <words>, <rels> ) F3738Let <L> be a free Lie algebra over the rationals,39<rels> a list of elements in <L>,40<limit> a positive integer41and <words> and <rels> two booleans.4243If the algebra `<L> / <rels>' is finite-dimensional and if a basis of44this algebra can be constructed using elements in <L> that involve only45words of length at most <limit> then `SCAlgebraInfoOfFpLieAlgebra'46returns a record whose component `sc' contains an algebra that is47isomorphic with `<L> / <rels>'.48Otherwise `fail' is returned.4950The function calls the `fplsa' standalone.5152If <words> is `true' then the component `words' of the result record53contains a list of elements in <L> that correspond to the basis elements.5455If <rels> is `true' then the component `rels' of the result record56contains a list of reduced relators in <L> that describes how algebra57generators of <L> are expressed in terms of the basis elements.5859\beginexample60gap> LoadPackage( "fplsa" );61true62gap> L:= FreeLieAlgebra( Rationals, "x", "y" );63<Lie algebra over Rationals, with 2 generators>64gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;65gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];66[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]67gap> SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );68rec( sc := <Lie algebra of dimension 4 over Rationals>,69words := [ (1)*x, (1)*y, (1)*(y*x), (1)*((y*x)*y) ],70rels := [ (1)*((y*x)*x)+(1)*(y*x), (1)*(((y*x)*y)*y), (1)*(((y*x)*y)*(y*x))71] )72\endexample7374\> IsomorphicSCAlgebra( <K> [,<bound>] ) F7576computes a Lie algebra given by a multiplication table isomorphic to the77finitely presented Lie algebra <K>.78If the optional parameter <bound> is specified the computation will79be carried out using monomials of degree at most <bound>.80If <bound> is not specified, then it will initially be set to8110000. If this does not suffice to calculate a multiplication tabel82of the algebra, then the bound will be increased until a multiplication83table is found.8485If the computation was successful then a structure constants algebra86will be returned isomorphic to <K>.87Otherwise `fail' will be returned.8889\beginexample90gap> LoadPackage( "fplsa" );91true92gap> L:= FreeLieAlgebra( Rationals, "x", "y" );93<Lie algebra over Rationals, with 2 generators>94gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;95gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];96[ (-1)*(x*y)+(1)*(x*(x*y)), (1)*(((x*y)*y)*y) ]97gap> K:= L/rels;98<Lie algebra over Rationals, with 2 generators>99gap> IsomorphicSCAlgebra( K );100<Lie algebra of dimension 4 over Rationals>101\endexample102103104%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%105\Section{Auxiliary Variables of FPLSA}106107\>`FPLSA' V108109is the global record used by the functions in the package.110Besides components that describe parameters for the standalone,111the following components are used.112\beginitems113`Relation_size' &114parameter that controls the memory usage by the fplsa program,115116`Lie_monomial_table_size' &117parameter that controls the memory usage by the fplsa program,118119`Node_Lie_term_size' &120parameter that controls the memory usage by the fplsa program,121122`Node_scalar_factor_size' &123parameter that controls the memory usage by the fplsa program,124125`Node_scalar_term_size' &126parameter that controls the memory usage by the fplsa program,127128`progname' &129the file name of the executable,130131`T' &132structure constants table of the algebra under consideration,133134`words' &135list of elements in the free Lie algebra that correspond to the136basis elements,137138`rels' &139list of relators in the free Lie algebra that are used to express140redundant algebra generators in terms of the basis.141\enditems142143In order to be able to run the `fplsa' program successfully, it might be144necessary145to customize the parameters that control the memory the the program uses,146to suit the computer the user is working on. In particular if the program exits147with an error message of the form: `Error, the process did not succeed',148then it may be necessary to change these parameters.149150\beginexample151gap> LoadPackage( "fplsa" );152true153gap> L:= FreeLieAlgebra( Rationals, "x", "y" );;154gap> g:= GeneratorsOfAlgebra( L );; x:= g[1];; y:= g[2];;155gap> rels:= [ x*(x*y) - x*y, y*(y*(x*y)) ];;156gap> SCAlgebraInfoOfFpLieAlgebra( L, rels, 100, true, true );;157gap> FPLSA;158rec( Relation_size := 2500000, Lie_monomial_table_size := 1000000,159Node_Lie_term_size := 2000000, Node_scalar_factor_size := 2000,160Node_scalar_term_size := 20000, progname := "fplsa4",161T := [ [ [ [ ], [ ] ], [ [ 3 ], [ -1 ] ], [ [ 3 ], [ 1 ] ],162[ [ 4 ], [ 1 ] ] ],163[ [ [ 3 ], [ 1 ] ], [ [ ], [ ] ], [ [ 4 ], [ -1 ] ], [ [ ], [ ] ] ],164[ [ [ 3 ], [ -1 ] ], [ [ 4 ], [ 1 ] ], [ [ ], [ ] ], [ [ ], [ ] ] ],165[ [ [ 4 ], [ -1 ] ], [ [ ], [ ] ], [ [ ], [ ] ], [ [ ], [ ] ] ],166-1, 0 ], words := [ 1, 2, [ 2, 1 ], [ [ 2, 1 ], 2 ] ],167rels := [ [ [ [ 2, 1 ], 1 ], 1, [ 2, 1 ], 1 ],168[ [ [ [ 2, 1 ], 2 ], 2 ], 1 ], [ [ [ [ 2, 1 ], 2 ], [ 2, 1 ] ], 1 ] ] )169\endexample170171172%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%173\Section{Installing the FPLSA Package}174175To install unpack the archive file in a directory in the `pkg' hierarchy176of your version of {\GAP}.177(This might be the `pkg' directory of the {\GAP} home directory;178it is however also possible to keep an additional `pkg' directory in your179private directories, see Section~"ref:Installing a GAP Package"180of the {\GAP} Reference Manual for details on how to do this.)181Go to the newly created `fplsa' directory and call `./configure <path>'182where <path> is the path to the {\GAP} home directory.183So for example if you install the package in the main `pkg' directory call184\begintt185./configure ../..186\endtt187This will fetch the architecture type for which {\GAP} has been compiled last188and create a `Makefile'.189Now simply call190\begintt191make192\endtt193to compile the binary and to install it in the appropriate place.194195If you use this installation of {\GAP} on different hardware platforms you will196have to compile the binary for each platform separately. This is done by197calling `configure' and `make' for the package anew immediately after198compiling {\GAP} itself for the respective architecture.199If your version of {\GAP} is already compiled (and has last been compiled on200the same architecture) you do not need to compile {\GAP}201again, it is sufficient to call the `configure' script in the {\GAP} home202directory.203204205%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%206%%207%E208209210211