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