YES Problem: f(x1) -> n(c(n(a(x1)))) c(f(x1)) -> f(n(a(c(x1)))) n(a(x1)) -> c(x1) c(c(x1)) -> c(x1) n(s(x1)) -> f(s(s(x1))) n(f(x1)) -> f(n(x1)) Proof: DP Processor: DPs: f#(x1) -> n#(a(x1)) f#(x1) -> c#(n(a(x1))) f#(x1) -> n#(c(n(a(x1)))) c#(f(x1)) -> c#(x1) c#(f(x1)) -> n#(a(c(x1))) c#(f(x1)) -> f#(n(a(c(x1)))) n#(a(x1)) -> c#(x1) n#(s(x1)) -> f#(s(s(x1))) n#(f(x1)) -> n#(x1) n#(f(x1)) -> f#(n(x1)) TRS: f(x1) -> n(c(n(a(x1)))) c(f(x1)) -> f(n(a(c(x1)))) n(a(x1)) -> c(x1) c(c(x1)) -> c(x1) n(s(x1)) -> f(s(s(x1))) n(f(x1)) -> f(n(x1)) Matrix Interpretation Processor: dim=2 interpretation: [c#](x0) = [1 0]x0 + [1], [n#](x0) = [1 1]x0 + [2], [f#](x0) = [1 0]x0 + [4], [1 0] [0] [s](x0) = [0 0]x0 + [4], [1 0] [c](x0) = [0 0]x0, [1 1] [n](x0) = [0 1]x0, [1 0] [a](x0) = [0 0]x0, [4] [f](x0) = x0 + [0] orientation: f#(x1) = [1 0]x1 + [4] >= [1 0]x1 + [2] = n#(a(x1)) f#(x1) = [1 0]x1 + [4] >= [1 0]x1 + [1] = c#(n(a(x1))) f#(x1) = [1 0]x1 + [4] >= [1 0]x1 + [2] = n#(c(n(a(x1)))) c#(f(x1)) = [1 0]x1 + [5] >= [1 0]x1 + [1] = c#(x1) c#(f(x1)) = [1 0]x1 + [5] >= [1 0]x1 + [2] = n#(a(c(x1))) c#(f(x1)) = [1 0]x1 + [5] >= [1 0]x1 + [4] = f#(n(a(c(x1)))) n#(a(x1)) = [1 0]x1 + [2] >= [1 0]x1 + [1] = c#(x1) n#(s(x1)) = [1 0]x1 + [6] >= [1 0]x1 + [4] = f#(s(s(x1))) n#(f(x1)) = [1 1]x1 + [6] >= [1 1]x1 + [2] = n#(x1) n#(f(x1)) = [1 1]x1 + [6] >= [1 1]x1 + [4] = f#(n(x1)) [4] [1 0] f(x1) = x1 + [0] >= [0 0]x1 = n(c(n(a(x1)))) [1 0] [4] [1 0] [4] c(f(x1)) = [0 0]x1 + [0] >= [0 0]x1 + [0] = f(n(a(c(x1)))) [1 0] [1 0] n(a(x1)) = [0 0]x1 >= [0 0]x1 = c(x1) [1 0] [1 0] c(c(x1)) = [0 0]x1 >= [0 0]x1 = c(x1) [1 0] [4] [1 0] [4] n(s(x1)) = [0 0]x1 + [4] >= [0 0]x1 + [4] = f(s(s(x1))) [1 1] [4] [1 1] [4] n(f(x1)) = [0 1]x1 + [0] >= [0 1]x1 + [0] = f(n(x1)) problem: DPs: TRS: f(x1) -> n(c(n(a(x1)))) c(f(x1)) -> f(n(a(c(x1)))) n(a(x1)) -> c(x1) c(c(x1)) -> c(x1) n(s(x1)) -> f(s(s(x1))) n(f(x1)) -> f(n(x1)) Qed