YES Problem: active(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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#(c()) -> g#(c()) active#(c()) -> f#(g(c())) active#(c()) -> mark#(f(g(c()))) active#(f(g(X))) -> mark#(g(X)) mark#(c()) -> active#(c()) mark#(f(X)) -> active#(f(X)) 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(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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) CDG Processor: DPs: active#(c()) -> g#(c()) active#(c()) -> f#(g(c())) active#(c()) -> mark#(f(g(c()))) active#(f(g(X))) -> mark#(g(X)) mark#(c()) -> active#(c()) mark#(f(X)) -> active#(f(X)) 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(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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) graph: mark#(f(X)) -> active#(f(X)) -> active#(f(g(X))) -> mark#(g(X)) mark#(c()) -> active#(c()) -> active#(c()) -> g#(c()) mark#(c()) -> active#(c()) -> active#(c()) -> f#(g(c())) mark#(c()) -> active#(c()) -> active#(c()) -> mark#(f(g(c()))) 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) 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) active#(f(g(X))) -> mark#(g(X)) -> mark#(g(X)) -> active#(g(X)) active#(c()) -> mark#(f(g(c()))) -> mark#(f(X)) -> active#(f(X)) SCC Processor: #sccs: 2 #rules: 4 #arcs: 14/121 DPs: g#(mark(X)) -> g#(X) g#(active(X)) -> g#(X) TRS: active(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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: dimension: 1 interpretation: [g#](x0) = x0, [mark](x0) = x0 + 1, [f](x0) = 0, [g](x0) = 0, [active](x0) = x0 + 1, [c] = 0 orientation: g#(mark(X)) = X + 1 >= X = g#(X) g#(active(X)) = X + 1 >= X = g#(X) active(c()) = 1 >= 1 = mark(f(g(c()))) active(f(g(X))) = 1 >= 1 = mark(g(X)) mark(c()) = 1 >= 1 = active(c()) mark(f(X)) = 1 >= 1 = active(f(X)) mark(g(X)) = 1 >= 1 = active(g(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) problem: DPs: TRS: active(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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 DPs: f#(mark(X)) -> f#(X) f#(active(X)) -> f#(X) TRS: active(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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: dimension: 1 interpretation: [f#](x0) = x0, [mark](x0) = x0 + 1, [f](x0) = 0, [g](x0) = 0, [active](x0) = x0 + 1, [c] = 0 orientation: f#(mark(X)) = X + 1 >= X = f#(X) f#(active(X)) = X + 1 >= X = f#(X) active(c()) = 1 >= 1 = mark(f(g(c()))) active(f(g(X))) = 1 >= 1 = mark(g(X)) mark(c()) = 1 >= 1 = active(c()) mark(f(X)) = 1 >= 1 = active(f(X)) mark(g(X)) = 1 >= 1 = active(g(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) problem: DPs: TRS: active(c()) -> mark(f(g(c()))) active(f(g(X))) -> mark(g(X)) mark(c()) -> active(c()) mark(f(X)) -> active(f(X)) 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