nielsen {freegroup}R Documentation

Outer automorphisms of the free group

Description

Vectorized functionality to implement outer automorphisms of the free group

Usage

permsymb_single_X(X,f)
permsymb_single_f(X,f)
permsymb_vec(X,f)
permsymb(X,f)
autosub_lowlevel(M,e,S)
autosub(X,e,S,automorphism_warning=TRUE)

Arguments

X, S

Object of class free

f

Permutation function

M

Single free group element, in two-row matrix form

e

Single element to substitute

automorphism_warning

Boolean, with default TRUE meaning to give a warning if the requested substitution is not an automorphism and FALSE meaning not to give the warning

Details

In 1924, Nielsen showed that the automorphism group of the free group with basis [x_1,\ldots,x_n] is generated by the following four elementary Nielsen transformations:

  1. switch x_1 and x_2

  2. Cyclically permute x_1,x_2,\ldots,x_n to x_2,\ldots,x_n,x_1

  3. Replace x_1 with x_1^{-1}

  4. Replace x_1 with x_1x_2.

The functions documented here give vectorized methods to effect such outer automorphisms, using the permutations package.

Operations 1 and 2 above generate the symmetric group S_n and such automorphisms are effected by function permsymb(). Operation 3 is carried out by by flip() and operation 4 by subsymb().

Functions permsymb_single_X(), permsymb_single_f(), permsymb_vec() and subsymb_lowlevel() are low-level helper functions that are not really suited for the end user; use permsymb(), (flip) and subsymb() instead.

Note

Function permsymb() is intended to work nicely with the permutations package; see inst/outer.Rmd for some illustrations. The function is not perfect.

Author(s)

Robin K. S. Hankin

References

Wikipedia contributors. (2018, October 29). “Automorphism group of a free group”. In Wikipedia, The Free Encyclopedia. Retrieved 19:58, January 10, 2019, from https://en.wikipedia.org/w/index.php?title=Automorphism_group_of_a_free_group&oldid=866270661

See Also

flip

Examples


P <- as.free(c("abc","aba","cc","ca"))
autosub(P,"c",as.free("xyz"))

flip(P,"c")
flip(P,"ac")




[Package freegroup version 1.1-8 Index]