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].
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.
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.
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.
> 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
If A is an arbitrary *-algebra, then we constructively recognise A as follows:
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.
Return true if and only if A is a simple *-algebra.
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.
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].
> 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 0Thus (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].
> 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.