(VAR x y ) (RULES g(c, g(c, x)) -> g(e, g(d, x)) g(d, g(d, x)) -> g(c, g(e, x)) g(e, g(e, x)) -> g(d, g(c, x)) f(g(x, y)) -> g(y, g(f(f(x)), a)) g(x, g(y, g(x, y))) -> g(a, g(x, g(y, b))) )