TRS:
 { not(true()) -> false(),
  not(false()) -> true(),
      odd(0()) -> false(),
     odd(s(x)) -> not(odd(x)),
     +(x, 0()) -> x,
    +(x, s(y)) -> s(+(x, y)),
    +(s(x), y) -> s(+(x, y))}
 POP* + Boolean Semantic Labelling:
  Normal positions:
  pi(+_sl=1) = [1,2], pi(+_sl=0) = [1,2], pi(odd_sl=1) = [1], pi(not_sl=1) = [1]
  
Safe positions:
   pi(s_sl=1) = [1], pi(s_sl=0) = [1], pi(odd_sl=0) = [1], pi(not_sl=0) = [1]
  
Precedence:
   +_sl=0 > s_sl=0, 
   odd_sl=1 > not_sl=0, 
   odd_sl=1 > odd_sl=0, 
   not_sl=0 > true_sl=1, 
   not_sl=0 > false_sl=1, 
   odd_sl=0 > false_sl=1, 
   +_sl=1 > +_sl=0, 
   +_sl=1 > s_sl=0
   empty
  
Interpretation:
   false^(0):
    | 0
   not^(1):
   0 | 0
   1 | 0
   true^(0):
    | 0
   odd^(1):
   0 | 0
   1 | 0
   0^(0):
    | 1
   s^(1):
   0 | 0
   1 | 0
   +^(2):
   00 | 0
   01 | 0
   10 | 0
   11 | 1
   
  
Labelling:
   false^(0):
    | 1
   not^(1):
   0 | 0
   1 | 0
   true^(0):
    | 1
   odd^(1):
   0 | 1
   1 | 0
   0^(0):
    | 0
   s^(1):
   0 | 0
   1 | 0
   +^(2):
   00 | 1
   01 | 1
   10 | 0
   11 | 0
   
  
Labelled predicative System:
   { not_sl=0(;true_sl=1()) -> false_sl=1(),
    not_sl=0(;false_sl=1()) -> true_sl=1(),
        odd_sl=0(;0_sl=0()) -> false_sl=1(),
      odd_sl=1(s_sl=0(;x);) -> not_sl=0(;odd_sl=1(x;)),
      odd_sl=1(s_sl=0(;x);) -> not_sl=0(;odd_sl=0(;x)),
        +_sl=1(x,0_sl=0();) -> x,
        +_sl=0(x,0_sl=0();) -> x,
      +_sl=1(x,s_sl=0(;y);) -> s_sl=0(;+_sl=1(x,y;)),
      +_sl=1(x,s_sl=0(;y);) -> s_sl=0(;+_sl=1(x,y;)),
      +_sl=0(x,s_sl=0(;y);) -> s_sl=0(;+_sl=0(x,y;)),
      +_sl=0(x,s_sl=0(;y);) -> s_sl=0(;+_sl=0(x,y;)),
      +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=1(x,y;)),
      +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=1(x,y;)),
      +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=0(x,y;)),
      +_sl=1(s_sl=0(;x),y;) -> s_sl=0(;+_sl=0(x,y;))}
  

  Qed