R
↳Dependency Pair Analysis
ACK(s(x), 0) -> ACK(x, s(0))
ACK(s(x), s(y)) -> ACK(x, ack(s(x), y))
ACK(s(x), s(y)) -> ACK(s(x), y)
ACK(s(x), y) -> F(x, x)
F(s(x), y) -> F(x, s(x))
F(x, s(y)) -> F(y, x)
F(x, y) -> ACK(x, y)
R
↳DPs
→DP Problem 1
↳Narrowing Transformation
F(x, y) -> ACK(x, y)
F(x, s(y)) -> F(y, x)
F(s(x), y) -> F(x, s(x))
ACK(s(x), y) -> F(x, x)
ACK(s(x), s(y)) -> ACK(s(x), y)
ACK(s(x), s(y)) -> ACK(x, ack(s(x), y))
ACK(s(x), 0) -> ACK(x, s(0))
ack(0, y) -> s(y)
ack(s(x), 0) -> ack(x, s(0))
ack(s(x), s(y)) -> ack(x, ack(s(x), y))
ack(s(x), y) -> f(x, x)
f(s(x), y) -> f(x, s(x))
f(x, s(y)) -> f(y, x)
f(x, y) -> ack(x, y)
innermost
three new Dependency Pairs are created:
ACK(s(x), s(y)) -> ACK(x, ack(s(x), y))
ACK(s(x''), s(0)) -> ACK(x'', ack(x'', s(0)))
ACK(s(x''), s(s(y''))) -> ACK(x'', ack(x'', ack(s(x''), y'')))
ACK(s(x''), s(y'')) -> ACK(x'', f(x'', x''))
R
↳DPs
→DP Problem 1
↳Nar
→DP Problem 2
↳Remaining Obligation(s)
ACK(s(x''), s(y'')) -> ACK(x'', f(x'', x''))
ACK(s(x''), s(s(y''))) -> ACK(x'', ack(x'', ack(s(x''), y'')))
ACK(s(x''), s(0)) -> ACK(x'', ack(x'', s(0)))
F(x, s(y)) -> F(y, x)
F(s(x), y) -> F(x, s(x))
ACK(s(x), y) -> F(x, x)
ACK(s(x), s(y)) -> ACK(s(x), y)
ACK(s(x), 0) -> ACK(x, s(0))
F(x, y) -> ACK(x, y)
ack(0, y) -> s(y)
ack(s(x), 0) -> ack(x, s(0))
ack(s(x), s(y)) -> ack(x, ack(s(x), y))
ack(s(x), y) -> f(x, x)
f(s(x), y) -> f(x, s(x))
f(x, s(y)) -> f(y, x)
f(x, y) -> ack(x, y)
innermost