YES (VAR x1 x0 x3 x2 a b) (RULES double_divide(double_divide(double_divide(x1,inverse(x0)),x3),x0) -> double_divide(inverse(x3),x1) double_divide(double_divide(double_divide(x1,x2),x0),inverse(x2)) -> double_divide(inverse(x0),x1) double_divide(x0,double_divide(x2,x1)) -> double_divide(double_divide(x1,inverse(x0)),inverse(x2)) multiply(x1,x0) -> double_divide(inverse(x1),inverse(x0)) double_divide(inverse(x0),x0) -> identity() double_divide(double_divide(x1,x0),x1) -> x0 double_divide(identity(),x0) -> inverse(x0) inverse(inverse(x0)) -> x0 inverse(identity()) -> identity() double_divide(a,inverse(a)) -> identity() inverse(double_divide(b,a)) -> double_divide(inverse(a),inverse(b)) double_divide(a,identity()) -> inverse(a) ) (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 double_divide#_A(x1,x2) = x2 identity#_A = 0 multiply#_A(x1,x2) = x2 weights w0 = 1 w(double_divide) = 0 w(identity) = 1 w(multiply) = 0 w(inverse) = 0 and precedence: inverse > multiply > double_divide > identity )