TRS: { f(x, y, z) -> g(<=(x, y), x, y, z), g(true(), x, y, z) -> z, g(false(), x, y, z) -> f(f(p(x), y, z), f(p(y), z, x), f(p(z), x, y)), p(0()) -> 0(), p(s(x)) -> x} POP* + Boolean Semantic Labelling: Normal positions: pi(p_sl=1) = [1], pi(f_sl=1) = [2], pi(f_sl=0) = [1,2,3], pi(g_sl=0) = [1,2,3,4] Safe positions: pi(s_sl=1) = [1], pi(s_sl=0) = [1], pi(p_sl=0) = [1], pi(f_sl=1) = [1,3], pi(<=_sl=1) = [1,2], pi(<=_sl=0) = [1,2], pi(g_sl=1) = [1,2,3,4] Precedence: f_sl=1 > g_sl=1, f_sl=1 > <=_sl=0, g_sl=0 > p_sl=0, g_sl=0 > f_sl=1 empty Interpretation: g^(4): 0000 | 0 0001 | 0 0010 | 1 0011 | 1 0100 | 1 0101 | 0 0110 | 0 0111 | 1 1000 | 0 1001 | 1 1010 | 0 1011 | 1 1100 | 0 1101 | 1 1110 | 0 1111 | 1 <=^(2): 00 | 0 01 | 0 10 | 0 11 | 0 f^(3): 000 | 0 001 | 0 010 | 1 011 | 1 100 | 1 101 | 0 110 | 0 111 | 1 true^(0): | 1 p^(1): 0 | 0 1 | 1 false^(0): | 1 0^(0): | 0 s^(1): 0 | 0 1 | 1 Labelling: g^(4): 0000 | 1 0001 | 1 0010 | 1 0011 | 1 0100 | 1 0101 | 1 0110 | 1 0111 | 1 1000 | 0 1001 | 0 1010 | 0 1011 | 0 1100 | 0 1101 | 0 1110 | 0 1111 | 0 <=^(2): 00 | 0 01 | 0 10 | 0 11 | 0 f^(3): 000 | 1 001 | 1 010 | 1 011 | 1 100 | 1 101 | 1 110 | 1 111 | 1 true^(0): | 0 p^(1): 0 | 0 1 | 0 false^(0): | 0 0^(0): | 0 s^(1): 0 | 0 1 | 0 Labelled predicative System: { f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), f_sl=1(y;x,z) -> g_sl=1(;<=_sl=0(;x,y),x,y,z), g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(true_sl=0(),x,y,z;) -> z, g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), g_sl=0(false_sl=0(),x,y,z;) -> f_sl=1(f_sl=1(z;p_sl=0(;y),x);f_sl=1(y;p_sl=0(;x),z),f_sl=1(x;p_sl=0(;z),y)), p_sl=0(;0_sl=0()) -> 0_sl=0(), p_sl=0(;s_sl=0(;x)) -> x, p_sl=0(;s_sl=0(;x)) -> x} Qed