YES Time: 0.039561 TRS: {ack(s x, s y) -> ack(x, ack(s x, y)), ack(s x, 0()) -> ack(x, s 0()), ack(0(), y) -> s y} DP: DP: {ack#(s x, s y) -> ack#(x, ack(s x, y)), ack#(s x, s y) -> ack#(s x, y), ack#(s x, 0()) -> ack#(x, s 0())} TRS: {ack(s x, s y) -> ack(x, ack(s x, y)), ack(s x, 0()) -> ack(x, s 0()), ack(0(), y) -> s y} UR: {ack(s x, s y) -> ack(x, ack(s x, y)), ack(s x, 0()) -> ack(x, s 0()), ack(0(), y) -> s y, a(z, w) -> z, a(z, w) -> w} EDG: {(ack#(s x, s y) -> ack#(s x, y), ack#(s x, 0()) -> ack#(x, s 0())) (ack#(s x, s y) -> ack#(s x, y), ack#(s x, s y) -> ack#(s x, y)) (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#(s x, s y) -> ack#(x, ack(s x, y))) (ack#(s x, 0()) -> ack#(x, s 0()), ack#(s x, s y) -> ack#(s x, y)) (ack#(s x, s y) -> ack#(x, ack(s x, y)), ack#(s x, s y) -> ack#(x, ack(s x, y))) (ack#(s x, s y) -> ack#(x, ack(s x, y)), 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()))} STATUS: arrows: 0.111111 SCCS (1): Scc: {ack#(s x, s y) -> ack#(x, ack(s x, y)), ack#(s x, s y) -> ack#(s x, y), ack#(s x, 0()) -> ack#(x, s 0())} SCC (3): Strict: {ack#(s x, s y) -> ack#(x, ack(s x, y)), ack#(s x, s y) -> ack#(s x, y), ack#(s x, 0()) -> ack#(x, s 0())} Weak: {ack(s x, s y) -> ack(x, ack(s x, y)), ack(s x, 0()) -> ack(x, s 0()), ack(0(), y) -> s y} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [ack](x0, x1) = x0, [s](x0) = x0 + 1, [0] = 1, [ack#](x0, x1) = x0 Strict: ack#(s x, 0()) -> ack#(x, s 0()) 1 + 1x >= 0 + 1x ack#(s x, s y) -> ack#(s x, y) 1 + 0y + 1x >= 1 + 0y + 1x ack#(s x, s y) -> ack#(x, ack(s x, y)) 1 + 0y + 1x >= 0 + 0y + 1x Weak: ack(0(), y) -> s y 0 + 1y >= 1 + 1y ack(s x, 0()) -> ack(x, s 0()) 1 + 0x >= 2 + 0x ack(s x, s y) -> ack(x, ack(s x, y)) 1 + 1y + 0x >= 0 + 1y + 0x SCCS (1): Scc: {ack#(s x, s y) -> ack#(s x, y)} SCC (1): Strict: {ack#(s x, s y) -> ack#(s x, y)} Weak: {ack(s x, s y) -> ack(x, ack(s x, y)), ack(s x, 0()) -> ack(x, s 0()), ack(0(), y) -> s y} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [ack](x0, x1) = x0 + x1 + 1, [s](x0) = x0 + 1, [0] = 1, [ack#](x0, x1) = x0 + 1 Strict: ack#(s x, s y) -> ack#(s x, y) 2 + 1y + 0x >= 1 + 1y + 0x Weak: ack(0(), y) -> s y 2 + 1y >= 1 + 1y ack(s x, 0()) -> ack(x, s 0()) 3 + 1x >= 3 + 1x ack(s x, s y) -> ack(x, ack(s x, y)) 3 + 1y + 1x >= 3 + 1y + 2x Qed