outer: Outer automorphisms of the free group

Description Usage Arguments Details Author(s) References See Also Examples

Description

Vectorized functionality to implement outer automorphisms of the free group

Usage

1
2
3
4
5
6
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,...,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,...,x_n to x_2,...,x_n,x_1

  3. Replace x_1 with x_1^-1

  4. Replace x_1 with x_1 x_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.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
library("permutations")

X <- rfree(10,9)
permsymb(X, as.function(cyc_len(9)))

f <- as.function(rperm(10,9))
permsymb(as.free('abbccc'),f)
permsymb(abc(1)+abc(8),f)

autosub(abc(1:6),'c',as.free('xxxyz'))

S <- free(rbind(23+sample(1:3,10,TRUE),sample(c(-1,1,3),10,TRUE)))

all(X==X %>% autosub('a',S) %>% autosub('a',inverse(S)))
## should be TRUE


## Possible to use slightly slicker idiom:
g <- function(x){permsymb(x,f)}
g(X)

RobinHankin/freegroup documentation built on Aug. 13, 2019, 3:54 p.m.