(VAR x ) (RULES a(f, a(f, x)) -> a(x, g) a(x, g) -> a(f, a(g, a(f, x))) )