Dear GAP Forum,
Kurt Ewald asked for the meaning of `IsSubgroup'.
As the Reference Manual says,
`IsSubgroup( <G>, <U> )' is `true' if <G> and <U>
are groups such that <U> is a subset of <G>.
The manual entry for `IsSubset' implies that the
relation checked by `IsSubgroup' is stronger than the
relation ``<U> is isomorphic to a subgroup of <G>''.
As for the given example of semidirect products,
the manual entry for `SemidirectProduct' says
that one has to use explicit embeddings
when one wants to access the normal subgroup
and a complement, respectively,
as subgroups of the semidirect product.
The example might be treated as follows.
gap> z3:= Group( (1,2,3) );; z4:= Group( (1,2,3,4) );; gap> aut:= AutomorphismGroup( z3 );; gap> hom:= GroupHomomorphismByImages( z4, aut, [(1,2,3,4)], [aut.1] );; gap> p:= SemidirectProduct( z4, hom, z3 ); Group([ (2,3)(4,5,6,7), (1,2,3) ]) gap> emb:= Embedding( p, 1 ); [ (1,2,3,4) ] -> [ (2,3)(4,5,6,7) ] gap> IsSubgroup( p, Image( emb, z4 ) ); true