(VAR X X1 X2) (RULES active(h(X)) -> mark(g(X,X)) active(g(a,X)) -> mark(f(b,X)) active(f(X,X)) -> mark(h(a)) active(a) -> mark(b) mark(h(X)) -> active(h(mark(X))) mark(g(X1,X2)) -> active(g(mark(X1),X2)) mark(a) -> active(a) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(b) -> active(b) h(mark(X)) -> h(X) h(active(X)) -> h(X) g(mark(X1),X2) -> g(X1,X2) g(X1,mark(X2)) -> g(X1,X2) g(active(X1),X2) -> g(X1,X2) g(X1,active(X2)) -> g(X1,X2) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) )