# Recognition of $\ast$-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 [[Brooksbank and Wilson, 2012](../../references.md#cite-brooksbankwilson1), Sections 4.2 and 4.3].

## Recognition of Simple $\ast$-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: Recognise Classical SSA (ex-f5d034)`

We build a particular simple $*$-algebra of symplectic type and recognise it constructively.

```magma
> 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.

```magma
> (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 $\ast$-Algebras

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

**(i)**
Find a decomposition $A=J\oplus 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=I_1\oplus\ldots\oplus I_t$ of $T$ into minimal $*$-ideals; and

**(iii)**
For each $j\in\{1,\ldots,t\}$ constructively recognise the simple $*$-algebra $I_j$.

### `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 [[Brooksbank and Wilson, 2012](../../references.md#cite-brooksbankwilson1), Section 5].

### `Example: Nonisomorphism1 (ex-9f1ea0)`

Our first example illustrates how the $*$-algebra machinery may be used to distinguish between group algebras over ${\rm 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.

```magma
> 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 ${\rm GF}(5)[D_8]$ and ${\rm GF}(5)[Q_8]$ are semisimple. We now recognise them as $*$-algebras and examine their minimal $*$-ideals.

```magma
> 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 ${\rm GF}(5)[D_8]$, but type `"symplectic"` for ${\rm GF}(5)[Q_8]$.

### `Example: Nonisomorphism2 (ex-31ccc3)`

Our second example shows how to use $*$-algebra functions to distinguish between two $p$-groups of class 2 and order $43^6$. The first group is a Sylow 43-subgroup of ${\rm GL}(3,43^2)$.

```magma
> 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 ${\rm GL}(3,{\rm GF}(43)[x]/(x^2))$.

```magma
> 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 $A_1$ and $A_2$ are non-isomorphic $*$-algebras, it follows that $P_1$ and $P_2$ are non-isomorphic groups.
