%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%W  cover.tex             FORMAT documentation    B. Eick and C.R.B. Wright
%%
%% 10-31-11

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\X{{\cal{X}}}
\Chapter{Covering Subgroups}

%\index{Covering Subgroups}

Let $\X$ be a collection of groups closed under taking homomorphic images.
An *$\X$-covering subgroup* of a group $G$ is a subgroup $E$ satisfying

%display{tex}
(C) \qquad $E \in \X$, and $EV = U$ whenever $E \le U \le G$ with $U/V \in
\X$.
%display{html}
%(C)    E is in X , and EV = U whenever E is contained in U is contained in G with U/V in X.
%enddisplay

It follows from the definition that an $\X$-covering subgroup $E$ of $G$ is
also $\X$-covering in every subgroup $U$ of $G$ that contains $E$, and an
easy argument shows that $E$ is an *$\X$-projector* of every such $U$,
i.e., $E$ satisfies

(P) \qquad $EK/K$ is an $\X$-maximal subgroup of $U/K$ whenever $K$ is
normal in $U$.

Gasch{\accent127u}tz showed that if $\F$ is a locally defined formation,
then every finite solvable group has an $\F$-covering subgroup. Indeed,
locally defined formations are the only formations with this property. For
such formations the $\F$-projectors and $\F$-covering subgroups of a
solvable group coincide and form a single conjugacy class of subgroups.
(See \cite{DH} for details.)

\> CoveringSubgroup1( <G>, <F> ) O
\> CoveringSubgroup2( <G>, <F> ) O
\> CoveringSubgroupWrtFormation( <G>, <F> ) O

If <F> is a locally defined integrated formation in {\GAP} and if <G> is
a finite solvable group, then the command `CoveringSubgroup1( <G>, <F> )'
returns an <F>-covering subgroup of <G>.
The function `CoveringSubgroup2' uses a different algorithm to compute
$\F$-covering subgroups. The user may choose either function. Experiments with large groups suggest that `CoveringSubgroup1' is somewhat faster.
`CoveringSubgroupWrtFormation' checks first to see if either of these
two functions has already computed an <F>-covering subgroup of <G> and, if
not, it  calls `FCoveringGroup1' to compute one. 

\medskip
Nilpotent-covering subgroups are also called *Carter subgroups*.

\> CarterSubgroup( <G> ) A

The command `CarterSubgroup( <G> )' is equivalent to 
`CoveringSubgroupWrtFormation( <G>, Formation( "Nilpotent" ) )'.

\medskip
All of these functions call upon $\F$-normalizer algorithms as subroutines.
