YES Problem: a__f(f(a())) -> a__f(g(f(a()))) mark(f(X)) -> a__f(mark(X)) mark(a()) -> a() mark(g(X)) -> g(X) a__f(X) -> f(X) Proof: DP Processor: DPs: a__f#(f(a())) -> a__f#(g(f(a()))) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) TRS: a__f(f(a())) -> a__f(g(f(a()))) mark(f(X)) -> a__f(mark(X)) mark(a()) -> a() mark(g(X)) -> g(X) a__f(X) -> f(X) Matrix Interpretation Processor: dim=1 usable rules: a__f(f(a())) -> a__f(g(f(a()))) mark(f(X)) -> a__f(mark(X)) mark(a()) -> a() mark(g(X)) -> g(X) a__f(X) -> f(X) interpretation: [mark#](x0) = 5x0 + 2, [a__f#](x0) = x0, [mark](x0) = 5x0, [g](x0) = 0, [a__f](x0) = x0 + 2, [f](x0) = x0 + 1, [a] = 4 orientation: a__f#(f(a())) = 5 >= 0 = a__f#(g(f(a()))) mark#(f(X)) = 5X + 7 >= 5X + 2 = mark#(X) mark#(f(X)) = 5X + 7 >= 5X = a__f#(mark(X)) a__f(f(a())) = 7 >= 2 = a__f(g(f(a()))) mark(f(X)) = 5X + 5 >= 5X + 2 = a__f(mark(X)) mark(a()) = 20 >= 4 = a() mark(g(X)) = 0 >= 0 = g(X) a__f(X) = X + 2 >= X + 1 = f(X) problem: DPs: TRS: a__f(f(a())) -> a__f(g(f(a()))) mark(f(X)) -> a__f(mark(X)) mark(a()) -> a() mark(g(X)) -> g(X) a__f(X) -> f(X) Qed