YES Problem: active(f(X)) -> mark(g(h(f(X)))) mark(f(X)) -> active(f(mark(X))) mark(g(X)) -> active(g(X)) mark(h(X)) -> active(h(mark(X))) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) h(mark(X)) -> h(X) h(active(X)) -> h(X) Proof: DP Processor: DPs: active#(f(X)) -> h#(f(X)) active#(f(X)) -> g#(h(f(X))) active#(f(X)) -> mark#(g(h(f(X)))) mark#(f(X)) -> mark#(X) mark#(f(X)) -> f#(mark(X)) mark#(f(X)) -> active#(f(mark(X))) mark#(g(X)) -> active#(g(X)) mark#(h(X)) -> mark#(X) mark#(h(X)) -> h#(mark(X)) mark#(h(X)) -> active#(h(mark(X))) f#(mark(X)) -> f#(X) f#(active(X)) -> f#(X) g#(mark(X)) -> g#(X) g#(active(X)) -> g#(X) h#(mark(X)) -> h#(X) h#(active(X)) -> h#(X) TRS: active(f(X)) -> mark(g(h(f(X)))) mark(f(X)) -> active(f(mark(X))) mark(g(X)) -> active(g(X)) mark(h(X)) -> active(h(mark(X))) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) h(mark(X)) -> h(X) h(active(X)) -> h(X) Matrix Interpretation Processor: dim=3 interpretation: [f#](x0) = [0 1 0]x0, [mark#](x0) = [1 1 1]x0 + [1], [g#](x0) = [0 1 0]x0, [h#](x0) = [0 1 0]x0, [active#](x0) = [0 1 1]x0, [0 0 0] [0] [mark](x0) = [1 1 1]x0 + [1] [0 0 1] [0], [0 0 0] [g](x0) = [0 0 0]x0 [0 1 0] , [1 1 0] [0] [h](x0) = [0 0 0]x0 + [0] [0 0 1] [1], [0 0 0] [0] [active](x0) = [1 1 0]x0 + [1] [0 0 1] [0], [1 1 0] [0] [f](x0) = [0 0 0]x0 + [1] [0 0 1] [1] orientation: active#(f(X)) = [0 0 1]X + [2] >= [1] = h#(f(X)) active#(f(X)) = [0 0 1]X + [2] >= [0] = g#(h(f(X))) active#(f(X)) = [0 0 1]X + [2] >= [1] = mark#(g(h(f(X)))) mark#(f(X)) = [1 1 1]X + [3] >= [1 1 1]X + [1] = mark#(X) mark#(f(X)) = [1 1 1]X + [3] >= [1 1 1]X + [1] = f#(mark(X)) mark#(f(X)) = [1 1 1]X + [3] >= [0 0 1]X + [2] = active#(f(mark(X))) mark#(g(X)) = [0 1 0]X + [1] >= [0 1 0]X = active#(g(X)) mark#(h(X)) = [1 1 1]X + [2] >= [1 1 1]X + [1] = mark#(X) mark#(h(X)) = [1 1 1]X + [2] >= [1 1 1]X + [1] = h#(mark(X)) mark#(h(X)) = [1 1 1]X + [2] >= [0 0 1]X + [1] = active#(h(mark(X))) f#(mark(X)) = [1 1 1]X + [1] >= [0 1 0]X = f#(X) f#(active(X)) = [1 1 0]X + [1] >= [0 1 0]X = f#(X) g#(mark(X)) = [1 1 1]X + [1] >= [0 1 0]X = g#(X) g#(active(X)) = [1 1 0]X + [1] >= [0 1 0]X = g#(X) h#(mark(X)) = [1 1 1]X + [1] >= [0 1 0]X = h#(X) h#(active(X)) = [1 1 0]X + [1] >= [0 1 0]X = h#(X) [0 0 0] [0] [0] active(f(X)) = [1 1 0]X + [2] >= [1] = mark(g(h(f(X)))) [0 0 1] [1] [0] [0 0 0] [0] [0 0 0] [0] mark(f(X)) = [1 1 1]X + [3] >= [1 1 1]X + [3] = active(f(mark(X))) [0 0 1] [1] [0 0 1] [1] [0 0 0] [0] [0 0 0] [0] mark(g(X)) = [0 1 0]X + [1] >= [0 0 0]X + [1] = active(g(X)) [0 1 0] [0] [0 1 0] [0] [0 0 0] [0] [0 0 0] [0] mark(h(X)) = [1 1 1]X + [2] >= [1 1 1]X + [2] = active(h(mark(X))) [0 0 1] [1] [0 0 1] [1] [1 1 1] [1] [1 1 0] [0] f(mark(X)) = [0 0 0]X + [1] >= [0 0 0]X + [1] = f(X) [0 0 1] [1] [0 0 1] [1] [1 1 0] [1] [1 1 0] [0] f(active(X)) = [0 0 0]X + [1] >= [0 0 0]X + [1] = f(X) [0 0 1] [1] [0 0 1] [1] [0 0 0] [0] [0 0 0] g(mark(X)) = [0 0 0]X + [0] >= [0 0 0]X = g(X) [1 1 1] [1] [0 1 0] [0 0 0] [0] [0 0 0] g(active(X)) = [0 0 0]X + [0] >= [0 0 0]X = g(X) [1 1 0] [1] [0 1 0] [1 1 1] [1] [1 1 0] [0] h(mark(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = h(X) [0 0 1] [1] [0 0 1] [1] [1 1 0] [1] [1 1 0] [0] h(active(X)) = [0 0 0]X + [0] >= [0 0 0]X + [0] = h(X) [0 0 1] [1] [0 0 1] [1] problem: DPs: TRS: active(f(X)) -> mark(g(h(f(X)))) mark(f(X)) -> active(f(mark(X))) mark(g(X)) -> active(g(X)) mark(h(X)) -> active(h(mark(X))) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) h(mark(X)) -> h(X) h(active(X)) -> h(X) Qed