TRS:
 {           f(0()) -> cons(0(), n__f(s(0()))),
          f(s(0())) -> f(p(s(0()))),
          p(s(0())) -> 0(),
               f(X) -> n__f(X),
  activate(n__f(X)) -> f(X),
        activate(X) -> X}
 POP* + Boolean Semantic Labelling:
  Normal positions:
  pi(activate_sl=1) = [1], pi(activate_sl=0) = [1], pi(p_sl=1) = [1], pi(p_sl=0) = [1], pi(f_sl=0) = [1]
  
Safe positions:
   pi(f_sl=1) = [1], pi(s_sl=1) = [1], pi(s_sl=0) = [1], pi(n__f_sl=1) = [1], pi(n__f_sl=0) = [1], pi(cons_sl=1) = [1,2], pi(cons_sl=0) = [1,2]
  
Precedence:
   f_sl=1 > cons_sl=1, 
   f_sl=1 > 0_sl=0, 
   f_sl=1 > n__f_sl=0, 
   f_sl=1 > s_sl=0, 
   f_sl=0 > 0_sl=0, 
   f_sl=0 > n__f_sl=0, 
   f_sl=0 > s_sl=0, 
   f_sl=0 > f_sl=1, 
   f_sl=0 > p_sl=0, 
   activate_sl=0 > f_sl=1, 
   activate_sl=0 > f_sl=0
   empty
  
Interpretation:
   cons^(2):
   00 | 0
   01 | 0
   10 | 0
   11 | 0
   0^(0):
    | 1
   n__f^(1):
   0 | 0
   1 | 0
   s^(1):
   0 | 0
   1 | 0
   f^(1):
   0 | 0
   1 | 0
   p^(1):
   0 | 1
   1 | 0
   activate^(1):
   0 | 0
   1 | 1
   
  
Labelling:
   cons^(2):
   00 | 0
   01 | 0
   10 | 1
   11 | 0
   0^(0):
    | 0
   n__f^(1):
   0 | 0
   1 | 0
   s^(1):
   0 | 0
   1 | 0
   f^(1):
   0 | 0
   1 | 1
   p^(1):
   0 | 0
   1 | 0
   activate^(1):
   0 | 0
   1 | 0
   
  
Labelled predicative System:
   {            f_sl=1(;0_sl=0()) -> cons_sl=1(;0_sl=0(),n__f_sl=0(;s_sl=0(;0_sl=0()))),
       f_sl=0(s_sl=0(;0_sl=0());) -> f_sl=1(;p_sl=0(s_sl=0(;0_sl=0());)),
       p_sl=0(s_sl=0(;0_sl=0());) -> 0_sl=0(),
                       f_sl=0(X;) -> n__f_sl=0(;X),
                       f_sl=1(;X) -> n__f_sl=0(;X),
    activate_sl=0(n__f_sl=0(;X);) -> f_sl=0(X;),
    activate_sl=0(n__f_sl=0(;X);) -> f_sl=1(;X),
                activate_sl=0(X;) -> X,
                activate_sl=0(X;) -> X}
  

  Qed