YES Problem: f(s(x)) -> s(f(f(p(s(x))))) f(0()) -> 0() p(s(x)) -> x Proof: DP Processor: DPs: f#(s(x)) -> p#(s(x)) f#(s(x)) -> f#(p(s(x))) f#(s(x)) -> f#(f(p(s(x)))) TRS: f(s(x)) -> s(f(f(p(s(x))))) f(0()) -> 0() p(s(x)) -> x Matrix Interpretation Processor: dim=4 usable rules: f(s(x)) -> s(f(f(p(s(x))))) f(0()) -> 0() p(s(x)) -> x interpretation: [p#](x0) = [0], [f#](x0) = [0 0 0 1]x0, [0] [0] [0] = [0] [1], [1 0 0 0] [1 0 0 0] [p](x0) = [0 1 0 0]x0 [0 0 1 0] , [0 0 1 1] [0 0 0 1] [f](x0) = [0 0 1 0]x0 [0 0 0 1] , [1 1 0 0] [0] [0 0 1 0] [0] [s](x0) = [0 0 0 1]x0 + [0] [0 0 1 1] [1] orientation: f#(s(x)) = [0 0 1 1]x + [1] >= [0] = p#(s(x)) f#(s(x)) = [0 0 1 1]x + [1] >= [0 0 0 1]x = f#(p(s(x))) f#(s(x)) = [0 0 1 1]x + [1] >= [0 0 0 1]x = f#(f(p(s(x)))) [0 0 1 2] [1] [0 0 1 2] [0] [0 0 1 1] [1] [0 0 1 0] [0] f(s(x)) = [0 0 0 1]x + [0] >= [0 0 0 1]x + [0] = s(f(f(p(s(x))))) [0 0 1 1] [1] [0 0 1 1] [1] [1] [0] [1] [0] f(0()) = [0] >= [0] = 0() [1] [1] [1 1 0 0] [1 1 0 0] p(s(x)) = [0 0 1 0]x >= x = x [0 0 0 1] problem: DPs: TRS: f(s(x)) -> s(f(f(p(s(x))))) f(0()) -> 0() p(s(x)) -> x Qed