Dear Eamonn,
However, I want to assign the basis to a variable
back within GAP and work with its vectors.
is the function 'GapObject' for MeatAxe objects what you need? For
example:
gap> mat1 := MeatAxeMat( PermutationMat( (1,2,3), 3, GF(2) ), GF(2) );; gap> mat2 := MeatAxeMat( PermutationMat( (1,2), 3, GF(2) ), GF(2) );; gap> m := NaturalModule( Algebra( GF(2), [ mat1, mat2 ] ) );; gap> l := Lattice(m);; gap> b := GeneratorsSubmodule( l, 3 ); MeatAxeMat( "/var/tmp/tmp.014092/o/g.s2", GF(2), [ 2, 3 ] ) gap> Display(b); MeatAxe.Matrix := [ [1,0,1], [0,1,1] ]*Z(2); gap> GapObject(b); [ [ Z(2)^0, 0*Z(2), Z(2)^0 ], [ 0*Z(2), Z(2)^0, Z(2)^0 ] ]
best wishes
Frank