  
  [1m[4m[31m3. [1mSophus[1m[4m[31m functions[0m
  
  
  [1m[4m[31m3.1 Some general functions to compute with Lie algebras[0m
  
  [1m[4m[31m3.1-1 SophusTest[0m
  
  [1m[34m> SophusTest( [0m[22m[34m[0m[1m[34m ) ___________________________________________________[0mfunction
  
  Tests  [1mSophus[0m  functions,  returns true if it finds no mistakes, and returns
  false otherwise. May take a couple of minutes to complete.
  
  [1m[4m[31m3.1-2 IsLieNilpotentOverFp[0m
  
  [1m[34m> IsLieNilpotentOverFp( [0m[22m[34mL[0m[1m[34m ) ________________________________________[0mproperty
  
  Returns  true  if [22m[34mL[0m is a nilpotent Lie algebra and its underlying field is a
  finite prime field.
  
  [1m[4m[31m3.1-3 MinimalGeneratorNumber[0m
  
  [1m[34m> MinimalGeneratorNumber( [0m[22m[34mL[0m[1m[34m ) _____________________________________[0mattribute
  
  Computes the minimal number of generators for $L$, which is the dimension of
  $L/L'$.
  
  [1m[4m[31m3.1-4 AbelianLieAlgebra[0m
  
  [1m[34m> AbelianLieAlgebra( [0m[22m[34mF, d[0m[1m[34m ) ________________________________________[0mfunction
  
  Returns the Abelian Lie algebra with dimension $d$ over the field [22m[34mF[0m.
  
  
  [1m[4m[31m3.2 Functions to compute with nilpotent bases[0m
  
  [1m[4m[31m3.2-1 NilpotentBasis[0m
  
  [1m[34m> NilpotentBasis( [0m[22m[34mL[0m[1m[34m ) _____________________________________________[0mattribute
  
  Computes  a  nilpotent basis for $L$. Nilpotent bases are defined in Section
  [1m1.[0m.
  
  [1m[4m[31m3.2-2 LieNBWeights[0m
  
  [1m[34m> LieNBWeights( [0m[22m[34mB[0m[1m[34m ) _______________________________________________[0mattribute
  
  Every  element of the nilpotent basis $B$ has a weight; See Section [1m1.[0m. This
  function returns the list of these weights.
  
  [1m[4m[31m3.2-3 LieNBDefinitions[0m
  
  [1m[34m> LieNBDefinitions( [0m[22m[34mB[0m[1m[34m ) ___________________________________________[0mattribute
  
  This function returns a list. The [22m[34mi[0m-th element of this list is 0 if [22m[34mB[i][0m has
  weight  1.  Otherwise the [22m[34mi[0m-th element is [22m[34m[k,l][0m if the definition of [22m[34mB[i][0m is
  [22m[34m[B[k],B[l]][0m. See Section [1m1.[0m.
  
  [1m[4m[31m3.2-4 IsNilpotentBasis[0m
  
  [1m[34m> IsNilpotentBasis( [0m[22m[34mB[0m[1m[34m ) ____________________________________________[0mproperty
  
  Returns  [22m[32mtrue[0m if the basis [22m[34mB[0m of a Lie algebra was computed with the function
  [22m[32mNilpotentBasis[0m; [22m[32mfalse[0m otherwise.
  
  [1m[4m[31m3.2-5 IsLieAlgebraWithNB[0m
  
  [1m[34m> IsLieAlgebraWithNB( [0m[22m[34mL[0m[1m[34m ) __________________________________________[0mproperty
  
  Returns  [22m[32mtrue[0m if a nilpotent basis for [22m[34mL[0m has already been computed using the
  function [22m[32mNilpotentBasis[0m; [22m[32mfalse[0m otherwise.
  
  
  [1m[4m[31m3.3 The cover[0m
  
  [1m[4m[31m3.3-1 LieCover[0m
  
  [1m[34m> LieCover( [0m[22m[34mL[0m[1m[34m ) ___________________________________________________[0mattribute
  
  Computes  the  cover for the nilpotent Lie algebra $L$ as defined in Section
  [1m1.[0m.
  
  [1m[4m[31m3.3-2 CoverHomomorphism[0m
  
  [1m[34m> CoverHomomorphism( [0m[22m[34mC[0m[1m[34m ) __________________________________________[0mattribute
  
  The  nilpotent  Lie  algebra  [22m[34mC[0m  was obtained from a nilpotent Lie algebra [22m[34mL[0m
  using  the  [22m[34mLieCover(  L  )[0m function call. This function returns the natural
  homomorphism from [22m[34mC[0m onto [22m[34mL[0m.
  
  [1m[4m[31m3.3-3 CoverOf[0m
  
  [1m[34m> CoverOf( [0m[22m[34mC[0m[1m[34m ) ____________________________________________________[0mattribute
  
  The  nilpotent  Lie  algebra  [22m[34mC[0m  was obtained from a nilpotent Lie algebra [22m[34mL[0m
  using the [22m[34mLieCover( L )[0m function call. This function returns [22m[34mL[0m.
  
  [1m[4m[31m3.3-4 IsLieCover[0m
  
  [1m[34m> IsLieCover( [0m[22m[34mC[0m[1m[34m ) __________________________________________________[0mproperty
  
  Returns  [22m[32mtrue[0m  if the Lie algebra [22m[34mC[0m was obtained as the Lie cover of another
  Lie algebra [22m[34mL[0m using the [22m[34mLieCover( L )[0m function call.
  
  [1m[4m[31m3.3-5 LieMultiplicator[0m
  
  [1m[34m> LieMultiplicator( [0m[22m[34mC[0m[1m[34m ) ___________________________________________[0mattribute
  
  The  nilpotent  Lie  algebra  [22m[34mC[0m  was obtained from a nilpotent Lie algebra [22m[34mL[0m
  using  the  [22m[34mLieCover(  L  )[0m function call. This function returns the central
  ideal of [22m[34mC[0m which is the multiplicator of [22m[34mL[0m; see Section [1m1.[0m.
  
  [1m[4m[31m3.3-6 LieNucleus[0m
  
  [1m[34m> LieNucleus( [0m[22m[34mC[0m[1m[34m ) _________________________________________________[0mattribute
  
  The  nilpotent  Lie  algebra  [22m[34mC[0m  was obtained from a nilpotent Lie algebra [22m[34mL[0m
  using  the  [22m[34mLieCover(  L  )[0m function call. This function returns the central
  ideal of [22m[34mC[0m which is the nucleus of [22m[34mL[0m; see Section [1m1.[0m.
  
  
  [1m[4m[31m3.4 Automorphisms of nilpotent Lie algebras[0m
  
  We define a special class of automorphisms for our work.
  
  [1m[4m[31m3.4-1 NilpotentLieAutomorphism[0m
  
  [1m[34m> NilpotentLieAutomorphism( [0m[22m[34mL, gens, imgs[0m[1m[34m ) __________________________[0mmethod
  
  [22m[34mL[0m is a nilpotent Lie algebra, [22m[34mgens[0m is a generating set, and [22m[34mimgs[0m is a subset
  of  [22m[34mL[0m with the same length as [22m[34mgens[0m. Returns the automorphism of [22m[34mL[0m which maps
  the element of [22m[34mgens[0m to the elements of [22m[34mimgs[0m. It is the responsibility of the
  user  to  make  sure  that  the arguments are given so that the automorphism
  exists.  These  automorphisms  can be compared, multiplied using the [22m[34m*[0m sign,
  and  the  inverse  of such an automorphism can also be computed in the usual
  manner.
  
  [1m[4m[31m3.4-2 IdentityNilpotentLieAutomorphism[0m
  
  [1m[34m> IdentityNilpotentLieAutomorphism( [0m[22m[34mL[0m[1m[34m ) ______________________________[0mmethod
  
  [22m[34mL[0m is a nilpotent Lie algebra; returns the identity automorphism of $L$.
  
  [1m[4m[31m3.4-3 IsNilpotentLieAutomorphism[0m
  
  [1m[34m> IsNilpotentLieAutomorphism( [0m[22m[34mA[0m[1m[34m ) __________________________________[0mproperty
  
  Returns  [22m[32mtrue[0m  if  [22m[34mA[0m  was  obtained  using  a [22m[34mNilpotentLieAutomorphism[0m or an
  [22m[34mIdentityNilpotentLieAutomorphism[0m function call.
  
  
  [1m[4m[31m3.5 Automorphism group and isomorphism testing[0m
  
  [1m[4m[31m3.5-1 AutomorphismGroup[0m
  
  [1m[34m> AutomorphismGroup( [0m[22m[34mL[0m[1m[34m ) _____________________________________________[0mmethod
  
  [22m[34mL[0m is a nilpotent Lie algebra; returns the automorphism group of [22m[34mL[0m as a group
  generated  by  [1mGAP[0m algebra automorphisms. The automorphism group is computed
  as explained in [S].
  
  [1m[4m[31m3.5-2 AutomorphismGroupNilpotentLieAlgebra[0m
  
  [1m[34m> AutomorphismGroupNilpotentLieAlgebra( [0m[22m[34mL[0m[1m[34m ) __________________________[0mmethod
  
  [22m[34mL[0m  is  a  nilpotent  Lie algebra; returns the automorphism group of [22m[34mL[0m in the
  internally  used  hybrid  format.  The  automorphism  group  is  computed as
  explained  in  [S]. The hybrid format, which is very similar to the one used
  in [EO], is a record that contains the following fields.
  
  --    [22m[32mglAutos[0m:  a  set of automorphisms which together with [22m[32magAutos[0m generate
        the automorphism group;
  
  --    [22m[32mglOrder[0m:  an  integer  whose product with the numbers in [22m[32magOrder[0m gives
        the size of the automorphism group;
  
  --    [22m[32magAutos[0m:  a  polycyclic  generating  sequence  for  a  soluble  normal
        subgroup of the automorphism group;
  
  --    [22m[32magOrder[0m: the relative orders corresponding to [22m[32magAutos[0m;
  
  --    [22m[32mliealg[0m: The Lie algebra acted upon by the automorphisms.
  
  --    [22m[32msize[0m: the size of the automorphism group.
  
  --    [22m[32mfield[0m: the underlying field of the Lie algebra.
  
  --    [22m[32mprime[0m: the characteristic of the underlying field.
  
  We  do not return an automorphism group in the standard form because we wish
  to  distinguish between [22m[32magAutos[0m and [22m[32mglAutos[0m; the latter act non-trivially on
  the derived quotient of L. This hybrid-group description of the automorphism
  group permits more efficient computations with it.
  
  [1m[4m[31m3.5-3 AreIsomorphicNilpotentLieAlgebras[0m
  
  [1m[34m> AreIsomorphicNilpotentLieAlgebras( [0m[22m[34mL, K[0m[1m[34m ) __________________________[0mmethod
  
  Returns [22m[32mtrue[0m if [22m[34mL[0m and [22m[34mK[0m are isomorphic; [22m[32mfalse[0m otherwise.
  
  
  [1m[4m[31m3.6 Descendants[0m
  
  [1m[4m[31m3.6-1 Descendants[0m
  
  [1m[34m> Descendants( [0m[22m[34mL, step[0m[1m[34m ) _____________________________________________[0mmethod
  
  Returns the [22m[32mstep[0m-step descendants of a nilpotent Lie algebra [22m[34mL[0m.
  
  [1m[4m[31m3.6-2 DescendantsOfStep1OfAbelianLieAlgebra[0m
  
  [1m[34m> DescendantsOfStep1OfAbelianLieAlgebra( [0m[22m[34mL, step[0m[1m[34m ) ___________________[0mmethod
  
  Returns  the  [22m[32m1[0m-step descendants of the abelian Lie algebra with dimension [22m[34md[0m
  defined over the field of [22m[34mp[0m elements.
  
  
  [1m[4m[31m3.7 Input and output[0m
  
  The  package  provides  with a number of functions that can be used to store
  lists  of  Lie  algebras. Here we document only the most important ones, see
  the source code [22m[32mio.gi[0m for the rest.
  
  [1m[4m[31m3.7-1 WriteLieAlgebraToString[0m
  
  [1m[34m> WriteLieAlgebraToString( [0m[22m[34mL[0m[1m[34m ) _____________________________________[0mfunction
  
  Returns a string that encodes the nilpotent Lie algebra [22m[34mL[0m
  
  [1m[4m[31m3.7-2 ReadStringToNilpotentLieAlgebra[0m
  
  [1m[34m> ReadStringToNilpotentLieAlgebra( [0m[22m[34mstring, p, d[0m[1m[34m ) __________________[0mfunction
  
  Decodes  [22m[34mstring[0m  into a [22m[34md[0m-dimensional nilpotent Lie algebra defined over the
  field of [22m[34mp[0m elements.
  
  [1m[4m[31m3.7-3 WriteLieAlgebraListToFile[0m
  
  [1m[34m> WriteLieAlgebraListToFile( [0m[22m[34mlist, name, file[0m[1m[34m ) ____________________[0mfunction
  
  [22m[34mlist[0m  is  a list of nilpotent Lie algebras. Encodes each Lie algebra in [22m[34mlist[0m
  to  a  string.  The  list so obtained is written into [22m[34mfile[0m. The name of this
  list will be [22m[34mname[0m.
  
  [1m[4m[31m3.7-4 SophusBuildManual[0m
  
  [1m[34m> SophusBuildManual( [0m[22m[34m[0m[1m[34m ) ____________________________________________[0mfunction
  
  Builds Sophus manual.
  
  [1m[4m[31m3.7-5 SophusBuildManualHTML[0m
  
  [1m[34m> SophusBuildManualHTML( [0m[22m[34m[0m[1m[34m ) ________________________________________[0mfunction
  
  Builds Sophus manual in html format.
  
