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

  Qed