38.18 Property Tests for Algebras

The following property tests (cf. Properties and Property Tests) are available for algebras.

`IsAbelian( A )` :

returns `true` if the algebra A is abelian and `false` otherwise. An algebra A is abelian if and only if for every a, b in <A> the equation a* b = b* a holds.

`IsCentral( A, U )` :

returns `true` if the algebra A centralizes the algebra U and `false` otherwise. An algebra A centralizes an algebra U if and only if for all a in <A> and for all u in <U> the equation a* u = u* a holds. Note that U need not to be a subalgebra of A but they must have a common parent algebra.

`IsFinite( A )` :

returns `true` if the algebra A is finite, and `false` otherwise.

`IsTrivial( A )` :

returns `true` if the algebra A consists only of the zero element, and `false` otherwise. If A is a unital algebra it is of course never trivial.

All tests expect a parent algebra or subalgebra and return `true` if the algebra has the property and `false` otherwise. Some functions may not terminate if the given algebra has an infinite set of elements. A warning may be printed in such cases.

```    gap> IsAbelian( FreeAlgebra( GF(2), 2 ) );
false
gap> a:= UnitalAlgebra( Rationals, [ [ [ 1, 0 ], [ 0, 0 ] ] ] );
UnitalAlgebra( Rationals, [ [ [ 1, 0 ], [ 0, 0 ] ] ] )
gap> a.name:= "a";;
gap> s1:= Subalgebra( a, [ One(a) ] );
Subalgebra( a, [ [ [ 1, 0 ], [ 0, 1 ] ] ] )
gap> IsCentral( a, s1 ); IsFinite( s1 );
true
false
gap> s2:= Subalgebra( a, [] );
Subalgebra( a, [  ] )
gap> IsFinite( s2 ); IsTrivial( s2 );
true
true ```

GAP 3.4.4
April 1997