YES Problem: fac(s(x)) -> *(fac(p(s(x))),s(x)) p(s(0())) -> 0() p(s(s(x))) -> s(p(s(x))) Proof: DP Processor: DPs: fac#(s(x)) -> p#(s(x)) fac#(s(x)) -> fac#(p(s(x))) p#(s(s(x))) -> p#(s(x)) TRS: fac(s(x)) -> *(fac(p(s(x))),s(x)) p(s(0())) -> 0() p(s(s(x))) -> s(p(s(x))) Matrix Interpretation Processor: dim=2 interpretation: [p#](x0) = [0 1]x0, [fac#](x0) = [2 1]x0, [0] [0] = [0], [0 0] [2 0] [2] [*](x0, x1) = [0 1]x0 + [0 0]x1 + [0], [0 1] [p](x0) = [0 3]x0, [2 0] [3] [fac](x0) = [2 1]x0 + [2], [2 0] [1] [s](x0) = [1 0]x0 + [0] orientation: fac#(s(x)) = [5 0]x + [2] >= [1 0]x = p#(s(x)) fac#(s(x)) = [5 0]x + [2] >= [5 0]x = fac#(p(s(x))) p#(s(s(x))) = [2 0]x + [1] >= [1 0]x = p#(s(x)) [4 0] [5] [4 0] [4] fac(s(x)) = [5 0]x + [4] >= [5 0]x + [2] = *(fac(p(s(x))),s(x)) [0] [0] p(s(0())) = [0] >= [0] = 0() [2 0] [1] [2 0] [1] p(s(s(x))) = [6 0]x + [3] >= [1 0]x + [0] = s(p(s(x))) problem: DPs: TRS: fac(s(x)) -> *(fac(p(s(x))),s(x)) p(s(0())) -> 0() p(s(s(x))) -> s(p(s(x))) Qed