YES Problem: active(f(X)) -> mark(g(h(f(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(g(X)) -> g(proper(X)) proper(h(X)) -> h(proper(X)) f(ok(X)) -> ok(f(X)) g(ok(X)) -> ok(g(X)) h(ok(X)) -> ok(h(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Proof: DP Processor: DPs: active#(f(X)) -> h#(f(X)) active#(f(X)) -> g#(h(f(X))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(h(X)) -> active#(X) active#(h(X)) -> h#(active(X)) f#(mark(X)) -> f#(X) h#(mark(X)) -> h#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) proper#(h(X)) -> proper#(X) proper#(h(X)) -> h#(proper(X)) f#(ok(X)) -> f#(X) g#(ok(X)) -> g#(X) h#(ok(X)) -> h#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: active(f(X)) -> mark(g(h(f(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(g(X)) -> g(proper(X)) proper(h(X)) -> h(proper(X)) f(ok(X)) -> ok(f(X)) g(ok(X)) -> ok(g(X)) h(ok(X)) -> ok(h(X)) top(mark(X)) -> top(proper(X)) top(ok(X)) -> top(active(X)) Usable Rule Processor: DPs: active#(f(X)) -> h#(f(X)) active#(f(X)) -> g#(h(f(X))) active#(f(X)) -> active#(X) active#(f(X)) -> f#(active(X)) active#(h(X)) -> active#(X) active#(h(X)) -> h#(active(X)) f#(mark(X)) -> f#(X) h#(mark(X)) -> h#(X) proper#(f(X)) -> proper#(X) proper#(f(X)) -> f#(proper(X)) proper#(g(X)) -> proper#(X) proper#(g(X)) -> g#(proper(X)) proper#(h(X)) -> proper#(X) proper#(h(X)) -> h#(proper(X)) f#(ok(X)) -> f#(X) g#(ok(X)) -> g#(X) h#(ok(X)) -> h#(X) top#(mark(X)) -> proper#(X) top#(mark(X)) -> top#(proper(X)) top#(ok(X)) -> active#(X) top#(ok(X)) -> top#(active(X)) TRS: f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) h(mark(X)) -> mark(h(X)) h(ok(X)) -> ok(h(X)) active(f(X)) -> mark(g(h(f(X)))) active(f(X)) -> f(active(X)) active(h(X)) -> h(active(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(g(X)) -> g(proper(X)) proper(h(X)) -> h(proper(X)) Matrix Interpretation Processor: dim=1 usable rules: f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) h(mark(X)) -> mark(h(X)) h(ok(X)) -> ok(h(X)) active(f(X)) -> mark(g(h(f(X)))) active(f(X)) -> f(active(X)) active(h(X)) -> h(active(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(g(X)) -> g(proper(X)) proper(h(X)) -> h(proper(X)) interpretation: [top#](x0) = 4x0 + 3, [proper#](x0) = 3/2x0 + 1, [f#](x0) = 1/2x0 + 3/2, [g#](x0) = x0 + 1/2, [h#](x0) = 1/2x0 + 1, [active#](x0) = 2x0 + 13/2, [ok](x0) = 5x0 + 2, [proper](x0) = x0, [mark](x0) = x0 + 1/2, [g](x0) = 2x0 + 1/2, [h](x0) = 2x0 + 1/2, [active](x0) = 5x0 + 3/2, [f](x0) = 2x0 + 1/2 orientation: active#(f(X)) = 4X + 15/2 >= X + 5/4 = h#(f(X)) active#(f(X)) = 4X + 15/2 >= 4X + 2 = g#(h(f(X))) active#(f(X)) = 4X + 15/2 >= 2X + 13/2 = active#(X) active#(f(X)) = 4X + 15/2 >= 5/2X + 9/4 = f#(active(X)) active#(h(X)) = 4X + 15/2 >= 2X + 13/2 = active#(X) active#(h(X)) = 4X + 15/2 >= 5/2X + 7/4 = h#(active(X)) f#(mark(X)) = 1/2X + 7/4 >= 1/2X + 3/2 = f#(X) h#(mark(X)) = 1/2X + 5/4 >= 1/2X + 1 = h#(X) proper#(f(X)) = 3X + 7/4 >= 3/2X + 1 = proper#(X) proper#(f(X)) = 3X + 7/4 >= 1/2X + 3/2 = f#(proper(X)) proper#(g(X)) = 3X + 7/4 >= 3/2X + 1 = proper#(X) proper#(g(X)) = 3X + 7/4 >= X + 1/2 = g#(proper(X)) proper#(h(X)) = 3X + 7/4 >= 3/2X + 1 = proper#(X) proper#(h(X)) = 3X + 7/4 >= 1/2X + 1 = h#(proper(X)) f#(ok(X)) = 5/2X + 5/2 >= 1/2X + 3/2 = f#(X) g#(ok(X)) = 5X + 5/2 >= X + 1/2 = g#(X) h#(ok(X)) = 5/2X + 2 >= 1/2X + 1 = h#(X) top#(mark(X)) = 4X + 5 >= 3/2X + 1 = proper#(X) top#(mark(X)) = 4X + 5 >= 4X + 3 = top#(proper(X)) top#(ok(X)) = 20X + 11 >= 2X + 13/2 = active#(X) top#(ok(X)) = 20X + 11 >= 20X + 9 = top#(active(X)) f(mark(X)) = 2X + 3/2 >= 2X + 1 = mark(f(X)) f(ok(X)) = 10X + 9/2 >= 10X + 9/2 = ok(f(X)) h(mark(X)) = 2X + 3/2 >= 2X + 1 = mark(h(X)) h(ok(X)) = 10X + 9/2 >= 10X + 9/2 = ok(h(X)) active(f(X)) = 10X + 4 >= 8X + 4 = mark(g(h(f(X)))) active(f(X)) = 10X + 4 >= 10X + 7/2 = f(active(X)) active(h(X)) = 10X + 4 >= 10X + 7/2 = h(active(X)) g(ok(X)) = 10X + 9/2 >= 10X + 9/2 = ok(g(X)) proper(f(X)) = 2X + 1/2 >= 2X + 1/2 = f(proper(X)) proper(g(X)) = 2X + 1/2 >= 2X + 1/2 = g(proper(X)) proper(h(X)) = 2X + 1/2 >= 2X + 1/2 = h(proper(X)) problem: DPs: TRS: f(mark(X)) -> mark(f(X)) f(ok(X)) -> ok(f(X)) h(mark(X)) -> mark(h(X)) h(ok(X)) -> ok(h(X)) active(f(X)) -> mark(g(h(f(X)))) active(f(X)) -> f(active(X)) active(h(X)) -> h(active(X)) g(ok(X)) -> ok(g(X)) proper(f(X)) -> f(proper(X)) proper(g(X)) -> g(proper(X)) proper(h(X)) -> h(proper(X)) Qed