GAP:IsPronormal

From Groupprops

This article is about a GAP function.

This GAP function takes as input two groups, both having a common parent group. See other GAP functions like this.
This GAP function outputs a Boolean variable, i.e., it returns either true or false. View other GAP functions with Boolean output

This GAP function is not in-built: you need to copy the code on this page to define the function.

Definition

Function type

The function takes two arguments, both of which are groups, and outputs a boolean variable (true/false).

Behavior

The behavior is as follows:

  1. The function returns true if the two groups are subgroups of a common big group, and the conjugate of any element in the second subgroup by any element in the first subgroup is also conjugate to it in the subgroup generated. In other words, if the first subgroup is and the second subgroup is , the function returns true if for any , the subgroups and are conjugate in the join .
  2. The function returns false if the two groups are subgroups of a common big group, and the above condition is violated. In other words, if the first group is and the second group is , the function returns false if there exists such that and are not conjugate in .
  3. If either of the arguments is not a group, or if the two arguments are groups that are not contained in a common big group, GAP returns a NoMethodFound error.

Typical usage

The typical uasge of the function is as follows:

IsPronormal(group,subgroup);

The function returns true if the subgroup is a pronormal subgroup of the whole group and false otherwise.

Method

Code

Here is an algorithmic version:

IsPronormal := function(G,H)
	    local K,g;
	    for g in Set(G) do
	    	K := Group(Union(H,H^g));
		if not (IsConjugate(K,H,H^g)) then return false; fi;
	    od;
	return true;
end;;

Here is a version written in a functional programming style:

IsPronormal := function(G,H)
           return(ForAll(Set(G),g->IsConjugate(Group(Union(H,H^g)),H,H^g)));
end;;

Underlying idea

The code works as follows:

  • The code cycles over all in the underlying set of .
  • For every such , the code considers the groups and , and determines whether they are conjugate in the subgroup they generate.