YES (VAR x1 x0 x y z) (RULES inverse(multiply(x1,x0)) -> multiply(inverse(x0),inverse(x1)) multiply(multiply(x0,x1),inverse(x1)) -> x0 multiply(multiply(x0,inverse(x1)),x1) -> x0 multiply(x0,inverse(x0)) -> identity() inverse(identity()) -> identity() inverse(inverse(x0)) -> x0 b() -> inverse(c()) multiply(x0,identity()) -> x0 multiply(inverse(x),x) -> identity() multiply(identity(),x) -> x multiply(x,multiply(y,z)) -> multiply(multiply(x,y),z) ) (COMMENT Termination is shown by EKBO with interpretations on natural numbers multiply_A(x1,x2) = x1 + x2 + 1 identity_A = 1 inverse_A(x1) = x1 c_A = 1 b_A = 4 multiply#_A(x1,x2) = x2 identity#_A = 0 c#_A = 0 b#_A = 0 weights w0 = 2 w(multiply) = 0 w(identity) = 3 w(inverse) = 0 w(c) = 3 w(b) = 4 and precedence: inverse > identity > multiply > c > b )