YES Problem: active(f(f(X))) -> mark(c(f(g(f(X))))) active(c(X)) -> mark(d(X)) active(h(X)) -> mark(c(d(X))) active(f(X)) -> f(active(X)) active(h(X)) -> h(active(X)) f(mark(X)) -> mark(f(X)) h(mark(X)) -> mark(h(X)) proper(f(X)) -> f(proper(X)) proper(c(X)) -> c(proper(X)) proper(g(X)) -> g(proper(X)) proper(d(X)) -> d(proper(X)) proper(h(X)) -> h(proper(X)) f(ok(X)) -> ok(f(X)) c(ok(X)) -> ok(c(X)) g(ok(X)) -> ok(g(X)) d(ok(X)) -> ok(d(X)) h(ok(X)) -> ok(h(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Proof: WPO Processor: algebra: Sum weight function: w0 = 0 w(ok) = 6 w(mark) = w(active) = 4 w(h) = 1 w(top) = w(proper) = w(d) = w(c) = w(g) = w(f) = 0 status function: st(top) = st(ok) = st(proper) = st(h) = st(d) = st(mark) = st(c) = st( g) = st(active) = st(f) = [0] precedence: active > proper > h ~ c ~ g ~ f > d > top ~ ok ~ mark problem: Qed