Here we give some simple examples that display some of the functionality of Forms.
Consider the three-dimensional vector space V=GF(8)^3 over GF(8), and consider the following quadratic polynomial in 3 variables:
\[ x_1^2+x_2x_3. \]
Then this polynomial defines a quadratic form in V and the zeros form a conic of the associated projective plane. So in particular, our quadratic form defines a degenerate parabolic quadric of Witt Index 1. We will see now how we can use Forms to view this example.
gap> gf := GF(8); GF(2^3) gap> vec := gf^3; ( GF(2^3)^3 ) gap> r := PolynomialRing( gf, 3 ); GF(2^3)[x_1,x_2,x_3] gap> poly := r.1^2 + r.2 * r.3; x_1^2+x_2*x_3 gap> form := QuadraticFormByPolynomial( poly, r ); < quadratic form > gap> Display( form ); Quadratic form Gram Matrix: 1 . . . . 1 . . . Polynomial: x_1^2+x_2*x_3 gap> IsDegenerateForm( form ); true gap> WittIndex( form ); 1 gap> IsParabolicForm( form ); true gap> RadicalOfForm( form ); <vector space of dimension 1 over GF(2^3)> |
Now our conic is stabilised by GO(3,8), but not the same GO(3,8) that is installed in GAP. However, our conic is the canonical conic given in Forms.
gap> canonical := IsometricCanonicalForm( form ); < quadratic form > gap> form = canonical; true |
So we ``change forms''...
gap> go := GO(3,8); GO(0,3,8) gap> mat := InvariantQuadraticForm( go )!.matrix; [ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ] ] gap> gapform := QuadraticFormByMatrix( mat, GF(8) ); < quadratic form > gap> b := BaseChangeToCanonical( gapform ); [ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0 ] ] gap> hom := BaseChangeHomomorphism( b, GF(8) ); ^[ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0 ] ] gap> newgo := Image(hom, go); Group([ [ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), Z(2^3), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2^3)^6 ] ], [ [ Z(2)^0, 0*Z(2), 0*Z(2) ], [ Z(2)^0, Z(2)^0, Z(2)^0 ], [ 0*Z(2), Z(2)^0, 0*Z(2) ] ] ]) |
Now we look at the action of our new GO(3,8) on the conic.
gap> conic := Filtered(vec, x -> IsZero( x^form ));; gap> Size( conic ); 64 gap> orbs := Orbits(newgo, conic, OnRight);; gap> List(orbs, Size); [ 1, 63 ] |
So we see that there is a fixed point, which is actually the nucleus of the conic, or in other words, the radical of the form.
The symplectic polar space W(5,q) is defined by an alternating reflexive bilinear form on the six-dimensional vector space GF(q)^6. Any invertible 6times 6 matrix A which satisfies A+A^T=0 is a candidate for the Gram matrix of a symplectic polarity. The canonical form we adopt in Forms for an alternating form is
\[f(x,y)=x_1y_2-x_2y_1+x_3y_4-x_4y_3\cdots+x_{2n-1}y_{2n}-x_{2n}y_{2n-1}. \]
gap> f := GF(3); GF(3) gap> gram := [ [0,0,0,1,0,0], [0,0,0,0,1,0], [0,0,0,0,0,1], [-1,0,0,0,0,0], [0,-1,0,0,0,0], [0,0,-1,0,0,0]] * One(f);; gap> form := BilinearFormByMatrix( gram, f ); < bilinear form > gap> IsSymplecticForm( form ); true gap> Display( form ); Bilinear form Gram Matrix: . . . 1 . . . . . . 1 . . . . . . 1 2 . . . . . . 2 . . . . . . 2 . . . gap> b := BaseChangeToCanonical( form );; gap> Display( b ); . . . . . 1 . . 2 . . . . . . . 1 . . 2 . . . . . . . 1 . . 2 . . . . . gap> Display( b * gram * TransposedMat(b) ); . 1 . . . . 2 . . . . . . . . 1 . . . . 2 . . . . . . . . 1 . . . . 2 . |
generated by GAPDoc2HTML