15.01.2015 Views

A Computer Implementation of Whitehead's Algorithm

A Computer Implementation of Whitehead's Algorithm

A Computer Implementation of Whitehead's Algorithm

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!