(VAR x y z ) (RULES trans(trans(x,y), z) -> trans(x,trans(y,z)) trans(i(x), x) -> one trans(one, x) -> x trans(f(x), f(y)) -> f(trans(x,y)) trans(g(x), g(y)) -> g(trans(x,y)) trans(h(x), h(y)) -> h(trans(x,y)) trans(f(x), g(y)) -> trans(g(y), f(x)) trans(g(x), h(y)) -> trans(h(y), g(x)) trans(h(x), f(y)) -> trans(f(y), h(x)) )