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