1gap> #morphisms: BaseChangeToCanonical 2gap> gf := GF(3); 3GF(3) 4gap> gram := [ 5> [0,0,0,1,0,0], 6> [0,0,0,0,1,0], 7> [0,0,0,0,0,1], 8> [-1,0,0,0,0,0], 9> [0,-1,0,0,0,0], 10> [0,0,-1,0,0,0]] * One(gf);; 11gap> form := BilinearFormByMatrix( gram, gf ); 12< bilinear form > 13gap> b := BaseChangeToCanonical( form );; 14gap> Display( b * gram * TransposedMat(b) ); 15 . 1 . . . . 16 2 . . . . . 17 . . . 1 . . 18 . . 2 . . . 19 . . . . . 1 20 . . . . 2 . 21gap> quit; 22