algebra. As a result of its unsolvability, several other problems in combinatorial group theory have been shown to be unsolvable as well. It is important to realize that the word problem is in fact solvable for many groups G. For example, polycyclic groups have solvable word problems since the normal form of an arbitrary word in a polycyclic presentation is readily computable; other algorithms for groups may, in suitable circumstances, also solve the word problem, see the Todd–Coxeter algorithm and the Knuth–Bendix completion algorithm. On the other hand, the fact that a particular algorithm does not solve the word problem for a particular group does not show that the group has an unsolvable word problem. For instance Dehn's algorithm does not solve the word problem for the fundamental group of the torus. However this group is the direct product of two infinite cyclic groups and so has a solvable word problem. A more concrete description In more concrete terms, the uniform word problem can be expressed as a rewriting question, for literal strings. For a presentation P of a group G, P will specify a certain number of generators x, y, z, ... for G. We need to introduce one letter for x and another (for convenience) for the group element represented by x−1. Call these letters (twice as many as the generators) the alphabet for our problem. Then each element in G is represented in some way by a product abc ... pqr of symbols from , of some length, multiplied in G. The string of length 0 (null string) stands for the identity element e of G. The crux of the whole problem is to be able to recognise all the ways e can be represented, given some relations. The effect of the relations in G is to make various such strings represent the same element of G. In fact the relations provide a list of strings that can be either introduced where we want, or cancelled out whenever we see them, without changing the 'value', i.e. the group element that is the result of the multiplication. For a simple example, take the presentation {a | a3}. Writing A for the inverse of a, we have possible strings combining any number of the symbols a and A. Whenever we see aaa, or aA or Aa we may strike these out. We should also remember to strike out AAA;