A Computer Implementation of Whitehead's Algorithm
A Computer Implementation of Whitehead's Algorithm
A Computer Implementation of Whitehead's Algorithm
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
1<br />
1
A <strong>Computer</strong> <strong>Implementation</strong> <strong>of</strong> Whitehead’s<br />
<strong>Algorithm</strong><br />
Michael Lau<br />
St. Olaf College<br />
Northfield, MN<br />
Advisor: Pr<strong>of</strong>essor Dennis Garity<br />
NSF sponsored REU Program<br />
Oregon State University<br />
August 24, 2010<br />
Abstract<br />
A computer implementation <strong>of</strong> Whitehead’s <strong>Algorithm</strong> is given for<br />
F (a, b, c), and is then applied to give a classification <strong>of</strong> minimal words<br />
<strong>of</strong> length at most 6. The notion <strong>of</strong> CP-equivalence is introduced in<br />
conjunction with this classification, and some properties <strong>of</strong> Whitehead<br />
automorphisms and equivalence are investigated.<br />
∗ The extensive help <strong>of</strong> Pr<strong>of</strong>essor Dennis Garity in developing the ideas found in this<br />
paper is gratefully acknowledged.<br />
1
1 Whitehead’s <strong>Algorithm</strong><br />
In 1936, J.H.C. Whitehead used topological techniques to prove that if two<br />
words <strong>of</strong> a finitely generated free group are equivalent under an automorphism<br />
<strong>of</strong> the group, then they are equivalent under a finite sequence <strong>of</strong> automorphisms<br />
<strong>of</strong> a special kind, the so-called Whitehead automorphisms [3],[4].<br />
Moreover, for any pair <strong>of</strong> equivalent words w and w ′ , where w ′ has the minimum<br />
length occurring in its equivalence class, the words obtained at each<br />
step in this transformation from w to w ′ are <strong>of</strong> strictly decreasing length until<br />
the minimum length is attained, after which the length remains constant.<br />
Some Notation.<br />
• x k will denote the inverse <strong>of</strong> the letter x k .<br />
• F (x 1 , . . . , x n ) will denote the free group <strong>of</strong> rank n, having x 1 , . . . , x n as<br />
its generators, with only the trivial relation x k x k = x k x k = 1.<br />
• w ∼ w ′ will indicate the equivalence <strong>of</strong> two words w, w ′ ∈ F =<br />
F (x 1 , . . . , x n ) under some automorphism <strong>of</strong> F .<br />
• |w| will be defined as the length <strong>of</strong> a word w. 1<br />
In the following two definitions, we will use L to denote the set {x 1 , x 2 , . . . , x n ,<br />
x 1 , x 2 , . . . , x n }.<br />
Definition 1.1 If F = F (x 1 , . . . , x n ), then the Whitehead Type I automorphisms<br />
<strong>of</strong> F are the members <strong>of</strong> AutF ∩ SymL–that is, those permutations<br />
φ acting on L and preserving inverses ( i.e. φ(x k ) = φ(x k )).<br />
Definition 1.2 If F = F (x 1 , . . . , x n ), then given any x ∈ L and A ⊂ L<br />
such that x ∈ A and x /∈ A, the pair (A, x) will be called a Whitehead<br />
Type II automorphism, where (A, x) is the automorphism determined by<br />
1 Keep in mind that the length <strong>of</strong> a word is the number <strong>of</strong> letters in the word after it<br />
has been reduced–i.e. after pairs <strong>of</strong> consecutive letters x k x k and x k x k have been removed<br />
until no such pair remains. By convention, the empty word is reduced.<br />
2
the following actions on each y ∈ L:<br />
⎧<br />
⎪⎨<br />
y(A, x) =<br />
⎪⎩<br />
yx if y ∈ A, y /∈ A, y /∈ {x, x}<br />
xy if y /∈ A, y ∈ A, y /∈ {x, x}<br />
xyx if y, y ∈ A<br />
y otherwise<br />
Example 1.1 ρ = (x 1 x 3 x 2 )(x 1 x 3 x 2 ) is a Whitehead Type I automorphism<br />
(written in cyclic notation).<br />
Example 1.2 If A = {x 1 , x 2 , x 1 , x 3 }, then x 2 x 1 x 3 x 2 x 3 (A, x 2 ) = x 2 x 2 x 1 x 2 x 2 x 3 x 2 x 2 x 3 =<br />
x 1 x 3 x 3 .<br />
Whitehead’s Theorem 1.1 If w, w ′ ∈ F = F (x 1 , . . . , x n ) such that w ∼<br />
w ′ and w ′ is <strong>of</strong> minimum length for their equivalence class, then there is some<br />
sequence α 1 , α 2 , . . . , α m <strong>of</strong> Whitehead automorphisms such that wα 1 α 2 · · · α m =<br />
w ′ and for all positive integers k ≤ m |wα 1 α 2 · · · α k | ≤ |wα 1 α 2 · · · α k−1 | with<br />
strict inequality unless wα 1 α 2 · · · α k−1 is also <strong>of</strong> minimum length.<br />
As was mentioned above, this result was discovered and proven by Whitehead<br />
[3],[4]. Successively simpler pro<strong>of</strong>s have been given by Rapaport[2] in 1958,<br />
and by Higgins and Lyndon[1] in 1974.<br />
The theorem has several immediate consequences, <strong>of</strong> which we will concern<br />
ourselves with only the simplest and most obvious–the existence <strong>of</strong> an<br />
easily constructible algorithm for determining whether or not two words <strong>of</strong><br />
a finitely generated free group are equivalent under an automorphism <strong>of</strong> the<br />
group. Moreover, since our ultimate goal in developing a computer implementation<br />
<strong>of</strong> this algorithm is to provide a useful tool for generating and<br />
testing hypotheses related to such equivalence or nonequivalence, we will<br />
limit ourselves to studying applications <strong>of</strong> the algorithm to free groups <strong>of</strong><br />
rank 3, in order to study a nontrivial automorphism group while avoiding<br />
the complexity and long computer computation times associated with free<br />
groups <strong>of</strong> higher rank. The specific value <strong>of</strong> 3 was chosen to benefit fellow<br />
researchers studying free homotopy classes <strong>of</strong> self-intersecting curves on the<br />
twice-punctured torus, since they consider equivalence questions regarding<br />
elements <strong>of</strong> F (a, b, c) under automorphisms <strong>of</strong> the group when demonstrating<br />
distinctness <strong>of</strong> homotopy classes. 2<br />
2 Such questions arise since homotopic curves are equivalent under homeomorphisms <strong>of</strong><br />
the torus, which in turn induce automorphisms <strong>of</strong> the first homology group, which is, in<br />
3
Whitehead’s <strong>Algorithm</strong><br />
Suppose w, v ∈ F = F (x 1 , . . . , x n ).<br />
1. Find mimimum length words w ∗ and v ∗ equivalent to w and to v, respectively.<br />
Since there are only finitely many Whitehead automorphisms <strong>of</strong><br />
F (x 1 , . . . , x n ), this may be done as follows:<br />
Check to see if w or v is equivalent , under a single Whitehead automorphism,<br />
to a word <strong>of</strong> strictly lesser length. If one <strong>of</strong> them is, then<br />
replace it with this shorter word and repeat this process. If not, then<br />
w and v are <strong>of</strong> minimum length.<br />
2. Make a list <strong>of</strong> all the minimum length words equivalent to w by executing<br />
the following steps:<br />
(i) Using the minimum length word w ∗ ∼ w found in Step 1, make a<br />
list consisting <strong>of</strong> w ∗ and all the same-length words equivalent to<br />
w ∗ under a single Whitehead automorphism.<br />
(ii) Make a new list by appending (to the old list created in Step 2(i))<br />
all the same-length words equivalent to a word on the old list via<br />
a single Whitehead automorphism. If this new list contains no<br />
words not already found on the old list, then clearly there are<br />
no other minimum length words that are equivalent to w under a<br />
finite sequence <strong>of</strong> Whitehead automorphisms. If, on the contrary,<br />
it contains new words, then reapply this step, using the “new<br />
list” in place <strong>of</strong> the “old list”. Note that since there are only<br />
finitely many words <strong>of</strong> a given length in F , Step 2 must eventually<br />
terminate.<br />
3. If v ∗ is on the list produced in Step 2, then clearly w ∼ v. Otherwise,<br />
it follows directly from Whitehead’s Theorem that w ≁ v.<br />
this special case, F (a, b, c). This means that if the words corresponding to two curves are<br />
nonequivalent under AutF (a, b, c), then the two curves must belong to distinct homotopy<br />
classes.<br />
4
2 A Maple V <strong>Implementation</strong> <strong>of</strong> Whitehead’s<br />
<strong>Algorithm</strong><br />
Now that we have an algorithmic interpretation <strong>of</strong> Whitehead’s Theorem,<br />
we are almost ready to present a series <strong>of</strong> programs (written for Maple V,<br />
release 4) that will perform various functions related to the execution <strong>of</strong> the<br />
Whitehead <strong>Algorithm</strong>. However, we will first need to make a few observations<br />
in order to reduce computer computation time later:<br />
Lemma 2.1 Whitehead Type I automorphisms never change the length <strong>of</strong> a<br />
word.<br />
Pro<strong>of</strong> Since Whitehead Type I automorphisms are permutations, they cannot<br />
increase the number <strong>of</strong> letters in a word. They preserve inverses while<br />
permuting letters, which means that they cannot introduce new adjacent xx<br />
or xx pairs, so they cannot decrease word length.<br />
Lemma 2.2 If a letter x and its inverse x are not present in a word w,<br />
then no Whitehead Type II automorphisms <strong>of</strong> the form (A, x) will reduce the<br />
length <strong>of</strong> w.<br />
Pro<strong>of</strong> By definition, (A, x) acts on letters y ∈ F (x 1 , · · · , x n ) by mapping y<br />
to y, xy, yx, or xyx. Since we have assumed that x is not present in w, the<br />
result <strong>of</strong> such mappings is merely the possible introuction <strong>of</strong> additional letters<br />
(occurrences <strong>of</strong> x and/or x) without the possibility <strong>of</strong> new cancellations (since<br />
there were no previously existing occurrences <strong>of</strong> x or x with which to cancel).<br />
Lemma 2.3 If w and v are equivalent words in F (x 1 , · · · , x n ) and v is <strong>of</strong><br />
minimum length, then ∃α 1 , α 2 , . . . , α s such that<br />
(i) wα 1 α 2 · · · α s = v<br />
(ii) α 1 , α 2 , . . . , α s−1 are Whitehead Type II automorphisms<br />
(iii) α s is a (possibly trivial) Whitehead Type I automorphism<br />
(iv) |wα 1 α 2 · · · α k | ≤ |wα 1 α 2 · · · α k−1 | with strict inequality unless wα 1 α 2 · · · α k−1<br />
is <strong>of</strong> minimum length.<br />
Pro<strong>of</strong> By Whitehead’s Theorem, there exist Whitehead automorphisms<br />
β 1 , . . . , β r such that wβ 1 · · · β r = v and |wβ 1 · · · β k | ≤ |wβ 1 · · · β k−1 | for all<br />
5
1 ≤ k ≤ r with strict inequality unless wβ 1 · · · β k−1 is also <strong>of</strong> minimum<br />
length.<br />
Note that for all y ∈ F (x 1 , · · · , x n ), Whitehead Type I automorphisms ρ,<br />
and Whitehead Type II automorphisms (A, x),<br />
yρ(A, x) = y(Aρ −1 , xρ −1 )ρ, where Aρ −1 = {zρ −1 : z ∈ A}. (1)<br />
This follows from the facts that yρ = x iff y = xρ −1 , yρ ∈ A iff y ∈ Aρ −1 ,<br />
and xρ −1 ρ = x.<br />
Applying this observation to Whitehead’s result, inducting on the position<br />
<strong>of</strong> a Whitehead Type I automorphism ρ ∈ {β 1 , . . . , β r }, then inducting<br />
on the number <strong>of</strong> Whitehead Type I automorphisms in {β 1 , . . . , β r } gives a sequence<br />
<strong>of</strong> Whitehead automorphisms γ 1 , . . . , γ r such that wγ 1 · · · γ r = v and<br />
there are no Whitehead Type I automorphisms occurring before a Whitehead<br />
Type II automorphism in this sequence. Since the set <strong>of</strong> all Whitehead Type<br />
I automorphisms clearly forms a group under function composition 3 ,the composition<br />
<strong>of</strong> all the Whitehead Type I automorphisms in γ 1 . . . , γ r is clearly a<br />
single Whitehead Type I automorphism, which proves (i), (ii), and (iii).<br />
To prove (iv), assume α 1 , . . . , α n are a sequence <strong>of</strong> Whitehead automorphisms<br />
given by Whitehead’s Theorem. Suppose ρ = α j is Whitehead Type<br />
I and (A, x) = α j+1 is Whitehead Type II. Let α j+1 ′ = (Aρ −1 , xρ −1 ). By<br />
Lemma 2.1, |wα 1 · · · α j | = |wα 1 · · · α j−1 |, so it follows from Whitehead’s<br />
Theorem that wα 1 · · · α j−1 has minimal length. It is now sufficient to show<br />
that (a) |wα 1 · · · α j−1 α j+1| ′ = |wα 1 · · · α j−1 | and (b) |wα 1 · · · α j−1 α j+1α ′ j | ≤<br />
|wα 1 · · · α j−1 α j+1| ′ with strict inequality unless wα 1 · · · α j−1 α j+1 ′ has minimal<br />
length. Note that |wα 1 · · · α j−1 α j+1| ′ = |wα 1 · · · α j−1 α j+1α ′ j | = |wα 1 · · · α j+1 | =<br />
|wα 1 · · · α j−1 |. (The first equality is from Lemma 2.1, the second comes<br />
from Equation (1), and the third follows from monotonicity and the fact<br />
that wα 1 · · · α j−1 has minimal length.) But what we have just shown (besides<br />
proving (a)) is that wα 1 · · · α j−1 α j+1 ′ has minimal length. Then we may<br />
complete our pro<strong>of</strong> <strong>of</strong> (iv) merely by noting that |wα 1 · · · α j−1 α j+1α ′ j | =<br />
|wα 1 · · · α j−1 α j+1|.<br />
′<br />
These lemmas may now be combined with Whitehead’s <strong>Algorithm</strong> to<br />
construct the following collection <strong>of</strong> Maple programs:<br />
3 Adopting the notation <strong>of</strong> Definition 1.1, AutF and SymL can easily be embedded<br />
as subgroups <strong>of</strong> SymF . Then since the intersection <strong>of</strong> subgroups is itself a group, the<br />
Whitehead Type I automorphisms form a group.<br />
6
2.1 DWH(”Do WHitehead automorphism”)<br />
DWH takes 3 arguments, a word wd, a Whitehead set A and a ”distinguished”<br />
element x. (x and x should not be in A). It returns the result <strong>of</strong><br />
applying the Whitehead Type II automorphism (A ∪ {x}, x) to wd.<br />
kill takes 2 arguments, a word wd and a positive integer k. It returns the<br />
word formed by deleting the kth and (k + 1)st letters <strong>of</strong> wd.<br />
> kill :=proc(wd,k)<br />
> if length(wd)>k<br />
> then wdn :=cat(substring(wd,1..k-1),substring(wd,k+2..length(wd)));<br />
> else wdn:=wd;fi;<br />
> wdn;<br />
> end:<br />
inv(”INVerse”) takes 1 argument, a letter from the set {a, b, c, A, B, C} and<br />
returns the inverse <strong>of</strong> that letter where X denotes the inverse <strong>of</strong> x for all x<br />
in {a, b, c}.<br />
> inv:=proc(y) x:=y;<br />
> if x=’a’ then X:=’A’;<br />
> elif x=’b’ then X:=’B’;<br />
> elif x=’c’ then X:=’C’;<br />
> elif x=’A’ then X:=’a’;<br />
> elif x=’B’ then X:=’b’;<br />
> elif x=’C’ then X:=’c’;<br />
> else ERROR(’dontusebadwords’);<br />
> fi;<br />
> end:<br />
CFC(”Check For Cancellations”) takes 1 argument, a word wd on 6 letters<br />
a, b, c, A, B, C where X denotes the inverse <strong>of</strong> x for all x in {a, b, c}. It<br />
returns the word formed by performing all allowable cancellations on wd. If<br />
the empty word is the result, it returns ”1”.<br />
7
CFC :=proc(wd::string)<br />
> w:=wd;<br />
> l:=length(w); k:=1;<br />
> if l>1<br />
> then while k < l<br />
> do<br />
> if substring(w,k)=inv(substring(w,k+1))<br />
> then w :=kill(w,k); k:=max(k-1,1); l:=l-2;<br />
> else k:=k+1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if l=0 then w:=‘1‘ else w; fi;<br />
> end:<br />
> DWH :=proc(wd,set,x)<br />
> w2:=wd; w3:=w2;<br />
> l:=length(w2); m:=1;<br />
> for k from 1 to l do<br />
> if member(substring(w2,k..k),{x,inv(x)})<br />
> then m:=m+1 elif member(substring(w2,k..k),set)<br />
> then if member(inv(substring(w2,k..k)),set)<br />
> then w3:=cat(substring(w3,1..m-1),inv(x),substring(w2,k..k),<br />
> x,substring(w2,k+1..length(w2))); m:=m+3;<br />
> else w3:=cat(substring(w3,1..m),x,substring(w2,k+1..length(w2)));<br />
> m:=m+2;<br />
> fi;<br />
> elif member(inv(substring(w2,k..k)),set)<br />
> then w3:=cat(substring(w3,1..m-1),inv(x),substring(w2,k..length(w2)));<br />
> m:=m+2;<br />
> else m:=m+1;<br />
> fi;<br />
> od; w3;<br />
> end:<br />
8
2.2 minwd (”Minimum Word”)<br />
minwd 4 takes two arguments, a word wd in the free group F (a, b, c) with the<br />
convention that X denotes the inverse <strong>of</strong> x for all x in {a, b, c}, and an empty<br />
list [ ]. To avoid complications with Maple ”evaluating” the word it is given,<br />
it is best to enclose the argument in a pair <strong>of</strong> single quotation marks ’and’. It<br />
returns a word that is Whitehead equivalent to wd and is <strong>of</strong> minimal length,<br />
and the list <strong>of</strong> Whitehead automorphisms needed to get the minimal word.<br />
It uses all three <strong>of</strong> the lemmas to reduce computation time.<br />
oldminwd takes one argument, a word wd in F (a, b, c). To avoid complications<br />
with Maple ”evaluating” the word it is given, it is best to enclose the<br />
argument in a pair <strong>of</strong> single quotation marks ’and’. It returns a word that is<br />
Whitehead equivalent to wd and is <strong>of</strong> minimal length.<br />
Whitehead sets<br />
aset<br />
> aset:=combinat[powerset]({’b’,’c’,’B’,’C’}):<br />
> aset:=aset minus {{}};<br />
Aset<br />
> Aset:=combinat[powerset]({’b’,’c’,’B’,’C’}):<br />
> Aset:=Aset minus {{}};<br />
bset<br />
> bset:=combinat[powerset]({’a’,’c’,’A’,’C’}):<br />
> bset:=bset minus {{}};<br />
Bset<br />
> Bset:=combinat[powerset]({’a’,’c’,’A’,’C’}):<br />
> Bset:=Bset minus {{}};<br />
cset<br />
> cset:=combinat[powerset]({’b’,’a’,’B’,’A’}):<br />
4 The idea and code for using “Whitehead sets” to improve the efficiency <strong>of</strong> minwd (via<br />
Lemma 2.2) was supplied by Pr<strong>of</strong>essor Garity.<br />
9
cset:=cset minus {{}};<br />
Cset<br />
> Cset:=combinat[powerset]({’b’,’a’,’B’,’A’}):<br />
> Cset:=Cset minus {{}};<br />
> minwd:=proc(wd::string,lst::list)<br />
> wold:=CFC(wd); WHlist:=lst; wnew:=wold;<br />
> k:=1;<br />
> while k > 0 do<br />
> j:=0;<br />
> if SearchText(‘a‘,wold)>0 or SearchText(‘A‘,wold)>0<br />
> then for i from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, aset[i],‘a‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[aset[i],a]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i1 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, Aset[i1],‘A‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[Aset[i1],A]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if SearchText(‘b‘,wold)>0 or SearchText(‘B‘,wold)>0<br />
> then for i2 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, bset[i2],‘b‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[bset[i2],b]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i3 from 1 to 15 do<br />
10
wnew:=CFC(DWH(wold, Bset[i3],‘B‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[Bset[i3],B]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if SearchText(‘c‘,wold)>0 or SearchText(‘C‘,wold)>0<br />
> then for i4 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, cset[i4],‘c‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[cset[i4],c]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i5 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, Cset[i5],‘C‘));<br />
> if length(wnew) then wold:=wnew; WHlist:=[op(WHlist),[Cset[i5],C]];<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if j=1 then k:=1; else k:=0; fi;<br />
> od;<br />
> ouput:=[wold,WHlist];<br />
> end:<br />
> oldminwd:=proc(wd::string)wold:=CFC(wd); wnew:=wold;<br />
> k:=1;<br />
> while k > 0 do<br />
> j:=0;<br />
> if SearchText(‘a‘,wold)>0 or SearchText(‘A‘,wold)>0<br />
> then for i from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, aset[i],‘a‘));<br />
> if length(wnew)
then wold:=wnew;<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i1 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, Aset[i1],‘A‘));<br />
> if length(wnew) then wold:=wnew; j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if SearchText(‘b‘,wold)>0 or SearchText(‘B‘,wold)>0<br />
> then for i2 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, bset[i2],‘b‘));<br />
> if length(wnew) then wold:=wnew;<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i3 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, Bset[i3],‘B‘));<br />
> if length(wnew) then wold:=wnew;<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if SearchText(‘c‘,wold)>0 or SearchText(‘C‘,wold)>0<br />
> then for i4 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, cset[i4],‘c‘));<br />
> if length(wnew) then wold:=wnew;<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> for i5 from 1 to 15 do<br />
> wnew:=CFC(DWH(wold, Cset[i5],‘C‘));<br />
12
if length(wnew) then wold:=wnew;<br />
> j:=1;<br />
> fi;<br />
> od;<br />
> fi;<br />
> if j=1 then k:=1; else k:=0; fi;<br />
> od;<br />
> ouput:=wold;<br />
> end:<br />
DPS(Do PermutationS) takes 1 argument, a word wd from the free group<br />
F (a, b, c) where X denotes the inverse <strong>of</strong> x for all x in {a, b, c}. It returns a set<br />
containing the results <strong>of</strong> performing each Whitehead Type 1 automorphism<br />
(permutations <strong>of</strong> letters in wd) on wd.<br />
transpose takes 3 arguments, a word wd and 2 letters x and y. It returns<br />
the word formed by replacing every x occurring in wd with a y and every y<br />
occurring in wd with an x.<br />
> transpose :=proc(wd,x,y) l :=length(wd); w1:=wd;<br />
> for k from 1 to l do<br />
> if substring(w1,k..k)=x<br />
> then w1:=cat(substring(w1,1..k-1),y,substring(w1,k+1..l));<br />
> elif substring(w1,k..k)=y<br />
> then w1:=cat(substring(w1,1..k-1),x,substring(w1,k+1..l));<br />
> else;<br />
> fi;<br />
> od;<br />
> w1;<br />
> end:<br />
II(interchange inverses) takes 2 arguments, a word wd and a letter x. It<br />
returns the word formed by replacing every x occurring in wd with the inverse<br />
<strong>of</strong> x.<br />
13
II:=proc(wd, x)<br />
> w9:=transpose(wd,x,inv(x));<br />
> end:<br />
P1,P2,P3,P4, and P5 (”Permutations 1 through 5”) each take 1 argument,<br />
a word wd in the free group F (a, b, c) (where X denotes the inverse <strong>of</strong> x for<br />
all x in {a, b, c}), and return the word formed by permuting the letters <strong>of</strong> wd<br />
according to the permutations (in cyclic notation)<br />
• (a b)(A B) for P1,<br />
• (a c)(A C) for P2,<br />
• (b c)(B C) for P3,<br />
• (a b c)(A B C) for P4,<br />
• (a c b)(A C B) for P5.<br />
>P1:=proc(wd) w1:=wd; w1:=transpose(transpose(w1,’a’,’b’),’A’,’B’); end:<br />
>P2:=proc(wd) w1:=wd; w1:=transpose(transpose(w1,a,c),A,C); end:<br />
>P3:=proc(wd) w1:=wd; w1:=transpose(transpose(w1,’b’,’c’),’B’,’C’); end:<br />
>P4:=proc(wd)w1:=wd;<br />
>w1:=transpose(transpose(transpose(transpose(w1,’a’,’b’),’A’,’B’),’a’,’c’),<br />
> ’A’,’C’); end:<br />
>P5:=proc(wd) w1:=wd; w1:=transpose(transpose(transpose(transpose(w1,’a’,’c’),<br />
> ’A’,’C’),’a’,’b’),’A’,’B’);end:<br />
> Permls:=combinat[powerset]({a,b,c});<br />
> DPS:=proc(wd) ls:={wd};for k from 1 to 8 do if Permls[k]={} then ls:=ls<br />
> union {P1(wd)} union {P2(wd)} union {P3(wd)} union {P4(wd)} union {P5(wd)};<br />
> else wd9:=wd;for m from 1 to nops(Permls[k]) do<br />
> wd9:=II(wd9,Permls[k][m]); od; ls:=ls union {wd9} union {P1(wd9)} union<br />
> {P2(wd9)} union {P3(wd9)} union {P4(wd9)} union {P5(wd9)};fi;od;ls; end:<br />
14
2.3 EWL(Equivalent Word List)<br />
EWL takes 1 argument, a reduced word wd from F (a, b, c). It returns the<br />
list <strong>of</strong> all reduced words that are Whitehead equivalent to wd. It uses the<br />
results <strong>of</strong> Lemma 2.1 and Lemma 2.3 to reduce computation time.<br />
EW1L(Equivalent via a Whitehead Type 1 automorphism (allowable permutation<br />
<strong>of</strong> letters)) takes 1 argument, a set <strong>of</strong> reduced words wdls from<br />
F (a, b, c). It returns the set <strong>of</strong> all reduced words equivalent to a word from<br />
wdls under a Whitehead Type 1 automorphism.<br />
> EW1L:=proc(ewl::set) wl:=ewl;<br />
> for k from 1 to nops(ewl) do<br />
> wl:=wl union DPS(ewl[k]);<br />
> od; end:<br />
EW2L(Equivalent via a single Whitehead Type 2 automorphism List) takes<br />
one argument, a reduced word wd from F (a, b, c) and returns the set <strong>of</strong> all<br />
reduced words equivalent to wd under a single Whitehead Type 2 automorphism.<br />
> EW2L:=proc(wd) global w5;w5:=0;<br />
> w4:=wd; l:=length(w4); ewl:={};<br />
> ps:=combinat[powerset]([’a’,’b’,’c’,’A’,’B’,’C’]);<br />
> for k from 1 to 64 do<br />
> if ps[k]=[] then ps:=ps; else<br />
> for i from 1 to nops(ps[k]) do<br />
> if member(inv(ps[k][i]),ps[k]) then ps:=ps;<br />
> else w5:=CFC(DWH(w4,ps[k],ps[k][i]));<br />
> if length(w5) then ewl:=ewl union {w5}; fi; fi; od;fi; od; ewl;end:<br />
CWL(Complete Word List) takes 1 argument, a set <strong>of</strong> reduced words wdls<br />
from F (a, b, c). It returns the list <strong>of</strong> all reduced words that are Whitehead<br />
equivalent to a word from wdls.<br />
15
CWL:=proc(wdls)<br />
> w7:=wdls; w8:=wdls; j:=0; while j for k from 1 to nops(w7) do<br />
> w8:=w8 union EW2L(w7[k]); od;<br />
> if w8=w7 then p:=EW1L(w7); j:=9; else j:=0; w7:=w8;<br />
> fi; od;p; end:<br />
> EWL:=proc(wd)<br />
> CWL({wd}); end:<br />
2.4 EQW(EQuivalent Words)<br />
EQW takes 2 arguments, each a (possibly unreduced) word from F (a, b, c). It<br />
returns ”equivalent” if the 2 words are equivalent under some automorphism<br />
<strong>of</strong> F (a, b, c), and ”not equivalent” if they are not equivalent under any automorphism<br />
<strong>of</strong> F (a, b, c). Due to the limitations <strong>of</strong> Maple V’s computational<br />
engine, it is sometimes necessary to use the functions ”minwd” and ”EWL”<br />
instead <strong>of</strong> ”EQW” to make the determination <strong>of</strong> equivalence when words are<br />
<strong>of</strong> longer length.<br />
> EQW:=proc(wd1,wd2)<br />
> if member(oldminwd(wd2),EWL(oldminwd(wd1))) then ’equivalent’;<br />
> else ’not equivalent’; fi;<br />
> end:<br />
3 Applications to Minimal Words <strong>of</strong> Length<br />
at most 6<br />
Using the programs constructed in Section 2, it is possible to write simple<br />
functions to find the minimal words in F (a, b, c) (i.e. words <strong>of</strong> minimal<br />
length in their equivalence class) <strong>of</strong> length at most 6, and then partition them<br />
16
into equivalence classes. After making the trivial observation that Whitehead’s<br />
Theorem guarantees that minimal words <strong>of</strong> different length are nonequivalent,<br />
the approach becomes straightforward. Unfortunately, programs<br />
relying on “brute force” to perform these tasks soon encounter prohibitively<br />
long run-times. Examples <strong>of</strong> straightforward “brute-force” programs (which<br />
we used for words <strong>of</strong> length at most 5) and a slightly more complex approach(used<br />
for length-6 words) 5 may be found in the Appendix.<br />
Though lists generated in this manner are complete, they do not easily<br />
lend themselves to analysis, since many <strong>of</strong> their equivalence classes are quite<br />
large. 6 For this reason, it is helpful to introduce a new notion <strong>of</strong> equivalence,<br />
by which we will further categorize elements within each equivalence class.<br />
Definition 3.1 Suppose w, v ∈ F (a, b, c) with w = w 1 , . . . , w n for some w i ∈<br />
{a, b, c, a, b, c}. We say that w and v are cyclically equivalent if v =<br />
w k+1 w k+2 · · · w n w 1 · · · w k for some k ≤ n.<br />
Definition 3.2 Two words w 1 , w 2 ∈ F (a, b, c) are said to be CP-equivalent 7<br />
if there exists a Whitehead Type I automorphism ψ such that ψ(w 1 ) is cyclically<br />
equivalent to w 2 .<br />
Definition 3.3 Given a minimal-length word w ∈ F (a, b, c), we say that w<br />
is in reduced-CP (R-CP) form if it is the first word <strong>of</strong> its CP-equivalence<br />
class to occur in the natural lexicographic ordering given by the ordered (firstto-last)<br />
set {a, b, c, a, b, c}.<br />
Example 3.1 The words abacbc and bcabac are cyclically equivalent.<br />
Example 3.2 The word cababc is CP-equivalent to aabcbc. Moreover, aabcbc<br />
is in R-CP form.<br />
Notation w CP<br />
∼ v will indicate that w and v are CP-equivalent.<br />
Remark 3.1 CP-equivalence implies Whitehead equivalence.<br />
That is, if<br />
5 In our “length-6 computations,” we make use <strong>of</strong> the fact that we can generate all<br />
length-6 minimal words by applying Whitehead automorphisms to words whose first letter<br />
is “a,” whose second letter is “a” or “b,”and contain no occurrences <strong>of</strong> xx or xx.<br />
6 In fact one such equivalence class(for words <strong>of</strong> length 6) contains 1968 members.<br />
7 Cyclically equivalent after Whitehead Type I automorphisms (Permutations)<br />
17
w CP<br />
∼ v, then w ∼ v.<br />
Pro<strong>of</strong> If w = w 1 · · · w n ∈ F (x 1 , . . . , x n ) and w 1 = x j then<br />
w({x 1 , . . . , x n , x 1 , . . . , x j−2 , x j−1 , x j+1 , x j+2 . . . , x n }, x j ) = w 2 · · · w n w 1 .<br />
result now follows by induction.<br />
The<br />
Remark 3.2 R-CP words always begin with a string <strong>of</strong> one or more consecutive<br />
“a’s”. Moreover, this string is always maximal, in the sense that no<br />
longer strings <strong>of</strong> consecutive occurrences <strong>of</strong> a single letter can occur in the<br />
same CP-class.<br />
Pro<strong>of</strong> If an R-CP word w did not begin with a maximal string <strong>of</strong> a’s, a<br />
permutation (which could easily be chosen to be inverse-preserving) could be<br />
applied to any cyclically-equivalent word beginning with a maximal sameletter<br />
string to get a word CP-equivalent to w and occurring ahead <strong>of</strong> it in<br />
the lexicographic ordering.<br />
We can now proceed with our classification.<br />
Equivalence Classes <strong>of</strong> Minimal Words <strong>of</strong> Length at Most 6<br />
Length Class Card. <strong>of</strong> Class R-CP elements<br />
1 1 6 a<br />
2 1 6 aa<br />
3 1 6 aaa<br />
4 1 6 aaaa<br />
2 24 abab<br />
3 96 aabb<br />
abab<br />
5 1 6 aaaaa<br />
2 120 aabab<br />
3 120 aabab<br />
4 240 aaabb<br />
aabab<br />
18
Length Class Card. <strong>of</strong> Class R-CP elements<br />
6 1 6 aaaaaa<br />
2 72 aaabbb<br />
3 72 aabaab<br />
4 72 aabaab<br />
5 144 aaabab<br />
6 144 aaabab<br />
7 144 aabbab<br />
8 144 aabbab<br />
9 144 aabbab<br />
10 360 aaaabb<br />
aaabab<br />
aabaab<br />
11 1968 aabbcc<br />
aabcbc<br />
aabccb<br />
aabcbc<br />
aabcbc<br />
abacbc<br />
abacbc<br />
abacbc<br />
abcabc<br />
The first column in the table gives the length <strong>of</strong> the minimal words we<br />
are considering, the second column is simply a numbering <strong>of</strong> the equivalence<br />
classes (under automorphisms <strong>of</strong> F (a, b, c)), the third gives the cardinality<br />
<strong>of</strong> the appropriate equivalence class, and the rightmost column gives the<br />
R-CP element <strong>of</strong> each CP-equivalence class in the appropriate Whitehead<br />
equivalence class. 8<br />
The information in the table suggests several questions. Why are there<br />
no minimal words that are not <strong>of</strong> the form x n (x ∈ {a, b, c, a, b, c}) for<br />
n < 4 Why are there no “c’s” and “c’s” in R-CP words <strong>of</strong> length < 6 Is<br />
the number <strong>of</strong> occurrences <strong>of</strong> a letter x and its inverse x in a minimal word<br />
8 Observe that it is very easy to generate all minimal-length elements <strong>of</strong> a Whitehead<br />
equivalence class using only its R-CP elements–simply write the words cyclically equivalent<br />
to the R-CP element(if the R-CP element is <strong>of</strong> length n, then there are n such words),<br />
and then apply the Whitehead Type I permutations (48 <strong>of</strong> them for F(a,b,c)).<br />
19
always constant (up to allowable permutations <strong>of</strong> letters) for all words in its<br />
Whitehead equivalence class Can we generate R-CP elements recursively by<br />
appending “a’s” to R-CP elements <strong>of</strong> shorter length We will discuss these<br />
and further questions in the sections that follow.<br />
4 Results<br />
Definition 4.1 Suppose w ∈ F (x 1 , . . . , x n ) and x ∈ {x 1 . . . , x n }. The sum<br />
<strong>of</strong> the number <strong>of</strong> occurrences <strong>of</strong> x and the number <strong>of</strong> occurrences <strong>of</strong> x in w<br />
is called the weight <strong>of</strong> x in w. 9<br />
Theorem 4.1 If a letter x has weight 1 in a word w, then w has minimal<br />
length 1.<br />
Pro<strong>of</strong> Suppose w = w 1 w 2 · · · w n is a word in which a letter x = w k has<br />
weight 1. Apply the Whitehead automorphism T 1 = ({w k−1 , x}, w k−1 ) to w.<br />
This gives wT 1 = w 1 w 2 · · · w k−2 xw k+1 · · · w n . A pair <strong>of</strong> simple inductions on<br />
k now completes the pro<strong>of</strong>.<br />
Corollary 4.1 Suppose w is a word <strong>of</strong> length n > 1. Then w contains no<br />
more than ⌊ ⌋<br />
n<br />
2 letters <strong>of</strong> nonzero weight.<br />
Note that Corollary 4.1 settles the question <strong>of</strong> why all minimal words <strong>of</strong><br />
length < 4 are powers <strong>of</strong> some letter, and why there are no “c’s” and “c’s”<br />
in R-CP words <strong>of</strong> length < 6.<br />
Theorem 4.2 (Rapaport) 10 Suppose that w is a minimal word in F (x 1 , . . . , x n ),<br />
and that x 1 , . . . , x n have weights k 1 , . . . , k n , respectively, in w. Then the letters<br />
x 1 , . . . , x n have the same weights in any minimal word v equivalent to<br />
w, up to permutation <strong>of</strong> subscripts.<br />
Pro<strong>of</strong> By Whitehead’s Theorem, there exists a sequence <strong>of</strong> level (i.e. lengthpreserving)<br />
Whitehead automorphisms taking w to v. Whitehead Type II<br />
9 The weight is undefined and assumed not to exist for inverses <strong>of</strong> generators.<br />
10 This appears as “Theorem 4” in [2].<br />
20
automorphisms act by introducing occurrences <strong>of</strong> a “special letter” x or its<br />
inverse x. In doing so, they sometimes cause cancellations <strong>of</strong> previouslyexisting<br />
occurrences <strong>of</strong> x or x. No other cancellations can result. If an automorphism<br />
is length-preserving, then the introduction <strong>of</strong> each new x or x must<br />
be balanced by a cancellation <strong>of</strong> a previously-existing x or x, thus preserving<br />
weights. Type I automorphisms are just inverse-preserving permutations, so<br />
they obviously preserve weights up to permutation <strong>of</strong> subscripts.<br />
The contrapositive <strong>of</strong> Rapaport’s Theorem is clearly a valuable criterion<br />
for non-equivalence, and could potentially be exploited to speed up some <strong>of</strong><br />
the code presented in Section 2.<br />
5 Questions for Further Research<br />
It would be especially nice to find some recursive relationships (with respect<br />
to word length) between minimal words. The following unproven conjecture<br />
would be a step in this direction.<br />
Conjecture 5.1 Suppose w, v ∈ F (a, b, c) such that w and v are nonequivalent<br />
words in R-CP form. Then aw and av are nonequivalent words in R-CP<br />
form.<br />
If proven, this conjecture would guarantee that the number <strong>of</strong> equivalence<br />
classes is monotonically increasing with respect to word length. Additionally,<br />
it would give a nice recursive criterion for non-equivalence. One might<br />
also hope that if w ∼ v and w and v are both R-CP, then aw ∼ av, but<br />
unfortunately, the R-CP elements aabb ∼ abab provide a counterexample,<br />
since aaabb ≁ aabab.<br />
Another useful result would be a “nice” upper bound for the minimum<br />
number <strong>of</strong> Whitehead automorphisms required to map a given word w <strong>of</strong><br />
length m to an equivalent and minimal word v <strong>of</strong> length n. The number <strong>of</strong><br />
Whitehead automorphisms required to reduce w to minimal length is clearly<br />
at most m − n by the strict monotonicity property in Whitehead’s Theorem,<br />
but we know <strong>of</strong> no good upper bound for the number <strong>of</strong> length-preserving<br />
automorphisms that must follow. An obvious, though poor, upper bound<br />
is the number <strong>of</strong> minimal words in the equivalence class <strong>of</strong> v, but it seems<br />
intuitively implausible that such a large number <strong>of</strong> automorphisms should be<br />
21
equired. One possible approach to this problem would be an analysis <strong>of</strong> the<br />
minimum number <strong>of</strong> Whitehead automorphisms required to map a given R-<br />
CP word <strong>of</strong> length n to a word in another given CP-equivalence class. 11 One<br />
could then use a series (<strong>of</strong> length at most n) <strong>of</strong> Whitehead automorphisms<br />
like the one described in the pro<strong>of</strong> for Remark 3.1, followed by a single Type<br />
I automorphism to map any CP-class representative to any other word in its<br />
CP-class.<br />
Finally, it is hoped that the computer-based classification <strong>of</strong> minimal<br />
words in F (a, b, c) can be extended to words <strong>of</strong> longer length and free groups<br />
<strong>of</strong> larger rank. Corollary 4.1 gives the information required to decide how<br />
large a rank it is necessary to consider to avoid losing generality, and the<br />
notion <strong>of</strong> CP-equivalence gives an attractive and useful way <strong>of</strong> representing<br />
minimal words. It may be possible to improve efficiency by writing code<br />
to generate all R-CP words, and then use the programs from Section 2 to<br />
partition them according to equivalence class. If this is significantly faster,<br />
it may be possible to greatly expand the classification.<br />
While the computer programs and applications given in this paper should<br />
not be regarded as ends in themselves, they illustrate the interplay between<br />
technology and mathematics, and it is hoped that the programs, data, and<br />
results presented will be <strong>of</strong> use to other researchers.<br />
11 We used the programs (particularly EW2L(page 15)) from Section 2, and applied this<br />
approach to the R-CP elements found in the table on pages 18-19. The greatest number <strong>of</strong><br />
such automorphisms that was ever needed was 3, which occurred in the case <strong>of</strong> searching<br />
for a sequence <strong>of</strong> Whitehead automorphisms taking aabbcc to any member <strong>of</strong> the CPequivalence<br />
class <strong>of</strong> aabcbc. This was much smaller than 1968, the number <strong>of</strong> minimal<br />
words in their equivalence class.<br />
22
Appendix<br />
The following series <strong>of</strong> programs finds all minimal words <strong>of</strong> lengths 3,4,<br />
and 5 in F (a, b, c).<br />
> mk3list:=proc() ls:={’a’,’b’,’c’,’A’,’B’,’C’}; ls3:={};<br />
> i:=1; j:=1; k:=1; while i ls3:=ls3 union {cat(ls[i],ls[j],ls[k])};<br />
> k:=k+1; if k=7 then k:=1; j:=j+1;fi; if j=7 then j:=1; i:=i+1;<br />
> fi;od;ls3;end;<br />
>ls3:=mk3list();<br />
> min3ls:=proc()<br />
> lst:={};<br />
> for p from 1 to nops(ls3) do<br />
> x:=oldminwd(ls3[p]);<br />
> if length(x)=3 then lst:=lst union {x};<br />
> fi;od;lst;<br />
> end;<br />
> mk4list:=proc() ls:={’a’,’b’,’c’,’A’,’B’,’C’}; ls4:={}; i:=1; j:=1;<br />
> k:=1;l:=1; while i ls4:=ls4 union {cat(ls[i],ls[j],ls[k],ls[l])};<br />
> l:=l+1; if l=7 then l:=1; k:=k+1;fi;if k=7 then k:=1; j:=j+1;fi;<br />
> if j=7 then<br />
> j:=1; i:=i+1; fi;od;ls4;end;<br />
> ls4:=mk4list();<br />
> min4ls:=proc()lst:={};<br />
> for p from 1 to nops(ls4) do<br />
> x:=oldminwd(ls4[p]);<br />
> if length(x)=4 then lst:=lst union {x};<br />
> fi;od;lst;<br />
> end;<br />
> mk5list:=proc() ls:={’a’,’b’,’c’,’A’,’B’,’C’}; ls5:={}; i:=1; j:=1;<br />
> k:=1;l:=1; m:=1; while i ls5:=ls5 union {cat(ls[i],ls[j],ls[k],ls[l],ls[m])};<br />
23
m:=m+1; if m=7 then m:=1; l:=l+1;fi;if l=7 then l:=1; k:=k+1;fi;<br />
> if k=7 then k:=1; j:=j+1;fi; if j=7 then j:=1; i:=i+1; fi;od;ls5;end;<br />
> ls5:=mk5list();<br />
> min5lsproc:=proc()<br />
> lst:={};<br />
> for p from 1 to nops(ls5) do<br />
> x:=oldminwd(ls5[p]);<br />
> if length(x)=5 then lst:=lst union {x}; fi;od;lst;end;<br />
The next programs generate a list <strong>of</strong> some minimal words <strong>of</strong> length 6. While<br />
this list is not complete, all minimal words <strong>of</strong> length 6 can be generated by<br />
applying sequences <strong>of</strong> Whitehead automorphisms to words on this list.<br />
> fun6lsproc:=proc()<br />
> ls:={’a’,’A’,’b’,’B’,’c’,’C’};<br />
> ls6:={};<br />
> i:=1; j:=1; k:=1; l:=1; m:=1;<br />
> while i ls6:=ls6 union {cat(’a’,ls[i],ls[j],ls[k],ls[l],ls[m])};<br />
> m:=m+1;<br />
> if m=2 then m:=3; fi;<br />
> if frac(m/2)=0 then<br />
> if m=l+1 then m:=m+1; fi;<br />
> elif m=m-1 then m:=m+1; fi;<br />
> if m>6 then l:=l+1; m:=1;<br />
> if l=2 then m:=2; fi;<br />
> fi;<br />
><br />
> if frac(l/2)=0 then<br />
> if l=k+1 then l:=l+1; fi;<br />
> elif l=k-1 then l:=l+1; fi;<br />
> if l>6 then l:=1; k:=k+1;<br />
> if k=2 then l:=2; fi;<br />
> fi;<br />
><br />
> if frac(k/2)=0 then<br />
24
if k=j+1 then k:=k+1; fi;<br />
> elif k=j-1 then k:=k+1; fi;<br />
> if k>6 then k:=1; j:=j+1;<br />
> if j=2 then k:=2; fi;<br />
> fi;<br />
><br />
> if frac(j/2)=0 then<br />
> if j=i+1 then j:=j+1; fi;<br />
> elif j=i-1 then j:=j+1; fi;<br />
> if j>6 then j:=1; i:=i+1; fi;<br />
><br />
> if i=2 then i:=3; fi;<br />
> od;<br />
> ls6;<br />
> end;<br />
> pls6:=fun6lsproc();<br />
> min6lsproc:=proc()<br />
> lst:={};<br />
> for p from 1 to nops(pls6) do<br />
> x:=oldminwd(pls6[p]);<br />
> if length(x)=6 then lst:=lst union{x};<br />
> fi; od;lst;end;<br />
SIEC(Split Into Equivalence Classes) takes one argument, a list ls <strong>of</strong> words<br />
from F (a, b, c). It returns a list containing the distinct equivalence classes <strong>of</strong><br />
minimal words equivalent the words in ls.<br />
> SIEC:=proc(ls)<br />
> ls1:=ls;lsn:={};<br />
> while nops(ls1)>0 do<br />
> x:=EWL(ls1[1]);lsn:={x} union lsn; ls1:=ls1 minus x;<br />
> od; lsn;end;<br />
25
References<br />
[1] P.J. Higgins and R.C. Lyndon. Equivalence <strong>of</strong> elements under automorphisms<br />
<strong>of</strong> a free group. J. London Math. Soc., pages 8: 254–258, 1974.<br />
[2] E.S. Rapaport. On free groups and their automorphisms. Acta. Math.,<br />
pages 99:139–163, 1958.<br />
[3] J.H.C. Whitehead. On certain sets <strong>of</strong> elements in a free group. Proceedings<br />
<strong>of</strong> the London Math. Society, pages 41:48–56, 1936.<br />
[4] J.H.C. Whitehead. On equivalent sets <strong>of</strong> elements in a free group. Ann.<br />
<strong>of</strong> Math., pages 37:782–800, 1936.<br />
26