Problem:
 nats() -> cons(0(),n__incr(n__nats()))
 pairs() -> cons(0(),n__incr(n__odds()))
 odds() -> incr(pairs())
 incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
 head(cons(X,XS)) -> X
 tail(cons(X,XS)) -> activate(XS)
 incr(X) -> n__incr(X)
 nats() -> n__nats()
 odds() -> n__odds()
 activate(n__incr(X)) -> incr(activate(X))
 activate(n__nats()) -> nats()
 activate(n__odds()) -> odds()
 activate(X) -> X

Proof:
 Matrix Interpretation Processor: dim=1
  
  interpretation:
   [tail](x0) = x0,
   
   [head](x0) = x0 + 1,
   
   [activate](x0) = x0,
   
   [s](x0) = x0,
   
   [incr](x0) = x0,
   
   [odds] = 0,
   
   [n__odds] = 0,
   
   [pairs] = 0,
   
   [cons](x0, x1) = x0 + x1,
   
   [n__incr](x0) = x0,
   
   [n__nats] = 0,
   
   [0] = 0,
   
   [nats] = 0
  orientation:
   nats() = 0 >= 0 = cons(0(),n__incr(n__nats()))
   
   pairs() = 0 >= 0 = cons(0(),n__incr(n__odds()))
   
   odds() = 0 >= 0 = incr(pairs())
   
   incr(cons(X,XS)) = X + XS >= X + XS = cons(s(X),n__incr(activate(XS)))
   
   head(cons(X,XS)) = X + XS + 1 >= X = X
   
   tail(cons(X,XS)) = X + XS >= XS = activate(XS)
   
   incr(X) = X >= X = n__incr(X)
   
   nats() = 0 >= 0 = n__nats()
   
   odds() = 0 >= 0 = n__odds()
   
   activate(n__incr(X)) = X >= X = incr(activate(X))
   
   activate(n__nats()) = 0 >= 0 = nats()
   
   activate(n__odds()) = 0 >= 0 = odds()
   
   activate(X) = X >= X = X
  problem:
   nats() -> cons(0(),n__incr(n__nats()))
   pairs() -> cons(0(),n__incr(n__odds()))
   odds() -> incr(pairs())
   incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
   tail(cons(X,XS)) -> activate(XS)
   incr(X) -> n__incr(X)
   nats() -> n__nats()
   odds() -> n__odds()
   activate(n__incr(X)) -> incr(activate(X))
   activate(n__nats()) -> nats()
   activate(n__odds()) -> odds()
   activate(X) -> X
  Matrix Interpretation Processor: dim=3
   
   interpretation:
                 [1 0 0]     [1]
    [tail](x0) = [0 1 0]x0 + [1]
                 [1 1 0]     [0],
    
                     [1 0 0]     [0]
    [activate](x0) = [0 1 0]x0 + [1]
                     [1 0 1]     [0],
    
              [1 0 0]  
    [s](x0) = [0 0 0]x0
              [0 0 0]  ,
    
                 [1 0 0]  
    [incr](x0) = [1 0 0]x0
                 [0 0 0]  ,
    
             [1]
    [odds] = [1]
             [0],
    
                [1]
    [n__odds] = [0]
                [0],
    
              [1]
    [pairs] = [1]
              [0],
    
                     [1 0 0]     [1 0 0]  
    [cons](x0, x1) = [0 0 0]x0 + [0 1 1]x1
                     [0 0 0]     [0 0 0]  ,
    
                    [1 0 0]  
    [n__incr](x0) = [1 0 0]x0
                    [0 0 0]  ,
    
                [1]
    [n__nats] = [0]
                [0],
    
          [0]
    [0] = [0]
          [0],
    
             [1]
    [nats] = [1]
             [0]
   orientation:
             [1]    [1]                               
    nats() = [1] >= [1] = cons(0(),n__incr(n__nats()))
             [0]    [0]                               
    
              [1]    [1]                               
    pairs() = [1] >= [1] = cons(0(),n__incr(n__odds()))
              [0]    [0]                               
    
             [1]    [1]                
    odds() = [1] >= [1] = incr(pairs())
             [0]    [0]                
    
                       [1 0 0]    [1 0 0]      [1 0 0]    [1 0 0]                                     
    incr(cons(X,XS)) = [1 0 0]X + [1 0 0]XS >= [0 0 0]X + [1 0 0]XS = cons(s(X),n__incr(activate(XS)))
                       [0 0 0]    [0 0 0]      [0 0 0]    [0 0 0]                                     
    
                       [1 0 0]    [1 0 0]     [1]    [1 0 0]     [0]               
    tail(cons(X,XS)) = [0 0 0]X + [0 1 1]XS + [1] >= [0 1 0]XS + [1] = activate(XS)
                       [1 0 0]    [1 1 1]     [0]    [1 0 1]     [0]               
    
              [1 0 0]     [1 0 0]              
    incr(X) = [1 0 0]X >= [1 0 0]X = n__incr(X)
              [0 0 0]     [0 0 0]              
    
             [1]    [1]            
    nats() = [1] >= [0] = n__nats()
             [0]    [0]            
    
             [1]    [1]            
    odds() = [1] >= [0] = n__odds()
             [0]    [0]            
    
                           [1 0 0]    [0]    [1 0 0]                     
    activate(n__incr(X)) = [1 0 0]X + [1] >= [1 0 0]X = incr(activate(X))
                           [1 0 0]    [0]    [0 0 0]                     
    
                          [1]    [1]         
    activate(n__nats()) = [1] >= [1] = nats()
                          [1]    [0]         
    
                          [1]    [1]         
    activate(n__odds()) = [1] >= [1] = odds()
                          [1]    [0]         
    
                  [1 0 0]    [0]         
    activate(X) = [0 1 0]X + [1] >= X = X
                  [1 0 1]    [0]         
   problem:
    nats() -> cons(0(),n__incr(n__nats()))
    pairs() -> cons(0(),n__incr(n__odds()))
    odds() -> incr(pairs())
    incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS)))
    incr(X) -> n__incr(X)
    nats() -> n__nats()
    odds() -> n__odds()
    activate(n__incr(X)) -> incr(activate(X))
    activate(n__nats()) -> nats()
    activate(n__odds()) -> odds()
    activate(X) -> X
   Unfolding Processor:
    loop length: 4
    terms:
     incr(cons(X,n__incr(n__nats())))
     cons(s(X),n__incr(activate(n__incr(n__nats()))))
     cons(s(X),n__incr(incr(activate(n__nats()))))
     cons(s(X),n__incr(incr(nats())))
    context: cons(s(X),n__incr([]))
    substitution:
     X -> 0()
    Qed