Recognition of *-Algebras

In this section we describe methods that facilitate structural examinations of *-algebras. All of the functions in this section require that the base ring of the given algebra is a finite field of odd order. The functions are implementations of the methods described in [BW12a, Sections 4.2 and 4.3].

Contents

Recognition of Simple *-Algebras

If A is a simple *-algebra, then we constructively recognise A by finding an explicit inverse isomorphisms between A and the standard copy of the simple *-algebra which is isomorphic to A. The latter is the output of the function SimpleStarAlgebra with the appropriate input parameters.

RecogniseClassicalSSA(A) : AlgMat -> BoolElt, AlgMat, Map, Map
Given a matrix *-algebra A, this function first decides whether or not A is a simple *-algebra of classical type. If it is, the standard *-algebra, T, corresponding to A, a *-isomorphism from A to T, and its inverse from T to A are returned.
RecogniseExchangeSSA(A) : AlgMat -> BoolElt, AlgMat, Map, Map
Given a matrix *-algebra A, this function first decides whether or not A is a simple *-algebra of exchange type. If it is, the standard *-algebra, T, corresponding to A, a *-isomorphism from A to T, and its inverse from T to A are returned.

Example AlgInv_RecogniseClassicalSSA (H94E7)

We build a particular simple *-algebra of symplectic type and recognise it constructively.
> MA := MatrixAlgebra(GF(7), 4);
> F := MA![0,1,3,4,6,0,0,1,4,0,0,2,3,6,5,0];
> F;
[0 1 3 4]
[6 0 0 1]
[4 0 0 2]
[3 6 5 0]
> A := AdjointAlgebra([F]);
> isit, T, f, g := RecogniseClassicalSSA(A);
> isit;
true;
A quick check that f is, as claimed, a *-isomorphism.
> (A.1 + A.2)@f eq (A.1@f) + (A.2@f);
true
> (A.1 * A.2)@f eq (A.1@f) * (A.2@f);
true
> (A.2@Star(A))@f eq (A.2@f)@Star(T);
true

Recognition of Arbitrary *-Algebras

If A is an arbitrary *-algebra, then we constructively recognise A as follows:

(i)
Find a decomposition A=J direct-sum T, where J is the Jacobson radical of A and T is a *-invariant semisimple complement to J in A;

(ii)
Find a decomposition T=I1 direct-sum ... direct-sum It of T into minimal *-ideals; and

(iii)
For each j∈{1, ..., t} constructively recognise the simple *-algebra Ij.

RecogniseStarAlgebra(A) : AlgMat -> BoolElt
RecogniseStarAlgebra(A) : AlgGrp -> BoolElt
Constructively recognise the *-algebra A given as a matrix *-algebra or a group algebra.

There are several functions available that permit easy access to structural information about a *-algebra that has been constructively recognised. (In fact all of these functions also initiate a constructive recognition of the input *-algebra if the recognition has not already been carried out.) For all of the access functions A can be either a matrix *-algebra or a group algebra.

IsSimpleStarAlgebra(A) : AlgMat -> BoolElt
IsSimpleStarAlgebra(A) : AlgGrp -> BoolElt
Return true if and only if A is a simple *-algebra.
SimpleParameters(A) : AlgMat -> SeqEnum
SimpleParameters(A) : AlgGrp -> SeqEnum
Given a *-algebra A, this function returns the parameters that determine (up to *-isomorphism) the minimal *-ideals of the semisimple quotient A/J, where J is the Jacobson radical of A. The parameters are returned in the form of a sequence.
NormGroup(A) : AlgMat -> GrpMat
Given a *-algebra A, this function returns the group of unitary elements of A, namely the group consisting of all units in A satisfying the condition x * =x - 1. The function is based on methods described in [BW12a, Section 5].

Example AlgInv_Nonisomorphism1 (H94E8)

Our first example illustrates how the *-algebra machinery may be used to distinguish between group algebras over (GF)(5) for the dihedral and quaternion groups of order 8. Those group algebras are isomorphic as algebras, but the example shows that they are nonisomorphic as *-algebras.
> K := GF(5);
> G1 := SmallGroup(8, 3);
> G2 := SmallGroup(8, 4);
> A1 := GroupAlgebraAsStarAlgebra(K, G1);
> A2 := GroupAlgebraAsStarAlgebra(K, G2);
> J1, T1 := TaftDecomposition(A1);
> J2, T2 := TaftDecomposition(A2);
> Dimension(J1); Dimension(J2);
0
0
Thus (as we know from Maschke's theorem) both (GF)(5)[D8] and (GF)(5)[Q8] are semisimple. We now recognise them as *-algebras and examine their minimal *-ideals.
> RecogniseStarAlgebra(A1);
true
> RecogniseStarAlgebra(A2);
true
> SimpleParameters(A1);
[ <"orthogonalcircle", 1, 5>, <"orthogonalcircle", 1, 5>,
<"orthogonalcircle", 1, 5>, <"orthogonalcircle", 1, 5>,
<"orthogonalplus", 2, 5> ]
> SimpleParameters(A2);
[ <"orthogonalcircle", 1, 5>, <"orthogonalcircle", 1, 5>,
<"orthogonalcircle", 1, 5>, <"orthogonalcircle", 1, 5>,
<"symplectic", 2, 5>
]
Both group algebras decompose into four 1-dimensional *-ideals, and one 4-dimensional *-ideal. However, the latter has type "orthogonalplus" for (GF)(5)[D8], but type "symplectic" for (GF)(5)[Q8].

Example AlgInv_Nonisomorphism2 (H94E9)

Our second example shows how to use *-algebra functions to distinguish between two p-groups of class 2 and order 436. The first group is a Sylow 43-subgroup of (GL)(3, 432).
> P1 := ClassicalSylow(GL(3, 43^2), 43);
> Forms1 := PGroupToForms(P1);
> A1 := AdjointAlgebra(Forms1);
> RecogniseStarAlgebra(A1);
true
> SimpleParameters(A1);
[ <"symplectic", 2, 1849> ]
The second group is constructed as a subgroup of (GL)(3, (GF)(43)[x]/(x2)).
> R<x> := PolynomialRing(GF(43));
> S, f := quo< R | x^2 >;
> G := GL(3, S);
> Ua := G![1,1,0,0,1,0,0,0,1];
> Wa := G![1,0,0,0,1,1,0,0,1];
> Ub := G![1,x@f,0,0,1,0,0,0,1];
> Wb := G![1,0,0,0,1,x@f,0,0,1];
> P2 := sub< G | [ Ua, Wa, Ub, Wb ] >;
> Forms2 := PGroupToForms(P2);
> A2 := AdjointAlgebra(Forms2);
> RecogniseStarAlgebra(A2);
true
> SimpleParameters(A2);
[ <"symplectic", 2, 43> ]
Since A1 and A2 are non-isomorphic *-algebras, it follows that P1 and P2 are non-isomorphic groups.
V2.28, 13 July 2023