YES (VAR x0 x1 x2 x3) (RULES multiply(x0,multiply(x1,x2)) -> multiply(multiply(x0,x1),x2) inverse(multiply(x1,x0)) -> multiply(inverse(x0),inverse(x1)) multiply(multiply(x2,inverse(x3)),x3) -> x2 multiply(multiply(x0,x1),inverse(x1)) -> x0 double_divide(x1,x0) -> multiply(inverse(x1),inverse(x0)) multiply(x0,identity()) -> x0 multiply(x1,inverse(x1)) -> identity() inverse(inverse(x0)) -> x0 inverse(identity()) -> identity() multiply(identity(),x0) -> x0 multiply(inverse(x0),x0) -> identity() ) (COMMENT Termination is shown by EKBO with interpretations on natural numbers double_divide_A(x1,x2) = x1 + x2 + 1 identity_A = 1 multiply_A(x1,x2) = x1 + x2 + 1 inverse_A(x1) = x1 identity#_A = 0 multiply#_A(x1,x2) = x2 weights w0 = 1 w(double_divide) = 1 w(identity) = 1 w(multiply) = 0 w(inverse) = 0 and precedence: inverse > multiply > double_divide > identity )