Skip to content

Commit

Permalink
Add NaturalGModule helper
Browse files Browse the repository at this point in the history
Also fix usage error message for GModuleByMats
  • Loading branch information
fingolfin committed Oct 14, 2024
1 parent 19484a7 commit 6343f96
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 5 deletions.
10 changes: 10 additions & 0 deletions doc/ref/meataxe.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,16 @@ bases used are needed as well.
<Section Label="Module Constructions">
<Heading>Module Constructions</Heading>

<ManSection>
<Heading>NaturalGModule</Heading>
<Func Name="NaturalGModule" Arg='group[, field]' Label="for matrix group and a field"/>
<Description>
creates a MeatAxe module over <A>field</A> from the generators of the matrix
group <A>group</A>. If <A>field</A> is not provided then the value returned by
<Ref Filt="DefaultFieldOfMatrixGroup"/> is used instead.
</Description>
</ManSection>

<ManSection>
<Func Name="PermutationGModule" Arg='G, F'/>

Expand Down
8 changes: 8 additions & 0 deletions lib/meataxe.gd
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ DeclareGlobalFunction("TrivialGModule");
## The induced module for g is calculated.
DeclareGlobalFunction("InducedGModule");

#############################################################################
##
#F NaturalGModule ( g[, F] )
##
## g is a matrix group, F a field.
## The corresponding natural module is output.
DeclareGlobalFunction("NaturalGModule");

#############################################################################
##
#F PermutationGModule ( g, F) . permutation module
Expand Down
30 changes: 25 additions & 5 deletions lib/meataxe.gi
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,26 @@ InstallGlobalFunction(InducedGModule,function(g, h, m)

end);

#############################################################################
##
#F NaturalGModule ( g[, F] )
##
## g is a matrix group, F a field.
## The corresponding natural module is output.
InstallGlobalFunction(NaturalGModule,function(group, field...)
if not IsMatrixGroup(group) then
Error("<group> must be a matrix group");
fi;
if Length(field) = 0 then
field := DefaultFieldOfMatrixGroup(group);
elif Length(field) = 1 then
field := field[1];
else
Error("too many arguments");
fi;
return GModuleByMats(GeneratorsOfGroup(group), DimensionOfMatrixGroup(group), field);
end);

#############################################################################
##
#F PermutationGModule( g, F) . permutation module
Expand Down Expand Up @@ -3413,18 +3433,18 @@ end;
## <P/>
## <Example><![CDATA[
## gap> g:= SO(-1, 4, 2);;
## gap> m:= GModuleByMats( GeneratorsOfGroup( g ), GF(2) );;
## gap> m:= NaturalGModule( g );;
## gap> Display( MTX.InvariantQuadraticForm( m ) );
## . . . .
## 1 . . .
## . . 1 .
## . . 1 1
## gap> g:= SP(4, 2);;
## gap> m:= GModuleByMats( GeneratorsOfGroup( g ), GF(2) );;
## gap> g:= Sp(4, 2);;
## gap> m:= NaturalGModule( g );;
## gap> MTX.InvariantQuadraticForm( m );
## fail
## gap> g:= SP(4, 3);;
## gap> m:= GModuleByMats( GeneratorsOfGroup( g ), GF(3) );;
## gap> g:= Sp(4, 3);;
## gap> m:= NaturalGModule( g );;
## gap> q:= MTX.InvariantQuadraticForm( m );;
## gap> q = - TransposedMat( q ); # antisymmetric inv. bilinear form
## true
Expand Down

0 comments on commit 6343f96

Please sign in to comment.