YES Time: 0.047826 TRS: {times(x, 0()) -> 0(), times(x, s y) -> plus(times(x, y), x), plus(x, 0()) -> x, plus(x, s y) -> s plus(x, y), plus(0(), x) -> x, plus(s x, y) -> s plus(x, y)} DP: DP: {times#(x, s y) -> times#(x, y), times#(x, s y) -> plus#(times(x, y), x), plus#(x, s y) -> plus#(x, y), plus#(s x, y) -> plus#(x, y)} TRS: {times(x, 0()) -> 0(), times(x, s y) -> plus(times(x, y), x), plus(x, 0()) -> x, plus(x, s y) -> s plus(x, y), plus(0(), x) -> x, plus(s x, y) -> s plus(x, y)} EDG: {(times#(x, s y) -> times#(x, y), times#(x, s y) -> plus#(times(x, y), x)) (times#(x, s y) -> times#(x, y), times#(x, s y) -> times#(x, y)) (plus#(s x, y) -> plus#(x, y), plus#(s x, y) -> plus#(x, y)) (plus#(s x, y) -> plus#(x, y), plus#(x, s y) -> plus#(x, y)) (plus#(x, s y) -> plus#(x, y), plus#(x, s y) -> plus#(x, y)) (plus#(x, s y) -> plus#(x, y), plus#(s x, y) -> plus#(x, y)) (times#(x, s y) -> plus#(times(x, y), x), plus#(x, s y) -> plus#(x, y)) (times#(x, s y) -> plus#(times(x, y), x), plus#(s x, y) -> plus#(x, y))} STATUS: arrows: 0.500000 SCCS (2): Scc: {times#(x, s y) -> times#(x, y)} Scc: {plus#(x, s y) -> plus#(x, y), plus#(s x, y) -> plus#(x, y)} SCC (1): Strict: {times#(x, s y) -> times#(x, y)} Weak: {times(x, 0()) -> 0(), times(x, s y) -> plus(times(x, y), x), plus(x, 0()) -> x, plus(x, s y) -> s plus(x, y), plus(0(), x) -> x, plus(s x, y) -> s plus(x, y)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [times](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [s](x0) = x0 + 1, [0] = 1, [times#](x0, x1) = x0 Strict: times#(x, s y) -> times#(x, y) 1 + 0x + 1y >= 0 + 0x + 1y Weak: plus(s x, y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(0(), x) -> x 0 + 0x >= 1x plus(x, s y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(x, 0()) -> x 0 + 0x >= 1x times(x, s y) -> plus(times(x, y), x) 2 + 0x + 1y >= 0 + 0x + 0y times(x, 0()) -> 0() 2 + 0x >= 1 Qed SCC (2): Strict: {plus#(x, s y) -> plus#(x, y), plus#(s x, y) -> plus#(x, y)} Weak: {times(x, 0()) -> 0(), times(x, s y) -> plus(times(x, y), x), plus(x, 0()) -> x, plus(x, s y) -> s plus(x, y), plus(0(), x) -> x, plus(s x, y) -> s plus(x, y)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [times](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [s](x0) = x0 + 1, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(s x, y) -> plus#(x, y) 0 + 0x + 1y >= 0 + 0x + 1y plus#(x, s y) -> plus#(x, y) 1 + 0x + 1y >= 0 + 0x + 1y Weak: plus(s x, y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(0(), x) -> x 0 + 0x >= 1x plus(x, s y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(x, 0()) -> x 0 + 0x >= 1x times(x, s y) -> plus(times(x, y), x) 2 + 0x + 1y >= 0 + 0x + 0y times(x, 0()) -> 0() 2 + 0x >= 1 SCCS (1): Scc: {plus#(s x, y) -> plus#(x, y)} SCC (1): Strict: {plus#(s x, y) -> plus#(x, y)} Weak: {times(x, 0()) -> 0(), times(x, s y) -> plus(times(x, y), x), plus(x, 0()) -> x, plus(x, s y) -> s plus(x, y), plus(0(), x) -> x, plus(s x, y) -> s plus(x, y)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [times](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [s](x0) = x0 + 1, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(s x, y) -> plus#(x, y) 1 + 1x + 0y >= 0 + 1x + 0y Weak: plus(s x, y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(0(), x) -> x 0 + 0x >= 1x plus(x, s y) -> s plus(x, y) 0 + 0x + 0y >= 1 + 0x + 0y plus(x, 0()) -> x 0 + 0x >= 1x times(x, s y) -> plus(times(x, y), x) 2 + 0x + 1y >= 0 + 0x + 0y times(x, 0()) -> 0() 2 + 0x >= 1 Qed