Term Rewriting System R:
[X, Y]
ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

ACKIN(s(X), 0) -> U11(ackin(X, s(0)))
ACKIN(s(X), 0) -> ACKIN(X, s(0))
ACKIN(s(X), s(Y)) -> U21(ackin(s(X), Y), X)
ACKIN(s(X), s(Y)) -> ACKIN(s(X), Y)
U21(ackout(X), Y) -> U22(ackin(Y, X))
U21(ackout(X), Y) -> ACKIN(Y, X)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Polynomial Ordering


Dependency Pairs:

ACKIN(s(X), s(Y)) -> ACKIN(s(X), Y)
U21(ackout(X), Y) -> ACKIN(Y, X)
ACKIN(s(X), s(Y)) -> U21(ackin(s(X), Y), X)
ACKIN(s(X), 0) -> ACKIN(X, s(0))


Rules:


ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)





The following dependency pairs can be strictly oriented:

ACKIN(s(X), s(Y)) -> U21(ackin(s(X), Y), X)
ACKIN(s(X), 0) -> ACKIN(X, s(0))


Additionally, the following rules can be oriented:

ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(0)=  0  
  POL(u11(x1))=  0  
  POL(u22(x1))=  0  
  POL(U21(x1, x2))=  x2  
  POL(ackin(x1, x2))=  0  
  POL(u21(x1, x2))=  0  
  POL(s(x1))=  1 + x1  
  POL(ACKIN(x1, x2))=  x1  
  POL(ackout(x1))=  0  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
Dependency Graph


Dependency Pairs:

ACKIN(s(X), s(Y)) -> ACKIN(s(X), Y)
U21(ackout(X), Y) -> ACKIN(Y, X)


Rules:


ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)





Using the Dependency Graph the DP problem was split into 1 DP problems.


   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 3
Polynomial Ordering


Dependency Pair:

ACKIN(s(X), s(Y)) -> ACKIN(s(X), Y)


Rules:


ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)





The following dependency pair can be strictly oriented:

ACKIN(s(X), s(Y)) -> ACKIN(s(X), Y)


Additionally, the following rules can be oriented:

ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(0)=  0  
  POL(u11(x1))=  0  
  POL(u22(x1))=  0  
  POL(ackin(x1, x2))=  0  
  POL(u21(x1, x2))=  0  
  POL(s(x1))=  1 + x1  
  POL(ACKIN(x1, x2))=  x2  
  POL(ackout(x1))=  0  

resulting in one new DP problem.



   R
DPs
       →DP Problem 1
Polo
           →DP Problem 2
DGraph
             ...
               →DP Problem 4
Dependency Graph


Dependency Pair:


Rules:


ackin(0, X) -> ackout(s(X))
ackin(s(X), 0) -> u11(ackin(X, s(0)))
ackin(s(X), s(Y)) -> u21(ackin(s(X), Y), X)
u11(ackout(X)) -> ackout(X)
u21(ackout(X), Y) -> u22(ackin(Y, X))
u22(ackout(X)) -> ackout(X)





Using the Dependency Graph resulted in no new DP problems.

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