YES Termination Proof using AProVETerm Rewriting System R:
[M, N]
U11(tt, M, N) -> U12(tt, M, N)
U12(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> N
plus(N, s(M)) -> U11(tt, M, N)

Termination of R to be shown.



   R
Orthogonal Check



This CSR is orthogonal, so it is sufficient to show innermost termination.


   R
OrthoCSR
       →TRS1
CSR to TRS Transformation




Zantema-Transformation successful.
Replacement map:
plus(1, 2)
U12(1, 2, 3)
s(1)
U11(1, 2, 3)

Old CSR:

U11(tt, M, N) -> U12(tt, M, N)
U12(tt, M, N) -> s(plus(N, M))
plus(N, 0) -> N
plus(N, s(M)) -> U11(tt, M, N)

new TRS:

U11(tt, M, N) -> U12(tt, a(M), a(N))
U12(tt, M, N) -> s(plus(a(N), a(M)))
plus(N, 0) -> N
plus(N, s(M)) -> U11(tt, M, N)



   R
OrthoCSR
       →TRS1
CSRtoTRS
           →TRS2
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

U11(tt, M, N) -> U12(tt, a(M), a(N))
plus(N, 0) -> N

where the Polynomial interpretation:
  POL(plus(x1, x2))=  x1 + 2·x2  
  POL(0)=  2  
  POL(U12(x1, x2, x3))=  x1 + 2·x2 + x3  
  POL(*a*(x1))=  x1  
  POL(tt)=  1  
  POL(s(x1))=  1 + x1  
  POL(U11(x1, x2, x3))=  2·x1 + 2·x2 + x3  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
OrthoCSR
       →TRS1
CSRtoTRS
           →TRS2
RRRPolo
             ...
               →TRS3
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

plus(N, s(M)) -> U11(tt, M, N)

where the Polynomial interpretation:
  POL(plus(x1, x2))=  x1 + x2  
  POL(U12(x1, x2, x3))=  1 + x1 + x2 + x3  
  POL(*a*(x1))=  x1  
  POL(tt)=  0  
  POL(s(x1))=  1 + x1  
  POL(U11(x1, x2, x3))=  x1 + x2 + x3  
was used.

Not all Rules of R can be deleted, so we still have to regard a part of R.


   R
OrthoCSR
       →TRS1
CSRtoTRS
           →TRS2
RRRPolo
             ...
               →TRS4
Removing Redundant Rules



Removing the following rules from R which fullfill a polynomial ordering:

U12(tt, M, N) -> s(plus(a(N), a(M)))

where the Polynomial interpretation:
  POL(plus(x1, x2))=  x1 + x2  
  POL(U12(x1, x2, x3))=  1 + x1 + x2 + x3  
  POL(*a*(x1))=  x1  
  POL(tt)=  0  
  POL(s(x1))=  x1  
was used.

All Rules of R can be deleted.


   R
OrthoCSR
       →TRS1
CSRtoTRS
           →TRS2
RRRPolo
             ...
               →TRS5
Overlay and local confluence Check



The TRS is overlay and locally confluent (all critical pairs are trivially joinable).Hence, we can switch to innermost.


   R
OrthoCSR
       →TRS1
CSRtoTRS
           →TRS2
RRRPolo
             ...
               →TRS6
Dependency Pair Analysis



R contains no Dependency Pairs and therefore no SCCs.

Termination of R successfully shown.
Duration:
0:01 minutes