As stated in section More about Matrix Algebras, the implementation of Row Space Bases for the details. Consequently there are two types of bases, arbitrary bases and semi-echelonized bases, where the latter type can be defined as follows. Let varphi be the vector space homomorphism that maps a matrix in the algebra A to the concatenation of its rows, and let B = (b_1, b_2, ldots, b_n) be a vector space basis of A, then B is called semi-echelonized if and only if the row space basis (varphi(b_1), varphi(b_2), ldots, varphi(b_n)) is semi-echelonized, in the sense of Row Space Bases. The canonical basis is defined analogeously.
Due to the multiplicative structure that allows to view a matrix algebra A as an A-module with action via multiplication from the right, there is additionally the notion of a standard basis for A, which is essentially described in StandardBasis for Row Modules. The default way to compute a vector space basis of a matrix algebra from a set of generating matrices is to compute this standard basis and a semi-echelonized basis in parallel.
If the matrix algebra A is unital then every semi-echelonized basis and
also the standard basis have One( A )
as first basis vector.
GAP 3.4.4