MAYBE Time: 2.432184 TRS: { cond2(true(), x) -> cond1(neq(x, 0()), div2 x), cond2(false(), x) -> cond1(neq(x, 0()), p x), even 0() -> true(), even s 0() -> false(), even s s x -> even x, cond1(true(), x) -> cond2(even x, x), neq(0(), 0()) -> false(), neq(0(), s x) -> true(), neq(s x, 0()) -> true(), neq(s x, s y()) -> neq(x, y()), div2 0() -> 0(), div2 s 0() -> 0(), div2 s s x -> s div2 x, p 0() -> 0(), p s x -> x} DP: DP: { cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x), cond2#(true(), x) -> neq#(x, 0()), cond2#(true(), x) -> div2# x, cond2#(false(), x) -> cond1#(neq(x, 0()), p x), cond2#(false(), x) -> neq#(x, 0()), cond2#(false(), x) -> p# x, even# s s x -> even# x, cond1#(true(), x) -> cond2#(even x, x), cond1#(true(), x) -> even# x, neq#(s x, s y()) -> neq#(x, y()), div2# s s x -> div2# x} TRS: { cond2(true(), x) -> cond1(neq(x, 0()), div2 x), cond2(false(), x) -> cond1(neq(x, 0()), p x), even 0() -> true(), even s 0() -> false(), even s s x -> even x, cond1(true(), x) -> cond2(even x, x), neq(0(), 0()) -> false(), neq(0(), s x) -> true(), neq(s x, 0()) -> true(), neq(s x, s y()) -> neq(x, y()), div2 0() -> 0(), div2 s 0() -> 0(), div2 s s x -> s div2 x, p 0() -> 0(), p s x -> x} EDG: {(cond2#(true(), x) -> div2# x, div2# s s x -> div2# x) (cond1#(true(), x) -> even# x, even# s s x -> even# x) (cond1#(true(), x) -> cond2#(even x, x), cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x)) (cond1#(true(), x) -> cond2#(even x, x), cond2#(true(), x) -> neq#(x, 0())) (cond1#(true(), x) -> cond2#(even x, x), cond2#(true(), x) -> div2# x) (cond1#(true(), x) -> cond2#(even x, x), cond2#(false(), x) -> cond1#(neq(x, 0()), p x)) (cond1#(true(), x) -> cond2#(even x, x), cond2#(false(), x) -> neq#(x, 0())) (cond1#(true(), x) -> cond2#(even x, x), cond2#(false(), x) -> p# x) (div2# s s x -> div2# x, div2# s s x -> div2# x) (even# s s x -> even# x, even# s s x -> even# x) (cond2#(false(), x) -> cond1#(neq(x, 0()), p x), cond1#(true(), x) -> cond2#(even x, x)) (cond2#(false(), x) -> cond1#(neq(x, 0()), p x), cond1#(true(), x) -> even# x) (cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x), cond1#(true(), x) -> cond2#(even x, x)) (cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x), cond1#(true(), x) -> even# x)} STATUS: arrows: 0.884298 SCCS (3): Scc: { cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x), cond2#(false(), x) -> cond1#(neq(x, 0()), p x), cond1#(true(), x) -> cond2#(even x, x)} Scc: {even# s s x -> even# x} Scc: {div2# s s x -> div2# x} SCC (3): Strict: { cond2#(true(), x) -> cond1#(neq(x, 0()), div2 x), cond2#(false(), x) -> cond1#(neq(x, 0()), p x), cond1#(true(), x) -> cond2#(even x, x)} Weak: { cond2(true(), x) -> cond1(neq(x, 0()), div2 x), cond2(false(), x) -> cond1(neq(x, 0()), p x), even 0() -> true(), even s 0() -> false(), even s s x -> even x, cond1(true(), x) -> cond2(even x, x), neq(0(), 0()) -> false(), neq(0(), s x) -> true(), neq(s x, 0()) -> true(), neq(s x, s y()) -> neq(x, y()), div2 0() -> 0(), div2 s 0() -> 0(), div2 s s x -> s div2 x, p 0() -> 0(), p s x -> x} Fail SCC (1): Strict: {even# s s x -> even# x} Weak: { cond2(true(), x) -> cond1(neq(x, 0()), div2 x), cond2(false(), x) -> cond1(neq(x, 0()), p x), even 0() -> true(), even s 0() -> false(), even s s x -> even x, cond1(true(), x) -> cond2(even x, x), neq(0(), 0()) -> false(), neq(0(), s x) -> true(), neq(s x, 0()) -> true(), neq(s x, s y()) -> neq(x, y()), div2 0() -> 0(), div2 s 0() -> 0(), div2 s s x -> s div2 x, p 0() -> 0(), p s x -> x} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cond2](x0, x1) = x0 + x1 + 1, [cond1](x0, x1) = x0 + x1, [neq](x0, x1) = x0, [even](x0) = x0 + 1, [div2](x0) = x0, [p](x0) = x0, [s](x0) = x0 + 1, [true] = 1, [0] = 1, [false] = 1, [y] = 1, [even#](x0) = x0 Strict: even# s s x -> even# x 2 + 1x >= 0 + 1x Weak: p s x -> x 1 + 1x >= 1x p 0() -> 0() 1 >= 1 div2 s s x -> s div2 x 2 + 1x >= 1 + 1x div2 s 0() -> 0() 2 >= 1 div2 0() -> 0() 1 >= 1 neq(s x, s y()) -> neq(x, y()) 1 + 1x >= 0 + 1x neq(s x, 0()) -> true() 1 + 1x >= 1 neq(0(), s x) -> true() 1 + 0x >= 1 neq(0(), 0()) -> false() 1 >= 1 cond1(true(), x) -> cond2(even x, x) 1 + 1x >= 2 + 2x even s s x -> even x 3 + 1x >= 1 + 1x even s 0() -> false() 3 >= 1 even 0() -> true() 2 >= 1 cond2(false(), x) -> cond1(neq(x, 0()), p x) 2 + 1x >= 0 + 2x cond2(true(), x) -> cond1(neq(x, 0()), div2 x) 2 + 1x >= 0 + 2x Qed SCC (1): Strict: {div2# s s x -> div2# x} Weak: { cond2(true(), x) -> cond1(neq(x, 0()), div2 x), cond2(false(), x) -> cond1(neq(x, 0()), p x), even 0() -> true(), even s 0() -> false(), even s s x -> even x, cond1(true(), x) -> cond2(even x, x), neq(0(), 0()) -> false(), neq(0(), s x) -> true(), neq(s x, 0()) -> true(), neq(s x, s y()) -> neq(x, y()), div2 0() -> 0(), div2 s 0() -> 0(), div2 s s x -> s div2 x, p 0() -> 0(), p s x -> x} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [cond2](x0, x1) = x0 + x1 + 1, [cond1](x0, x1) = x0 + x1, [neq](x0, x1) = x0, [even](x0) = x0 + 1, [div2](x0) = x0, [p](x0) = x0, [s](x0) = x0 + 1, [true] = 1, [0] = 1, [false] = 1, [y] = 1, [div2#](x0) = x0 Strict: div2# s s x -> div2# x 2 + 1x >= 0 + 1x Weak: p s x -> x 1 + 1x >= 1x p 0() -> 0() 1 >= 1 div2 s s x -> s div2 x 2 + 1x >= 1 + 1x div2 s 0() -> 0() 2 >= 1 div2 0() -> 0() 1 >= 1 neq(s x, s y()) -> neq(x, y()) 1 + 1x >= 0 + 1x neq(s x, 0()) -> true() 1 + 1x >= 1 neq(0(), s x) -> true() 1 + 0x >= 1 neq(0(), 0()) -> false() 1 >= 1 cond1(true(), x) -> cond2(even x, x) 1 + 1x >= 2 + 2x even s s x -> even x 3 + 1x >= 1 + 1x even s 0() -> false() 3 >= 1 even 0() -> true() 2 >= 1 cond2(false(), x) -> cond1(neq(x, 0()), p x) 2 + 1x >= 0 + 2x cond2(true(), x) -> cond1(neq(x, 0()), div2 x) 2 + 1x >= 0 + 2x Qed