
| Current Path : /usr/share/gap/doc/ref/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/gap/doc/ref/chap62.txt |
[1X62 [33X[0;0YAlgebras[133X[101X
[33X[0;0YAn algebra is a vector space equipped with a bilinear map (multiplication).
This chapter describes the functions in [5XGAP[105X that deal with general algebras
and associative algebras.[133X
[33X[0;0YAlgebras in [5XGAP[105X are vector spaces in a natural way. So all the functionality
for vector spaces (see Chapter [14X61[114X) is also applicable to algebras.[133X
[1X62.1 [33X[0;0YInfoAlgebra (Info Class)[133X[101X
[1X62.1-1 InfoAlgebra[101X
[33X[1;0Y[29X[2XInfoAlgebra[102X[32X info class[133X
[33X[0;0Yis the info class for the functions dealing with algebras (see [14X7.4[114X).[133X
[1X62.2 [33X[0;0YConstructing Algebras by Generators[133X[101X
[1X62.2-1 Algebra[101X
[33X[1;0Y[29X[2XAlgebra[102X( [3XF[103X, [3Xgens[103X[, [3Xzero[103X][, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Y[10XAlgebra( [3XF[103X[10X, [3Xgens[103X[10X )[110X is the algebra over the division ring [3XF[103X, generated by the
vectors in the list [3Xgens[103X.[133X
[33X[0;0YIf there are three arguments, a division ring [3XF[103X and a list [3Xgens[103X and an
element [3Xzero[103X, then [10XAlgebra( [3XF[103X[10X, [3Xgens[103X[10X, [3Xzero[103X[10X )[110X is the [3XF[103X-algebra generated by
[3Xgens[103X, with zero element [3Xzero[103X.[133X
[33X[0;0YIf the last argument is the string [10X"basis"[110X then the vectors in [3Xgens[103X are
known to form a basis of the algebra (as an [3XF[103X-vector space).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XDimension( A );[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X62.2-2 AlgebraWithOne[101X
[33X[1;0Y[29X[2XAlgebraWithOne[102X( [3XF[103X, [3Xgens[103X[, [3Xzero[103X][, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Y[10XAlgebraWithOne( [3XF[103X[10X, [3Xgens[103X[10X )[110X is the algebra-with-one over the division ring [3XF[103X,
generated by the vectors in the list [3Xgens[103X.[133X
[33X[0;0YIf there are three arguments, a division ring [3XF[103X and a list [3Xgens[103X and an
element [3Xzero[103X, then [10XAlgebraWithOne( [3XF[103X[10X, [3Xgens[103X[10X, [3Xzero[103X[10X )[110X is the [3XF[103X-algebra-with-one
generated by [3Xgens[103X, with zero element [3Xzero[103X.[133X
[33X[0;0YIf the last argument is the string [10X"basis"[110X then the vectors in [3Xgens[103X are
known to form a basis of the algebra (as an [3XF[103X-vector space).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOne( Rationals, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XDimension( A );[127X[104X
[4X[28X3[128X[104X
[4X[25Xgap>[125X [27XOne(A);[127X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ][128X[104X
[4X[32X[104X
[1X62.3 [33X[0;0YConstructing Algebras as Free Algebras[133X[101X
[1X62.3-1 FreeAlgebra[101X
[33X[1;0Y[29X[2XFreeAlgebra[102X( [3XR[103X, [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeAlgebra[102X( [3XR[103X, [3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[0;0Yis a free (nonassociative) algebra of rank [3Xrank[103X over the division ring [3XR[103X.
Here [3Xname[103X, and [3Xname1[103X, [3Xname2[103X, ... are optional strings that can be used to
provide names for the generators.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FreeAlgebra( Rationals, "a", "b" );[127X[104X
[4X[28X<algebra over Rationals, with 2 generators>[128X[104X
[4X[25Xgap>[125X [27Xg:= GeneratorsOfAlgebra( A );[127X[104X
[4X[28X[ (1)*a, (1)*b ][128X[104X
[4X[25Xgap>[125X [27X(g[1]*g[2])*((g[2]*g[1])*g[1]);[127X[104X
[4X[28X(1)*((a*b)*((b*a)*a))[128X[104X
[4X[32X[104X
[1X62.3-2 FreeAlgebraWithOne[101X
[33X[1;0Y[29X[2XFreeAlgebraWithOne[102X( [3XR[103X, [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeAlgebraWithOne[102X( [3XR[103X, [3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[0;0Yis a free (nonassociative) algebra-with-one of rank [3Xrank[103X over the division
ring [3XR[103X. Here [3Xname[103X, and [3Xname1[103X, [3Xname2[103X, ... are optional strings that can be
used to provide names for the generators.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FreeAlgebraWithOne( Rationals, 4, "q" );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfAlgebra( A );[127X[104X
[4X[28X[ (1)*<identity ...>, (1)*q.1, (1)*q.2, (1)*q.3, (1)*q.4 ][128X[104X
[4X[25Xgap>[125X [27XOne( A );[127X[104X
[4X[28X(1)*<identity ...>[128X[104X
[4X[32X[104X
[1X62.3-3 FreeAssociativeAlgebra[101X
[33X[1;0Y[29X[2XFreeAssociativeAlgebra[102X( [3XR[103X, [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeAssociativeAlgebra[102X( [3XR[103X, [3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[0;0Yis a free associative algebra of rank [3Xrank[103X over the division ring [3XR[103X. Here
[3Xname[103X, and [3Xname1[103X, [3Xname2[103X, ... are optional strings that can be used to provide
names for the generators.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FreeAssociativeAlgebra( GF( 5 ), 4, "a" );[127X[104X
[4X[28X<algebra over GF(5), with 4 generators>[128X[104X
[4X[32X[104X
[1X62.3-4 FreeAssociativeAlgebraWithOne[101X
[33X[1;0Y[29X[2XFreeAssociativeAlgebraWithOne[102X( [3XR[103X, [3Xrank[103X[, [3Xname[103X] ) [32X function[133X
[33X[1;0Y[29X[2XFreeAssociativeAlgebraWithOne[102X( [3XR[103X, [3Xname1[103X, [3Xname2[103X, [3X...[103X ) [32X function[133X
[33X[0;0Yis a free associative algebra-with-one of rank [3Xrank[103X over the division ring
[3XR[103X. Here [3Xname[103X, and [3Xname1[103X, [3Xname2[103X, ... are optional strings that can be used to
provide names for the generators.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FreeAssociativeAlgebraWithOne( Rationals, "a", "b", "c" );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 3 generators>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfAlgebra( A );[127X[104X
[4X[28X[ (1)*<identity ...>, (1)*a, (1)*b, (1)*c ][128X[104X
[4X[25Xgap>[125X [27XOne( A );[127X[104X
[4X[28X(1)*<identity ...>[128X[104X
[4X[32X[104X
[1X62.4 [33X[0;0YConstructing Algebras by Structure Constants[133X[101X
[33X[0;0YFor an introduction into structure constants and how they are handled by
[5XGAP[105X, we refer to Section [14X'Tutorial: Algebras'[114X of the user's tutorial.[133X
[1X62.4-1 AlgebraByStructureConstants[101X
[33X[1;0Y[29X[2XAlgebraByStructureConstants[102X( [3XR[103X, [3Xsctable[103X[, [3Xnameinfo[103X] ) [32X function[133X
[33X[0;0Yreturns a free left module [22XA[122X over the division ring [3XR[103X, with multiplication
defined by the structure constants table [3Xsctable[103X. The optional argument
[3Xnameinfo[103X can be used to prescribe names for the elements of the canonical
basis of [22XA[122X; it can be either a string [3Xname[103X (then [3Xname[103X[10X1[110X, [3Xname[103X[10X2[110X etc. are
chosen) or a list of strings which are then chosen. The vectors of the
canonical basis of [22XA[122X correspond to the vectors of the basis given by
[3Xsctable[103X.[133X
[33X[0;0YIt is [13Xnot[113X checked whether the coefficients in [3Xsctable[103X are really elements in
[3XR[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [ 1/2, 1, 2/3, 2 ] );[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByStructureConstants( Rationals, T );[127X[104X
[4X[28X<algebra of dimension 2 over Rationals>[128X[104X
[4X[25Xgap>[125X [27Xb:= BasisVectors( Basis( A ) );;[127X[104X
[4X[25Xgap>[125X [27Xb[1]^2;[127X[104X
[4X[28X(1/2)*v.1+(2/3)*v.2[128X[104X
[4X[25Xgap>[125X [27Xb[1]*b[2];[127X[104X
[4X[28X0*v.1[128X[104X
[4X[32X[104X
[1X62.4-2 StructureConstantsTable[101X
[33X[1;0Y[29X[2XStructureConstantsTable[102X( [3XB[103X ) [32X attribute[133X
[33X[0;0YLet [3XB[103X be a basis of a free left module [22XR[122X, say, that is also a ring. In this
case [2XStructureConstantsTable[102X returns a structure constants table [22XT[122X in sparse
representation, as used for structure constants algebras (see
Section [14X'Tutorial: Algebras'[114X of the [5XGAP[105X User's Tutorial).[133X
[33X[0;0YIf [3XB[103X has length [22Xn[122X then [22XT[122X is a list of length [22Xn+2[122X. The first [22Xn[122X entries of [22XT[122X
are lists of length [22Xn[122X. [22XT[ n+1 ][122X is one of [22X1[122X, [22X-1[122X, or [22X0[122X; in the case of [22X1[122X the
table is known to be symmetric, in the case of [22X-1[122X it is known to be
antisymmetric, and [22X0[122X occurs in all other cases. [22XT[ n+2 ][122X is the zero element
of the coefficient domain.[133X
[33X[0;0YThe coefficients w.r.t. [3XB[103X of the product of the [22Xi[122X-th and [22Xj[122X-th basis vector
of [3XB[103X are stored in [22XT[i][j][122X as a list of length [22X2[122X; its first entry is the
list of positions of nonzero coefficients, the second entry is the list of
these coefficients themselves.[133X
[33X[0;0YThe multiplication in an algebra [22XA[122X with vector space basis [3XB[103X with basis
vectors [22X[ v_1, ..., v_n ][122X is determined by the so-called structure matrices
[22XM_k = [ m_ijk ]_ij[122X, [22X1 ≤ k ≤ n[122X. The [22XM_k[122X are defined by [22Xv_i v_j = ∑_k m_ijk
v_k[122X. Let [22Xa = [ a_1, ..., a_n ][122X and [22Xb = [ b_1, ..., b_n ][122X. Then[133X
[24X[33X[0;6Y( ∑_i a_i v_i ) ( ∑_j b_j v_j ) = ∑_{i,j} a_i b_j ( v_i v_j ) = ∑_k ( ∑_j ( ∑_i a_i m_ijk ) b_j ) v_k = ∑_k ( a M_k b^tr ) v_k.[133X[124X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XStructureConstantsTable( Basis( A ) );[127X[104X
[4X[28X[ [ [ [ 1 ], [ 1 ] ], [ [ 2 ], [ 1 ] ], [ [ 3 ], [ 1 ] ], [128X[104X
[4X[28X [ [ 4 ], [ 1 ] ] ], [128X[104X
[4X[28X [ [ [ 2 ], [ 1 ] ], [ [ 1 ], [ -1 ] ], [ [ 4 ], [ 1 ] ], [128X[104X
[4X[28X [ [ 3 ], [ -1 ] ] ], [128X[104X
[4X[28X [ [ [ 3 ], [ 1 ] ], [ [ 4 ], [ -1 ] ], [ [ 1 ], [ -1 ] ], [128X[104X
[4X[28X [ [ 2 ], [ 1 ] ] ], [128X[104X
[4X[28X [ [ [ 4 ], [ 1 ] ], [ [ 3 ], [ 1 ] ], [ [ 2 ], [ -1 ] ], [128X[104X
[4X[28X [ [ 1 ], [ -1 ] ] ], 0, 0 ][128X[104X
[4X[32X[104X
[1X62.4-3 EmptySCTable[101X
[33X[1;0Y[29X[2XEmptySCTable[102X( [3Xdim[103X, [3Xzero[103X[, [3Xflag[103X] ) [32X function[133X
[33X[0;0Y[2XEmptySCTable[102X returns a structure constants table for an algebra of dimension
[3Xdim[103X, describing trivial multiplication. [3Xzero[103X must be the zero of the
coefficients domain. If the multiplication is known to be (anti)commutative
then this can be indicated by the optional third argument [3Xflag[103X, which must
be one of the strings [10X"symmetric"[110X, [10X"antisymmetric"[110X.[133X
[33X[0;0YFor filling up the structure constants table, see [2XSetEntrySCTable[102X ([14X62.4-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XEmptySCTable( 2, Zero( GF(5) ), "antisymmetric" );[127X[104X
[4X[28X[ [ [ [ ], [ ] ], [ [ ], [ ] ] ], [128X[104X
[4X[28X [ [ [ ], [ ] ], [ [ ], [ ] ] ], -1, 0*Z(5) ][128X[104X
[4X[32X[104X
[1X62.4-4 SetEntrySCTable[101X
[33X[1;0Y[29X[2XSetEntrySCTable[102X( [3XT[103X, [3Xi[103X, [3Xj[103X, [3Xlist[103X ) [32X function[133X
[33X[0;0Ysets the entry of the structure constants table [3XT[103X that describes the product
of the [3Xi[103X-th basis element with the [3Xj[103X-th basis element to the value given by
the list [3Xlist[103X.[133X
[33X[0;0YIf [3XT[103X is known to be antisymmetric or symmetric then also the value [10X[3XT[103X[10X[[3Xj[103X[10X][[3Xi[103X[10X][110X
is set.[133X
[33X[0;0Y[3Xlist[103X must be of the form [22X[ c_ij^{k_1}, k_1, c_ij^{k_2}, k_2, ... ][122X.[133X
[33X[0;0YThe entries at the odd positions of [3Xlist[103X must be compatible with the zero
element stored in [3XT[103X. For convenience, these entries may also be rational
numbers that are automatically replaced by the corresponding elements in the
appropriate prime field in finite characteristic if necessary.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [ 1/2, 1, 2/3, 2 ] );[127X[104X
[4X[25Xgap>[125X [27XT;[127X[104X
[4X[28X[ [ [ [ 1, 2 ], [ 1/2, 2/3 ] ], [ [ ], [ ] ] ], [128X[104X
[4X[28X [ [ [ ], [ ] ], [ [ ], [ ] ] ], 0, 0 ][128X[104X
[4X[32X[104X
[1X62.4-5 GapInputSCTable[101X
[33X[1;0Y[29X[2XGapInputSCTable[102X( [3XT[103X, [3Xvarname[103X ) [32X function[133X
[33X[0;0Yis a string that describes the structure constants table [3XT[103X in terms of
[2XEmptySCTable[102X ([14X62.4-3[114X) and [2XSetEntrySCTable[102X ([14X62.4-4[114X). The assignments are made
to the variable [3Xvarname[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 2, [ 1, 2 ] );[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 1, [ 1, 2 ] );[127X[104X
[4X[25Xgap>[125X [27XGapInputSCTable( T, "T" );[127X[104X
[4X[28X"T:= EmptySCTable( 2, 0 );\nSetEntrySCTable( T, 1, 2, [1,2] );\nSetEnt\[128X[104X
[4X[28XrySCTable( T, 2, 1, [1,2] );\n"[128X[104X
[4X[32X[104X
[1X62.4-6 TestJacobi[101X
[33X[1;0Y[29X[2XTestJacobi[102X( [3XT[103X ) [32X function[133X
[33X[0;0Ytests whether the structure constants table [3XT[103X satisfies the Jacobi identity
[22Xv_i * (v_j * v_k) + v_j * (v_k * v_i) + v_k * (v_i * v_j) = 0[122X for all basis
vectors [22Xv_i[122X of the underlying algebra, where [22Xi ≤ j ≤ k[122X. (Thus antisymmetry
is assumed.)[133X
[33X[0;0YThe function returns [9Xtrue[109X if the Jacobi identity is satisfied, and a failing
triple [22X[ i, j, k ][122X otherwise.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0, "antisymmetric" );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 2, [ 1, 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XTestJacobi( T );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.4-7 IdentityFromSCTable[101X
[33X[1;0Y[29X[2XIdentityFromSCTable[102X( [3XT[103X ) [32X function[133X
[33X[0;0YLet [3XT[103X be a structure constants table of an algebra [22XA[122X of dimension [22Xn[122X.
[10XIdentityFromSCTable( [3XT[103X[10X )[110X is either [9Xfail[109X or the vector of length [22Xn[122X that
contains the coefficients of the multiplicative identity of [22XA[122X with respect
to the basis that belongs to [3XT[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [ 1, 1 ] );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 2, [ 1, 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 1, [ 1, 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XIdentityFromSCTable( T );[127X[104X
[4X[28X[ 1, 0 ][128X[104X
[4X[32X[104X
[1X62.4-8 QuotientFromSCTable[101X
[33X[1;0Y[29X[2XQuotientFromSCTable[102X( [3XT[103X, [3Xnum[103X, [3Xden[103X ) [32X function[133X
[33X[0;0YLet [3XT[103X be a structure constants table of an algebra [22XA[122X of dimension [22Xn[122X.
[10XQuotientFromSCTable( [3XT[103X[10X )[110X is either [9Xfail[109X or the vector of length [22Xn[122X that
contains the coefficients of the quotient of [3Xnum[103X and [3Xden[103X with respect to the
basis that belongs to [3XT[103X.[133X
[33X[0;0YWe solve the equation system [3Xnum[103X[22X= x *[122X [3Xden[103X. If no solution exists, [9Xfail[109X is
returned.[133X
[33X[0;0YIn terms of the basis [22XB[122X with vectors [22Xb_1, ..., b_n[122X this means for [22X[3Xnum[103X = ∑_{i
= 1}^n a_i b_i[122X, [22X[3Xden[103X = ∑_{i = 1}^n c_i b_i[122X, [22Xx = ∑_{i = 1}^n x_i b_i[122X that [22Xa_k
= ∑_{i,j} c_i x_j c_ijk[122X for all [22Xk[122X. Here [22Xc_ijk[122X denotes the structure
constants with respect to [22XB[122X. This means that (as a vector) [22Xa = x M[122X with [22XM_jk
= ∑_{i = 1}^n c_ijk c_i[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [ 1, 1 ] );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 1, [ 1, 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 2, [ 1, 2 ] );;[127X[104X
[4X[25Xgap>[125X [27XQuotientFromSCTable( T, [0,1], [1,0] );[127X[104X
[4X[28X[ 0, 1 ][128X[104X
[4X[32X[104X
[1X62.5 [33X[0;0YSome Special Algebras[133X[101X
[1X62.5-1 QuaternionAlgebra[101X
[33X[1;0Y[29X[2XQuaternionAlgebra[102X( [3XF[103X[, [3Xa[103X, [3Xb[103X] ) [32X function[133X
[6XReturns:[106X [33X[0;10Ya quaternion algebra over [3XF[103X, with parameters [3Xa[103X and [3Xb[103X.[133X
[33X[0;0YLet [3XF[103X be a field or a list of field elements, let [22XF[122X be the field generated
by [3XF[103X, and let [3Xa[103X and [3Xb[103X two elements in [22XF[122X. [2XQuaternionAlgebra[102X returns a
quaternion algebra over [22XF[122X, with parameters [3Xa[103X and [3Xb[103X, i.e., a four-dimensional
associative [22XF[122X-algebra with basis [22X(e,i,j,k)[122X and multiplication defined by [22Xe e
= e[122X, [22Xe i = i e = i[122X, [22Xe j = j e = j[122X, [22Xe k = k e = k[122X, [22Xi i = [3Xa[103X e[122X, [22Xi j = - j i =
k[122X, [22Xi k = - k i = [3Xa[103X j[122X, [22Xj j = [3Xb[103X e[122X, [22Xj k = - k j = [3Xb[103X i[122X, [22Xk k = - [3Xa[103X [3Xb[103X e[122X. The
default value for both [3Xa[103X and [3Xb[103X is [22X-1 ∈ F[122X.[133X
[33X[0;0YThe [2XGeneratorsOfAlgebra[102X ([14X62.9-1[114X) and [2XCanonicalBasis[102X ([14X61.5-3[114X) value of an
algebra constructed with [2XQuaternionAlgebra[102X is the list [22X[ e, i, j, k ][122X.[133X
[33X[0;0YTwo quaternion algebras with the same parameters [3Xa[103X, [3Xb[103X lie in the same
family, so it makes sense to consider their intersection or to ask whether
they are contained in each other. (This is due to the fact that the results
of [2XQuaternionAlgebra[102X are cached, in the global variable
[10XQuaternionAlgebraData[110X.)[133X
[33X[0;0YThe embedding of the field [2XGaussianRationals[102X ([14X60.1-3[114X) into a quaternion
algebra [22XA[122X over [2XRationals[102X ([14X17.1-1[114X) is not uniquely determined. One can
specify one embedding as a vector space homomorphism that maps [10X1[110X to the
first algebra generator of [22XA[122X, and [10XE(4)[110X to one of the others.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XQuaternionAlgebra( Rationals );[127X[104X
[4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
[4X[32X[104X
[1X62.5-2 ComplexificationQuat[101X
[33X[1;0Y[29X[2XComplexificationQuat[102X( [3Xvector[103X ) [32X function[133X
[33X[1;0Y[29X[2XComplexificationQuat[102X( [3Xmatrix[103X ) [32X function[133X
[33X[0;0YLet [22XA = e F ⊕ i F ⊕ j F ⊕ k F[122X be a quaternion algebra over the field [22XF[122X of
cyclotomics, with basis [22X(e,i,j,k)[122X.[133X
[33X[0;0YIf [22Xv = v_1 + v_2 j[122X is a row vector over [22XA[122X with [22Xv_1 = e w_1 + i w_2[122X and [22Xv_2 =
e w_3 + i w_4[122X then [2XComplexificationQuat[102X called with argument [22Xv[122X returns the
concatenation of [22Xw_1 +[122X[10XE(4)[110X[22Xw_2[122X and [22Xw_3 +[122X[10XE(4)[110X[22Xw_4[122X.[133X
[33X[0;0YIf [22XM = M_1 + M_2 j[122X is a matrix over [22XA[122X with [22XM_1 = e N_1 + i N_2[122X and [22XM_2 = e
N_3 + i N_4[122X then [2XComplexificationQuat[102X called with argument [22XM[122X returns the
block matrix [22XA[122X over [22Xe F ⊕ i F[122X such that [22XA(1,1) = N_1 +[122X[10XE(4)[110X[22XN_2[122X, [22XA(2,2) = N_1
-[122X[10XE(4)[110X[22XN_2[122X, [22XA(1,2) = N_3 +[122X[10XE(4)[110X[22XN_4[122X, and [22XA(2,1) = - N_3 +[122X[10XE(4)[110X[22XN_4[122X.[133X
[33X[0;0YThen [10XComplexificationQuat([3Xv[103X[10X) * ComplexificationQuat([3XM[103X[10X)=
ComplexificationQuat([3Xv[103X[10X * [3XM[103X[10X)[110X, since[133X
[24X[33X[0;6Yv M = v_1 M_1 + v_2 j M_1 + v_1 M_2 j + v_2 j M_2 j = ( v_1 M_1 - v_2 overline{M_2} ) + ( v_1 M_2 + v_2 overline{M_1} ) j.[133X[124X
[1X62.5-3 OctaveAlgebra[101X
[33X[1;0Y[29X[2XOctaveAlgebra[102X( [3XF[103X ) [32X function[133X
[33X[0;0YThe algebra of octonions over [3XF[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XOctaveAlgebra( Rationals );[127X[104X
[4X[28X<algebra of dimension 8 over Rationals>[128X[104X
[4X[32X[104X
[1X62.5-4 FullMatrixAlgebra[101X
[33X[1;0Y[29X[2XFullMatrixAlgebra[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
[33X[1;0Y[29X[2XMatrixAlgebra[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
[33X[1;0Y[29X[2XMatAlgebra[102X( [3XR[103X, [3Xn[103X ) [32X function[133X
[33X[0;0Yis the full matrix algebra of [22X[3Xn[103X × [3Xn[103X[122X matrices over the ring [3XR[103X, for a
nonnegative integer [3Xn[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:=FullMatrixAlgebra( Rationals, 20 );[127X[104X
[4X[28X( Rationals^[ 20, 20 ] )[128X[104X
[4X[25Xgap>[125X [27XDimension( A );[127X[104X
[4X[28X400[128X[104X
[4X[32X[104X
[1X62.5-5 NullAlgebra[101X
[33X[1;0Y[29X[2XNullAlgebra[102X( [3XR[103X ) [32X attribute[133X
[33X[0;0YThe zero-dimensional algebra over [3XR[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= NullAlgebra( Rationals );[127X[104X
[4X[28X<algebra over Rationals>[128X[104X
[4X[25Xgap>[125X [27XDimension( A );[127X[104X
[4X[28X0[128X[104X
[4X[32X[104X
[1X62.6 [33X[0;0YSubalgebras[133X[101X
[1X62.6-1 Subalgebra[101X
[33X[1;0Y[29X[2XSubalgebra[102X( [3XA[103X, [3Xgens[103X[, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Yis the [22XF[122X-algebra generated by [3Xgens[103X, with parent algebra [3XA[103X, where [22XF[122X is the
left acting domain of [3XA[103X.[133X
[33X[0;0Y[13XNote[113X that being a subalgebra of [3XA[103X means to be an algebra, to be contained in
[3XA[103X, [13Xand[113X to have the same left acting domain as [3XA[103X.[133X
[33X[0;0YAn optional argument [10X"basis"[110X may be added if it is known that the generators
already form a basis of the algebra. Then it is [13Xnot[113X checked whether [3Xgens[103X
really are linearly independent and whether all elements in [3Xgens[103X lie in [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XB:= Subalgebra( A, [ m^2 ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[32X[104X
[1X62.6-2 SubalgebraNC[101X
[33X[1;0Y[29X[2XSubalgebraNC[102X( [3XA[103X, [3Xgens[103X[, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Y[2XSubalgebraNC[102X does the same as [2XSubalgebra[102X ([14X62.6-1[114X), except that it does not
check whether all elements in [3Xgens[103X lie in [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= RandomMat( 3, 3 );;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XSubalgebraNC( A, [ IdentityMat( 3, 3 ) ], "basis" );[127X[104X
[4X[28X<algebra of dimension 1 over Rationals>[128X[104X
[4X[32X[104X
[1X62.6-3 SubalgebraWithOne[101X
[33X[1;0Y[29X[2XSubalgebraWithOne[102X( [3XA[103X, [3Xgens[103X[, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Yis the algebra-with-one generated by [3Xgens[103X, with parent algebra [3XA[103X.[133X
[33X[0;0YThe optional third argument, the string [10X"basis"[110X, may be added if it is known
that the elements from [3Xgens[103X are linearly independent. Then it is [13Xnot[113X checked
whether [3Xgens[103X really are linearly independent and whether all elements in
[3Xgens[103X lie in [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOne( Rationals, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XB1:= SubalgebraWithOne( A, [ m ] );;[127X[104X
[4X[25Xgap>[125X [27XB2:= Subalgebra( A, [ m ] );;[127X[104X
[4X[25Xgap>[125X [27XDimension( B1 );[127X[104X
[4X[28X3[128X[104X
[4X[25Xgap>[125X [27XDimension( B2 );[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X62.6-4 SubalgebraWithOneNC[101X
[33X[1;0Y[29X[2XSubalgebraWithOneNC[102X( [3XA[103X, [3Xgens[103X[, [3X"basis"[103X] ) [32X function[133X
[33X[0;0Y[2XSubalgebraWithOneNC[102X does the same as [2XSubalgebraWithOne[102X ([14X62.6-3[114X), except that
it does not check whether all elements in [3Xgens[103X lie in [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= RandomMat( 3, 3 );; A:= Algebra( Rationals, [ m ] );;[127X[104X
[4X[25Xgap>[125X [27XSubalgebraWithOneNC( A, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[32X[104X
[1X62.6-5 TrivialSubalgebra[101X
[33X[1;0Y[29X[2XTrivialSubalgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0YThe zero dimensional subalgebra of the algebra [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XB:= TrivialSubalgebra( A );[127X[104X
[4X[28X<algebra over Rationals>[128X[104X
[4X[25Xgap>[125X [27XDimension( B );[127X[104X
[4X[28X0[128X[104X
[4X[32X[104X
[1X62.7 [33X[0;0YIdeals of Algebras[133X[101X
[33X[0;0YFor constructing and working with ideals in algebras the same functions are
available as for ideals in rings. So for the precise description of these
functions we refer to Chapter [14X56[114X. Here we give examples demonstrating the
use of ideals in algebras. For an introduction into the construction of
quotient algebras we refer to Chapter [14X'Tutorial: Algebras'[114X of the user's
tutorial.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 2, 3 ], [ 0, 0, 4 ], [ 0, 0, 0] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOne( Rationals, [ m ] );;[127X[104X
[4X[25Xgap>[125X [27XI:= Ideal( A, [ m ] ); # the two-sided ideal of `A' generated by `m'[127X[104X
[4X[28X<two-sided ideal in <algebra-with-one of dimension 3 over Rationals>, [128X[104X
[4X[28X (1 generators)>[128X[104X
[4X[25Xgap>[125X [27XDimension( I );[127X[104X
[4X[28X2[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfIdeal( I );[127X[104X
[4X[28X[ [ [ 0, 2, 3 ], [ 0, 0, 4 ], [ 0, 0, 0 ] ] ][128X[104X
[4X[25Xgap>[125X [27XBasisVectors( Basis( I ) );[127X[104X
[4X[28X[ [ [ 0, 1, 3/2 ], [ 0, 0, 2 ], [ 0, 0, 0 ] ], [128X[104X
[4X[28X [ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ][128X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 4 );;[127X[104X
[4X[25Xgap>[125X [27Xm:= NullMat( 4, 4 );; m[1][4]:=1;;[127X[104X
[4X[25Xgap>[125X [27XI:= LeftIdeal( A, [ m ] );[127X[104X
[4X[28X<left ideal in ( Rationals^[ 4, 4 ] ), (1 generators)>[128X[104X
[4X[25Xgap>[125X [27XDimension( I );[127X[104X
[4X[28X4[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfLeftIdeal( I );[127X[104X
[4X[28X[ [ [ 0, 0, 0, 1 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ], [ 0, 0, 0, 0 ] ] ][128X[104X
[4X[25Xgap>[125X [27Xmats:= [ [[1,0],[0,0]], [[0,1],[0,0]], [[0,0],[0,1]] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, mats );;[127X[104X
[4X[25Xgap>[125X [27X# Form the two-sided ideal for which `mats[2]' is known to be[127X[104X
[4X[25Xgap>[125X [27X# the unique basis element.[127X[104X
[4X[25Xgap>[125X [27XI:= Ideal( A, [ mats[2] ], "basis" );[127X[104X
[4X[28X<two-sided ideal in <algebra of dimension 3 over Rationals>, [128X[104X
[4X[28X (dimension 1)>[128X[104X
[4X[32X[104X
[1X62.8 [33X[0;0YCategories and Properties of Algebras[133X[101X
[1X62.8-1 IsFLMLOR[101X
[33X[1;0Y[29X[2XIsFLMLOR[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YA FLMLOR ([21Xfree left module left operator ring[121X) in [5XGAP[105X is a ring that is also
a free left module.[133X
[33X[0;0YNote that this means that being a FLMLOR is not a property a ring can get,
since a ring is usually not represented as an external left set.[133X
[33X[0;0YExamples are magma rings (e.g. over the integers) or algebras.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XIsFLMLOR ( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-2 IsFLMLORWithOne[101X
[33X[1;0Y[29X[2XIsFLMLORWithOne[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YA FLMLOR-with-one in [5XGAP[105X is a ring-with-one that is also a free left module.[133X
[33X[0;0YNote that this means that being a FLMLOR-with-one is not a property a
ring-with-one can get, since a ring-with-one is usually not represented as
an external left set.[133X
[33X[0;0YExamples are magma rings-with-one or algebras-with-one (but also over the
integers).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XIsFLMLORWithOne ( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-3 IsAlgebra[101X
[33X[1;0Y[29X[2XIsAlgebra[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YAn algebra in [5XGAP[105X is a ring that is also a left vector space. Note that this
means that being an algebra is not a property a ring can get, since a ring
is usually not represented as an external left set.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= MatAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsAlgebra( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-4 IsAlgebraWithOne[101X
[33X[1;0Y[29X[2XIsAlgebraWithOne[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YAn algebra-with-one in [5XGAP[105X is a ring-with-one that is also a left vector
space. Note that this means that being an algebra-with-one is not a property
a ring-with-one can get, since a ring-with-one is usually not represented as
an external left set.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= MatAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsAlgebraWithOne( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-5 IsLieAlgebra[101X
[33X[1;0Y[29X[2XIsLieAlgebra[102X( [3XA[103X ) [32X filter[133X
[33X[0;0YAn algebra [3XA[103X is called Lie algebra if [22Xa * a = 0[122X for all [22Xa[122X in [3XA[103X and [22X( a * ( b
* c ) ) + ( b * ( c * a ) ) + ( c * ( a * b ) ) = 0[122X for all [22Xa, b, c ∈[122X[3XA[103X
(Jacobi identity).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixLieAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsLieAlgebra( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-6 IsSimpleAlgebra[101X
[33X[1;0Y[29X[2XIsSimpleAlgebra[102X( [3XA[103X ) [32X property[133X
[33X[0;0Yis [9Xtrue[109X if the algebra [3XA[103X is simple, and [9Xfalse[109X otherwise. This function is
only implemented for the cases where [3XA[103X is an associative or a Lie algebra.
And for Lie algebras it is only implemented for the case where the ground
field is of characteristic zero.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixLieAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsSimpleAlgebra( A );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XA:= MatAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsSimpleAlgebra( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-7 IsFiniteDimensional[101X
[33X[1;0Y[29X[2XIsFiniteDimensional[102X( [3Xmatalg[103X ) [32X method[133X
[33X[0;0Yreturns [9Xtrue[109X (always) for a matrix algebra [3Xmatalg[103X, since matrix algebras are
always finite dimensional.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= MatAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XIsFiniteDimensional( A );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.8-8 IsQuaternion[101X
[33X[1;0Y[29X[2XIsQuaternion[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsQuaternionCollection[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsQuaternionCollColl[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0Y[2XIsQuaternion[102X is the category of elements in an algebra constructed by
[2XQuaternionAlgebra[102X ([14X62.5-1[114X). A collection of quaternions lies in the category
[2XIsQuaternionCollection[102X. Finally, a collection of quaternion collections
(e.g., a matrix of quaternions) lies in the category [2XIsQuaternionCollColl[102X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27Xb:= BasisVectors( Basis( A ) );[127X[104X
[4X[28X[ e, i, j, k ][128X[104X
[4X[25Xgap>[125X [27XIsQuaternion( b[1] );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsQuaternionCollColl( [ [ b[1], b[2] ], [ b[3], b[4] ] ] );[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X62.9 [33X[0;0YAttributes and Operations for Algebras[133X[101X
[1X62.9-1 GeneratorsOfAlgebra[101X
[33X[1;0Y[29X[2XGeneratorsOfAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of elements that generate [3XA[103X as an algebra.[133X
[33X[0;0YFor a free algebra, each generator can also be accessed using the [10X.[110X operator
(see [2XGeneratorsOfDomain[102X ([14X31.9-2[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOne( Rationals, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfAlgebra( A );[127X[104X
[4X[28X[ [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ], [128X[104X
[4X[28X [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ] ][128X[104X
[4X[32X[104X
[1X62.9-2 GeneratorsOfAlgebraWithOne[101X
[33X[1;0Y[29X[2XGeneratorsOfAlgebraWithOne[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of elements of [3XA[103X that generate [3XA[103X as an algebra with one.[133X
[33X[0;0YFor a free algebra with one, each generator can also be accessed using the [10X.[110X
operator (see [2XGeneratorsOfDomain[102X ([14X31.9-2[114X)).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOne( Rationals, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfAlgebraWithOne( A );[127X[104X
[4X[28X[ [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ] ][128X[104X
[4X[32X[104X
[1X62.9-3 ProductSpace[101X
[33X[1;0Y[29X[2XProductSpace[102X( [3XU[103X, [3XV[103X ) [32X operation[133X
[33X[0;0Yis the vector space [22X⟨ u * v ; u ∈ U, v ∈ V ⟩[122X, where [22XU[122X and [22XV[122X are subspaces of
the same algebra.[133X
[33X[0;0YIf [22X[3XU[103X = [3XV[103X[122X is known to be an algebra then the product space is also an
algebra, moreover it is an ideal in [3XU[103X. If [3XU[103X and [3XV[103X are known to be ideals in
an algebra [22XA[122X then the product space is known to be an algebra and an ideal
in [22XA[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27Xb:= BasisVectors( Basis( A ) );;[127X[104X
[4X[25Xgap>[125X [27XB:= Subalgebra( A, [ b[4] ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XProductSpace( A, B );[127X[104X
[4X[28X<vector space of dimension 4 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-4 PowerSubalgebraSeries[101X
[33X[1;0Y[29X[2XPowerSubalgebraSeries[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of subalgebras of [3XA[103X, the first term of which is [3XA[103X; and every
next term is the product space of the previous term with itself.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );[127X[104X
[4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
[4X[25Xgap>[125X [27XPowerSubalgebraSeries( A );[127X[104X
[4X[28X[ <algebra-with-one of dimension 4 over Rationals> ][128X[104X
[4X[32X[104X
[1X62.9-5 AdjointBasis[101X
[33X[1;0Y[29X[2XAdjointBasis[102X( [3XB[103X ) [32X attribute[133X
[33X[0;0YThe [13Xadjoint map[113X [22Xad(x)[122X of an element [22Xx[122X in an [22XF[122X-algebra [22XA[122X, say, is the left
multiplication by [22Xx[122X. This map is [22XF[122X-linear and thus, w.r.t. the given basis
[3XB[103X[22X= (x_1, x_2, ..., x_n)[122X of [22XA[122X, [22Xad(x)[122X can be represented by a matrix over [22XF[122X.
Let [22XV[122X denote the [22XF[122X-vector space of the matrices corresponding to [22Xad(x)[122X, for
[22Xx ∈ A[122X. Then [2XAdjointBasis[102X returns the basis of [22XV[122X that consists of the
matrices for [22Xad(x_1), ..., ad(x_n)[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XAdjointBasis( Basis( A ) );[127X[104X
[4X[28XBasis( <vector space over Rationals, with 4 generators>, [128X[104X
[4X[28X[ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], [128X[104X
[4X[28X [ [ 0, -1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, -1 ], [ 0, 0, 1, 0 ] ][128X[104X
[4X[28X , [128X[104X
[4X[28X [ [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ], [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ] ][128X[104X
[4X[28X , [128X[104X
[4X[28X [ [ 0, 0, 0, -1 ], [ 0, 0, -1, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ] [128X[104X
[4X[28X ] ] )[128X[104X
[4X[32X[104X
[1X62.9-6 IndicesOfAdjointBasis[101X
[33X[1;0Y[29X[2XIndicesOfAdjointBasis[102X( [3XB[103X ) [32X attribute[133X
[33X[0;0YLet [3XA[103X be an algebra and let [3XB[103X be the basis that is output by [10XAdjointBasis(
Basis( [3XA[103X[10X ) )[110X. This function returns a list of indices. If [22Xi[122X is an index
belonging to this list, then [22Xad x_i[122X is a basis vector of the matrix space
spanned by [22Xad A[122X, where [22Xx_i[122X is the [22Xi[122X-th basis vector of the basis [3XB[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= FullMatrixLieAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XB:= AdjointBasis( Basis( L ) );;[127X[104X
[4X[25Xgap>[125X [27XIndicesOfAdjointBasis( B );[127X[104X
[4X[28X[ 1, 2, 3, 4, 5, 6, 7, 8 ][128X[104X
[4X[32X[104X
[1X62.9-7 AsAlgebra[101X
[33X[1;0Y[29X[2XAsAlgebra[102X( [3XF[103X, [3XA[103X ) [32X operation[133X
[33X[0;0YReturns the algebra over [3XF[103X generated by [3XA[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XV:= VectorSpace( Rationals, [ IdentityMat( 2 ) ] );;[127X[104X
[4X[25Xgap>[125X [27XAsAlgebra( Rationals, V );[127X[104X
[4X[28X<algebra of dimension 1 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-8 AsAlgebraWithOne[101X
[33X[1;0Y[29X[2XAsAlgebraWithOne[102X( [3XF[103X, [3XA[103X ) [32X operation[133X
[33X[0;0YIf the algebra [3XA[103X has an identity, then it can be viewed as an algebra with
one over [3XF[103X. This function returns this algebra with one.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XV:= VectorSpace( Rationals, [ IdentityMat( 2 ) ] );;[127X[104X
[4X[25Xgap>[125X [27XA:= AsAlgebra( Rationals, V );;[127X[104X
[4X[25Xgap>[125X [27XAsAlgebraWithOne( Rationals, A );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[32X[104X
[1X62.9-9 AsSubalgebra[101X
[33X[1;0Y[29X[2XAsSubalgebra[102X( [3XA[103X, [3XB[103X ) [32X operation[133X
[33X[0;0YIf all elements of the algebra [3XB[103X happen to be contained in the algebra [3XA[103X,
then [3XB[103X can be viewed as a subalgebra of [3XA[103X. This function returns this
subalgebra.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XV:= VectorSpace( Rationals, [ IdentityMat( 2 ) ] );;[127X[104X
[4X[25Xgap>[125X [27XB:= AsAlgebra( Rationals, V );;[127X[104X
[4X[25Xgap>[125X [27XBA:= AsSubalgebra( A, B );[127X[104X
[4X[28X<algebra of dimension 1 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-10 AsSubalgebraWithOne[101X
[33X[1;0Y[29X[2XAsSubalgebraWithOne[102X( [3XA[103X, [3XB[103X ) [32X operation[133X
[33X[0;0YIf [3XB[103X is an algebra with one, all elements of which happen to be contained in
the algebra with one [3XA[103X, then [3XB[103X can be viewed as a subalgebra with one of [3XA[103X.
This function returns this subalgebra with one.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XV:= VectorSpace( Rationals, [ IdentityMat( 2 ) ] );;[127X[104X
[4X[25Xgap>[125X [27XB:= AsAlgebra( Rationals, V );;[127X[104X
[4X[25Xgap>[125X [27XC:= AsAlgebraWithOne( Rationals, B );;[127X[104X
[4X[25Xgap>[125X [27XAC:= AsSubalgebraWithOne( A, C );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[32X[104X
[1X62.9-11 MutableBasisOfClosureUnderAction[101X
[33X[1;0Y[29X[2XMutableBasisOfClosureUnderAction[102X( [3XF[103X, [3XAgens[103X, [3Xfrom[103X, [3Xinit[103X, [3Xopr[103X, [3Xzero[103X, [3Xmaxdim[103X ) [32X function[133X
[33X[0;0YLet [3XF[103X be a ring, [3XAgens[103X a list of generators for an [3XF[103X-algebra [22XA[122X, and [3Xfrom[103X one
of [10X"left"[110X, [10X"right"[110X, [10X"both"[110X; this means that elements of [22XA[122X act via
multiplication from the respective side(s). [3Xinit[103X must be a list of initial
generating vectors, and [3Xopr[103X the operation (a function of two arguments).[133X
[33X[0;0Y[2XMutableBasisOfClosureUnderAction[102X returns a mutable basis of the [3XF[103X-free left
module generated by the vectors in [3Xinit[103X and their images under the action of
[3XAgens[103X from the respective side(s).[133X
[33X[0;0Y[3Xzero[103X is the zero element of the desired module. [3Xmaxdim[103X is an upper bound for
the dimension of the closure; if no such upper bound is known then the value
of [3Xmaxdim[103X must be [2Xinfinity[102X ([14X18.2-1[114X).[133X
[33X[0;0Y[2XMutableBasisOfClosureUnderAction[102X can be used to compute a basis of an
[13Xassociative[113X algebra generated by the elements in [3XAgens[103X. In this case [3Xfrom[103X
may be [10X"left"[110X or [10X"right"[110X, [3Xopr[103X is the multiplication [10X*[110X, and [3Xinit[103X is a list
containing either the identity of the algebra or a list of algebra
generators. (Note that if the algebra has an identity then it is in general
not sufficient to take algebra-with-one generators as [3Xinit[103X, whereas of
course [3XAgens[103X need not contain the identity.)[133X
[33X[0;0Y(Note that bases of [13Xnot[113X necessarily associative algebras can be computed
using [2XMutableBasisOfNonassociativeAlgebra[102X ([14X62.9-12[114X).)[133X
[33X[0;0YOther applications of [2XMutableBasisOfClosureUnderAction[102X are the computations
of bases for (left/ right/ two-sided) ideals [22XI[122X in an [13Xassociative[113X algebra [22XA[122X
from ideal generators of [22XI[122X; in these cases [3XAgens[103X is a list of algebra
generators of [22XA[122X, [3Xfrom[103X denotes the appropriate side(s), [3Xinit[103X is a list of
ideal generators of [22XI[122X, and [3Xopr[103X is again [10X*[110X.[133X
[33X[0;0Y(Note that bases of ideals in [13Xnot[113X necessarily associative algebras can be
computed using [2XMutableBasisOfIdealInNonassociativeAlgebra[102X ([14X62.9-13[114X).)[133X
[33X[0;0YFinally, bases of right [22XA[122X-modules also can be computed using
[2XMutableBasisOfClosureUnderAction[102X. The only difference to the ideal case is
that [3Xinit[103X is now a list of right module generators, and [3Xopr[103X is the operation
of the module.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27Xg:= GeneratorsOfAlgebra( A );;[127X[104X
[4X[25Xgap>[125X [27XB:= MutableBasisOfClosureUnderAction( Rationals, [127X[104X
[4X[25X>[125X [27X g, "left", [ g[1] ], \*, Zero(A), 4 );[127X[104X
[4X[28X<mutable basis over Rationals, 4 vectors>[128X[104X
[4X[25Xgap>[125X [27XBasisVectors( B );[127X[104X
[4X[28X[ e, i, j, k ][128X[104X
[4X[32X[104X
[1X62.9-12 MutableBasisOfNonassociativeAlgebra[101X
[33X[1;0Y[29X[2XMutableBasisOfNonassociativeAlgebra[102X( [3XF[103X, [3XAgens[103X, [3Xzero[103X, [3Xmaxdim[103X ) [32X function[133X
[33X[0;0Yis a mutable basis of the (not necessarily associative) [3XF[103X-algebra that is
generated by [3XAgens[103X, has zero element [3Xzero[103X, and has dimension at most [3Xmaxdim[103X.
If no finite bound for the dimension is known then [2Xinfinity[102X ([14X18.2-1[114X) must be
the value of [3Xmaxdim[103X.[133X
[33X[0;0YThe difference to [2XMutableBasisOfClosureUnderAction[102X ([14X62.9-11[114X) is that in
general it is not sufficient to multiply just with algebra generators. (For
special cases of nonassociative algebras, especially for Lie algebras,
multiplying with algebra generators suffices.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= FullMatrixLieAlgebra( Rationals, 4 );;[127X[104X
[4X[25Xgap>[125X [27Xm1:= Random( L );;[127X[104X
[4X[25Xgap>[125X [27Xm2:= Random( L );;[127X[104X
[4X[25Xgap>[125X [27XMutableBasisOfNonassociativeAlgebra( Rationals, [ m1, m2 ], [127X[104X
[4X[25X>[125X [27XZero( L ), 16 );[127X[104X
[4X[28X<mutable basis over Rationals, 16 vectors>[128X[104X
[4X[32X[104X
[1X62.9-13 MutableBasisOfIdealInNonassociativeAlgebra[101X
[33X[1;0Y[29X[2XMutableBasisOfIdealInNonassociativeAlgebra[102X( [3XF[103X, [3XVgens[103X, [3XIgens[103X, [3Xzero[103X, [3Xfrom[103X, [3Xmaxdim[103X ) [32X function[133X
[33X[0;0Yis a mutable basis of the ideal generated by [3XIgens[103X under the action of the
(not necessarily associative) [3XF[103X-algebra with vector space generators [3XVgens[103X.
The zero element of the ideal is [3Xzero[103X, [3Xfrom[103X is one of [10X"left"[110X, [10X"right"[110X,
[10X"both"[110X (with the same meaning as in [2XMutableBasisOfClosureUnderAction[102X
([14X62.9-11[114X)), and [3Xmaxdim[103X is a known upper bound on the dimension of the ideal;
if no finite bound for the dimension is known then [2Xinfinity[102X ([14X18.2-1[114X) must be
the value of [3Xmaxdim[103X.[133X
[33X[0;0YThe difference to [2XMutableBasisOfClosureUnderAction[102X ([14X62.9-11[114X) is that in
general it is not sufficient to multiply just with algebra generators. (For
special cases of nonassociative algebras, especially for Lie algebras,
multiplying with algebra generators suffices.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xmats:= [ [[ 1, 0 ], [ 0, -1 ]], [[0,1],[0,0]] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, mats );;[127X[104X
[4X[25Xgap>[125X [27XbasA:= BasisVectors( Basis( A ) );;[127X[104X
[4X[25Xgap>[125X [27XB:= MutableBasisOfIdealInNonassociativeAlgebra( Rationals, basA,[127X[104X
[4X[25X>[125X [27X[ mats[2] ], 0*mats[1], "both", infinity );[127X[104X
[4X[28X<mutable basis over Rationals, 1 vectors>[128X[104X
[4X[25Xgap>[125X [27XBasisVectors( B );[127X[104X
[4X[28X[ [ [ 0, 1 ], [ 0, 0 ] ] ][128X[104X
[4X[32X[104X
[1X62.9-14 DirectSumOfAlgebras[101X
[33X[1;0Y[29X[2XDirectSumOfAlgebras[102X( [3XA1[103X, [3XA2[103X ) [32X operation[133X
[33X[1;0Y[29X[2XDirectSumOfAlgebras[102X( [3Xlist[103X ) [32X operation[133X
[33X[0;0Yis the direct sum of the two algebras [3XA1[103X and [3XA2[103X respectively of the algebras
in the list [3Xlist[103X.[133X
[33X[0;0YIf all involved algebras are associative algebras then the result is also
known to be associative. If all involved algebras are Lie algebras then the
result is also known to be a Lie algebra.[133X
[33X[0;0YAll involved algebras must have the same left acting domain.[133X
[33X[0;0YThe default case is that the result is a structure constants algebra. If all
involved algebras are matrix algebras, and either both are Lie algebras or
both are associative then the result is again a matrix algebra of the
appropriate type.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XDirectSumOfAlgebras( [A, A, A] );[127X[104X
[4X[28X<algebra of dimension 12 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-15 FullMatrixAlgebraCentralizer[101X
[33X[1;0Y[29X[2XFullMatrixAlgebraCentralizer[102X( [3XF[103X, [3Xlst[103X ) [32X function[133X
[33X[0;0YLet [3Xlst[103X be a nonempty list of square matrices of the same dimension [22Xn[122X, say,
with entries in the field [3XF[103X. [2XFullMatrixAlgebraCentralizer[102X returns the
(pointwise) centralizer of all matrices in [3Xlst[103X, inside the full matrix
algebra of [22Xn × n[122X matrices over [3XF[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27Xb:= Basis( A );;[127X[104X
[4X[25Xgap>[125X [27Xmats:= List( BasisVectors( b ), x -> AdjointMatrix( b, x ) );;[127X[104X
[4X[25Xgap>[125X [27XFullMatrixAlgebraCentralizer( Rationals, mats );[127X[104X
[4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-16 RadicalOfAlgebra[101X
[33X[1;0Y[29X[2XRadicalOfAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yis the maximal nilpotent ideal of [3XA[103X, where [3XA[103X is an associative algebra.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraWithOneByGenerators( Rationals, [ m ] );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XRadicalOfAlgebra( A );[127X[104X
[4X[28X<algebra of dimension 2 over Rationals>[128X[104X
[4X[32X[104X
[1X62.9-17 CentralIdempotentsOfAlgebra[101X
[33X[1;0Y[29X[2XCentralIdempotentsOfAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0YFor an associative algebra [3XA[103X, this function returns a list of central
primitive idempotents such that their sum is the identity element of [3XA[103X.
Therefore [3XA[103X is required to have an identity.[133X
[33X[0;0Y(This is a synonym of [10XCentralIdempotentsOfSemiring[110X.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XB:= DirectSumOfAlgebras( [A, A, A] );[127X[104X
[4X[28X<algebra of dimension 12 over Rationals>[128X[104X
[4X[25Xgap>[125X [27XCentralIdempotentsOfAlgebra( B );[127X[104X
[4X[28X[ v.9, v.5, v.1 ][128X[104X
[4X[32X[104X
[1X62.9-18 DirectSumDecomposition[101X
[33X[1;0Y[29X[2XDirectSumDecomposition[102X( [3XL[103X ) [32X attribute[133X
[33X[0;0YThis function calculates a list of ideals of the algebra [3XL[103X such that [3XL[103X is
equal to their direct sum. Currently this is only implemented for semisimple
associative algebras, and for Lie algebras (semisimple or not).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:= SymmetricGroup( 4 );;[127X[104X
[4X[25Xgap>[125X [27XA:= GroupRing( Rationals, G );[127X[104X
[4X[28X<algebra-with-one over Rationals, with 2 generators>[128X[104X
[4X[25Xgap>[125X [27Xdd:= DirectSumDecomposition( A );[127X[104X
[4X[28X[ <two-sided ideal in [128X[104X
[4X[28X <algebra-with-one of dimension 24 over Rationals>, [128X[104X
[4X[28X (1 generators)>, [128X[104X
[4X[28X <two-sided ideal in [128X[104X
[4X[28X <algebra-with-one of dimension 24 over Rationals>, [128X[104X
[4X[28X (1 generators)>, [128X[104X
[4X[28X <two-sided ideal in [128X[104X
[4X[28X <algebra-with-one of dimension 24 over Rationals>, [128X[104X
[4X[28X (1 generators)>, [128X[104X
[4X[28X <two-sided ideal in [128X[104X
[4X[28X <algebra-with-one of dimension 24 over Rationals>, [128X[104X
[4X[28X (1 generators)>, [128X[104X
[4X[28X <two-sided ideal in [128X[104X
[4X[28X <algebra-with-one of dimension 24 over Rationals>, [128X[104X
[4X[28X (1 generators)> ][128X[104X
[4X[25Xgap>[125X [27XList( dd, Dimension );[127X[104X
[4X[28X[ 1, 1, 4, 9, 9 ][128X[104X
[4X[32X[104X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= FullMatrixLieAlgebra( Rationals, 5 );;[127X[104X
[4X[25Xgap>[125X [27XDirectSumDecomposition( L );[127X[104X
[4X[28X[ <two-sided ideal in [128X[104X
[4X[28X <two-sided ideal in <Lie algebra of dimension 25 over Rationals>[128X[104X
[4X[28X , (dimension 1)>, (dimension 1)>, [128X[104X
[4X[28X <two-sided ideal in [128X[104X
[4X[28X <two-sided ideal in <Lie algebra of dimension 25 over Rationals>[128X[104X
[4X[28X , (dimension 24)>, (dimension 24)> ][128X[104X
[4X[32X[104X
[1X62.9-19 LeviMalcevDecomposition[101X
[33X[1;0Y[29X[2XLeviMalcevDecomposition[102X( [3XL[103X ) [32X attribute[133X
[33X[0;0YA Levi-Malcev subalgebra of the algebra [3XL[103X is a semisimple subalgebra
complementary to the radical of [3XL[103X. This function returns a list with two
components. The first component is a Levi-Malcev subalgebra, the second the
radical. This function is implemented for associative and Lie algebras.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm:= [ [ 1, 2, 0 ], [ 0, 1, 3 ], [ 0, 0, 1] ];;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m ] );;[127X[104X
[4X[25Xgap>[125X [27XLeviMalcevDecomposition( A );[127X[104X
[4X[28X[ <algebra of dimension 1 over Rationals>, [128X[104X
[4X[28X <algebra of dimension 2 over Rationals> ][128X[104X
[4X[32X[104X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= FullMatrixLieAlgebra( Rationals, 5 );;[127X[104X
[4X[25Xgap>[125X [27XLeviMalcevDecomposition( L );[127X[104X
[4X[28X[ <Lie algebra of dimension 24 over Rationals>, [128X[104X
[4X[28X <two-sided ideal in <Lie algebra of dimension 25 over Rationals>, [128X[104X
[4X[28X (dimension 1)> ][128X[104X
[4X[32X[104X
[1X62.9-20 Grading[101X
[33X[1;0Y[29X[2XGrading[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0YLet [22XG[122X be an Abelian group and [22XA[122X an algebra. Then [22XA[122X is said to be graded over
[22XG[122X if for every [22Xg ∈ G[122X there is a subspace [22XA_g[122X of [22XA[122X such that [22XA_g ⋅ A_h ⊂
A_{g+h}[122X for [22Xg, h ∈ G[122X. In [5XGAP[105X 4 a [13Xgrading[113X of an algebra is a record
containing the following components.[133X
[8X[10Xsource[110X[8X[108X
[33X[0;6Ythe Abelian group over which the algebra is graded.[133X
[8X[10Xhom_components[110X[8X[108X
[33X[0;6Ya function assigning to each element from the source a subspace of the
algebra.[133X
[8X[10Xmin_degree[110X[8X[108X
[33X[0;6Yin the case where the algebra is graded over the integers this is the
minimum number for which [10Xhom_components[110X returns a nonzero subspace.[133X
[8X[10Xmax_degree[110X[8X[108X
[33X[0;6Yis analogous to [10Xmin_degree[110X.[133X
[33X[0;0YWe note that there are no methods to compute a grading of an arbitrary
algebra; however some algebras get a natural grading when they are
constructed (see [2XJenningsLieAlgebra[102X ([14X64.8-4[114X),
[2XNilpotentQuotientOfFpLieAlgebra[102X ([14X64.11-2[114X)).[133X
[33X[0;0YWe note also that these components may be not enough to handle the grading
efficiently, and another record component may be needed. For instance in a
Lie algebra [22XL[122X constructed by [2XJenningsLieAlgebra[102X ([14X64.8-4[114X), the length of the
of the range [10X[ Grading(L)!.min_degree .. Grading(L)!.max_degree ][110X may be
non-polynomial in the dimension of [22XL[122X. To handle efficiently this situation,
an optional component can be used:[133X
[8X[10Xnon_zero_hom_components[110X[8X[108X
[33X[0;6Ythe subset of [10Xsource[110X for which [10Xhom_components[110X returns a nonzero
subspace.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:= SmallGroup(3^6, 100 );[127X[104X
[4X[28X<pc group of size 729 with 6 generators>[128X[104X
[4X[25Xgap>[125X [27XL:= JenningsLieAlgebra( G );[127X[104X
[4X[28X<Lie algebra of dimension 6 over GF(3)>[128X[104X
[4X[25Xgap>[125X [27Xg:= Grading( L );[127X[104X
[4X[28Xrec( hom_components := function( d ) ... end, max_degree := 9, [128X[104X
[4X[28X min_degree := 1, source := Integers )[128X[104X
[4X[25Xgap>[125X [27Xg.hom_components( 3 );[127X[104X
[4X[28X<vector space over GF(3), with 1 generators>[128X[104X
[4X[25Xgap>[125X [27Xg.hom_components( 14 );[127X[104X
[4X[28X<vector space over GF(3), with 0 generators>[128X[104X
[4X[32X[104X
[1X62.10 [33X[0;0YHomomorphisms of Algebras[133X[101X
[33X[0;0YAlgebra homomorphisms are vector space homomorphisms that preserve the
multiplication. So the default methods for vector space homomorphisms work,
and in fact there is not much use of the fact that source and range are
algebras, except that preimages and images are algebras (or even ideals) in
certain cases.[133X
[1X62.10-1 AlgebraGeneralMappingByImages[101X
[33X[1;0Y[29X[2XAlgebraGeneralMappingByImages[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X operation[133X
[33X[0;0Yis a general mapping from the [22XF[122X-algebra [3XA[103X to the [22XF[122X-algebra [3XB[103X. This general
mapping is defined by mapping the entries in the list [3Xgens[103X (elements of [3XA[103X)
to the entries in the list [3Ximgs[103X (elements of [3XB[103X), and taking the [22XF[122X-linear and
multiplicative closure.[133X
[33X[0;0Y[3Xgens[103X need not generate [3XA[103X as an [22XF[122X-algebra, and if the specification does not
define a linear and multiplicative mapping then the result will be
multivalued. Hence, in general it is not a mapping. For constructing a
linear map that is not necessarily multiplicative, we refer to
[2XLeftModuleHomomorphismByImages[102X ([14X61.10-2[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XB:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XbA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraGeneralMappingByImages( A, B, bA, bB );[127X[104X
[4X[28X[ e, i, j, k ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 1 ], [ 0, 0 ] ], [128X[104X
[4X[28X [ [ 0, 0 ], [ 1, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ][128X[104X
[4X[25Xgap>[125X [27XImages( f, bA[1] );[127X[104X
[4X[28X<add. coset of <algebra over Rationals, with 16 generators>>[128X[104X
[4X[32X[104X
[1X62.10-2 AlgebraHomomorphismByImages[101X
[33X[1;0Y[29X[2XAlgebraHomomorphismByImages[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X function[133X
[33X[0;0Y[2XAlgebraHomomorphismByImages[102X returns the algebra homomorphism with source [3XA[103X
and range [3XB[103X that is defined by mapping the list [3Xgens[103X of generators of [3XA[103X to
the list [3Ximgs[103X of images in [3XB[103X.[133X
[33X[0;0YIf [3Xgens[103X does not generate [3XA[103X or if the homomorphism does not exist (i.e., if
mapping the generators describes only a multi-valued mapping) then [9Xfail[109X is
returned.[133X
[33X[0;0YOne can avoid the checks by calling [2XAlgebraHomomorphismByImagesNC[102X ([14X62.10-3[114X),
and one can construct multi-valued mappings with
[2XAlgebraGeneralMappingByImages[102X ([14X62.10-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [1,1] ); SetEntrySCTable( T, 2, 2, [1,2] );[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByStructureConstants( Rationals, T );;[127X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XB:= AlgebraByGenerators( Rationals, [ m1, m2 ] );;[127X[104X
[4X[25Xgap>[125X [27XbA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraHomomorphismByImages( A, B, bA, bB );[127X[104X
[4X[28X[ v.1, v.2 ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ][128X[104X
[4X[25Xgap>[125X [27XImage( f, bA[1]+bA[2] );[127X[104X
[4X[28X[ [ 1, 0 ], [ 0, 1 ] ][128X[104X
[4X[32X[104X
[1X62.10-3 AlgebraHomomorphismByImagesNC[101X
[33X[1;0Y[29X[2XAlgebraHomomorphismByImagesNC[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X operation[133X
[33X[0;0Y[2XAlgebraHomomorphismByImagesNC[102X is the operation that is called by the
function [2XAlgebraHomomorphismByImages[102X ([14X62.10-2[114X). Its methods may assume that
[3Xgens[103X generates [3XA[103X and that the mapping of [3Xgens[103X to [3Ximgs[103X defines an algebra
homomorphism. Results are unpredictable if these conditions do not hold.[133X
[33X[0;0YFor creating a possibly multi-valued mapping from [3XA[103X to [3XB[103X that respects
addition, multiplication, and scalar multiplication,
[2XAlgebraGeneralMappingByImages[102X ([14X62.10-1[114X) can be used.[133X
[33X[0;0YFor the definitions of the algebras [10XA[110X and [10XB[110X in the next example we refer to
the previous example.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraHomomorphismByImagesNC( A, B, bA, bB );[127X[104X
[4X[28X[ v.1, v.2 ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] ][128X[104X
[4X[32X[104X
[1X62.10-4 AlgebraWithOneGeneralMappingByImages[101X
[33X[1;0Y[29X[2XAlgebraWithOneGeneralMappingByImages[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X operation[133X
[33X[0;0YThis function is analogous to [2XAlgebraGeneralMappingByImages[102X ([14X62.10-1[114X); the
only difference being that the identity of [3XA[103X is automatically mapped to the
identity of [3XB[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );;[127X[104X
[4X[25Xgap>[125X [27XB:= FullMatrixAlgebra( Rationals, 2 );;[127X[104X
[4X[25Xgap>[125X [27XbA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27Xf:=AlgebraWithOneGeneralMappingByImages(A,B,bA{[2,3,4]},bB{[1,2,3]});[127X[104X
[4X[28X[ i, j, k, e ] -> [ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 1 ], [ 0, 0 ] ], [128X[104X
[4X[28X [ [ 0, 0 ], [ 1, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ][128X[104X
[4X[32X[104X
[1X62.10-5 AlgebraWithOneHomomorphismByImages[101X
[33X[1;0Y[29X[2XAlgebraWithOneHomomorphismByImages[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X function[133X
[33X[0;0Y[2XAlgebraWithOneHomomorphismByImages[102X returns the algebra-with-one homomorphism
with source [3XA[103X and range [3XB[103X that is defined by mapping the list [3Xgens[103X of
generators of [3XA[103X to the list [3Ximgs[103X of images in [3XB[103X.[133X
[33X[0;0YThe difference between an algebra homomorphism and an algebra-with-one
homomorphism is that in the latter case, it is assumed that the identity of
[3XA[103X is mapped to the identity of [3XB[103X, and therefore [3Xgens[103X needs to generate [3XA[103X
only as an algebra-with-one.[133X
[33X[0;0YIf [3Xgens[103X does not generate [3XA[103X or if the homomorphism does not exist (i.e., if
mapping the generators describes only a multi-valued mapping) then [9Xfail[109X is
returned.[133X
[33X[0;0YOne can avoid the checks by calling [2XAlgebraWithOneHomomorphismByImagesNC[102X
([14X62.10-6[114X), and one can construct multi-valued mappings with
[2XAlgebraWithOneGeneralMappingByImages[102X ([14X62.10-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:=1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:=1;;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByGenerators( Rationals, [m1,m2] );;[127X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [1,1] );[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 2, [1,2] );[127X[104X
[4X[25Xgap>[125X [27XB:= AlgebraByStructureConstants(Rationals, T);;[127X[104X
[4X[25Xgap>[125X [27XbA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraWithOneHomomorphismByImages( A, B, bA{[1]}, bB{[1]} );[127X[104X
[4X[28X[ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ] -> [ v.1, v.1+v.2 ][128X[104X
[4X[32X[104X
[1X62.10-6 AlgebraWithOneHomomorphismByImagesNC[101X
[33X[1;0Y[29X[2XAlgebraWithOneHomomorphismByImagesNC[102X( [3XA[103X, [3XB[103X, [3Xgens[103X, [3Ximgs[103X ) [32X operation[133X
[33X[0;0Y[2XAlgebraWithOneHomomorphismByImagesNC[102X is the operation that is called by the
function [2XAlgebraWithOneHomomorphismByImages[102X ([14X62.10-5[114X). Its methods may
assume that [3Xgens[103X generates [3XA[103X and that the mapping of [3Xgens[103X to [3Ximgs[103X defines an
algebra-with-one homomorphism. Results are unpredictable if these conditions
do not hold.[133X
[33X[0;0YFor creating a possibly multi-valued mapping from [3XA[103X to [3XB[103X that respects
addition, multiplication, identity, and scalar multiplication,
[2XAlgebraWithOneGeneralMappingByImages[102X ([14X62.10-4[114X) can be used.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:=1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:=1;;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByGenerators( Rationals, [m1,m2] );;[127X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [1,1] );[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 2, [1,2] );[127X[104X
[4X[25Xgap>[125X [27XB:= AlgebraByStructureConstants( Rationals, T);;[127X[104X
[4X[25Xgap>[125X [27XbA:= BasisVectors( Basis( A ) );; bB:= BasisVectors( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraWithOneHomomorphismByImagesNC( A, B, bA{[1]}, bB{[1]} );[127X[104X
[4X[28X[ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ] -> [ v.1, v.1+v.2 ][128X[104X
[4X[32X[104X
[1X62.10-7 NaturalHomomorphismByIdeal[101X
[33X[1;0Y[29X[2XNaturalHomomorphismByIdeal[102X( [3XA[103X, [3XI[103X ) [32X method[133X
[33X[0;0YFor an algebra [3XA[103X and an ideal [3XI[103X in [3XA[103X, the return value of
[2XNaturalHomomorphismByIdeal[102X ([14X56.8-4[114X) is a homomorphism of algebras, in
particular the range of this mapping is also an algebra.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= FullMatrixLieAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XC:= LieCentre( L );[127X[104X
[4X[28X<two-sided ideal in <Lie algebra of dimension 9 over Rationals>, [128X[104X
[4X[28X (dimension 1)>[128X[104X
[4X[25Xgap>[125X [27Xhom:= NaturalHomomorphismByIdeal( L, C );[127X[104X
[4X[28X<linear mapping by matrix, <Lie algebra of dimension [128X[104X
[4X[28X9 over Rationals> -> <Lie algebra of dimension 8 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27XImagesSource( hom );[127X[104X
[4X[28X<Lie algebra of dimension 8 over Rationals>[128X[104X
[4X[32X[104X
[1X62.10-8 OperationAlgebraHomomorphism[101X
[33X[1;0Y[29X[2XOperationAlgebraHomomorphism[102X( [3XA[103X, [3XB[103X[, [3Xopr[103X] ) [32X operation[133X
[33X[1;0Y[29X[2XOperationAlgebraHomomorphism[102X( [3XA[103X, [3XV[103X[, [3Xopr[103X] ) [32X operation[133X
[33X[0;0Y[2XOperationAlgebraHomomorphism[102X returns an algebra homomorphism from the
[22XF[122X-algebra [3XA[103X into a matrix algebra over [22XF[122X that describes the [22XF[122X-linear action
of [3XA[103X on the basis [3XB[103X of a free left module respectively on the free left
module [3XV[103X (in which case some basis of [3XV[103X is chosen), via the operation [3Xopr[103X.[133X
[33X[0;0YThe homomorphism need not be surjective. The default value for [3Xopr[103X is
[2XOnRight[102X ([14X41.2-2[114X).[133X
[33X[0;0YIf [3XA[103X is an algebra-with-one then the operation homomorphism is an
algebra-with-one homomorphism because the identity of [3XA[103X must act as the
identity.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XB:= AlgebraByGenerators( Rationals, [ m1, m2 ] );;[127X[104X
[4X[25Xgap>[125X [27XV:= FullRowSpace( Rationals, 2 );[127X[104X
[4X[28X( Rationals^2 )[128X[104X
[4X[25Xgap>[125X [27Xf:=OperationAlgebraHomomorphism( B, Basis( V ), OnRight );[127X[104X
[4X[28X<op. hom. Algebra( Rationals, [128X[104X
[4X[28X[ [ [ 1, 0 ], [ 0, 0 ] ], [ [ 0, 0 ], [ 0, 1 ] ] [128X[104X
[4X[28X ] ) -> matrices of dim. 2>[128X[104X
[4X[25Xgap>[125X [27XImage( f, m1 );[127X[104X
[4X[28X[ [ 1, 0 ], [ 0, 0 ] ][128X[104X
[4X[32X[104X
[1X62.10-9 NiceAlgebraMonomorphism[101X
[33X[1;0Y[29X[2XNiceAlgebraMonomorphism[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0YIf [3XA[103X is an associative algebra with one, returns an isomorphism from [3XA[103X onto
a matrix algebra (see [2XIsomorphismMatrixAlgebra[102X ([14X62.10-11[114X) for an example).
If [3XA[103X is a finitely presented Lie algebra, returns an isomorphism from [3XA[103X onto
a Lie algebra defined by a structure constants table (see [14X64.11[114X for an
example).[133X
[1X62.10-10 IsomorphismFpAlgebra[101X
[33X[1;0Y[29X[2XIsomorphismFpAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yisomorphism from the algebra [3XA[103X onto a finitely presented algebra. Currently
this is only implemented for associative algebras with one.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= QuaternionAlgebra( Rationals );[127X[104X
[4X[28X<algebra-with-one of dimension 4 over Rationals>[128X[104X
[4X[25Xgap>[125X [27Xf:= IsomorphismFpAlgebra( A );[127X[104X
[4X[28X[ e, i, j, k, e ] -> [ [(1)*x.1], [(1)*x.2], [(1)*x.3], [(1)*x.4], [128X[104X
[4X[28X [(1)*<identity ...>] ][128X[104X
[4X[32X[104X
[1X62.10-11 IsomorphismMatrixAlgebra[101X
[33X[1;0Y[29X[2XIsomorphismMatrixAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yisomorphism from the algebra [3XA[103X onto a matrix algebra. Currently this is only
implemented for associative algebras with one.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [1,1] ); SetEntrySCTable( T, 2, 2, [1,2] );[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByStructureConstants( Rationals, T );;[127X[104X
[4X[25Xgap>[125X [27XA:= AsAlgebraWithOne( Rationals, A );;[127X[104X
[4X[25Xgap>[125X [27Xf:=IsomorphismMatrixAlgebra( A );[127X[104X
[4X[28X<op. hom. AlgebraWithOne( Rationals, ... ) -> matrices of dim. 2>[128X[104X
[4X[25Xgap>[125X [27XImage( f, BasisVectors( Basis( A ) )[1] );[127X[104X
[4X[28X[ [ 1, 0 ], [ 0, 0 ] ][128X[104X
[4X[32X[104X
[1X62.10-12 IsomorphismSCAlgebra[101X
[33X[1;0Y[29X[2XIsomorphismSCAlgebra[102X( [3XB[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XIsomorphismSCAlgebra[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0YFor a basis [3XB[103X of an algebra [22XA[122X, say, [2XIsomorphismSCAlgebra[102X returns an algebra
isomorphism from [22XA[122X to an algebra [22XS[122X given by structure constants (see [14X62.4[114X),
such that the canonical basis of [22XS[122X is the image of [3XB[103X.[133X
[33X[0;0YFor an algebra [3XA[103X, [2XIsomorphismSCAlgebra[102X chooses a basis of [3XA[103X and returns the
[2XIsomorphismSCAlgebra[102X value for that basis.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsomorphismSCAlgebra( GF(8) );[127X[104X
[4X[28XCanonicalBasis( GF(2^3) ) -> CanonicalBasis( <algebra of dimension [128X[104X
[4X[28X3 over GF(2)> )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismSCAlgebra( GF(2)^[2,2] );[127X[104X
[4X[28XCanonicalBasis( ( GF(2)^[128X[104X
[4X[28X[ 2, 2 ] ) ) -> CanonicalBasis( <algebra of dimension 4 over GF(2)> )[128X[104X
[4X[32X[104X
[1X62.10-13 RepresentativeLinearOperation[101X
[33X[1;0Y[29X[2XRepresentativeLinearOperation[102X( [3XA[103X, [3Xv[103X, [3Xw[103X, [3Xopr[103X ) [32X operation[133X
[33X[0;0Yis an element of the algebra [3XA[103X that maps the vector [3Xv[103X to the vector [3Xw[103X under
the linear operation described by the function [3Xopr[103X. If no such element
exists then [9Xfail[109X is returned.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XB:= AlgebraByGenerators( Rationals, [ m1, m2 ] );;[127X[104X
[4X[25Xgap>[125X [27XRepresentativeLinearOperation( B, [1,0], [1,0], OnRight );[127X[104X
[4X[28X[ [ 1, 0 ], [ 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27XRepresentativeLinearOperation( B, [1,0], [0,1], OnRight );[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[1X62.11 [33X[0;0YRepresentations of Algebras[133X[101X
[33X[0;0YAn algebra module is a vector space together with an action of an algebra.
So a module over an algebra is constructed by giving generators of a vector
space, and a function for calculating the action of algebra elements on
elements of the vector space. When creating an algebra module, the
generators of the vector space are wrapped up and given the category
[10XIsLeftAlgebraModuleElement[110X or [10XIsRightModuleElement[110X if the algebra acts from
the left, or right respectively. (So in the case of a bi-module the elements
get both categories.) Most linear algebra computations are delegated to the
original vector space.[133X
[33X[0;0YThe transition between the original vector space and the corresponding
algebra module is handled by [10XExtRepOfObj[110X and [10XObjByExtRep[110X. For an element [10Xv[110X
of the algebra module, [10XExtRepOfObj( v )[110X returns the underlying element of
the original vector space. Furthermore, if [10Xvec[110X is an element of the original
vector space, and [10Xfam[110X the elements family of the corresponding algebra
module, then [10XObjByExtRep( fam, vec )[110X returns the corresponding element of
the algebra module. Below is an example of this.[133X
[33X[0;0YThe action of the algebra on elements of the algebra module is constructed
by using the operator [10X^[110X. If [10Xx[110X is an element of an algebra [10XA[110X, and [10Xv[110X an
element of a left [10XA[110X-module, then [10Xx^v[110X calculates the result of the action of
[10Xx[110X on [10Xv[110X. Similarly, if [10Xv[110X is an element of a right [10XA[110X-module, then [10Xv^x[110X
calculates the action of [10Xx[110X on [10Xv[110X.[133X
[1X62.11-1 LeftAlgebraModuleByGenerators[101X
[33X[1;0Y[29X[2XLeftAlgebraModuleByGenerators[102X( [3XA[103X, [3Xop[103X, [3Xgens[103X ) [32X operation[133X
[33X[0;0YConstructs the left algebra module over [3XA[103X generated by the list of vectors
[3Xgens[103X. The action of [3XA[103X is described by the function [3Xop[103X. This must be a
function of two arguments; the first argument is the algebra element, and
the second argument is a vector; it outputs the result of applying the
algebra element to the vector.[133X
[1X62.11-2 RightAlgebraModuleByGenerators[101X
[33X[1;0Y[29X[2XRightAlgebraModuleByGenerators[102X( [3XA[103X, [3Xop[103X, [3Xgens[103X ) [32X operation[133X
[33X[0;0YConstructs the right algebra module over [3XA[103X generated by the list of vectors
[3Xgens[103X. The action of [3XA[103X is described by the function [3Xop[103X. This must be a
function of two arguments; the first argument is a vector, and the second
argument is the algebra element; it outputs the result of applying the
algebra element to the vector.[133X
[1X62.11-3 BiAlgebraModuleByGenerators[101X
[33X[1;0Y[29X[2XBiAlgebraModuleByGenerators[102X( [3XA[103X, [3XB[103X, [3Xopl[103X, [3Xopr[103X, [3Xgens[103X ) [32X operation[133X
[33X[0;0YConstructs the algebra bi-module over [3XA[103X and [3XB[103X generated by the list of
vectors [3Xgens[103X. The left action of [3XA[103X is described by the function [3Xopl[103X, and the
right action of [3XB[103X by the function [3Xopr[103X. [3Xopl[103X must be a function of two
arguments; the first argument is the algebra element, and the second
argument is a vector; it outputs the result of applying the algebra element
on the left to the vector. [3Xopr[103X must be a function of two arguments; the
first argument is a vector, and the second argument is the algebra element;
it outputs the result of applying the algebra element on the right to the
vector.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[25Xgap>[125X [27XV:= LeftAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );[127X[104X
[4X[28X<left-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27XW:= RightAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );[127X[104X
[4X[28X<right-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27XM:= BiAlgebraModuleByGenerators( A, A, \*, \*, [ [ 1, 0, 0 ] ] );[127X[104X
[4X[28X<bi-module over ( Rationals^[ 3, 3 ] ) (left) and ( Rationals^[128X[104X
[4X[28X[ 3, 3 ] ) (right)>[128X[104X
[4X[32X[104X
[33X[0;0YIn the above examples, the modules [10XV[110X, [10XW[110X, and [10XM[110X are [22X3[122X-dimensional vector
spaces over the rationals. The algebra [10XA[110X acts from the left on [10XV[110X, from the
right on [10XW[110X, and from the left and from the right on [10XM[110X.[133X
[1X62.11-4 LeftAlgebraModule[101X
[33X[1;0Y[29X[2XLeftAlgebraModule[102X( [3XA[103X, [3Xop[103X, [3XV[103X ) [32X operation[133X
[33X[0;0YConstructs the left algebra module over [3XA[103X with underlying space [3XV[103X. The
action of [3XA[103X is described by the function [3Xop[103X. This must be a function of two
arguments; the first argument is the algebra element, and the second
argument is a vector from [3XV[103X; it outputs the result of applying the algebra
element to the vector.[133X
[1X62.11-5 RightAlgebraModule[101X
[33X[1;0Y[29X[2XRightAlgebraModule[102X( [3XA[103X, [3Xop[103X, [3XV[103X ) [32X operation[133X
[33X[0;0YConstructs the right algebra module over [3XA[103X with underlying space [3XV[103X. The
action of [3XA[103X is described by the function [3Xop[103X. This must be a function of two
arguments; the first argument is a vector, from [3XV[103X and the second argument is
the algebra element; it outputs the result of applying the algebra element
to the vector.[133X
[1X62.11-6 BiAlgebraModule[101X
[33X[1;0Y[29X[2XBiAlgebraModule[102X( [3XA[103X, [3XB[103X, [3Xopl[103X, [3Xopr[103X, [3XV[103X ) [32X operation[133X
[33X[0;0YConstructs the algebra bi-module over [3XA[103X and [3XB[103X with underlying space [3XV[103X. The
left action of [3XA[103X is described by the function [3Xopl[103X, and the right action of [3XB[103X
by the function [3Xopr[103X. [3Xopl[103X must be a function of two arguments; the first
argument is the algebra element, and the second argument is a vector from [3XV[103X;
it outputs the result of applying the algebra element on the left to the
vector. [3Xopr[103X must be a function of two arguments; the first argument is a
vector from [3XV[103X, and the second argument is the algebra element; it outputs
the result of applying the algebra element on the right to the vector.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XV:= Rationals^3;[127X[104X
[4X[28X( Rationals^3 )[128X[104X
[4X[25Xgap>[125X [27XV:= Rationals^3;;[127X[104X
[4X[25Xgap>[125X [27XM:= BiAlgebraModule( A, A, \*, \*, V );[127X[104X
[4X[28X<bi-module over ( Rationals^[ 3, 3 ] ) (left) and ( Rationals^[128X[104X
[4X[28X[ 3, 3 ] ) (right)>[128X[104X
[4X[25Xgap>[125X [27XDimension( M );[127X[104X
[4X[28X3[128X[104X
[4X[32X[104X
[1X62.11-7 GeneratorsOfAlgebraModule[101X
[33X[1;0Y[29X[2XGeneratorsOfAlgebraModule[102X( [3XM[103X ) [32X attribute[133X
[33X[0;0YA list of elements of [3XM[103X that generate [3XM[103X as an algebra module.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XV:= LeftAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27XGeneratorsOfAlgebraModule( V );[127X[104X
[4X[28X[ [ 1, 0, 0 ] ][128X[104X
[4X[32X[104X
[1X62.11-8 IsAlgebraModuleElement[101X
[33X[1;0Y[29X[2XIsAlgebraModuleElement[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsAlgebraModuleElementCollection[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsAlgebraModuleElementFamily[102X( [3Xfam[103X ) [32X Category[133X
[33X[0;0YCategory of algebra module elements. If an object has
[10XIsAlgebraModuleElementCollection[110X, then it is an algebra module. If a family
has [10XIsAlgebraModuleElementFamily[110X, then it is a family of algebra module
elements (every algebra module has its own elements family).[133X
[1X62.11-9 IsLeftAlgebraModuleElement[101X
[33X[1;0Y[29X[2XIsLeftAlgebraModuleElement[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsLeftAlgebraModuleElementCollection[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YCategory of left algebra module elements. If an object has
[10XIsLeftAlgebraModuleElementCollection[110X, then it is a left-algebra module.[133X
[1X62.11-10 IsRightAlgebraModuleElement[101X
[33X[1;0Y[29X[2XIsRightAlgebraModuleElement[102X( [3Xobj[103X ) [32X Category[133X
[33X[1;0Y[29X[2XIsRightAlgebraModuleElementCollection[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YCategory of right algebra module elements. If an object has
[10XIsRightAlgebraModuleElementCollection[110X, then it is a right-algebra module.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[25Xgap>[125X [27XM:= BiAlgebraModuleByGenerators( A, A, \*, \*, [ [ 1, 0, 0 ] ] );[127X[104X
[4X[28X<bi-module over ( Rationals^[ 3, 3 ] ) (left) and ( Rationals^[128X[104X
[4X[28X[ 3, 3 ] ) (right)>[128X[104X
[4X[25Xgap>[125X [27Xvv:= BasisVectors( Basis( M ) );[127X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XIsLeftAlgebraModuleElement( vv[1] );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsRightAlgebraModuleElement( vv[1] );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xvv[1] = [ 1, 0, 0 ];[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XExtRepOfObj( vv[1] ) = [ 1, 0, 0 ];[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XObjByExtRep( ElementsFamily( FamilyObj( M ) ), [ 1, 0, 0 ] ) in M;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xxx:= BasisVectors( Basis( A ) );;[127X[104X
[4X[25Xgap>[125X [27Xxx[4]^vv[1]; # left action[127X[104X
[4X[28X[ 0, 1, 0 ][128X[104X
[4X[25Xgap>[125X [27Xvv[1]^xx[2]; # right action[127X[104X
[4X[28X[ 0, 1, 0 ][128X[104X
[4X[32X[104X
[1X62.11-11 LeftActingAlgebra[101X
[33X[1;0Y[29X[2XLeftActingAlgebra[102X( [3XV[103X ) [32X attribute[133X
[33X[0;0YHere [3XV[103X is a left-algebra module; this function returns the algebra that acts
from the left on [3XV[103X.[133X
[1X62.11-12 RightActingAlgebra[101X
[33X[1;0Y[29X[2XRightActingAlgebra[102X( [3XV[103X ) [32X attribute[133X
[33X[0;0YHere [3XV[103X is a right-algebra module; this function returns the algebra that
acts from the right on [3XV[103X.[133X
[1X62.11-13 ActingAlgebra[101X
[33X[1;0Y[29X[2XActingAlgebra[102X( [3XV[103X ) [32X operation[133X
[33X[0;0YHere [3XV[103X is an algebra module; this function returns the algebra that acts on
[3XV[103X (this is the same as [10XLeftActingAlgebra( [3XV[103X[10X )[110X if [3XV[103X is a left module, and
[10XRightActingAlgebra( [3XV[103X[10X )[110X if [3XV[103X is a right module; it will signal an error if [3XV[103X
is a bi-module).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XM:= BiAlgebraModuleByGenerators( A, A, \*, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27XLeftActingAlgebra( M );[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[25Xgap>[125X [27XRightActingAlgebra( M );[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[25Xgap>[125X [27XV:= RightAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27XActingAlgebra( V );[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[32X[104X
[1X62.11-14 IsBasisOfAlgebraModuleElementSpace[101X
[33X[1;0Y[29X[2XIsBasisOfAlgebraModuleElementSpace[102X( [3XB[103X ) [32X Category[133X
[33X[0;0YIf a basis [3XB[103X lies in the category [10XIsBasisOfAlgebraModuleElementSpace[110X, then [3XB[103X
is a basis of a subspace of an algebra module. This means that [3XB[103X has the
record field [10X[3XB[103X[10X!.delegateBasis[110X set. This last object is a basis of the
corresponding subspace of the vector space underlying the algebra module
(i.e., the vector space spanned by all [10XExtRepOfObj( v )[110X for [10Xv[110X in the algebra
module).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XM:= BiAlgebraModuleByGenerators( A, A, \*, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27XB:= Basis( M );[127X[104X
[4X[28XBasis( <3-dimensional bi-module over ( Rationals^[128X[104X
[4X[28X[ 3, 3 ] ) (left) and ( Rationals^[ 3, 3 ] ) (right)>, [128X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] )[128X[104X
[4X[25Xgap>[125X [27XIsBasisOfAlgebraModuleElementSpace( B );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XB!.delegateBasis;[127X[104X
[4X[28XSemiEchelonBasis( <vector space of dimension 3 over Rationals>, [128X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] )[128X[104X
[4X[32X[104X
[1X62.11-15 MatrixOfAction[101X
[33X[1;0Y[29X[2XMatrixOfAction[102X( [3XB[103X, [3Xx[103X[, [3Xside[103X] ) [32X operation[133X
[33X[0;0YHere [3XB[103X is a basis of an algebra module and [3Xx[103X is an element of the algebra
that acts on this module. This function returns the matrix of the action of
[3Xx[103X with respect to [3XB[103X. If [3Xx[103X acts from the left, then the coefficients of the
images of the basis elements of [3XB[103X (under the action of [3Xx[103X) are the columns of
the output. If [3Xx[103X acts from the right, then they are the rows of the output.[133X
[33X[0;0YIf the module is a bi-module, then the third parameter [3Xside[103X must be
specified. This is the string [10X"left"[110X, or [10X"right"[110X depending whether [3Xx[103X acts
from the left or the right.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XM:= LeftAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27Xx:= Basis(A)[3];[127X[104X
[4X[28X[ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27XMatrixOfAction( Basis( M ), x );[127X[104X
[4X[28X[ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ][128X[104X
[4X[32X[104X
[1X62.11-16 SubAlgebraModule[101X
[33X[1;0Y[29X[2XSubAlgebraModule[102X( [3XM[103X, [3Xgens[103X[, [3X"basis"[103X] ) [32X operation[133X
[33X[0;0Yis the sub-module of the algebra module [3XM[103X, generated by the vectors in [3Xgens[103X.
If as an optional argument the string [10Xbasis[110X is added, then it is assumed
that the vectors in [3Xgens[103X form a basis of the submodule.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m1, m2 ] );;[127X[104X
[4X[25Xgap>[125X [27XM:= LeftAlgebraModuleByGenerators( A, \*, [ [ 1, 0 ], [ 0, 1 ] ] );[127X[104X
[4X[28X<left-module over <algebra over Rationals, with 2 generators>>[128X[104X
[4X[25Xgap>[125X [27Xbb:= BasisVectors( Basis( M ) );[127X[104X
[4X[28X[ [ 1, 0 ], [ 0, 1 ] ][128X[104X
[4X[25Xgap>[125X [27XV:= SubAlgebraModule( M, [ bb[1] ] );[127X[104X
[4X[28X<left-module over <algebra over Rationals, with 2 generators>>[128X[104X
[4X[25Xgap>[125X [27XDimension( V );[127X[104X
[4X[28X1[128X[104X
[4X[32X[104X
[1X62.11-17 LeftModuleByHomomorphismToMatAlg[101X
[33X[1;0Y[29X[2XLeftModuleByHomomorphismToMatAlg[102X( [3XA[103X, [3Xhom[103X ) [32X operation[133X
[33X[0;0YHere [3XA[103X is an algebra and [3Xhom[103X a homomorphism from [3XA[103X into a matrix algebra.
This function returns the left [3XA[103X-module defined by the homomorphism [3Xhom[103X.[133X
[1X62.11-18 RightModuleByHomomorphismToMatAlg[101X
[33X[1;0Y[29X[2XRightModuleByHomomorphismToMatAlg[102X( [3XA[103X, [3Xhom[103X ) [32X operation[133X
[33X[0;0YHere [3XA[103X is an algebra and [3Xhom[103X a homomorphism from [3XA[103X into a matrix algebra.
This function returns the right [3XA[103X-module defined by the homomorphism [3Xhom[103X.[133X
[33X[0;0YFirst we produce a structure constants algebra with basis elements [22Xx[122X, [22Xy[122X, [22Xz[122X
such that [22Xx^2 = x[122X, [22Xy^2 = y[122X, [22Xxz = z[122X, [22Xzy = z[122X and all other products are zero.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 3, 0 );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 1, [ 1, 1 ]);[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 2, 2, [ 1, 2 ]);[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 3, [ 1, 3 ]);[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 3, 2, [ 1, 3 ]);[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByStructureConstants( Rationals, T );[127X[104X
[4X[28X<algebra of dimension 3 over Rationals>[128X[104X
[4X[32X[104X
[33X[0;0YNow we construct an isomorphic matrix algebra.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm3:= NullMat( 2, 2 );; m3[1][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XB:= Algebra( Rationals, [ m1, m2, m3 ] );[127X[104X
[4X[28X<algebra over Rationals, with 3 generators>[128X[104X
[4X[32X[104X
[33X[0;0YFinally we construct the homomorphism and the corresponding right module.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xf:= AlgebraHomomorphismByImages( A, B, Basis(A), [ m1, m2, m3 ] );;[127X[104X
[4X[25Xgap>[125X [27XRightModuleByHomomorphismToMatAlg( A, f );[127X[104X
[4X[28X<right-module over <algebra of dimension 3 over Rationals>>[128X[104X
[4X[32X[104X
[1X62.11-19 AdjointModule[101X
[33X[1;0Y[29X[2XAdjointModule[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns the [3XA[103X-module defined by the left action of [3XA[103X on itself.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm1:= NullMat( 2, 2 );; m1[1][1]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm2:= NullMat( 2, 2 );; m2[2][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27Xm3:= NullMat( 2, 2 );; m3[1][2]:= 1;;[127X[104X
[4X[25Xgap>[125X [27XA:= Algebra( Rationals, [ m1, m2, m3 ] );[127X[104X
[4X[28X<algebra over Rationals, with 3 generators>[128X[104X
[4X[25Xgap>[125X [27XV:= AdjointModule( A );[127X[104X
[4X[28X<3-dimensional left-module over <algebra of dimension [128X[104X
[4X[28X3 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27Xv:= Basis( V )[3];[127X[104X
[4X[28X[ [ 0, 1 ], [ 0, 0 ] ][128X[104X
[4X[25Xgap>[125X [27XW:= SubAlgebraModule( V, [ v ] );[127X[104X
[4X[28X<left-module over <algebra of dimension 3 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27XDimension( W );[127X[104X
[4X[28X1[128X[104X
[4X[32X[104X
[1X62.11-20 FaithfulModule[101X
[33X[1;0Y[29X[2XFaithfulModule[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns a faithful finite-dimensional left-module over the algebra [3XA[103X. This
is only implemented for associative algebras, and for Lie algebras of
characteristic [22X0[122X. (It may also work for certain Lie algebras of
characteristic [22Xp > 0[122X.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 2, 0 );;[127X[104X
[4X[25Xgap>[125X [27XA:= AlgebraByStructureConstants( Rationals, T );[127X[104X
[4X[28X<algebra of dimension 2 over Rationals>[128X[104X
[4X[32X[104X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XT:= EmptySCTable( 3, 0, "antisymmetric" );;[127X[104X
[4X[25Xgap>[125X [27XSetEntrySCTable( T, 1, 2, [ 1, 3 ]);[127X[104X
[4X[25Xgap>[125X [27XL:= LieAlgebraByStructureConstants( Rationals, T );[127X[104X
[4X[28X<Lie algebra of dimension 3 over Rationals>[128X[104X
[4X[25Xgap>[125X [27XV:= FaithfulModule( L );[127X[104X
[4X[28X<left-module over <Lie algebra of dimension 3 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27Xvv:= BasisVectors( Basis( V ) );[127X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ][128X[104X
[4X[25Xgap>[125X [27Xx:= Basis( L )[3];[127X[104X
[4X[28Xv.3[128X[104X
[4X[25Xgap>[125X [27XList( vv, v -> x^v );[127X[104X
[4X[28X[ [ 0, 0, 0 ], [ 1, 0, 0 ], [ 0, 0, 0 ] ][128X[104X
[4X[32X[104X
[33X[0;0Y[10XA[110X is a [22X2[122X-dimensional algebra where all products are zero.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XV:= FaithfulModule( A );[127X[104X
[4X[28X<left-module over <algebra of dimension 2 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27Xvv:= BasisVectors( Basis( V ) );[127X[104X
[4X[28X[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ][128X[104X
[4X[25Xgap>[125X [27Xxx:= BasisVectors( Basis( A ) );[127X[104X
[4X[28X[ v.1, v.2 ][128X[104X
[4X[25Xgap>[125X [27Xxx[1]^vv[3];[127X[104X
[4X[28X[ 1, 0, 0 ][128X[104X
[4X[32X[104X
[1X62.11-21 ModuleByRestriction[101X
[33X[1;0Y[29X[2XModuleByRestriction[102X( [3XV[103X, [3Xsub1[103X[, [3Xsub2[103X] ) [32X operation[133X
[33X[0;0YHere [3XV[103X is an algebra module and [3Xsub1[103X is a subalgebra of the acting algebra
of [3XV[103X. This function returns the module that is the restriction of [3XV[103X to [3Xsub1[103X.
So it has the same underlying vector space as [3XV[103X, but the acting algebra is
[3Xsub[103X. If two subalgebras [3Xsub1[103X, [3Xsub2[103X are given then [3XV[103X is assumed to be a
bi-module, and [3Xsub1[103X a subalgebra of the algebra acting on the left, and [3Xsub2[103X
a subalgebra of the algebra acting on the right.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XV:= LeftAlgebraModuleByGenerators( A, \*, [ [ 1, 0, 0 ] ] );;[127X[104X
[4X[25Xgap>[125X [27XB:= Subalgebra( A, [ Basis(A)[1] ] );[127X[104X
[4X[28X<algebra over Rationals, with 1 generators>[128X[104X
[4X[25Xgap>[125X [27XW:= ModuleByRestriction( V, B );[127X[104X
[4X[28X<left-module over <algebra over Rationals, with 1 generators>>[128X[104X
[4X[32X[104X
[1X62.11-22 NaturalHomomorphismBySubAlgebraModule[101X
[33X[1;0Y[29X[2XNaturalHomomorphismBySubAlgebraModule[102X( [3XV[103X, [3XW[103X ) [32X operation[133X
[33X[0;0YHere [3XV[103X must be a sub-algebra module of [3XV[103X. This function returns the
projection from [3XV[103X onto [10X[3XV[103X[10X/[3XW[103X[10X[110X. It is a linear map, that is also a module
homomorphism. As usual images can be formed with [10XImage( f, v )[110X and
pre-images with [10XPreImagesRepresentative( f, u )[110X.[133X
[33X[0;0YThe quotient module can also be formed by entering [10X[3XV[103X[10X/[3XW[103X[10X[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= Rationals^[3,3];;[127X[104X
[4X[25Xgap>[125X [27XB:= DirectSumOfAlgebras( A, A );[127X[104X
[4X[28X<algebra over Rationals, with 6 generators>[128X[104X
[4X[25Xgap>[125X [27XT:= StructureConstantsTable( Basis( B ) );;[127X[104X
[4X[25Xgap>[125X [27XC:= AlgebraByStructureConstants( Rationals, T );[127X[104X
[4X[28X<algebra of dimension 18 over Rationals>[128X[104X
[4X[25Xgap>[125X [27XV:= AdjointModule( C );[127X[104X
[4X[28X<left-module over <algebra of dimension 18 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27XW:= SubAlgebraModule( V, [ Basis(V)[1] ] );[127X[104X
[4X[28X<left-module over <algebra of dimension 18 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27Xf:= NaturalHomomorphismBySubAlgebraModule( V, W );[127X[104X
[4X[28X<linear mapping by matrix, <[128X[104X
[4X[28X18-dimensional left-module over <algebra of dimension [128X[104X
[4X[28X18 over Rationals>> -> <[128X[104X
[4X[28X9-dimensional left-module over <algebra of dimension [128X[104X
[4X[28X18 over Rationals>>>[128X[104X
[4X[25Xgap>[125X [27Xquo:= ImagesSource( f ); # i.e., the quotient module[127X[104X
[4X[28X<9-dimensional left-module over <algebra of dimension [128X[104X
[4X[28X18 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27Xv:= Basis( quo )[1];[127X[104X
[4X[28X[ 1, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
[4X[25Xgap>[125X [27XPreImagesRepresentative( f, v );[127X[104X
[4X[28Xv.4[128X[104X
[4X[25Xgap>[125X [27XBasis( C )[4]^v;[127X[104X
[4X[28X[ 1, 0, 0, 0, 0, 0, 0, 0, 0 ][128X[104X
[4X[32X[104X
[1X62.11-23 DirectSumOfAlgebraModules[101X
[33X[1;0Y[29X[2XDirectSumOfAlgebraModules[102X( [3Xlist[103X ) [32X operation[133X
[33X[1;0Y[29X[2XDirectSumOfAlgebraModules[102X( [3XV[103X, [3XW[103X ) [32X operation[133X
[33X[0;0YHere [3Xlist[103X must be a list of algebra modules. This function returns the
direct sum of the elements in the list (as an algebra module). The modules
must be defined over the same algebras.[133X
[33X[0;0YIn the second form is short for [10XDirectSumOfAlgebraModules( [ [3XV[103X[10X, [3XW[103X[10X ] )[110X[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 3 );;[127X[104X
[4X[25Xgap>[125X [27XV:= BiAlgebraModuleByGenerators( A, A, \*, \*, [ [1,0,0] ] );;[127X[104X
[4X[25Xgap>[125X [27XW:= DirectSumOfAlgebraModules( V, V );[127X[104X
[4X[28X<6-dimensional left-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27XBasisVectors( Basis( W ) );[127X[104X
[4X[28X[ ( [ 1, 0, 0 ] )(+)( [ 0, 0, 0 ] ), ( [ 0, 1, 0 ] )(+)( [ 0, 0, 0 ] )[128X[104X
[4X[28X , ( [ 0, 0, 1 ] )(+)( [ 0, 0, 0 ] ), [128X[104X
[4X[28X ( [ 0, 0, 0 ] )(+)( [ 1, 0, 0 ] ), ( [ 0, 0, 0 ] )(+)( [ 0, 1, 0 ] )[128X[104X
[4X[28X , ( [ 0, 0, 0 ] )(+)( [ 0, 0, 1 ] ) ][128X[104X
[4X[32X[104X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XL:= SimpleLieAlgebra( "C", 3, Rationals );;[127X[104X
[4X[25Xgap>[125X [27XV:= HighestWeightModule( L, [ 1, 1, 0 ] );[127X[104X
[4X[28X<64-dimensional left-module over <Lie algebra of dimension [128X[104X
[4X[28X21 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27XW:= HighestWeightModule( L, [ 0, 0, 2 ] );[127X[104X
[4X[28X<84-dimensional left-module over <Lie algebra of dimension [128X[104X
[4X[28X21 over Rationals>>[128X[104X
[4X[25Xgap>[125X [27XU:= DirectSumOfAlgebraModules( V, W );[127X[104X
[4X[28X<148-dimensional left-module over <Lie algebra of dimension [128X[104X
[4X[28X21 over Rationals>>[128X[104X
[4X[32X[104X
[1X62.11-24 TranslatorSubalgebra[101X
[33X[1;0Y[29X[2XTranslatorSubalgebra[102X( [3XM[103X, [3XU[103X, [3XW[103X ) [32X operation[133X
[33X[0;0YHere [3XM[103X is an algebra module, and [3XU[103X and [3XW[103X are two subspaces of [3XM[103X. Let [3XA[103X be
the algebra acting on [3XM[103X. This function returns the subspace of elements of [3XA[103X
that map [3XU[103X into [3XW[103X. If [3XW[103X is a sub-algebra-module (i.e., closed under the
action of [3XA[103X), then this space is a subalgebra of [3XA[103X.[133X
[33X[0;0YThis function works for left, or right modules over a finite-dimensional
algebra. We stress that it is not checked whether [3XU[103X and [3XW[103X are indeed
subspaces of [3XM[103X. If this is not the case nothing is guaranteed about the
behaviour of the function.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XA:= FullMatrixAlgebra( Rationals, 3 );[127X[104X
[4X[28X( Rationals^[ 3, 3 ] )[128X[104X
[4X[25Xgap>[125X [27XV:= Rationals^[3,2];[127X[104X
[4X[28X( Rationals^[ 3, 2 ] )[128X[104X
[4X[25Xgap>[125X [27XM:= LeftAlgebraModule( A, \*, V );[127X[104X
[4X[28X<left-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27Xbm:= Basis(M);;[127X[104X
[4X[25Xgap>[125X [27XU:= SubAlgebraModule( M, [ bm[1] ] ); [127X[104X
[4X[28X<left-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27XTranslatorSubalgebra( M, U, M );[127X[104X
[4X[28X<algebra of dimension 9 over Rationals>[128X[104X
[4X[25Xgap>[125X [27XW:= SubAlgebraModule( M, [ bm[4] ] );[127X[104X
[4X[28X<left-module over ( Rationals^[ 3, 3 ] )>[128X[104X
[4X[25Xgap>[125X [27XT:=TranslatorSubalgebra( M, U, W );[127X[104X
[4X[28X<algebra of dimension 0 over Rationals>[128X[104X
[4X[32X[104X