MAYBE Time: 0.053458 TRS: {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)), gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y)} DP: DP: {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> gr#(x, y), cond#(true(), x, y) -> add#(x, y), gr#(s x, s y) -> gr#(x, y), add#(s x, y) -> add#(x, y)} TRS: {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)), gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y)} UR: { gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y), a(z, w) -> z, a(z, w) -> w} EDG: {(cond#(true(), x, y) -> add#(x, y), add#(s x, y) -> add#(x, y)) (add#(s x, y) -> add#(x, y), add#(s x, y) -> add#(x, y)) (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y))) (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> gr#(x, y)) (cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y)), cond#(true(), x, y) -> add#(x, y)) (gr#(s x, s y) -> gr#(x, y), gr#(s x, s y) -> gr#(x, y)) (cond#(true(), x, y) -> gr#(x, y), gr#(s x, s y) -> gr#(x, y))} STATUS: arrows: 0.720000 SCCS (3): Scc: {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y))} Scc: {add#(s x, y) -> add#(x, y)} Scc: {gr#(s x, s y) -> gr#(x, y)} SCC (1): Strict: {cond#(true(), x, y) -> cond#(gr(x, y), x, add(x, y))} Weak: {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)), gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y)} Fail SCC (1): Strict: {add#(s x, y) -> add#(x, y)} Weak: {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)), gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cond](x0, x1, x2) = x0 + x1 + 1, [gr](x0, x1) = x0, [add](x0, x1) = x0, [s](x0) = x0 + 1, [true] = 1, [false] = 0, [0] = 0, [add#](x0, x1) = x0 Strict: add#(s x, y) -> add#(x, y) 1 + 1x + 0y >= 0 + 1x + 0y Weak: add(s x, y) -> s add(x, y) 0 + 0x + 1y >= 1 + 0x + 1y add(0(), x) -> x 0 + 1x >= 1x gr(s x, s y) -> gr(x, y) 1 + 0x + 1y >= 0 + 0x + 1y gr(s x, 0()) -> true() 0 + 0x >= 1 gr(0(), x) -> false() 0 + 1x >= 0 cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)) 2 + 0x + 1y >= 1 + 0x + 2y Qed SCC (1): Strict: {gr#(s x, s y) -> gr#(x, y)} Weak: {cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)), gr(0(), x) -> false(), gr(s x, 0()) -> true(), gr(s x, s y) -> gr(x, y), add(0(), x) -> x, add(s x, y) -> s add(x, y)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cond](x0, x1, x2) = x0 + x1 + 1, [gr](x0, x1) = x0 + x1, [add](x0, x1) = x0 + x1, [s](x0) = x0 + 1, [true] = 1, [false] = 0, [0] = 0, [gr#](x0, x1) = x0 + 1 Strict: gr#(s x, s y) -> gr#(x, y) 2 + 1x + 0y >= 1 + 1x + 0y Weak: add(s x, y) -> s add(x, y) 1 + 1x + 1y >= 1 + 1x + 1y add(0(), x) -> x 0 + 1x >= 1x gr(s x, s y) -> gr(x, y) 2 + 1x + 1y >= 0 + 1x + 1y gr(s x, 0()) -> true() 1 + 1x >= 1 gr(0(), x) -> false() 0 + 1x >= 0 cond(true(), x, y) -> cond(gr(x, y), x, add(x, y)) 2 + 0x + 1y >= 1 + 2x + 2y Qed