YES exiting with thread! (VAR x y z ) (RULES multiply(multiply(x,y),z) -> multiply(x,multiply(y,z)) multiply(c,multiply(b,x)) -> x multiply(inverse(x),multiply(x,z)) -> z multiply(c,b) -> multiply(b,c) multiply(b,multiply(c,x)) -> x identity -> multiply(b,c) multiply(inverse(x),x) -> multiply(b,c) multiply(x,multiply(inverse(x),y)) -> y multiply(x,inverse(x)) -> multiply(b,c) multiply(x,multiply(b,c)) -> x inverse(b) -> c inverse(c) -> b inverse(inverse(x)) -> x inverse(multiply(x,y)) -> multiply(inverse(y),inverse(x)) )