0 QTRS
↳1 Overlay + Local Confluence (⇔)
↳2 QTRS
↳3 DependencyPairsProof (⇔)
↳4 QDP
↳5 DependencyGraphProof (⇔)
↳6 QDP
↳7 QDPOrderProof (⇔)
↳8 QDP
↳9 QDPOrderProof (⇔)
↳10 QDP
↳11 PisEmptyProof (⇔)
↳12 TRUE
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, x0)
ack_in(s(x0), 0)
u11(ack_out(x0))
ack_in(s(x0), s(x1))
u21(ack_out(x0), x1)
u22(ack_out(x0))
ACK_IN(s(m), 0) → U11(ack_in(m, s(0)))
ACK_IN(s(m), 0) → ACK_IN(m, s(0))
ACK_IN(s(m), s(n)) → U21(ack_in(s(m), n), m)
ACK_IN(s(m), s(n)) → ACK_IN(s(m), n)
U21(ack_out(n), m) → U22(ack_in(m, n))
U21(ack_out(n), m) → ACK_IN(m, n)
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, x0)
ack_in(s(x0), 0)
u11(ack_out(x0))
ack_in(s(x0), s(x1))
u21(ack_out(x0), x1)
u22(ack_out(x0))
ACK_IN(s(m), s(n)) → U21(ack_in(s(m), n), m)
U21(ack_out(n), m) → ACK_IN(m, n)
ACK_IN(s(m), 0) → ACK_IN(m, s(0))
ACK_IN(s(m), s(n)) → ACK_IN(s(m), n)
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, x0)
ack_in(s(x0), 0)
u11(ack_out(x0))
ack_in(s(x0), s(x1))
u21(ack_out(x0), x1)
u22(ack_out(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACK_IN(s(m), s(n)) → U21(ack_in(s(m), n), m)
U21(ack_out(n), m) → ACK_IN(m, n)
ACK_IN(s(m), 0) → ACK_IN(m, s(0))
s1 > U212 > [ACKIN1, ackin, ackout]
s1 > 0 > [ACKIN1, ackin, ackout]
ACKIN1: multiset
s1: [1]
U212: multiset
ackin: []
ackout: []
0: multiset
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ACK_IN(s(m), s(n)) → ACK_IN(s(m), n)
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, x0)
ack_in(s(x0), 0)
u11(ack_out(x0))
ack_in(s(x0), s(x1))
u21(ack_out(x0), x1)
u22(ack_out(x0))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACK_IN(s(m), s(n)) → ACK_IN(s(m), n)
ackin > [ACKIN2, s1, u11] > [0, ackout, u22]
ACKIN2: multiset
s1: [1]
ackin: []
0: multiset
ackout: multiset
u11: multiset
u22: multiset
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, n) → ack_out(s(n))
ack_in(s(m), 0) → u11(ack_in(m, s(0)))
u11(ack_out(n)) → ack_out(n)
ack_in(s(m), s(n)) → u21(ack_in(s(m), n), m)
u21(ack_out(n), m) → u22(ack_in(m, n))
u22(ack_out(n)) → ack_out(n)
ack_in(0, x0)
ack_in(s(x0), 0)
u11(ack_out(x0))
ack_in(s(x0), s(x1))
u21(ack_out(x0), x1)
u22(ack_out(x0))