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, ys, zs) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, ys, zs) -> cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) , take(0(), nil(), cons(y, ys)) -> y , take(0(), cons(x, xs()), ys) -> x , take(s(c), nil(), cons(y, ys)) -> take(c, nil(), ys) , take(s(c), cons(x, xs()), ys) -> take(c, xs(), ys) } 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, 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, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , take^#(0(), nil(), cons(y, ys)) -> c_13() , take^#(0(), cons(x, xs()), ys) -> c_14() , take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) , take^#(s(c), cons(x, xs()), ys) -> c_16(take^#(c, xs(), ys)) } 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, 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, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , take^#(0(), nil(), cons(y, ys)) -> c_13() , take^#(0(), cons(x, xs()), ys) -> c_14() , take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) , take^#(s(c), cons(x, xs()), ys) -> c_16(take^#(c, xs(), ys)) } 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, ys, zs) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, ys, zs) -> cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) , take(0(), nil(), cons(y, ys)) -> y , take(0(), cons(x, xs()), ys) -> x , take(s(c), nil(), cons(y, ys)) -> take(c, nil(), ys) , take(s(c), cons(x, xs()), ys) -> take(c, xs(), ys) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {3,5,7,9,10,13,14,16} by applications of Pre({3,5,7,9,10,13,14,16}) = {1,2,4,6,11,12,15}. 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, 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, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , 13: take^#(0(), nil(), cons(y, ys)) -> c_13() , 14: take^#(0(), cons(x, xs()), ys) -> c_14() , 15: take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) , 16: take^#(s(c), cons(x, xs()), ys) -> c_16(take^#(c, xs(), ys)) } 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, ys, zs)) , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) } 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() , take^#(0(), nil(), cons(y, ys)) -> c_13() , take^#(0(), cons(x, xs()), ys) -> c_14() , take^#(s(c), cons(x, xs()), ys) -> c_16(take^#(c, xs(), ys)) } 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, ys, zs) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, ys, zs) -> cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) , take(0(), nil(), cons(y, ys)) -> y , take(0(), cons(x, xs()), ys) -> x , take(s(c), nil(), cons(y, ys)) -> take(c, nil(), ys) , take(s(c), cons(x, xs()), ys) -> take(c, xs(), ys) } 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() , take^#(0(), nil(), cons(y, ys)) -> c_13() , take^#(0(), cons(x, xs()), ys) -> c_14() , take^#(s(c), cons(x, xs()), ys) -> c_16(take^#(c, xs(), ys)) } 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, ys, zs)) , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) } 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, ys, zs) , ge(x, 0()) -> true() , ge(0(), s(x)) -> false() , ge(s(x), s(y)) -> ge(x, y) , helpb(c, l, ys, zs) -> cons(take(c, ys, zs), helpa(s(c), l, ys, zs)) , take(0(), nil(), cons(y, ys)) -> y , take(0(), cons(x, xs()), ys) -> x , take(s(c), nil(), cons(y, ys)) -> take(c, nil(), ys) , take(s(c), cons(x, xs()), ys) -> take(c, xs(), ys) } 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) } 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, ys, zs)) , ge^#(s(x), s(y)) -> c_11(ge^#(x, y)) , helpb^#(c, l, ys, zs) -> c_12(take^#(c, ys, zs), helpa^#(s(c), l, ys, zs)) , take^#(s(c), nil(), cons(y, ys)) -> c_15(take^#(c, nil(), ys)) } 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) } Obligation: innermost runtime complexity Answer: MAYBE The input cannot be shown compatible Arrrr..