MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y) , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs) , plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , if(true(), c, l, ys, zs) -> nil() , if(false(), c, l, ys, zs) -> helpb(c, l, greater(ys, zs), smaller(ys, zs)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs)) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, 0()) -> c_3() , plus^#(x, s(y)) -> c_4(plus^#(x, y)) , length^#(nil()) -> c_5() , length^#(cons(x, y)) -> c_6(length^#(y)) , if^#(true(), c, l, ys, zs) -> c_7() , if^#(false(), c, l, ys, zs) -> c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(x, 0()) -> c_9() , ge^#(0(), s(x)) -> c_10() , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , helpc^#(true(), ys, zs) -> c_15() , helpc^#(false(), ys, zs) -> c_16() } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, 0()) -> c_3() , plus^#(x, s(y)) -> c_4(plus^#(x, y)) , length^#(nil()) -> c_5() , length^#(cons(x, y)) -> c_6(length^#(y)) , if^#(true(), c, l, ys, zs) -> c_7() , if^#(false(), c, l, ys, zs) -> c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(x, 0()) -> c_9() , ge^#(0(), s(x)) -> c_10() , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , helpc^#(true(), ys, zs) -> c_15() , helpc^#(false(), ys, zs) -> c_16() } Weak Trs: { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y) , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs) , plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , if(true(), c, l, ys, zs) -> nil() , if(false(), c, l, ys, zs) -> helpb(c, l, greater(ys, zs), smaller(ys, zs)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs)) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {3,5,7,9,10,15,16} by applications of Pre({3,5,7,9,10,15,16}) = {1,2,4,6,11,13,14}. Here rules are labeled as follows: DPs: { 1: app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , 2: helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , 3: plus^#(x, 0()) -> c_3() , 4: plus^#(x, s(y)) -> c_4(plus^#(x, y)) , 5: length^#(nil()) -> c_5() , 6: length^#(cons(x, y)) -> c_6(length^#(y)) , 7: if^#(true(), c, l, ys, zs) -> c_7() , 8: if^#(false(), c, l, ys, zs) -> c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , 9: ge^#(x, 0()) -> c_9() , 10: ge^#(0(), s(x)) -> c_10() , 11: ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , 12: helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs)) , 13: greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , 14: smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , 15: helpc^#(true(), ys, zs) -> c_15() , 16: helpc^#(false(), ys, zs) -> c_16() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, s(y)) -> c_4(plus^#(x, y)) , length^#(cons(x, y)) -> c_6(length^#(y)) , if^#(false(), c, l, ys, zs) -> c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) } Weak DPs: { plus^#(x, 0()) -> c_3() , length^#(nil()) -> c_5() , if^#(true(), c, l, ys, zs) -> c_7() , ge^#(x, 0()) -> c_9() , ge^#(0(), s(x)) -> c_10() , helpc^#(true(), ys, zs) -> c_15() , helpc^#(false(), ys, zs) -> c_16() } Weak Trs: { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y) , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs) , plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , if(true(), c, l, ys, zs) -> nil() , if(false(), c, l, ys, zs) -> helpb(c, l, greater(ys, zs), smaller(ys, zs)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs)) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } 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. { plus^#(x, 0()) -> c_3() , length^#(nil()) -> c_5() , if^#(true(), c, l, ys, zs) -> c_7() , ge^#(x, 0()) -> c_9() , ge^#(0(), s(x)) -> c_10() , helpc^#(true(), ys, zs) -> c_15() , helpc^#(false(), ys, zs) -> c_16() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, s(y)) -> c_4(plus^#(x, y)) , length^#(cons(x, y)) -> c_6(length^#(y)) , if^#(false(), c, l, ys, zs) -> c_8(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_12(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) } Weak Trs: { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y) , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs) , plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , if(true(), c, l, ys, zs) -> nil() , if(false(), c, l, ys, zs) -> helpb(c, l, greater(ys, zs), smaller(ys, zs)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs)) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { greater^#(ys, zs) -> c_13(helpc^#(ge(length(ys), length(zs)), ys, zs), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_14(helpc^#(ge(length(ys), length(zs)), zs, ys), ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, s(y)) -> c_3(plus^#(x, y)) , length^#(cons(x, y)) -> c_4(length^#(y)) , if^#(false(), c, l, ys, zs) -> c_5(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(s(x), s(y)) -> c_6(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_7(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_8(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_9(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) } Weak Trs: { app(x, y) -> helpa(0(), plus(length(x), length(y)), x, y) , helpa(c, l, ys, zs) -> if(ge(c, l), c, l, ys, zs) , plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , if(true(), c, l, ys, zs) -> nil() , if(false(), c, l, ys, zs) -> helpb(c, l, greater(ys, zs), smaller(ys, zs)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, cons(y, ys), zs) -> cons(y, helpa(s(c), l, ys, zs)) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { app^#(x, y) -> c_1(helpa^#(0(), plus(length(x), length(y)), x, y), plus^#(length(x), length(y)), length^#(x), length^#(y)) , helpa^#(c, l, ys, zs) -> c_2(if^#(ge(c, l), c, l, ys, zs), ge^#(c, l)) , plus^#(x, s(y)) -> c_3(plus^#(x, y)) , length^#(cons(x, y)) -> c_4(length^#(y)) , if^#(false(), c, l, ys, zs) -> c_5(helpb^#(c, l, greater(ys, zs), smaller(ys, zs)), greater^#(ys, zs), smaller^#(ys, zs)) , ge^#(s(x), s(y)) -> c_6(ge^#(x, y)) , helpb^#(c, l, cons(y, ys), zs) -> c_7(helpa^#(s(c), l, ys, zs)) , greater^#(ys, zs) -> c_8(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) , smaller^#(ys, zs) -> c_9(ge^#(length(ys), length(zs)), length^#(ys), length^#(zs)) } Weak Trs: { plus(x, 0()) -> x , plus(x, s(y)) -> s(plus(x, y)) , length(nil()) -> 0() , length(cons(x, y)) -> s(length(y)) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , greater(ys, zs) -> helpc(ge(length(ys), length(zs)), ys, zs) , smaller(ys, zs) -> helpc(ge(length(ys), length(zs)), zs, ys) , helpc(true(), ys, zs) -> ys , helpc(false(), ys, zs) -> zs } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..