45.10 Tracing generator images through Tietze transformations

Any sequence of Tietze transformations applied to a presentation, starting from some presentation P1 and ending up with some presentation P2, defines an isomorphism, j say, between the groups defined by P1 and P2, respectively. Sometimes it is desirable to know the images of the (old) generators of P1 or the preimages of the (new) generators of P2 under j. The GAP Tietze transformation functions are able to trace these images. This is not automatically done because the involved words may grow to tremendous length, but it will be done if you explicitly request for it by calling the function TzInitGeneratorImages.

  • TzInitGeneratorImages( P ) F

    expects P to be a presentation. It defines the current generators to be the ``old generators'' of P and initializes the (pre)image tracing. See TzImagesOldGens and TzPreImagesNewGens for details.

    You can reinitialize the tracing of the generator images at any later state by just calling the function TzInitGeneratorImages again.

    Note: A subsequent call of the function DecodeTree will imply that the images and preimages are deleted and reinitialized after decoding the tree.

    Moreover, if you introduce a new generator by calling the function AddGenerator described in section Changing Presentations, this new generator cannot be traced in the old generators. Therefore AddGenerator will terminate the tracing of the generator images and preimages and delete the respective lists whenever it is called.

  • OldGeneratorsOfPresentation( P ) F

    assumes that P is a presentation for which the generator images and preimages are being traced under Tietze transformations. It returns the list of old generators of P.

  • TzImagesOldGens( P ) F

    assumes that P is a presentation for which the generator images and preimages are being traced under Tietze transformations. It returns a list l of words in the (current) generators GeneratorsOfPresentation(P) of P such that the i-th word l[i] represents the i-th old generator OldGeneratorsOfPresentation(P)[i] of P.

  • TzPreImagesNewGens( P ) F

    assumes that P is a presentation for which the generator images and preimages are being traced under Tietze transformations. It returns a list l of words in the old generators OldGeneratorsOfPresentation(P) of P such that the i-th word l[i] represents the i-th (current) generator GeneratorsOfPresentation(P)[i] of P.

  • TzPrintGeneratorImages( P ) F

    assumes that P is a presentation for which the generator images and preimages are being traced under Tietze transformations. It displays the preimages of the current generators as Tietze words in the old generators, and the images of the old generators as Tietze words in the current generators.

    gap> G := PerfectGroup( IsSubgroupFpGroup, 960, 1 );
    A5 2^4
    gap> P := PresentationFpGroup( G );
    <presentation with 6 gens and 21 rels of total length 84>
    gap> TzInitGeneratorImages( P );
    gap> TzGo( P );
    #I  there are 3 generators and 11 relators of total length 96
    #I  there are 3 generators and 10 relators of total length 81
    gap> TzPrintGeneratorImages( P );
    #I  preimages of current generators as Tietze words in the old ones:
    #I  1. [ 1 ]
    #I  2. [ 2 ]
    #I  3. [ 4 ]
    #I  images of old generators as Tietze words in the current ones:
    #I  1. [ 1 ]
    #I  2. [ 2 ]
    #I  3. [ 1, -2, 1, 3, 1, 2, 1 ]
    #I  4. [ 3 ]
    #I  5. [ -2, 1, 3, 1, 2 ]
    #I  6. [ 1, 3, 1 ]
    gap> gens := GeneratorsOfPresentation( P );
    [ a, b, t ]
    gap> oldgens := OldGeneratorsOfPresentation( P );
    [ a, b, s, t, u, v ]
    gap> TzImagesOldGens( P );
    [ a, b, a*b^-1*a*t*a*b*a, t, b^-1*a*t*a*b, a*t*a ]
    gap> for i in [ 1 .. Length( oldgens ) ] do
    > Print( oldgens[i], " = ", TzImagesOldGens( P )[i], "\n" );
    > od;
    a = a
    b = b
    s = a*b^-1*a*t*a*b*a
    t = t
    u = b^-1*a*t*a*b
    v = a*t*a
    

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000