TRS: { f(s(X)) -> f(X), g(cons(0(), Y)) -> g(Y), g(cons(s(X), Y)) -> s(X), h(cons(X, Y)) -> h(g(cons(X, Y)))} POP* + Boolean Semantic Labelling: Normal positions: pi(h_sl=1) = [1], pi(h_sl=0) = [1], pi(g_sl=1) = [1], pi(g_sl=0) = [1], pi(f_sl=1) = [1] Safe positions: pi(cons_sl=1) = [1,2], pi(cons_sl=0) = [1,2], pi(s_sl=1) = [1], pi(s_sl=0) = [1], pi(f_sl=0) = [1] Precedence: f_sl=1 > f_sl=0, h_sl=1 > h_sl=0, h_sl=1 > g_sl=0 empty Interpretation: f^(1): 0 | 0 1 | 0 s^(1): 0 | 0 1 | 0 g^(1): 0 | 0 1 | 0 cons^(2): 00 | 1 01 | 1 10 | 1 11 | 1 0^(0): | 1 h^(1): 0 | 0 1 | 0 Labelling: f^(1): 0 | 1 1 | 0 s^(1): 0 | 0 1 | 0 g^(1): 0 | 0 1 | 0 cons^(2): 00 | 1 01 | 0 10 | 0 11 | 1 0^(0): | 0 h^(1): 0 | 0 1 | 1 Labelled predicative System: { f_sl=1(s_sl=0(;X);) -> f_sl=1(X;), f_sl=1(s_sl=0(;X);) -> f_sl=0(;X), g_sl=0(cons_sl=0(;0_sl=0(),Y);) -> g_sl=0(Y;), g_sl=0(cons_sl=1(;0_sl=0(),Y);) -> g_sl=0(Y;), g_sl=0(cons_sl=1(;s_sl=0(;X),Y);) -> s_sl=0(;X), g_sl=0(cons_sl=0(;s_sl=0(;X),Y);) -> s_sl=0(;X), g_sl=0(cons_sl=1(;s_sl=0(;X),Y);) -> s_sl=0(;X), g_sl=0(cons_sl=0(;s_sl=0(;X),Y);) -> s_sl=0(;X), h_sl=1(cons_sl=1(;X,Y);) -> h_sl=0(g_sl=0(cons_sl=1(;X,Y););), h_sl=1(cons_sl=0(;X,Y);) -> h_sl=0(g_sl=0(cons_sl=0(;X,Y););), h_sl=1(cons_sl=0(;X,Y);) -> h_sl=0(g_sl=0(cons_sl=0(;X,Y););), h_sl=1(cons_sl=1(;X,Y);) -> h_sl=0(g_sl=0(cons_sl=1(;X,Y););)} Qed