-
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
Mark FittingSubgroup and FrattiniSubgroup as nilpotent #400
Conversation
So there are more opportunities like this. E.g. various OTOH, I also found code like this in the library:
That strikes me as a good idea: We compute properties based on some theorems; but of course there can be bugs in the code, so if the assertion level is high enough, we verify that the theorem's really apply. So perhaps I should adapt the changes in this PR to do that, too? Thoughts? |
Indeed, this looks like a good idea. Probably setting properties/attributes should have such checks before them, but it might be very useful in other situations, as well. |
Careful: The stored `Parent’ might not be the group in which you compute normal subgroups. |
May I suggest also to change grp.gi:960 to InstallImmediateMethod instead of the current InstallMethod? That is, for nilpotent groups, GAP should know immediately that FittingSubgroup is itself. |
@hungaborhorvath |
@hulpke I agree that currently there are not many methods using HasFittingSubgroup, though, CRISP's AbelianMinimalNormalSubgroups is there. Nevertheless, I disagree about not setting such attribute. On the one hand, I think this is a perfect situation of not spending time on setting an attribute with ImmediateMethod. I would have thought this is why ImmediateMethod was created. I might be wrong, though. On the other hand, the fact that currently there are not many (or none) methods using HasFittingSubgroup does not mean that later on there will be none, and missing this ImmediateMethod then can bite developers. (Of course it could be set then, but I always lived by "Tomorrow never comes" ) |
Actually, currently the InstallMethod for Thus, even if the method will not be turned Immediate, the ranks should still need to be adjusted. |
886dafa
to
4f0a0f4
Compare
I increased the rank of the Does it look sensible now? |
I am not sure how to comment on codelines, but I managed to somehow copy this here:
I do not understand why these FrattiniSubgroup calls are in the FittingSubgroup file and not in the FrattiniSubgroup file.... |
Otherwise looks fine to me, although I would really appreciate an immediatemethod. :-) Did you decide not to put in the Assertion tests? |
The Frattini and Fitting subgroups of finite groups are always nilpotent. See issue gap-system#398.
4f0a0f4
to
99d75cd
Compare
For commenting on lines in the diff, please [read this page)[https://help.github.com/articles/commenting-on-the-diff-of-a-pull-request/). I fixed the tests (thanks, not sure how that happened), and while at it, extended them some more. (For now, this is a fairly random set of tests. Once @ChrisJefferson's code gets a bit easier to use, we can try to improve the quality in terms of coverage. I also added the asserts -- I simply forgot about that idea. But now I shold run the full tests suite to make sure they don't cause horrible slowdowns or lockups. As to making that one method immediate: Well, in principle I don't see a strong reason not to, but making something immediate can have weird consequence that are hard to anticipate, so for now I"d like to play it safe... We can revisit that in the future, though (e.g. right after this gets merged, you are welcome to open a new PR which changes the method to immediate). |
# | ||
gap> List(AllSmallGroups(60), g -> Size(FittingSubgroup(g))); | ||
[ 30, 30, 30, 60, 1, 15, 15, 15, 20, 30, 30, 30, 60 ] | ||
gap> ForAll(AllSmallGroups(60), g -> IsNormal(g, FrattiniSubgroup(g))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you want to have FittingSubgroup
here?
@hulpke Any thoughts or concerns on this pull requests from your side? Otherwise, I think I'll just merge it myself in a few days... ;-) |
@fingolfin All fine with me. Thanks for asking! |
Mark FittingSubgroup and FrattiniSubgroup as nilpotent
The Frattini and Fitting subgroups of finite groups are always nilpotent.
See issue #398.
Please do not yet merge, I am still checking for some other potential changes along the same vein.