# 38.20 Algebra Functions for Algebras

The functions desribed in this section compute certain subalgebras of a given algebra, e.g., Centre computes the centre of an algebra.

They return algebra records as described in Algebra Records for the computed subalgebras. Some functions may not terminate if the given algebra has an infinite set of elements, while other functions may signal an error in such cases.

Here the term ``subalgebra'' is used in a mathematical sense. But in GAP, every algebra is either a parent algebra or a subalgebra of a unique parent algebra. If you compute the centre C of an algebra U with parent algebra A then C is a subalgebra of U but its parent algebra is A (see Parent Algebras and Subalgebras).

Centralizer( A, x )

Centralizer( A, U ) :

returns the centralizer of an element x in A where x must be an element of the parent algebra of A, resp. the centralizer of the algebra U in A where both algebras must have a common parent.

The centralizer of an element x in A is defined as the set C of elements c of A such that c and x commute.

The centralizer of an algebra U in A is defined as the set C of elements c of A such that c commutes with every element of U.

gap> a:= MatAlgebra( GF(2), 2 );;
gap> a.name:= "a";;
gap> m:= [ [ 1, 1 ], [ 0, 1 ] ] * Z(2);;
gap> Centralizer( a, m );
UnitalSubalgebra( a, [ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ],
[ [ 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2) ] ] ] )

Centre( A ) :

returns the centre of A (that is, the centralizer of A in A).

gap> c:= Centre( a );
UnitalSubalgebra( a, [ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] ] )

Closure( U, a )
Closure( U, S )

Let U be an algebra with parent algebra A and let a be an element of A. Then Closure returns the closure C of U and a as subalgebra of A. The closure C of U and a is the subalgebra generated by U and a.

Let U and S be two algebras with a common parent algebra A. Then Closure returns the subalgebra of A generated by U and S.

gap> Closure( c, m );
UnitalSubalgebra( a, [ [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ],
[ [ Z(2)^0, Z(2)^0 ], [ 0*Z(2), Z(2)^0 ] ] ] )

GAP 3.4.4
April 1997