Term Rewriting System R: [n, m] ack_in(0, n) -> ack_out(s(n)) ack_in(s(m), 0) -> u11(ack_in(m, s(0))) ack_in(s(m), s(n)) -> u21(ack_in(s(m), n), m) u11(ack_out(n)) -> ack_out(n) u21(ack_out(n), m) -> u22(ack_in(m, n)) u22(ack_out(n)) -> ack_out(n) Termination of R to be shown. This program has no overlaps, so it is sufficient to show innermost termination. R contains the following Dependency Pairs: U21(ack_out(n), m) -> U22(ack_in(m, n)) U21(ack_out(n), m) -> ACK_IN(m, n) ACK_IN(s(m), s(n)) -> U21(ack_in(s(m), n), m) ACK_IN(s(m), s(n)) -> ACK_IN(s(m), n) ACK_IN(s(m), 0) -> U11(ack_in(m, s(0))) ACK_IN(s(m), 0) -> ACK_IN(m, s(0)) Furthermore, R contains one SCC. SCC1: ACK_IN(s(m), 0) -> ACK_IN(m, s(0)) ACK_IN(s(m), s(n)) -> ACK_IN(s(m), n) ACK_IN(s(m), s(n)) -> U21(ack_in(s(m), n), m) U21(ack_out(n), m) -> ACK_IN(m, n) By using a polynomial ordering, at least one Dependency Pair of this SCC can be strictly oriented. No rules need to be oriented. Used ordering: Polynomial ordering with Polynomial interpretation: POL(s(x_1)) = 1 + x_1 POL(U21(x_1, x_2)) = x_2 POL(u11(x_1)) = 0 POL(ack_in(x_1, x_2)) = 0 POL(u22(x_1)) = 0 POL(u21(x_1, x_2)) = 0 POL(ACK_IN(x_1, x_2)) = x_1 POL(0) = 0 POL(ack_out(x_1)) = 0 resulting in one subcycle. SCC1.Polo1: ACK_IN(s(m), s(n)) -> ACK_IN(s(m), n) Removing rules from R by ordering and analyzing Dependency Pairs, Usable Rules, and Usable Equations. This is possible by using the following (C_E-compatible) Polynomial ordering. Polynomial interpretation: POL(s(x_1)) = 1 + x_1 POL(ACK_IN(x_1, x_2)) = 1 + x_1 + x_2 The following Dependency Pairs can be deleted: ACK_IN(s(m), s(n)) -> ACK_IN(s(m), n) This transformation is resulting in no new subcycles. Termination of R successfully shown. Duration: 0.765 seconds.