%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Examples}

\atindex{Nilmat package}{@Nilmat package}

In this chapter we give some examples of computing with the Package
\package{Nilmat}.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Constructing some nilpotent matrix groups}

\beginexample
gap> g1 := MaximalAbsolutelyIrreducibleNilpotentMatGroup(52,3,3);
<matrix group with 7 generators>
\endexample

The group `g1' is a subgroup of $GL(52,3^3)$ generated by 7 matrices.

\beginexample
gap> g2 := MaximalAbsolutelyIrreducibleNilpotentMatGroup(180,11,2);
<matrix group with 41 generators>
\endexample

The group `g2' is a subgroup of $GL(180,11^2)$ generated by 41 matrices.

\beginexample
gap> MaximalAbsolutelyIrreducibleNilpotentMatGroup(210,2,10);
fail
\endexample

In this third example, absolutely irreducible nilpotent subgroups of
$GL(210,2^{10})$ do not exist, because the degree of the matrices
and the field size are both even.

\beginexample
gap> g3 := MonomialNilpotentMatGroup(450);
<matrix group with 24 generators>
\endexample

Here `g3' is a monomial nilpotent subgroup of $GL(450,\Q)$.

\beginexample
gap> g4 := ReducibleNilpotentReducibleMatGroup(3,180,11,2);
<matrix group with 82 generators>
\endexample

Here $`g4' \< GL(540,11^2)$ is the Kronecker product of a
unipotent subgroup of $GL(3,11^2)$ and the group `g2'.

\beginexample
gap> g5 := ReducibleNilpotentMatGroup(7,36);
<matrix group with 72 generators>
\endexample

Here $`g5' \< GL(252, \Q)$ is a reducible nilpotent group constructed
as the Kronecker product of a unipotent subgroup of $GL(7,\Q)$ with
`MonomialNilpotentMatGroup(36)'.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Testing nilpotency and other functions}

We now illustrate use of the functions
`IsNilpotentMatGroup',
`SylowSubgroupsOfNilpotentFFMatGroup',
`IsFiniteNilpotentMatGroup',
`SizeOfNilpotentMatGroup', and
`IsCompletelyReducibleNilpotentMatGroup'.

\beginexample
gap> IsNilpotentMatGroup(GL(200,Rationals));
false

gap> IsNilpotentMatGroup(GL(150,11^3));
false

gap> g6 := MaximalAbsolutelyIrreducibleNilpotentMatGroup(127,2,7);
<matrix group with 3 generators>
gap> IsNilpotentMatGroup(g6);
true

gap> g7 := MonomialNilpotentMatGroup(350);
<matrix group with 6 generators>
gap> IsNilpotentMatGroup(g7);
true
gap> IsFiniteNilpotentMatGroup(g7);
true

gap> g8 := ReducibleNilpotentMatGroup(6,35);
<matrix group with 5 generators>
gap> IsNilpotentMatGroup(g8);
true
gap> IsFiniteNilpotentMatGroup(g8);
false

gap> g9 := ReducibleNilpotentMatGroup(2,36,5,2);
<matrix group with 21 generators>
gap> SylowSubgroupsOfNilpotentFFMatGroup(g9);
[ <matrix group with 5 generators>, <matrix group with 6
generators>, <matrix group with 1 generators> ]
gap> IsCompletelyReducibleNilpotentMatGroup(g9);
false

gap> g10 := MaximalAbsolutelyIrreducibleNilpotentMatGroup(24,5,2);
<matrix group with 17 generators>
gap> SizeOfNilpotentMatGroup(g10);
173946175488
gap> IsCompletelyReducibleNilpotentMatGroup(g10);
true

gap> g11 := MonomialNilpotentMatGroup(96);
<matrix group with 31 generators>
gap> SizeOfNilpotentMatGroup(g11);
6442450944
gap> IsCompletelyReducibleNilpotentMatGroup(g11);
true
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Using the library of primitive nilpotent groups}

This section gives examples of applying the functions from the
\package{Nilmat} library of primitive nilpotent subgroups of $GL(n,q)$.

\beginexample
gap> L0 := NilpotentPrimitiveMatGroups(2,3,1);
[ Group([ [ [ 0*Z(3), Z(3)^0 ], [ Z(3)^0, Z(3)^0 ] ] ]),
  Group([ [ [ Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3)^0 ] ],
      [ [ Z(3), Z(3)^0 ], [ Z(3), Z(3) ] ],
      [ [ Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3) ] ] ]),
  Group([ [ [ Z(3)^0, 0*Z(3) ], [ 0*Z(3), Z(3)^0 ] ],
      [ [ 0*Z(3), Z(3)^0 ], [ Z(3), 0*Z(3) ] ],
      [ [ Z(3), Z(3) ], [ Z(3), Z(3)^0 ] ] ]) ]
gap> SizesOfNilpotentPrimitiveMatGroups(2,3,1);
[ 8, 8, 16 ]
gap> List(L0,Size);
[ 8, 8, 16 ]

gap> L1 := NilpotentPrimitiveMatGroups(2,2,10);;
gap> Length(L1);
40
gap> Size(L1[38]);
209715
gap> s := SizesOfNilpotentPrimitiveMatGroups(2,2,10);;
[ 5, 15, 25, 41, 55, 75, 123, 155,
165, 205, 275, 451, 465, 615, 775, 825, 1025, 1271, 1353, 1705,
2255, 2325, 3075, 3813, 5115, 6355, 6765, 8525, 11275, 13981,
19065, 25575, 31775, 33825, 41943, 69905, 95325, 209715,
349525, 1048575 ]

gap> L2 := NilpotentPrimitiveMatGroups(55,3,1);;
gap> Length(L2);
114

gap> L3 := NilpotentPrimitiveMatGroups(6,3,3);;
gap> Length(L3);
110

gap> L4 := NilpotentPrimitiveMatGroups(22,11,1);;
gap> Length(L3);
1002
\endexample

The lists `L1' and `L2' contain only abelian groups, while `L3' and
`L4' contain non-abelian nilpotent groups.
