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) TDG 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#(f(X)) -> active#(f(X)) -> active#(c()) -> mark#(f(g(c()))) mark#(f(X)) -> active#(f(X)) -> active#(c()) -> f#(g(c())) mark#(f(X)) -> active#(f(X)) -> active#(c()) -> g#(c()) mark#(g(X)) -> active#(g(X)) -> active#(f(g(X))) -> mark#(g(X)) mark#(g(X)) -> active#(g(X)) -> active#(c()) -> mark#(f(g(c()))) mark#(g(X)) -> active#(g(X)) -> active#(c()) -> f#(g(c())) mark#(g(X)) -> active#(g(X)) -> active#(c()) -> g#(c()) mark#(c()) -> active#(c()) -> active#(f(g(X))) -> mark#(g(X)) mark#(c()) -> active#(c()) -> active#(c()) -> mark#(f(g(c()))) mark#(c()) -> active#(c()) -> active#(c()) -> f#(g(c())) mark#(c()) -> active#(c()) -> active#(c()) -> g#(c()) f#(mark(X)) -> f#(X) -> f#(active(X)) -> f#(X) f#(mark(X)) -> f#(X) -> f#(mark(X)) -> f#(X) f#(active(X)) -> f#(X) -> f#(active(X)) -> f#(X) f#(active(X)) -> f#(X) -> f#(mark(X)) -> f#(X) g#(mark(X)) -> g#(X) -> g#(active(X)) -> g#(X) g#(mark(X)) -> g#(X) -> g#(mark(X)) -> g#(X) g#(active(X)) -> g#(X) -> g#(active(X)) -> g#(X) g#(active(X)) -> g#(X) -> g#(mark(X)) -> g#(X) active#(f(g(X))) -> mark#(g(X)) -> mark#(g(X)) -> active#(g(X)) active#(f(g(X))) -> mark#(g(X)) -> mark#(f(X)) -> active#(f(X)) active#(f(g(X))) -> mark#(g(X)) -> mark#(c()) -> active#(c()) active#(c()) -> mark#(f(g(c()))) -> mark#(g(X)) -> active#(g(X)) active#(c()) -> mark#(f(g(c()))) -> mark#(f(X)) -> active#(f(X)) active#(c()) -> mark#(f(g(c()))) -> mark#(c()) -> active#(c()) active#(c()) -> f#(g(c())) -> f#(active(X)) -> f#(X) active#(c()) -> f#(g(c())) -> f#(mark(X)) -> f#(X) active#(c()) -> g#(c()) -> g#(active(X)) -> g#(X) active#(c()) -> g#(c()) -> g#(mark(X)) -> g#(X) SCC Processor: #sccs: 3 #rules: 9 #arcs: 30/121 DPs: mark#(f(X)) -> active#(f(X)) active#(c()) -> mark#(f(g(c()))) mark#(c()) -> active#(c()) active#(f(g(X))) -> mark#(g(X)) mark#(g(X)) -> active#(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: [mark#](x0) = 1, [active#](x0) = x0, [mark](x0) = 0, [f](x0) = 1, [g](x0) = 0, [active](x0) = 0, [c] = 1 orientation: mark#(f(X)) = 1 >= 1 = active#(f(X)) active#(c()) = 1 >= 1 = mark#(f(g(c()))) mark#(c()) = 1 >= 1 = active#(c()) active#(f(g(X))) = 1 >= 1 = mark#(g(X)) mark#(g(X)) = 1 >= 0 = active#(g(X)) active(c()) = 0 >= 0 = mark(f(g(c()))) active(f(g(X))) = 0 >= 0 = mark(g(X)) mark(c()) = 0 >= 0 = active(c()) mark(f(X)) = 0 >= 0 = active(f(X)) mark(g(X)) = 0 >= 0 = active(g(X)) f(mark(X)) = 1 >= 1 = f(X) f(active(X)) = 1 >= 1 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) problem: DPs: mark#(f(X)) -> active#(f(X)) active#(c()) -> mark#(f(g(c()))) mark#(c()) -> active#(c()) active#(f(g(X))) -> mark#(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: [mark#](x0) = x0, [active#](x0) = x0, [mark](x0) = 0, [f](x0) = 1, [g](x0) = 0, [active](x0) = 0, [c] = 1 orientation: mark#(f(X)) = 1 >= 1 = active#(f(X)) active#(c()) = 1 >= 1 = mark#(f(g(c()))) mark#(c()) = 1 >= 1 = active#(c()) active#(f(g(X))) = 1 >= 0 = mark#(g(X)) active(c()) = 0 >= 0 = mark(f(g(c()))) active(f(g(X))) = 0 >= 0 = mark(g(X)) mark(c()) = 0 >= 0 = active(c()) mark(f(X)) = 0 >= 0 = active(f(X)) mark(g(X)) = 0 >= 0 = active(g(X)) f(mark(X)) = 1 >= 1 = f(X) f(active(X)) = 1 >= 1 = f(X) g(mark(X)) = 0 >= 0 = g(X) g(active(X)) = 0 >= 0 = g(X) problem: DPs: mark#(f(X)) -> active#(f(X)) active#(c()) -> mark#(f(g(c()))) mark#(c()) -> active#(c()) 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: [mark#](x0) = x0, [active#](x0) = 0, [mark](x0) = 0, [f](x0) = 0, [g](x0) = 0, [active](x0) = 0, [c] = 1 orientation: mark#(f(X)) = 0 >= 0 = active#(f(X)) active#(c()) = 0 >= 0 = mark#(f(g(c()))) mark#(c()) = 1 >= 0 = active#(c()) active(c()) = 0 >= 0 = mark(f(g(c()))) active(f(g(X))) = 0 >= 0 = mark(g(X)) mark(c()) = 0 >= 0 = active(c()) mark(f(X)) = 0 >= 0 = active(f(X)) mark(g(X)) = 0 >= 0 = 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: mark#(f(X)) -> active#(f(X)) active#(c()) -> mark#(f(g(c()))) 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: [mark#](x0) = 0, [active#](x0) = x0, [mark](x0) = 0, [f](x0) = 0, [g](x0) = 0, [active](x0) = 0, [c] = 1 orientation: mark#(f(X)) = 0 >= 0 = active#(f(X)) active#(c()) = 1 >= 0 = mark#(f(g(c()))) active(c()) = 0 >= 0 = mark(f(g(c()))) active(f(g(X))) = 0 >= 0 = mark(g(X)) mark(c()) = 0 >= 0 = active(c()) mark(f(X)) = 0 >= 0 = active(f(X)) mark(g(X)) = 0 >= 0 = 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: mark#(f(X)) -> active#(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: [mark#](x0) = 1, [active#](x0) = 0, [mark](x0) = 0, [f](x0) = 0, [g](x0) = 0, [active](x0) = 0, [c] = 0 orientation: mark#(f(X)) = 1 >= 0 = active#(f(X)) active(c()) = 0 >= 0 = mark(f(g(c()))) active(f(g(X))) = 0 >= 0 = mark(g(X)) mark(c()) = 0 >= 0 = active(c()) mark(f(X)) = 0 >= 0 = active(f(X)) mark(g(X)) = 0 >= 0 = 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 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