-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug in Centre for PcGroups #3940
Comments
The issue is already present in GAP 4.4.12. Eamonn O'Brien helped to verify that the group presentation etc. matches perfectly with what's in Magma. Magma produces three centre generators,
So next should be to check |
The problem is in the internal function So here is one possible fix (confirmed to work in experiments) diff --git a/lib/grppcatr.gi b/lib/grppcatr.gi
index 044c73782..abb17b908 100644
--- a/lib/grppcatr.gi
+++ b/lib/grppcatr.gi
@@ -724,8 +724,9 @@ end);
#F NextStepCentralizer( <gens>, <cent>, <pcgsF>, <field> )
##
NextStepCentralizer := function( gens, cent, pcgsF, field )
- local g, newgens, matlist, notcentral, h, comm, null, j, elm;
+ local g, newgens, matlist, notcentral, h, comm, null, j, elm, p;
+ p := Characteristic( field );
for g in gens do
if Length( cent ) = 0 then return []; fi;
@@ -750,7 +751,10 @@ NextStepCentralizer := function( gens, cent, pcgsF, field )
# calculate elements corresponding to null
for j in [1..Length(null)] do
elm := PcElementByExponentsNC( pcgsF, notcentral, null[j] );
- Add( newgens, elm );
+ while not elm in GroupOfPcgs( pcgsF ) do
+ Add( newgens, elm );
+ elm := elm ^ p;
+ od;
od;
fi;
cent := newgens; An alternate way to think about this is that Perhaps there is a better, more clever solution, but at 2 AM at night I can't think of one. Perhaps @hulpke or @beick have better / alternative suggestions. For the record, the corresponding code in the |
Thank you, @fingolfin, for investigating. What you propose certainly will not introduce other problems. The question is whether this ommission is just an oversight, or if there is an implicit assumption on the generators that is not always satisfied: Is the function using the familyPcgs, or a specialPcgs? Is the result of this ruotine used as generators for a group, or is the assumption that it returns a pcgs? |
Dear all,
the key step in the center algorithm is to compute the kernel of a
homomorphism h : H -> F, where H is an abelian group generated
by cent, F is elementary abelian given by a pcgs.
This is then iteratedly applied to the commutator map
H -> F : h -> Comm(h,g) for g looping over a generating set of G.
Since F is elementary abelian and H abelian, H^p is in the kernel of h.
The induced map H/H^p -> F is then a linear map of elementary abelian
groups and the kernel can be computed using a nullspace computation.
If N is this nullspace, then a short generating set of the kernel of h would
be given by <N, p I>, where I is the identity map.
It is essential for the performance of the algorithm that H is given by a
short generating set cent, and that the generating set of the kernel is
also short. Perhaps it is more efficient to compute a triangular matrix
corresponding to <N, pI> and translate this to cent.
Does that makes sense?
Best wishes,
Bettina
|
The following calculation
returns a center of order 4, which is wrong (One can easily check that the center has order 8).
The error persists when converting ->FP->PC, but does not arise when converting ->Perm->Fp->PC, which indicates that it is related to the particular PC presentation.
This was reported by Benjamin Sambale
The text was updated successfully, but these errors were encountered: