Skip to content

Commit ae7ea2b

Browse files
committed
WIP: meataxe: extend invariant form detection
TODO: complete it, add tests
1 parent 2b482f7 commit ae7ea2b

File tree

2 files changed

+11
-19
lines changed

2 files changed

+11
-19
lines changed

doc/ref/meataxe.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -572,9 +572,6 @@ on all composition factors except number <A>nr</A>.
572572
<Section Label="meataxe:Invariant Forms">
573573
<Heading>MeatAxe Functionality for Invariant Forms</Heading>
574574

575-
The functions in this section can only be applied to an absolutely irreducible
576-
MeatAxe module.
577-
578575
<ManSection>
579576
<Func Name="MTX.InvariantBilinearForm" Arg='module'/>
580577

@@ -607,6 +604,7 @@ or <K>fail</K> if no such form exists.
607604
returns a basis of the underlying vector space of <A>module</A> which is contained
608605
in an orbit of the action of the generators of module on that space.
609606
This is used by <Ref Func="MTX.InvariantQuadraticForm"/> in characteristic 2.
607+
Requires <A>module</A> to be irreducible.
610608
</Description>
611609
</ManSection>
612610

lib/meataxe.gi

+10-16
Original file line numberDiff line numberDiff line change
@@ -3286,21 +3286,19 @@ end;
32863286
##
32873287
#F InvariantBilinearForm( module ) . . . .
32883288
##
3289-
## Look for an invariant bilinear form of the absolutely irreducible
3290-
## GModule module. Return fail, or the matrix of the form.
3289+
## Look for an invariant bilinear form of the GModule module.
3290+
## Return fail, or the matrix of the form.
32913291
SMTX.InvariantBilinearForm:=function( module )
32923292
local DM, iso;
32933293

3294-
if not SMTX.IsMTXModule(module) or
3295-
not SMTX.IsAbsolutelyIrreducible(module) then
3296-
Error(
3297-
"Argument of InvariantBilinearForm is not an absolutely irreducible module");
3294+
if not SMTX.IsMTXModule(module) then
3295+
Error("Argument of InvariantBilinearForm is not a module");
32983296
fi;
32993297
if IsBound(module.InvariantBilinearForm) then
33003298
return module.InvariantBilinearForm;
33013299
fi;
33023300
DM:=SMTX.DualModule(module);
3303-
iso:=MTX.IsomorphismIrred(module,DM);
3301+
iso:=MTX.IsomorphismModules(module,DM);
33043302
if iso = fail then
33053303
SMTX.SetInvariantBilinearForm(module, fail);
33063304
return fail;
@@ -3343,23 +3341,19 @@ end;
33433341
##
33443342
#F InvariantSesquilinearForm( module ) . . . .
33453343
##
3346-
## Look for an invariant sesquililinear form of the absolutely irreducible
3347-
## GModule module. Return fail, or the matrix of the form.
3344+
## Look for an invariant sesquililinear form of the GModule module.
3345+
## Return fail, or the matrix of the form.
33483346
SMTX.InvariantSesquilinearForm:=function( module )
33493347
local DM, q, r, iso, isot, l;
33503348

3351-
if not SMTX.IsMTXModule(module) or
3352-
not SMTX.IsAbsolutelyIrreducible(module) then
3353-
Error(
3354-
"Argument of InvariantSesquilinearForm is not an absolutely irreducible module"
3355-
);
3349+
if not SMTX.IsMTXModule(module) then
3350+
Error("Argument of InvariantSesquilinearForm is not a module");
33563351
fi;
3357-
33583352
if IsBound(module.InvariantSesquilinearForm) then
33593353
return module.InvariantSesquilinearForm;
33603354
fi;
33613355
DM:=SMTX.TwistedDualModule(module);
3362-
iso:=MTX.IsomorphismIrred(module,DM);
3356+
iso:=MTX.IsomorphismModules(module,DM);
33633357
if iso = fail then
33643358
SMTX.SetInvariantSesquilinearForm(module, fail);
33653359
return fail;

0 commit comments

Comments
 (0)