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