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))} POP* + Boolean Semantic Labelling: Normal positions: pi(+_sl=1) = [1,2], pi(+_sl=0) = [1,2], pi(odd_sl=1) = [1], pi(not_sl=1) = [1] Safe positions: pi(s_sl=1) = [1], pi(s_sl=0) = [1], pi(odd_sl=0) = [1], pi(not_sl=0) = [1] Precedence: +_sl=0 > s_sl=0, odd_sl=1 > not_sl=0, odd_sl=1 > odd_sl=0, not_sl=0 > true_sl=1, not_sl=0 > false_sl=1, odd_sl=0 > false_sl=1, +_sl=1 > +_sl=0, +_sl=1 > s_sl=0 empty Interpretation: false^(0): | 0 not^(1): 0 | 0 1 | 0 true^(0): | 0 odd^(1): 0 | 0 1 | 0 0^(0): | 1 s^(1): 0 | 0 1 | 0 +^(2): 00 | 0 01 | 0 10 | 0 11 | 1 Labelling: false^(0): | 1 not^(1): 0 | 0 1 | 0 true^(0): | 1 odd^(1): 0 | 1 1 | 0 0^(0): | 0 s^(1): 0 | 0 1 | 0 +^(2): 00 | 1 01 | 1 10 | 0 11 | 0 Labelled predicative System: { not_sl=0(;true_sl=1()) -> false_sl=1(), not_sl=0(;false_sl=1()) -> true_sl=1(), odd_sl=0(;0_sl=0()) -> false_sl=1(), odd_sl=1(s_sl=0(;x);) -> not_sl=0(;odd_sl=1(x;)), odd_sl=1(s_sl=0(;x);) -> not_sl=0(;odd_sl=0(;x)), +_sl=1(x,0_sl=0();) -> x, +_sl=0(x,0_sl=0();) -> x, +_sl=1(x,s_sl=0(;y);) -> s_sl=0(;+_sl=1(x,y;)), +_sl=1(x,s_sl=0(;y);) -> s_sl=0(;+_sl=1(x,y;)), +_sl=0(x,s_sl=0(;y);) -> s_sl=0(;+_sl=0(x,y;)), +_sl=0(x,s_sl=0(;y);) -> s_sl=0(;+_sl=0(x,y;)), +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=1(x,y;)), +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=1(x,y;)), +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=0(x,y;)), +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=0(x,y;))} Qed