YES Problem: not(true()) -> false() not(false()) -> true() odd(0()) -> false() odd(s(x)) -> not(odd(x)) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(s(x),y) -> s(+(x,y)) Proof: DP Processor: DPs: odd#(s(x)) -> odd#(x) odd#(s(x)) -> not#(odd(x)) +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) TRS: not(true()) -> false() not(false()) -> true() odd(0()) -> false() odd(s(x)) -> not(odd(x)) +(x,0()) -> x +(x,s(y)) -> s(+(x,y)) +(s(x),y) -> s(+(x,y)) Usable Rule Processor: DPs: odd#(s(x)) -> odd#(x) odd#(s(x)) -> not#(odd(x)) +#(x,s(y)) -> +#(x,y) +#(s(x),y) -> +#(x,y) TRS: odd(0()) -> false() odd(s(x)) -> not(odd(x)) not(true()) -> false() not(false()) -> true() Matrix Interpretation Processor: dim=3 usable rules: odd(0()) -> false() odd(s(x)) -> not(odd(x)) not(true()) -> false() not(false()) -> true() interpretation: [+#](x0, x1) = [1 1 0]x0 + [1 0 0]x1, [odd#](x0) = [1 0 0]x0, [not#](x0) = [0 0 1]x0, [1 0 0] [1] [s](x0) = [1 1 1]x0 + [1] [0 0 0] [0], [1 0 0] [odd](x0) = [0 0 0]x0 [1 0 0] , [0] [0] = [0] [0], [0] [false] = [0] [0], [0 0 1] [1] [not](x0) = [0 0 0]x0 + [0] [1 0 0] [1], [0] [true] = [0] [1] orientation: odd#(s(x)) = [1 0 0]x + [1] >= [1 0 0]x = odd#(x) odd#(s(x)) = [1 0 0]x + [1] >= [1 0 0]x = not#(odd(x)) +#(x,s(y)) = [1 1 0]x + [1 0 0]y + [1] >= [1 1 0]x + [1 0 0]y = +#(x,y) +#(s(x),y) = [2 1 1]x + [1 0 0]y + [2] >= [1 1 0]x + [1 0 0]y = +#(x,y) [0] [0] odd(0()) = [0] >= [0] = false() [0] [0] [1 0 0] [1] [1 0 0] [1] odd(s(x)) = [0 0 0]x + [0] >= [0 0 0]x + [0] = not(odd(x)) [1 0 0] [1] [1 0 0] [1] [2] [0] not(true()) = [0] >= [0] = false() [1] [0] [1] [0] not(false()) = [0] >= [0] = true() [1] [1] problem: DPs: TRS: odd(0()) -> false() odd(s(x)) -> not(odd(x)) not(true()) -> false() not(false()) -> true() Qed