Operations on Algebras and Subalgebras
Invariants of an Algebra
Changing Rings
- ChangeRing(A, S): AlgGen, Rng -> AlgGen, Map
Given an algebra \(A\) with base ring \(R\), together with a ring \(S\), construct the algebra \(B\) with base ring \(S\) obtained by coercing the coefficients of elements of \(A\) into \(S\), together with the homomorphism from \(A\) to \(B\).
This function can not be applied if \(A\) is of type
AlgGrpSub, as the parent structure of elements of \(A\) is the full group algebra of which \(A\) is a subalgebra.
- ChangeRing(A, S, f): AlgGen, Rng, Map -> AlgGen, Map
Given an algebra \(A\) with base ring \(R\), together with a ring \(S\) and a map \(f: R \rightarrow S\), construct the algebra \(B\) with base ring \(S\) obtained by mapping the coefficients of elements of \(A\) into \(S\) via \(f\), together with the homomorphism from \(A\) to \(B\).
As above, this function can not be applied if \(A\) is of type
AlgGrpSub.
Bases
In general, every algebra comes with a basis, corresponding to its underlying module structure. The only exception for that are group algebras in the "Terms" representation, where the dimension of the algebra may be too large to create vectors of that degree.
- BasisElement(A, i): AlgGen, RngIntElt -> AlgGenElt
- A . i: AlgGen, RngIntElt -> AlgGenElt
The \(i\)-th basis element of the algebra \(A\).
- Basis(A): AlgGen -> [ AlgGenElt ]
The basis of the algebra \(A\), as a sequence of elements of \(A\).
Note that if \(A\) is of type
AlgGrpSubthe returned elements will be elements of the full group algebra of which \(A\) is a subalgebra.
- IsIndependent(Q): [ AlgGen ] -> BoolElt
Given a sequence \(Q\) of elements of the \(R\)-algebra \(A\), this functions returns
trueif these elements are linearly independent over \(R\); otherwisefalse.
- ExtendBasis(S, A): AlgGen, AlgGen -> [ AlgElt ]
- ExtendBasis(Q, A): [ AlgGen ], AlgGen -> [ AlgElt ]
Given an algebra \(A\) and either a subalgebra \(S\) of dimension \(m\) of \(A\) or a sequence \(Q\) of \(m\) linearly independent elements of \(A\), return a sequence containing a basis of \(A\) such that the first \(m\) elements are the basis of \(S\) resp. the elements in \(Q\).
Decomposition of an Algebra
An algebra \(A\) can be regarded as a (left- or right-) module for itself. If \(A\) is defined over a finite field, the machinery to decompose modules over finite fields can be used to investigate the structure of the algebra \(A\).
- CompositionSeries(A): AlgGen -> [ AlgGen ], [ AlgGen ], AlgMatElt
Compute a composition series for the algebra \(A\). The function has three return values:
- (a)
a sequence containing the composition series as an ascending chain of subalgebras such that the successive quotients are irreducible \(A\)-modules;
- (b)
a sequence containing the composition factors as structure constant algebras;
- (c)
a transformation matrix to a basis compatible with the composition series, that is, the first basis elements form a basis of the first term of the composition series, the next extend these to a basis for the second term etc.
- CompositionFactors(A): AlgGen -> [ AlgGen ]
Compute the composition factors of a composition series for the algebra \(A\). This function returns the same as the second return value of
CompositionSeriesabove, but will often be very much quicker.
- MinimalLeftIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
- MinimalRightIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
- MinimalIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
Limit: RngIntElt Default: Infinity()
Return the minimal left/right/two-sided ideals of \(A\) (in non-decreasing size). If
Limitis set to \(n\), at most \(n\) ideals are calculated and the second return value indicates whether all of the ideals were computed.
- MaximalLeftIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
- MaximalRightIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
- MaximalIdeals(A : parameters): AlgGen -> [ AlgGen ], BoolElt
Limit: RngIntElt Default: Infinity()
Return the maximal left/right/two-sided ideals of \(A\) (in non-decreasing size). If
Limitis set to \(n\), at most \(n\) ideals are calculated and the second return value indicates whether all of the ideals were computed.
- JacobsonRadical(A): AlgGen -> AlgGen
Construct the Jacobson (or nilpotent) radical of \(A\), that is, the intersection of the maximal ideals of \(A\) (which is equal to the intersection of the maximal left or right ideals).
- IsSemisimple(A): AlgGen -> BoolElt
Return
trueif the Jacobson radical of \(A\) is trivial; otherwisefalse.
- IsSimple(A): AlgGen -> BoolElt
Return
trueif \(A\) has no non-trivial composition factor; otherwisefalse.
- Example: Quaternions as a Matrix Algebra (ex-0f19c1)
Run in calculator (opens in a new tab)
We create a division algebra of dimension 4 over the rational field.
> Q := MatrixAlgebra< Rationals(), 4 | > [0,1,0,0, -1,0,0,0, 0,0,0,-1, 0,0,1,0], > [0,0,1,0, 0,0,0,1, -1,0,0,0, 0,-1,0,0]>; > i := Q.1; > j := Q.2; > k := i*j; > Dimension(Q); 4 > MinimalPolynomial( (1+i+j+k)/2 ); $.1^2 - $.1 + 1
Hence, the element
(1+i+j+k)/2is integral. In fact, together with1,i, andjit forms a \(\Z\)-basis of a maximal order inQ. We create this maximal order as a structure constant algebra over the integers.> a := [ Q!1, i, j, (1+i+j+k)/2 ]; > T := MatrixAlgebra(Rationals(),4) ! &cat[ Coordinates(Q,a[i]) : i in [1..4] ]; > V := RSpace(Rationals(), 4); > C := [ V ! Coordinates(Q, a[i]*a[j]) * T^-1 : j in [1..4], i in [1..4] ]; > A := ChangeRing( Algebra< V | C >, Integers() ); > IsAssociative(A); true > AA := AssociativeAlgebra(A); > AA; Associative Algebra of dimension 4 with base ring Integer Ring > MinimalPolynomial(AA.4); $.1^2 - $.1 + 1
The so constructed maximal order is ramified at 2 and \(\infty\), hence it should be simple after reducing at odd primes.
> for p in [ i : i in [1..100] | IsPrime(i) ] do > if not IsSimple( ChangeRing( AA, GF(p) ) ) then > print p; > end if; > end for; 2 > CS, CF, T := CompositionSeries( ChangeRing( AA, GF(2) ) ); > T; [1 0 1 0] [0 1 1 0] [0 0 1 0] [0 0 0 1]
A glance at the preimages of the basis of the irreducible submodule shows the ramification of \(AA\) at the prime 2.
> MinimalPolynomial(AA.1 + AA.3); $.1^2 - 2*$.1 + 2 > MinimalPolynomial(AA.2 + AA.3); $.1^2 + 2
Operations on Subalgebras
- A eq B: AlgGen, AlgGen -> BoolElt
Returns
trueif the algebras \(A\) and \(B\) (having a common superalgebra) are equal; otherwisefalse.
- A ne B: AlgGen, AlgGen -> BoolElt
Returns
trueif the algebras \(A\) and \(B\) are not equal; otherwisefalse.
- A subset B: AlgGen, AlgGen -> BoolElt
Returns
trueif \(A\) is a subalgebra of the algebra \(B\); otherwisefalse.
- A notsubset B: AlgGen, AlgGen -> BoolElt
Returns
trueif \(A\) is not a subalgebra of the algebra \(B\); otherwisefalse.
- A meet B: AlgGen, AlgGen -> AlgGen
The intersection of the algebras \(A\) and \(B\), which must have a common superalgebra.
- A * B: AlgGen, AlgGen -> AlgGen
The algebra product \(A * B\) of the algebras \(A\) and \(B\), which must have a common superalgebra.
- A ^ n: AlgGen, RngIntElt -> AlgGen
The (left-normed) \(n\)-th power of the algebra \(A\). i.e., \((( \ldots (A*A)* \ldots )*A)\).
- Morphism(A, B): AlgGen, AlgGen -> Map
The map giving the morphism from \(A\) to \(B\). Either \(A\) is a subalgebra of \(B\), in which case the embedding of \(A\) into \(B\) is returned, or \(B\) is a quotient algebra of \(A\), in which case the natural epimorphism from \(A\) onto \(B\) is returned.