The function takes as input two arguments, both of which are groups, and outputs a boolean variable.
- The function returns true if the two groups are subgroups of a common big group, and the second group is a contranormal subgroup in its closure under the action by conjugation by the cyclic subgroup generated by any element of the first group.
- The function returns false if the two groups are subgroups of a common big group, and the above condition is violated.
- If the two groups are not subgroups of a common big group, or if the arguments provided are not groups, the function returns a NoMethodFound error.
IsPolynormal := function(G,H) local K,g; for g in Set(G) do K := NormalClosure(Group(g),H); if (not NormalClosure(K,H) = K) then return false; fi; od; return true; end;;