MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , rev(x) -> if(x, eq(0(), length(x)), nil(), 0(), length(x)) , if(x, true(), z, c, l) -> z , if(x, false(), z, c, l) -> help(s(c), l, x, z) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , help(c, l, cons(x, y), z) -> if(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { ge^#(x, 0()) -> c_1() , ge^#(0(), s(y)) -> c_2() , ge^#(s(x), s(y)) -> c_3(ge^#(x, y)) , rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) , if^#(x, true(), z, c, l) -> c_5() , if^#(x, false(), z, c, l) -> c_6(help^#(s(c), l, x, z)) , length^#(nil()) -> c_7() , length^#(cons(x, y)) -> c_8(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_9(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(nil(), y) -> c_10() , append^#(cons(x, y), z) -> c_11(append^#(y, z)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(x, 0()) -> c_1() , ge^#(0(), s(y)) -> c_2() , ge^#(s(x), s(y)) -> c_3(ge^#(x, y)) , rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) , if^#(x, true(), z, c, l) -> c_5() , if^#(x, false(), z, c, l) -> c_6(help^#(s(c), l, x, z)) , length^#(nil()) -> c_7() , length^#(cons(x, y)) -> c_8(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_9(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(nil(), y) -> c_10() , append^#(cons(x, y), z) -> c_11(append^#(y, z)) } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , rev(x) -> if(x, eq(0(), length(x)), nil(), 0(), length(x)) , if(x, true(), z, c, l) -> z , if(x, false(), z, c, l) -> help(s(c), l, x, z) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , help(c, l, cons(x, y), z) -> if(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,2,5,7,10} by applications of Pre({1,2,5,7,10}) = {3,4,8,9,11}. Here rules are labeled as follows: DPs: { 1: ge^#(x, 0()) -> c_1() , 2: ge^#(0(), s(y)) -> c_2() , 3: ge^#(s(x), s(y)) -> c_3(ge^#(x, y)) , 4: rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) , 5: if^#(x, true(), z, c, l) -> c_5() , 6: if^#(x, false(), z, c, l) -> c_6(help^#(s(c), l, x, z)) , 7: length^#(nil()) -> c_7() , 8: length^#(cons(x, y)) -> c_8(length^#(y)) , 9: help^#(c, l, cons(x, y), z) -> c_9(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , 10: append^#(nil(), y) -> c_10() , 11: append^#(cons(x, y), z) -> c_11(append^#(y, z)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(s(x), s(y)) -> c_3(ge^#(x, y)) , rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) , if^#(x, false(), z, c, l) -> c_6(help^#(s(c), l, x, z)) , length^#(cons(x, y)) -> c_8(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_9(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(cons(x, y), z) -> c_11(append^#(y, z)) } Weak DPs: { ge^#(x, 0()) -> c_1() , ge^#(0(), s(y)) -> c_2() , if^#(x, true(), z, c, l) -> c_5() , length^#(nil()) -> c_7() , append^#(nil(), y) -> c_10() } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , rev(x) -> if(x, eq(0(), length(x)), nil(), 0(), length(x)) , if(x, true(), z, c, l) -> z , if(x, false(), z, c, l) -> help(s(c), l, x, z) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , help(c, l, cons(x, y), z) -> if(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. { ge^#(x, 0()) -> c_1() , ge^#(0(), s(y)) -> c_2() , if^#(x, true(), z, c, l) -> c_5() , length^#(nil()) -> c_7() , append^#(nil(), y) -> c_10() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(s(x), s(y)) -> c_3(ge^#(x, y)) , rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) , if^#(x, false(), z, c, l) -> c_6(help^#(s(c), l, x, z)) , length^#(cons(x, y)) -> c_8(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_9(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(cons(x, y), z) -> c_11(append^#(y, z)) } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , rev(x) -> if(x, eq(0(), length(x)), nil(), 0(), length(x)) , if(x, true(), z, c, l) -> z , if(x, false(), z, c, l) -> help(s(c), l, x, z) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , help(c, l, cons(x, y), z) -> if(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { rev^#(x) -> c_4(if^#(x, eq(0(), length(x)), nil(), 0(), length(x)), length^#(x), length^#(x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) , rev^#(x) -> c_2(length^#(x), length^#(x)) , if^#(x, false(), z, c, l) -> c_3(help^#(s(c), l, x, z)) , length^#(cons(x, y)) -> c_4(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_5(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(cons(x, y), z) -> c_6(append^#(y, z)) } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , rev(x) -> if(x, eq(0(), length(x)), nil(), 0(), length(x)) , if(x, true(), z, c, l) -> z , if(x, false(), z, c, l) -> help(s(c), l, x, z) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , help(c, l, cons(x, y), z) -> if(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) , rev^#(x) -> c_2(length^#(x), length^#(x)) , if^#(x, false(), z, c, l) -> c_3(help^#(s(c), l, x, z)) , length^#(cons(x, y)) -> c_4(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_5(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(cons(x, y), z) -> c_6(append^#(y, z)) } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) -->_1 ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) :1 2: rev^#(x) -> c_2(length^#(x), length^#(x)) -->_2 length^#(cons(x, y)) -> c_4(length^#(y)) :4 -->_1 length^#(cons(x, y)) -> c_4(length^#(y)) :4 3: if^#(x, false(), z, c, l) -> c_3(help^#(s(c), l, x, z)) -->_1 help^#(c, l, cons(x, y), z) -> c_5(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) :5 4: length^#(cons(x, y)) -> c_4(length^#(y)) -->_1 length^#(cons(x, y)) -> c_4(length^#(y)) :4 5: help^#(c, l, cons(x, y), z) -> c_5(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) -->_2 append^#(cons(x, y), z) -> c_6(append^#(y, z)) :6 -->_1 if^#(x, false(), z, c, l) -> c_3(help^#(s(c), l, x, z)) :3 -->_3 ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) :1 6: append^#(cons(x, y), z) -> c_6(append^#(y, z)) -->_1 append^#(cons(x, y), z) -> c_6(append^#(y, z)) :6 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). { rev^#(x) -> c_2(length^#(x), length^#(x)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { ge^#(s(x), s(y)) -> c_1(ge^#(x, y)) , if^#(x, false(), z, c, l) -> c_3(help^#(s(c), l, x, z)) , length^#(cons(x, y)) -> c_4(length^#(y)) , help^#(c, l, cons(x, y), z) -> c_5(if^#(append(y, cons(x, nil())), ge(c, l), cons(x, z), c, l), append^#(y, cons(x, nil())), ge^#(c, l)) , append^#(cons(x, y), z) -> c_6(append^#(y, z)) } Weak Trs: { ge(x, 0()) -> true() , ge(0(), s(y)) -> false() , ge(s(x), s(y)) -> ge(x, y) , append(nil(), y) -> y , append(cons(x, y), z) -> cons(x, append(y, z)) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..