TRS: { exp(x, 0()) -> s(0()), exp(x, s(y)) -> *(x, exp(x, y)), *(0(), y) -> 0(), *(s(x), y) -> +(y, *(x, y)), -(0(), y) -> 0(), -(x, 0()) -> x, -(s(x), s(y)) -> -(x, y)} POP* + Boolean Semantic Labelling: Normal positions: pi(-_sl=1) = [1,2], pi(-_sl=0) = [1,2], pi(*_sl=1) = [1], pi(*_sl=0) = [1,2], pi(exp_sl=1) = [1,2], pi(exp_sl=0) = [1,2] Safe positions: pi(+_sl=1) = [1,2], pi(+_sl=0) = [1,2], pi(*_sl=1) = [2], pi(s_sl=1) = [1], pi(s_sl=0) = [1] Precedence: exp_sl=0 > s_sl=1, exp_sl=0 > *_sl=1, exp_sl=1 > *_sl=1, *_sl=1 > +_sl=0 empty Interpretation: s^(1): 0 | 0 1 | 1 0^(0): | 0 exp^(2): 00 | 0 01 | 0 10 | 0 11 | 0 *^(2): 00 | 0 01 | 0 10 | 0 11 | 0 +^(2): 00 | 0 01 | 0 10 | 0 11 | 0 -^(2): 00 | 0 01 | 0 10 | 1 11 | 0 Labelling: s^(1): 0 | 1 1 | 0 0^(0): | 0 exp^(2): 00 | 0 01 | 0 10 | 0 11 | 1 *^(2): 00 | 1 01 | 1 10 | 1 11 | 1 +^(2): 00 | 0 01 | 0 10 | 0 11 | 0 -^(2): 00 | 0 01 | 0 10 | 0 11 | 0 Labelled predicative System: { exp_sl=0(x,0_sl=0();) -> s_sl=1(;0_sl=0()), exp_sl=0(x,0_sl=0();) -> s_sl=1(;0_sl=0()), exp_sl=0(x,s_sl=1(;y);) -> *_sl=1(x;exp_sl=0(x,y;)), exp_sl=0(x,s_sl=0(;y);) -> *_sl=1(x;exp_sl=0(x,y;)), exp_sl=0(x,s_sl=1(;y);) -> *_sl=1(x;exp_sl=0(x,y;)), exp_sl=1(x,s_sl=0(;y);) -> *_sl=1(x;exp_sl=1(x,y;)), *_sl=1(0_sl=0();y) -> 0_sl=0(), *_sl=1(0_sl=0();y) -> 0_sl=0(), *_sl=1(s_sl=1(;x);y) -> +_sl=0(;y,*_sl=1(x;y)), *_sl=1(s_sl=1(;x);y) -> +_sl=0(;y,*_sl=1(x;y)), *_sl=1(s_sl=0(;x);y) -> +_sl=0(;y,*_sl=1(x;y)), *_sl=1(s_sl=0(;x);y) -> +_sl=0(;y,*_sl=1(x;y)), -_sl=0(0_sl=0(),y;) -> 0_sl=0(), -_sl=0(0_sl=0(),y;) -> 0_sl=0(), -_sl=0(x,0_sl=0();) -> x, -_sl=0(x,0_sl=0();) -> x, -_sl=0(s_sl=1(;x),s_sl=1(;y);) -> -_sl=0(x,y;), -_sl=0(s_sl=1(;x),s_sl=0(;y);) -> -_sl=0(x,y;), -_sl=0(s_sl=0(;x),s_sl=1(;y);) -> -_sl=0(x,y;), -_sl=0(s_sl=0(;x),s_sl=0(;y);) -> -_sl=0(x,y;)} Qed