IsSemiEchelonBasis( B )
returns true
if B is a semi-echelonized basis (see SemiEchelonBasis),
and false
otherwise.
If B is semi-echelonized, and this was not yet stored before, after the
call the operations record of B will be SemiEchelonBasisRowSpaceOps
.
gap> v:= GF(2)^2; v.name:= "v";; RowSpace( GF(2), [ [ Z(2)^0, 0*Z(2) ], [ 0*Z(2), Z(2)^0 ] ] ) gap> b1:= Basis( v, [ [ 0, 1 ], [ 1, 0 ] ] * Z(2) ); Basis( v, [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ] ) gap> IsSemiEchelonBasis( b1 ); true gap> b1; SemiEchelonBasis( v, [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ] ) gap> b2:= Basis( v, [ [ 0, 1 ], [ 1, 1 ] ] * Z(2) ); Basis( v, [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ] ) gap> IsSemiEchelonBasis( b2 ); false gap> b2; Basis( v, [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2)^0 ] ] )
GAP 3.4.4