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

Termination of R to be shown.



   R
Dependency Pair Analysis



R contains the following Dependency Pairs:

ACKIN(s(m), 0) -> U11(ackin(m, s(0)))
ACKIN(s(m), 0) -> ACKIN(m, s(0))
ACKIN(s(m), s(n)) -> U21(ackin(s(m), n), m)
ACKIN(s(m), s(n)) -> ACKIN(s(m), n)
U21(ackout(n), m) -> U22(ackin(m, n))
U21(ackout(n), m) -> ACKIN(m, n)

Furthermore, R contains one SCC.


   R
DPs
       →DP Problem 1
Polynomial Ordering


Dependency Pairs:

ACKIN(s(m), s(n)) -> ACKIN(s(m), n)
U21(ackout(n), m) -> ACKIN(m, n)
ACKIN(s(m), s(n)) -> U21(ackin(s(m), n), m)
ACKIN(s(m), 0) -> ACKIN(m, s(0))


Rules:


ackin(0, n) -> ackout(s(n))
ackin(s(m), 0) -> u11(ackin(m, s(0)))
ackin(s(m), s(n)) -> u21(ackin(s(m), n), m)
u11(ackout(n)) -> ackout(n)
u21(ackout(n), m) -> u22(ackin(m, n))
u22(ackout(n)) -> ackout(n)





The following dependency pairs can be strictly oriented:

U21(ackout(n), m) -> ACKIN(m, n)
ACKIN(s(m), 0) -> ACKIN(m, s(0))


Additionally, the following usable rules using the Ce-refinement can be oriented:

ackin(0, n) -> ackout(s(n))
ackin(s(m), 0) -> u11(ackin(m, s(0)))
ackin(s(m), s(n)) -> u21(ackin(s(m), n), m)
u21(ackout(n), m) -> u22(ackin(m, n))
u11(ackout(n)) -> ackout(n)
u22(ackout(n)) -> ackout(n)


Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(ack_in(x1, x2))=  0  
  POL(0)=  0  
  POL(u11(x1))=  0  
  POL(u22(x1))=  0  
  POL(ACK_IN(x1, x2))=  x1  
  POL(U21(x1, x2))=  1 + x2  
  POL(ack_out(x1))=  0  
  POL(u21(x1, x2))=  0  
  POL(s(x1))=  1 + x1  

resulting in one new DP problem.



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


Dependency Pairs:

ACKIN(s(m), s(n)) -> ACKIN(s(m), n)
ACKIN(s(m), s(n)) -> U21(ackin(s(m), n), m)


Rules:


ackin(0, n) -> ackout(s(n))
ackin(s(m), 0) -> u11(ackin(m, s(0)))
ackin(s(m), s(n)) -> u21(ackin(s(m), n), m)
u11(ackout(n)) -> ackout(n)
u21(ackout(n), m) -> u22(ackin(m, n))
u22(ackout(n)) -> ackout(n)





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(m), s(n)) -> ACKIN(s(m), n)


Rules:


ackin(0, n) -> ackout(s(n))
ackin(s(m), 0) -> u11(ackin(m, s(0)))
ackin(s(m), s(n)) -> u21(ackin(s(m), n), m)
u11(ackout(n)) -> ackout(n)
u21(ackout(n), m) -> u22(ackin(m, n))
u22(ackout(n)) -> ackout(n)





The following dependency pair can be strictly oriented:

ACKIN(s(m), s(n)) -> ACKIN(s(m), n)


There are no usable rules using the Ce-refinement that need to be oriented.

Used ordering: Polynomial ordering with Polynomial interpretation:
  POL(ACK_IN(x1, x2))=  x2  
  POL(s(x1))=  1 + x1  

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, n) -> ackout(s(n))
ackin(s(m), 0) -> u11(ackin(m, s(0)))
ackin(s(m), s(n)) -> u21(ackin(s(m), n), m)
u11(ackout(n)) -> ackout(n)
u21(ackout(n), m) -> u22(ackin(m, n))
u22(ackout(n)) -> ackout(n)





Using the Dependency Graph resulted in no new DP problems.

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