The theory (and practice) of automatic groups is the most generally useful systematic way to deal with these things. There is a nice package written by Derek Holt and his associates called kbmag (available for download here: http://www.warwick.ac.uk/~mareg/download/kbmag2/ ). There is a book "Word Processing in Groups" by Epstein, Cannon, Levy, Holt, Paterson and Thurston that describes the ideas behind this approach. It's not guaranteed to work (not all groups have an "automatic" presentation) but it is surprisingly effective. A previous answerer (Steve Huntsman) has given a specific derivation for your example. But I made up a short input file for kbmag, and it immediately came back with a "confluent" system of relations (a particular system which has a technical property that when you just do a series of string substitutions you always get the same answer no matter what order you do them in). For your edification, here they are (xi and yi are x^-1 and yi^-1 resepctively, idWord is 1): equations := [ [x*xi,IdWord], [xi*x,IdWord], [y*yi,IdWord], [yi*y,IdWord], [x^2,xi], [y^3,yi^2], [y*x,xi*yi], [xi^2,x], [yi^3,y^2], [yi*xi,x*y], [xi*yi*x,y*xi], [x*y*xi,yi*x], [y^2*xi*yi,yi^2*x], [yi^2*x*y,y^2*xi], [xi*y*xi,x*yi*x], [yi*x*yi*x,x*y^2*xi], [yi^2*x*yi^2,y^2*xi*y^2], [yi*x*y^2*xi*y,y^2*xi*y^2*xi], [y^2*xi*y^2*xi*y^2,yi*x*yi^2*x*yi], [xi*y^2*xi*y^2*xi,y*xi*y^2*xi*y] ]