GAP:SemidirectProduct

Function type
The function takes as input two groups and outputs a group. Alternatively, it takes in two groups and a homomorphism and outputs a group.

Behavior
The goal of the function is to output the external semidirect product corresponding to an action of the first group on the second. This action may be either because the first group is stored internally as a subgroup of the automorphism group of the second group, or using a homomorphism explicitly specified as a third argument.


 * If the first group is stored as a subgroup of the automorphism group of the second group, the function returns a semidirect product with the second group as the normal subgroup and the first group acting on it via automorphisms.
 * If the first group is not stored as a subgroup of the automorphism group of the second group, and no third argument is provided, the function returns a usage error.
 * If a third argument is a homomorphism from the first group to the automorphism group of the second group, GAP computes the semidirect product using this homomorphism as the action.
 * If one of the first two arguments is not a group, GAP returns a NoMethodFound error.

Related functions

 * GAP:DirectProduct
 * GAP:WreathProduct

Examples of usage
gap> G := CyclicGroup(4);  gap> H := SemidirectProduct(AutomorphismGroup(G),G);  gap> IdGroup(H); [ 8, 3 ]