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) EDG 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) graph: f#(mark(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(active(X)) -> f#(X) f#(active(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(active(X)) -> f#(X) -> f#(active(X)) -> f#(X) mark#(h(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(h(X)) -> mark#(X) -> mark#(f(X)) -> f#(mark(X)) mark#(h(X)) -> mark#(X) -> mark#(f(X)) -> active#(f(mark(X))) mark#(h(X)) -> mark#(X) -> mark#(g(X)) -> active#(g(X)) mark#(h(X)) -> mark#(X) -> mark#(h(X)) -> mark#(X) mark#(h(X)) -> mark#(X) -> mark#(h(X)) -> h#(mark(X)) mark#(h(X)) -> mark#(X) -> mark#(h(X)) -> active#(h(mark(X))) mark#(h(X)) -> h#(mark(X)) -> h#(mark(X)) -> h#(X) mark#(h(X)) -> active#(h(mark(X))) -> active#(f(X)) -> h#(f(X)) mark#(h(X)) -> active#(h(mark(X))) -> active#(f(X)) -> g#(h(f(X))) mark#(h(X)) -> active#(h(mark(X))) -> active#(f(X)) -> mark#(g(h(f(X)))) mark#(f(X)) -> f#(mark(X)) -> f#(mark(X)) -> f#(X) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> f#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> active#(f(mark(X))) mark#(f(X)) -> mark#(X) -> mark#(g(X)) -> active#(g(X)) mark#(f(X)) -> mark#(X) -> mark#(h(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(h(X)) -> h#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(h(X)) -> active#(h(mark(X))) mark#(f(X)) -> active#(f(mark(X))) -> active#(f(X)) -> h#(f(X)) mark#(f(X)) -> active#(f(mark(X))) -> active#(f(X)) -> g#(h(f(X))) mark#(f(X)) -> active#(f(mark(X))) -> active#(f(X)) -> mark#(g(h(f(X)))) g#(mark(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(active(X)) -> g#(X) g#(active(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(active(X)) -> g#(X) -> g#(active(X)) -> g#(X) h#(mark(X)) -> h#(X) -> h#(mark(X)) -> h#(X) h#(mark(X)) -> h#(X) -> h#(active(X)) -> h#(X) h#(active(X)) -> h#(X) -> h#(mark(X)) -> h#(X) h#(active(X)) -> h#(X) -> h#(active(X)) -> h#(X) active#(f(X)) -> mark#(g(h(f(X)))) -> mark#(g(X)) -> active#(g(X)) SCC Processor: #sccs: 4 #rules: 8 #arcs: 35/256 DPs: g#(mark(X)) -> g#(X) g#(active(X)) -> g#(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: dimension: 1 interpretation: [g#](x0) = x0, [mark](x0) = x0 + 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0, [f](x0) = x0 + 1 orientation: g#(mark(X)) = X + 1 >= X = g#(X) g#(active(X)) = X >= X = g#(X) active(f(X)) = X + 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = X + 2 >= X + 2 = active(f(mark(X))) mark(g(X)) = 1 >= 0 = active(g(X)) mark(h(X)) = 1 >= 0 = active(h(mark(X))) f(mark(X)) = X + 2 >= X + 1 = f(X) f(active(X)) = X + 1 >= X + 1 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) problem: DPs: g#(active(X)) -> g#(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: dimension: 1 interpretation: [g#](x0) = x0, [mark](x0) = 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0 + 1, [f](x0) = 0 orientation: g#(active(X)) = X + 1 >= X = g#(X) active(f(X)) = 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = 1 >= 1 = active(f(mark(X))) mark(g(X)) = 1 >= 1 = active(g(X)) mark(h(X)) = 1 >= 1 = active(h(mark(X))) f(mark(X)) = 0 >= 0 = f(X) f(active(X)) = 0 >= 0 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) 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 DPs: mark#(h(X)) -> mark#(X) mark#(f(X)) -> mark#(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: dimension: 1 interpretation: [mark#](x0) = x0, [mark](x0) = x0, [g](x0) = 1, [h](x0) = x0, [active](x0) = x0, [f](x0) = x0 + 1 orientation: mark#(h(X)) = X >= X = mark#(X) mark#(f(X)) = X + 1 >= X = mark#(X) active(f(X)) = X + 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = X + 1 >= X + 1 = active(f(mark(X))) mark(g(X)) = 1 >= 1 = active(g(X)) mark(h(X)) = X >= X = active(h(mark(X))) f(mark(X)) = X + 1 >= X + 1 = f(X) f(active(X)) = X + 1 >= X + 1 = f(X) g(mark(X)) = 1 >= 1 = g(X) g(active(X)) = 1 >= 1 = g(X) h(mark(X)) = X >= X = h(X) h(active(X)) = X >= X = h(X) problem: DPs: mark#(h(X)) -> mark#(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: dimension: 1 interpretation: [mark#](x0) = x0 + 1, [mark](x0) = x0, [g](x0) = 0, [h](x0) = x0 + 1, [active](x0) = x0, [f](x0) = 0 orientation: mark#(h(X)) = X + 2 >= X + 1 = mark#(X) active(f(X)) = 0 >= 0 = mark(g(h(f(X)))) mark(f(X)) = 0 >= 0 = active(f(mark(X))) mark(g(X)) = 0 >= 0 = active(g(X)) mark(h(X)) = X + 1 >= X + 1 = active(h(mark(X))) f(mark(X)) = 0 >= 0 = f(X) f(active(X)) = 0 >= 0 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = X + 1 >= X + 1 = h(X) h(active(X)) = X + 1 >= X + 1 = h(X) 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 DPs: 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: dimension: 1 interpretation: [h#](x0) = x0, [mark](x0) = x0 + 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0, [f](x0) = x0 + 1 orientation: h#(mark(X)) = X + 1 >= X = h#(X) h#(active(X)) = X >= X = h#(X) active(f(X)) = X + 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = X + 2 >= X + 2 = active(f(mark(X))) mark(g(X)) = 1 >= 0 = active(g(X)) mark(h(X)) = 1 >= 0 = active(h(mark(X))) f(mark(X)) = X + 2 >= X + 1 = f(X) f(active(X)) = X + 1 >= X + 1 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) problem: DPs: 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: dimension: 1 interpretation: [h#](x0) = x0, [mark](x0) = 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0 + 1, [f](x0) = 0 orientation: h#(active(X)) = X + 1 >= X = h#(X) active(f(X)) = 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = 1 >= 1 = active(f(mark(X))) mark(g(X)) = 1 >= 1 = active(g(X)) mark(h(X)) = 1 >= 1 = active(h(mark(X))) f(mark(X)) = 0 >= 0 = f(X) f(active(X)) = 0 >= 0 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) 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 DPs: f#(mark(X)) -> f#(X) f#(active(X)) -> f#(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: dimension: 1 interpretation: [f#](x0) = x0, [mark](x0) = x0 + 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0, [f](x0) = x0 + 1 orientation: f#(mark(X)) = X + 1 >= X = f#(X) f#(active(X)) = X >= X = f#(X) active(f(X)) = X + 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = X + 2 >= X + 2 = active(f(mark(X))) mark(g(X)) = 1 >= 0 = active(g(X)) mark(h(X)) = 1 >= 0 = active(h(mark(X))) f(mark(X)) = X + 2 >= X + 1 = f(X) f(active(X)) = X + 1 >= X + 1 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) problem: DPs: f#(active(X)) -> f#(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: dimension: 1 interpretation: [f#](x0) = x0, [mark](x0) = 1, [g](x0) = 0, [h](x0) = 0, [active](x0) = x0 + 1, [f](x0) = 0 orientation: f#(active(X)) = X + 1 >= X = f#(X) active(f(X)) = 1 >= 1 = mark(g(h(f(X)))) mark(f(X)) = 1 >= 1 = active(f(mark(X))) mark(g(X)) = 1 >= 1 = active(g(X)) mark(h(X)) = 1 >= 1 = active(h(mark(X))) f(mark(X)) = 0 >= 0 = f(X) f(active(X)) = 0 >= 0 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) h(mark(X)) = 0 >= 0 = h(X) h(active(X)) = 0 >= 0 = h(X) 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