%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%W  lpres.tex		NQL Doc				Rene Hartung
%%
%H  $Id: lpres.tex,v 1.12 2007/05/25 08:30:53 gap Exp $
%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Chapter{Introduction to L-presented groups}

%display{text}
Let $S$ be an arbitrary alphabet, $Q$ and $R$ be finite subsets of the 
free group $F_S$ on $S$, and $\Phi$ be a finite set of homomorphisms 
$\varphi: F_S\to F_S$.  An *L-presentation* is an expression of the form 
$\langle S\mid Q\mid \Phi\mid R\rangle$. It defines the *L-presented group*
$G=F_S/K$ where
$$ K=\left\langle Q\cup \bigcup_{\varphi\in\Phi^\*} R^\varphi\right\rangle^{F_S}$$
and $\Phi^\*$ is the monoid generated by $\Phi$, i.e. the closure of
$\Phi\cup\{{\rm id}\}$ under composition.
%display{html}
%Let <var>S</var> be an arbitrary alphabet, <var>Q</var> and <var>R</var> be 
%finite subsets of the free group <var>F<sub>S</sub></var> on <var>S</var>, and
%&Phi; be a finite set of homomorphisms 
%<var>&phi;: F<sub>S</sub>&rarr;F<sub>S</sub></var>.
%An <strong>L-presentation</strong> is an expression of the form 
%<var>&lang; S | Q | &Phi; | R&rang;</var>. It defines the 
%<strong>L-presented group</strong> <var>G=F<sub>S</sub>/K</var> where
%<center><var>K=&lang; Q&cup; &cup;<sub>&phi;&isin;&Phi;<sup>*</sup></sub> R<sup>&phi;</sup>&rang;<sup>F<sub>S</sub></sup></var></center>
%and &Phi;<sup>*</sup> is the monoid generated by &Phi;, i.e. the closure of
%&Phi;&cup;{id} under composition.
%enddisplay

The elements in $Q$ will be called *fixed relators* and the elements in 
$R$ will be called *iterated relators*. Furthermore an L-presentation will be
called
%display{nonhtml}
\beginitems
$\bullet$ *ascending* if $Q$ is empty.

$\bullet$ *invariant* if the normal subgroup $K$ is $\varphi$-invariant for
          each $\varphi$ in $\Phi$; that is, $K^\varphi\subseteq K$ for each
	  $\varphi$ in $\Phi$.
\enditems
%enddisplay
%display{html}
%<li><strong>ascending</strong> if <var>Q</var> is empty.</li>
%<li><strong>invariant</strong> if the normal subgroup <var>K</var> is 
%&phi;-invariant for each &phi; in &Phi;; that is, <var>K<sup>&phi;</sup>&sube;
%K</var> for each &phi; in &Phi;.</li>
%enddisplay


Note that every ascending L-presentation is invariant. In general it is a
non trivial task to decide whether a given L-presentation is invariant.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Creating an L-presented group}

The construction of an L-presented group is similar to the construction of
finitely presented groups (see Chapter~"ref:Creating Finitely Presented Groups" 
of the GAP Reference manual for further details).

\> LPresentedGroup( <F>, <frels>, <endos>, <irels> ) F

returns the {\GAP} object of an L-presented group with the underlying free 
group <F>, the fixed relators <frels>, the set of endomorphisms <endos>, and 
the iterated relators <irels>. The input variables <frels> and <irels> are
finite subsets of <F> and <endos> is a finite list of homomorphisms $F\to F$.

The Grigorchuk group, 
%display{nonhtml}
$$ \langle a,b,c,d\mid a^2,b^2,c^2,d^2,bcd\mid\sigma\mid [d,d^a],[d,d^{acaca}]\rangle,$$ 
%enddisplay
%display{html}
%<center><var>&lang; a,b,c,d | a<sup>2</sup>,b<sup>2</sup>,c<sup>2</sup>,d<sup>2</sup>,bcd | &sigma; |[d,d<sup>a</sup>],[d,d<sup>acaca</sup>]&rang;</var></center>
%enddisplay
can be constructed as follows. 

\beginexample
gap> F:=FreeGroup("a","b","c","d");
<free group on the generators [ a, b, c, d ]>
gap> AssignGeneratorVariables(F);
#I  Assigned the global variables [ a, b, c, d ]
gap> frels:=[a^2,b^2,c^2,d^2,b*c*d];;
gap> endos:=[GroupHomomorphismByImagesNC(F,F,[a,b,c,d],[c^a,d,b,c])];;
gap> irels:=[Comm(d,d^a),Comm(d,d^(a*c*a*c*a))];;
gap> G:=LPresentedGroup(F,frels,endos,irels);
<L-presented group on the generators [ a, b, c, d ]>
\endexample

\> ExamplesOfLPresentations( <n> ) F

returns some of the examples discussed in \cite{Bartholdi03} for 
%display{nonhtml}
$1\leq$<n>$\leq 9$.
%enddisplay
%display{html}
%1&le;<var>n</var>&le; 8.
%enddisplay

\beginitems
$n=1$ First Grigorchuk group on 4 generators (see \cite{Grigor80}, 
      \cite{Lysenok85}; and \cite{Bartholdi03}, Thm. 4.6)

$n=2$ First Grigorchuk group on 3 generators (see \cite{Grigor80},
      \cite{Lysenok85}; and \cite{Bartholdi03}, Thm. 4.6)

$n=3$ Lamplighter group (\cite{Bartholdi03}, Thm. 4.1)

$n=4$ Brunner-Sidki-Vieira group (see \cite{BrunnerVieiraSidki99}; and 
      \cite{Bartholdi03}, Thm. 4.4)

$n=5$ Grigorchuk supergroup (see \cite{BartholdiGrigorchuk02}; and
      \cite{Bartholdi03}, Thm. 4.6)

$n=6$ Fabrykowski-Gupta-3 group (see \cite{FabrykowskiGupta85}; cf. 
      \cite{Bartholdi03}, Thm. 4.7)

$n=7$ Gupta-Sidki-3 group (see \cite{Sidki87}); cf.
      \cite{Bartholdi03}, Thm. 4.9)

$n=8$ an index-3 subgroup of the Gupta-Sidki group

$n=9$ Basilica group (see \cite{GrigorchukZuk02}, \cite{BartholdiVirag05})
 
\enditems

\> EngelGroup( <n>, <c> ) F

returns an L-presentation for an Engel group on <n> generators that satisfy the
<c>-th Engel identity. 

\> FreeNilpotentGroup( <n>, <c> ) F

returns an L-presentation for a free nilpotent group of class <c> on <n> 
generators.

\> GeneralizedFabrykowskiGuptaLpGroup( <n> )

returns an L-presentation for the <n>-th generalized Fabrykowski-Gupta group.
For <n>=3 it coincides with the Fabrykowski-Gupta group above.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{The underlying free group}

An L-presented group is defined as an image of its underlying free group. 
Note that these are two different {\GAP} objects, but the elements of the 
L-presented group are represented by words in the underlying free group.

\> FreeGroupOfLpGroup( <LpGroup> ) A

returns the underlying free group of the L-presented group <LpGroup>. 

\> FreeGeneratorsOfLpGroup( <LpGroup> ) A

returns the generators of the free group underlying the L-presented group
<LpGroup>.

\> GeneratorsOfGroup( <LpGroup> )  O
 
returns the generators of the L-presented group <LpGroup>. These are the 
images of the generators of the underlying free group under the natural
homomorphism.

\> UnderlyingElement( <elm> ) O

returns the preimage of an L-presented group element <elm> in the underlying 
free group. More precisely, each element of an L-presented group is represented 
by an element in the free group. This method returns the corresponding element
in the free group.

\> ElementOfLpGroup( <fam>, <elm> ) O

returns the element in the L-presented group represented by the word <elm> on
the generators of the underlying free group if <fam> is the family of
L-presented group elements.

\beginexample
gap> F:=FreeGroup(2);;
gap> G:=LPresentedGroup(F,[F.1^2],[IdentityMapping(F)],[F.2]);;
gap> FreeGroupOfLpGroup(G)=F;
true
gap> GeneratorsOfGroup(G);
[ f1, f2 ]
gap> FreeGeneratorsOfLpGroup(G);
[ f1, f2 ]
gap> last=last2;
false
gap> UnderlyingElement(G.1);
f1
gap> last in F;
true
gap> ElementOfLpGroup( ElementsFamily( FamilyObj( G ) ), last2 ) in G;
true
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Accessing an L-presentation}

The fixed relators, the iterated relators, and the endomorphisms 
of an L-presented group can be accessed by the following functions. 

\> FixedRelatorsOfLpGroup( <LpGroup> ) A

returns the fixed relators of the L-presented group <LpGroup> as words in 
the underlying free group. 

\> IteratedRelatorsOfLpGroup( <LpGroup> ) A

returns the iterated relators of the L-presented group <LpGroup> as words in
the underlying free group. 

\> EndomorphismsOfLpGroup( <LpGroup> ) A

returns the endomorphisms of the L-presented group <LpGroup> as endomorphisms
of the underlying free group.

\beginexample
gap> F:=FreeGroup(2);;
gap> G:=LPresentedGroup(F,[F.1^2],[IdentityMapping(F)],[F.2]);
<L-presented group on the generators [ f1, f2 ]>
gap> FixedRelatorsOfLpGroup(G);
[ f1^2 ]
gap> IteratedRelatorsOfLpGroup(G);
[ f2 ]
gap> EndomorphismsOfLpGroup(G);
[ IdentityMapping( <free group on the generators [ f1, f2 ]> ) ]
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Properties and attributes of L-presented groups}

To determine the method for the nilpotent quotient algorithm, L-presented
groups have the following properties: 

\> IsAscendingLPresentation( <LpGroup> ) P

tests whether the L-presentation of <LpGroup> is ascending; that
is if the set of fixed relators is empty.

\> IsInvariantLPresentation( <LpGroup> ) P

tests whether the L-presentation of <LpGroup> is invariant. Note that
no method is implemented.

\> UnderlyingInvariantLPresentation( <LpGroup> ) A

returns an underlying invariant L-presentation for the L-presented group
<LpGroup>. 

An *underlying invariant L-presentation* for the L-presentation 
%display{nonhtml}
$\langle S\mid Q\mid \Phi\mid R\rangle$
%enddisplay
%display{html}
%<var>&lang; S | Q | &Phi; | R &rang; </var>
%enddisplay
is an invariant L-presentation 
%display{nonhtml}
$\langle S\mid Q'\mid\Phi\mid R\rangle$ with $Q'\subseteq Q$.
%enddisplay
%display{html}
%<var>&lang; S | Q | &Phi; | R &rang; </var> with <var>Q'&sube; Q</var>.
%enddisplay
Note that such invariant L-presentation always exists since
%display{nonhtml}
$Q'=\emptyset$
%enddisplay
%display{html}
%Q'=&empty;
%enddisplay
yields an ascending and hence invariant L-presentation.

The underlying invariant L-presentation is used for computation purposes in
the nilpotent quotient algorithm. For this, it is useful to have such a
presentation with $Q'$ as large as possible. The method implemented in 
`UnderlyingInvariantLPresentation' returns the ascending L-presentation 
in general. 

\> EmbeddingOfAscendingSubgroup( <LpGroup> ) A 

returns an embedding of an ascending subgroup of the L-presented group 
<LpGroup>. This attribute is set for ascending L-presentations only. In 
this case it is the identity map of <LpGroup>.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Methods for L-presented groups}

\> MappedWord( <x>, <gens>, <imgs> ) O

returns the new group element that is obtained by replacing each occurrence
of a generator <gen> in the list of generators <gens> by the corresponding
group element <img> in the list of group elements <imgs>. The lists <gens>
and <imgs> must of course have the same length.

\> EpimorphismFromFpGroup( <LpGroup>, <n> ) O

returns an epimorphism from a finitely presented group on <LpGroup>. The 
finitely presented group is achieved from <LpGroup> by applying only words of 
length at most <n> of the monoid generated by the endomorphisms of 
<LpGroup>.

\> SplitExtensionByAutomorphismsLpGroup( <LpGroup>, <H>, <auts>) O

returns the split extension of the <LpGroup> by an L-presented or a finitely
presented group <H> where the action of each generator of <H> on 
<LpGroup> is described by an automorphism in <auts>. Thus for each generator
of <H> an automorphisms in <auts> must exist.

\beginexample
gap> F:=FreeGroup("a");
<free group on the generators [ a ]>
gap> H:=F/[F.1^3];
<fp group on the generators [ a ]>
gap> U:=ExamplesOfLPresentations(8);
<L-presented group on the generators [ t, u, v ]>
gap> aut:=GroupHomomorphismByImagesNC(U,U,[U.1,U.2,U.3],[U.2,U.3,U.1]);
[ t, u, v ] -> [ u, v, t ]
gap> SplitExtensionByAutomorphismsLpGroup(U,H,[aut]);
<L-presented group on the generators [ t, u, v, a ]>
\endexample
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%E  lpres.tex  . . . . . . . . . . . . . . . . . . . . . . . . ends here
