gap-system / gap

Main development repository for GAP - Groups, Algorithms, Programming, a System for Computational Discrete Algebra
https://www.gap-system.org
GNU General Public License v2.0
815 stars 161 forks source link

Fix PQuotient error for large groups. #5816

Open FriedrichRober opened 1 month ago

FriedrichRober commented 1 month ago

Closes #5809

Text for release notes

Fix PQuotient error for large groups: If logord is too small, we return fail or error depending on option noninteractive.

fingolfin commented 3 weeks ago

@FriedrichRober last call for GAP 4.14 ...

FriedrichRober commented 3 weeks ago

Hi, I will try to clean up in time, but can only start working on this on Monday.

FriedrichRober commented 2 weeks ago

@fingolfin @hulpke, I adjusted the documentation of the method. Since I am not an expert of this implementation, I would really appreciate if someone can proof-read this.

As far as I understand, the current implementation throws an error/fail if the order of any p-group during the computation exceeds p^logord. This also includes the covers (which I guess they call intermediate p-groups in the original doc). This means that a p-quotient in the series might not be found, even if its order does not exceed p^logord, since the order of the cover of the p-quotient may exceed p^logord. However, for me and my package LINS, I am only interested in the class c=1 central p-quotient, and this seems to be a special case handled by the method AbelianPQuotient. Here it seems that the class 1 p-quotient is always found, if its order does not exceed p^logord. The next p-quotients are then handled by DefineNewGenerators, which I guess need to construct these covers and thus may return fail even if the order does not exceed p^logord.