YES Problem: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) Proof: DP Processor: DPs: a__f#(s(0())) -> a__p#(s(0())) a__f#(s(0())) -> a__f#(a__p(s(0()))) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(p(X)) -> mark#(X) mark#(p(X)) -> a__p#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) TDG Processor: DPs: a__f#(s(0())) -> a__p#(s(0())) a__f#(s(0())) -> a__f#(a__p(s(0()))) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(p(X)) -> mark#(X) mark#(p(X)) -> a__p#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) graph: mark#(p(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(p(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(p(X)) -> a__p#(mark(X)) -> a__p#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> a__p#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> a__f#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__f#(a__p(s(0()))) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__p#(s(0())) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) a__f#(s(0())) -> a__p#(s(0())) -> a__p#(s(X)) -> mark#(X) a__f#(s(0())) -> a__f#(a__p(s(0()))) -> a__f#(s(0())) -> a__f#(a__p(s(0()))) a__f#(s(0())) -> a__f#(a__p(s(0()))) -> a__f#(s(0())) -> a__p#(s(0())) CDG Processor: DPs: a__f#(s(0())) -> a__p#(s(0())) a__f#(s(0())) -> a__f#(a__p(s(0()))) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(p(X)) -> mark#(X) mark#(p(X)) -> a__p#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) graph: mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(p(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(p(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(p(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(p(X)) -> a__p#(mark(X)) -> a__p#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(f(X)) -> a__f#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(p(X)) -> a__p#(mark(X)) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) -> mark#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(f(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(f(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(f(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__p#(s(0())) mark#(f(X)) -> a__f#(mark(X)) -> a__f#(s(0())) -> a__f#(a__p(s(0()))) mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) mark#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(f(X)) -> a__f#(mark(X)) a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> mark#(X) a__p#(s(X)) -> mark#(X) -> mark#(p(X)) -> a__p#(mark(X)) a__p#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1) a__p#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X) a__f#(s(0())) -> a__p#(s(0())) -> a__p#(s(X)) -> mark#(X) SCC Processor: #sccs: 1 #rules: 8 #arcs: 34/81 DPs: mark#(p(X)) -> mark#(X) mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> a__p#(mark(X)) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) a__f#(s(0())) -> a__p#(s(0())) mark#(f(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) Arctic Interpretation Processor: dimension: 1 interpretation: [mark#](x0) = x0 + 0, [a__p#](x0) = x0 + 0, [a__f#](x0) = x0 + 3, [p](x0) = x0, [mark](x0) = x0 + 0, [a__p](x0) = x0 + 0, [cons](x0, x1) = x0 + x1 + 0, [f](x0) = x0 + 3, [s](x0) = x0, [a__f](x0) = x0 + 3, [0] = 0 orientation: mark#(p(X)) = X + 0 >= X + 0 = mark#(X) mark#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(cons(X1,X2)) = X1 + X2 + 0 >= X1 + 0 = mark#(X1) mark#(p(X)) = X + 0 >= X + 0 = a__p#(mark(X)) a__p#(s(X)) = X + 0 >= X + 0 = mark#(X) mark#(f(X)) = X + 3 >= X + 3 = a__f#(mark(X)) a__f#(s(0())) = 3 >= 0 = a__p#(s(0())) mark#(f(X)) = X + 3 >= X + 0 = mark#(X) a__f(0()) = 3 >= 3 = cons(0(),f(s(0()))) a__f(s(0())) = 3 >= 3 = a__f(a__p(s(0()))) a__p(s(X)) = X + 0 >= X + 0 = mark(X) mark(f(X)) = X + 3 >= X + 3 = a__f(mark(X)) mark(p(X)) = X + 0 >= X + 0 = a__p(mark(X)) mark(0()) = 0 >= 0 = 0() mark(cons(X1,X2)) = X1 + X2 + 0 >= X1 + X2 + 0 = cons(mark(X1),X2) mark(s(X)) = X + 0 >= X + 0 = s(mark(X)) a__f(X) = X + 3 >= X + 3 = f(X) a__p(X) = X + 0 >= X = p(X) problem: DPs: mark#(p(X)) -> mark#(X) mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> a__p#(mark(X)) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> a__f#(mark(X)) mark#(f(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) SCC Processor: #sccs: 1 #rules: 6 #arcs: 33/49 DPs: mark#(p(X)) -> mark#(X) mark#(s(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> a__p#(mark(X)) a__p#(s(X)) -> mark#(X) mark#(f(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) KBO Processor: argument filtering: pi(0) = [] pi(a__f) = 0 pi(s) = [0] pi(f) = 0 pi(cons) = 0 pi(a__p) = 0 pi(mark) = 0 pi(p) = 0 pi(a__p#) = 0 pi(mark#) = 0 weight function: w0 = 1 w(p) = w(cons) = w(s) = w(0) = 1 w(mark#) = w(a__p#) = w(mark) = w(a__p) = w(f) = w(a__f) = 0 precedence: p > mark# ~ a__p# ~ mark ~ a__p ~ cons ~ f ~ s ~ a__f ~ 0 problem: DPs: mark#(p(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(p(X)) -> a__p#(mark(X)) mark#(f(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) SCC Processor: #sccs: 1 #rules: 3 #arcs: 26/16 DPs: mark#(p(X)) -> mark#(X) mark#(cons(X1,X2)) -> mark#(X1) mark#(f(X)) -> mark#(X) TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) Subterm Criterion Processor: simple projection: pi(mark#) = 0 problem: DPs: TRS: a__f(0()) -> cons(0(),f(s(0()))) a__f(s(0())) -> a__f(a__p(s(0()))) a__p(s(X)) -> mark(X) mark(f(X)) -> a__f(mark(X)) mark(p(X)) -> a__p(mark(X)) mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(s(X)) -> s(mark(X)) a__f(X) -> f(X) a__p(X) -> p(X) Qed