(VAR x y z) (RULES active(f(b,c,x)) -> mark(f(x,x,x)) active(f(x,y,z)) -> f(x,y,active(z)) active(d) -> m(b) f(x,y,mark(z)) -> mark(f(x, y, z)) active(d) -> mark(c) proper(b) -> ok(b) proper(c) -> ok(c) proper(d) -> ok(d) proper(f(x,y,z)) -> f(proper(x),proper(y),proper(z)) f(ok(x),ok(y),ok(z)) -> ok(f(x,y,z)) top(mark(x)) -> top(proper(x)) top(ok(x)) -> top(active(x)) )