YES Problem: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(g(X)) -> active(g(X)) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) Proof: DP Processor: DPs: active#(f(f(a()))) -> g#(f(a())) active#(f(f(a()))) -> f#(g(f(a()))) active#(f(f(a()))) -> mark#(f(g(f(a())))) mark#(f(X)) -> mark#(X) mark#(f(X)) -> f#(mark(X)) mark#(f(X)) -> active#(f(mark(X))) mark#(a()) -> active#(a()) mark#(g(X)) -> active#(g(X)) f#(mark(X)) -> f#(X) f#(active(X)) -> f#(X) g#(mark(X)) -> g#(X) g#(active(X)) -> g#(X) TRS: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(g(X)) -> active(g(X)) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) Matrix Interpretation Processor: dim=1 usable rules: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(g(X)) -> active(g(X)) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) interpretation: [mark#](x0) = 4x0 + 1, [f#](x0) = x0 + 1, [g#](x0) = 5x0, [active#](x0) = 2x0, [mark](x0) = 2x0 + 2, [g](x0) = 1, [active](x0) = x0 + 2, [f](x0) = 2x0 + 5, [a] = 0 orientation: active#(f(f(a()))) = 30 >= 25 = g#(f(a())) active#(f(f(a()))) = 30 >= 2 = f#(g(f(a()))) active#(f(f(a()))) = 30 >= 29 = mark#(f(g(f(a())))) mark#(f(X)) = 8X + 21 >= 4X + 1 = mark#(X) mark#(f(X)) = 8X + 21 >= 2X + 3 = f#(mark(X)) mark#(f(X)) = 8X + 21 >= 8X + 18 = active#(f(mark(X))) mark#(a()) = 1 >= 0 = active#(a()) mark#(g(X)) = 5 >= 2 = active#(g(X)) f#(mark(X)) = 2X + 3 >= X + 1 = f#(X) f#(active(X)) = X + 3 >= X + 1 = f#(X) g#(mark(X)) = 10X + 10 >= 5X = g#(X) g#(active(X)) = 5X + 10 >= 5X = g#(X) active(f(f(a()))) = 17 >= 16 = mark(f(g(f(a())))) mark(f(X)) = 4X + 12 >= 4X + 11 = active(f(mark(X))) mark(a()) = 2 >= 2 = active(a()) mark(g(X)) = 4 >= 3 = active(g(X)) f(mark(X)) = 4X + 9 >= 2X + 5 = f(X) f(active(X)) = 2X + 9 >= 2X + 5 = f(X) g(mark(X)) = 1 >= 1 = g(X) g(active(X)) = 1 >= 1 = g(X) problem: DPs: TRS: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(g(X)) -> active(g(X)) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) Qed