### 3. Sophus functions

#### 3.1 Some general functions to compute with Lie algebras

##### 3.1-1 SophusTest
 `> SophusTest`( ) ( function )

Tests Sophus functions, returns true if it finds no mistakes, and returns false otherwise. May take a couple of minutes to complete.

##### 3.1-2 IsLieNilpotentOverFp
 `> IsLieNilpotentOverFp`( L ) ( property )

Returns true if L is a nilpotent Lie algebra and its underlying field is a finite prime field.

##### 3.1-3 MinimalGeneratorNumber
 `> MinimalGeneratorNumber`( L ) ( attribute )

Computes the minimal number of generators for \$L\$, which is the dimension of \$L/L'\$.

##### 3.1-4 AbelianLieAlgebra
 `> AbelianLieAlgebra`( F, d ) ( function )

Returns the Abelian Lie algebra with dimension \$d\$ over the field F.

#### 3.2 Functions to compute with nilpotent bases

##### 3.2-1 NilpotentBasis
 `> NilpotentBasis`( L ) ( attribute )

Computes a nilpotent basis for \$L\$. Nilpotent bases are defined in Section 1..

##### 3.2-2 LieNBWeights
 `> LieNBWeights`( B ) ( attribute )

Every element of the nilpotent basis \$B\$ has a weight; See Section 1.. This function returns the list of these weights.

##### 3.2-3 LieNBDefinitions
 `> LieNBDefinitions`( B ) ( attribute )

This function returns a list. The i-th element of this list is 0 if B[i] has weight 1. Otherwise the i-th element is [k,l] if the definition of B[i] is [B[k],B[l]]. See Section 1..

##### 3.2-4 IsNilpotentBasis
 `> IsNilpotentBasis`( B ) ( property )

Returns `true` if the basis B of a Lie algebra was computed with the function `NilpotentBasis`; `false` otherwise.

##### 3.2-5 IsLieAlgebraWithNB
 `> IsLieAlgebraWithNB`( L ) ( property )

Returns `true` if a nilpotent basis for L has already been computed using the function `NilpotentBasis`; `false` otherwise.

#### 3.3 The cover

##### 3.3-1 LieCover
 `> LieCover`( L ) ( attribute )

Computes the cover for the nilpotent Lie algebra \$L\$ as defined in Section 1..

##### 3.3-2 CoverHomomorphism
 `> CoverHomomorphism`( C ) ( attribute )

The nilpotent Lie algebra C was obtained from a nilpotent Lie algebra L using the LieCover( L ) function call. This function returns the natural homomorphism from C onto L.

##### 3.3-3 CoverOf
 `> CoverOf`( C ) ( attribute )

The nilpotent Lie algebra C was obtained from a nilpotent Lie algebra L using the LieCover( L ) function call. This function returns L.

##### 3.3-4 IsLieCover
 `> IsLieCover`( C ) ( property )

Returns `true` if the Lie algebra C was obtained as the Lie cover of another Lie algebra L using the LieCover( L ) function call.

##### 3.3-5 LieMultiplicator
 `> LieMultiplicator`( C ) ( attribute )

The nilpotent Lie algebra C was obtained from a nilpotent Lie algebra L using the LieCover( L ) function call. This function returns the central ideal of C which is the multiplicator of L; see Section 1..

##### 3.3-6 LieNucleus
 `> LieNucleus`( C ) ( attribute )

The nilpotent Lie algebra C was obtained from a nilpotent Lie algebra L using the LieCover( L ) function call. This function returns the central ideal of C which is the nucleus of L; see Section 1..

#### 3.4 Automorphisms of nilpotent Lie algebras

We define a special class of automorphisms for our work.

##### 3.4-1 NilpotentLieAutomorphism
 `> NilpotentLieAutomorphism`( L, gens, imgs ) ( method )

L is a nilpotent Lie algebra, gens is a generating set, and imgs is a subset of L with the same length as gens. Returns the automorphism of L which maps the element of gens to the elements of imgs. 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 * sign, and the inverse of such an automorphism can also be computed in the usual manner.

##### 3.4-2 IdentityNilpotentLieAutomorphism
 `> IdentityNilpotentLieAutomorphism`( L ) ( method )

L is a nilpotent Lie algebra; returns the identity automorphism of \$L\$.

##### 3.4-3 IsNilpotentLieAutomorphism
 `> IsNilpotentLieAutomorphism`( A ) ( property )

Returns `true` if A was obtained using a NilpotentLieAutomorphism or an IdentityNilpotentLieAutomorphism function call.

#### 3.5 Automorphism group and isomorphism testing

##### 3.5-1 AutomorphismGroup
 `> AutomorphismGroup`( L ) ( method )

L is a nilpotent Lie algebra; returns the automorphism group of L as a group generated by GAP algebra automorphisms. The automorphism group is computed as explained in [S].

##### 3.5-2 AutomorphismGroupNilpotentLieAlgebra
 `> AutomorphismGroupNilpotentLieAlgebra`( L ) ( method )

L is a nilpotent Lie algebra; returns the automorphism group of L 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.

• `glAutos`: a set of automorphisms which together with `agAutos` generate the automorphism group;

• `glOrder`: an integer whose product with the numbers in `agOrder` gives the size of the automorphism group;

• `agAutos`: a polycyclic generating sequence for a soluble normal subgroup of the automorphism group;

• `agOrder`: the relative orders corresponding to `agAutos`;

• `liealg`: The Lie algebra acted upon by the automorphisms.

• `size`: the size of the automorphism group.

• `field`: the underlying field of the Lie algebra.

• `prime`: the characteristic of the underlying field.

We do not return an automorphism group in the standard form because we wish to distinguish between `agAutos` and `glAutos`; 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.

##### 3.5-3 AreIsomorphicNilpotentLieAlgebras
 `> AreIsomorphicNilpotentLieAlgebras`( L, K ) ( method )

Returns `true` if L and K are isomorphic; `false` otherwise.

#### 3.6 Descendants

##### 3.6-1 Descendants
 `> Descendants`( L, step ) ( method )

Returns the `step`-step descendants of a nilpotent Lie algebra L.

##### 3.6-2 DescendantsOfStep1OfAbelianLieAlgebra
 `> DescendantsOfStep1OfAbelianLieAlgebra`( L, step ) ( method )

Returns the `1`-step descendants of the abelian Lie algebra with dimension d defined over the field of p elements.

#### 3.7 Input and output

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 `io.gi` for the rest.

##### 3.7-1 WriteLieAlgebraToString
 `> WriteLieAlgebraToString`( L ) ( function )

Returns a string that encodes the nilpotent Lie algebra L

 `> ReadStringToNilpotentLieAlgebra`( string, p, d ) ( function )

Decodes string into a d-dimensional nilpotent Lie algebra defined over the field of p elements.

##### 3.7-3 WriteLieAlgebraListToFile
 `> WriteLieAlgebraListToFile`( list, name, file ) ( function )

list is a list of nilpotent Lie algebras. Encodes each Lie algebra in list to a string. The list so obtained is written into file. The name of this list will be name.

##### 3.7-4 SophusBuildManual
 `> SophusBuildManual`( ) ( function )

Builds Sophus manual.

##### 3.7-5 SophusBuildManualHTML
 `> SophusBuildManualHTML`( ) ( function )

Builds Sophus manual in html format.

generated by GAPDoc2HTML