GAP:IsFiniteJoinClosedGivenNormalizingJoinClosedAndWeakerThanNormalForPGroup

Function type
The function takes as input two arguments: a group and a subgroup property. It outputs a boolean variable.

Behavior

 * If the group is a group of prime power order, every normal subgroup satisfies the property, and the property is a normalizing join-closed subgroup property, then the function returns true if and only if the join of any two subgroups with the property in he group also has the property in the group.
 * Otherwise, an answer of false means that the subgroup does not have the property in the group; an answer of true cannot be trusted.

Related functions

 * GAP:IsFiniteJoinClosedGivenClosedUnderJoinWithNormalAndWeakerThanNormalForPGroup

Code
IsFiniteJoinClosedGivenNormalizingJoinClosedAndWeakerThanNormalForPGroup := function(G,P) local H, K, L, R, S, Q;	Q := PrimePGroup(G); L := Filtered(ConjugacyClassesSubgroups(G),C -> P(G,Representative(C)) 	    and Index(G,Representative(C)) > Q^2	     and not IsNormal(G,Representative(C))); for R in L do           H := Representative(R); for S in L do               for K in Filtered(AsList(S), W -> not IsNormal(W,H) and not IsNormal(H,W)) do                    if (not P(G,Group(Union(H,K)))) then return false; fi; od; od; od; return true; end;;