MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l , reverse(l) -> rev(0(), l, nil(), l) , rev(x, l, accu, orig) -> if(lt(x, length(orig)), x, l, accu, orig) , if(false(), x, l, accu, orig) -> accu , if(true(), x, l, accu, orig) -> rev(s(x), tail(l), cons(head(l), accu), orig) } Obligation: innermost runtime complexity Answer: MAYBE We add following dependency tuples: Strict DPs: { length^#(nil()) -> c_1() , length^#(cons(x, l)) -> c_2(length^#(l)) , lt^#(x, 0()) -> c_3() , lt^#(0(), s(y)) -> c_4() , lt^#(s(x), s(y)) -> c_5(lt^#(x, y)) , head^#(nil()) -> c_6() , head^#(cons(x, l)) -> c_7() , tail^#(nil()) -> c_8() , tail^#(cons(x, l)) -> c_9() , reverse^#(l) -> c_10(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_11(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(false(), x, l, accu, orig) -> c_12() , if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } and mark the set of starting terms. We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(nil()) -> c_1() , length^#(cons(x, l)) -> c_2(length^#(l)) , lt^#(x, 0()) -> c_3() , lt^#(0(), s(y)) -> c_4() , lt^#(s(x), s(y)) -> c_5(lt^#(x, y)) , head^#(nil()) -> c_6() , head^#(cons(x, l)) -> c_7() , tail^#(nil()) -> c_8() , tail^#(cons(x, l)) -> c_9() , reverse^#(l) -> c_10(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_11(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(false(), x, l, accu, orig) -> c_12() , if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l , reverse(l) -> rev(0(), l, nil(), l) , rev(x, l, accu, orig) -> if(lt(x, length(orig)), x, l, accu, orig) , if(false(), x, l, accu, orig) -> accu , if(true(), x, l, accu, orig) -> rev(s(x), tail(l), cons(head(l), accu), orig) } Obligation: innermost runtime complexity Answer: MAYBE We estimate the number of application of {1,3,4,6,7,8,9,12} by applications of Pre({1,3,4,6,7,8,9,12}) = {2,5,11,13}. Here rules are labeled as follows: DPs: { 1: length^#(nil()) -> c_1() , 2: length^#(cons(x, l)) -> c_2(length^#(l)) , 3: lt^#(x, 0()) -> c_3() , 4: lt^#(0(), s(y)) -> c_4() , 5: lt^#(s(x), s(y)) -> c_5(lt^#(x, y)) , 6: head^#(nil()) -> c_6() , 7: head^#(cons(x, l)) -> c_7() , 8: tail^#(nil()) -> c_8() , 9: tail^#(cons(x, l)) -> c_9() , 10: reverse^#(l) -> c_10(rev^#(0(), l, nil(), l)) , 11: rev^#(x, l, accu, orig) -> c_11(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , 12: if^#(false(), x, l, accu, orig) -> c_12() , 13: if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(cons(x, l)) -> c_2(length^#(l)) , lt^#(s(x), s(y)) -> c_5(lt^#(x, y)) , reverse^#(l) -> c_10(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_11(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } Weak DPs: { length^#(nil()) -> c_1() , lt^#(x, 0()) -> c_3() , lt^#(0(), s(y)) -> c_4() , head^#(nil()) -> c_6() , head^#(cons(x, l)) -> c_7() , tail^#(nil()) -> c_8() , tail^#(cons(x, l)) -> c_9() , if^#(false(), x, l, accu, orig) -> c_12() } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l , reverse(l) -> rev(0(), l, nil(), l) , rev(x, l, accu, orig) -> if(lt(x, length(orig)), x, l, accu, orig) , if(false(), x, l, accu, orig) -> accu , if(true(), x, l, accu, orig) -> rev(s(x), tail(l), cons(head(l), accu), orig) } 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. { length^#(nil()) -> c_1() , lt^#(x, 0()) -> c_3() , lt^#(0(), s(y)) -> c_4() , head^#(nil()) -> c_6() , head^#(cons(x, l)) -> c_7() , tail^#(nil()) -> c_8() , tail^#(cons(x, l)) -> c_9() , if^#(false(), x, l, accu, orig) -> c_12() } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(cons(x, l)) -> c_2(length^#(l)) , lt^#(s(x), s(y)) -> c_5(lt^#(x, y)) , reverse^#(l) -> c_10(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_11(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l , reverse(l) -> rev(0(), l, nil(), l) , rev(x, l, accu, orig) -> if(lt(x, length(orig)), x, l, accu, orig) , if(false(), x, l, accu, orig) -> accu , if(true(), x, l, accu, orig) -> rev(s(x), tail(l), cons(head(l), accu), orig) } Obligation: innermost runtime complexity Answer: MAYBE Due to missing edges in the dependency-graph, the right-hand sides of following rules could be simplified: { if^#(true(), x, l, accu, orig) -> c_13(rev^#(s(x), tail(l), cons(head(l), accu), orig), tail^#(l), head^#(l)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(cons(x, l)) -> c_1(length^#(l)) , lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) , reverse^#(l) -> c_3(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(true(), x, l, accu, orig) -> c_5(rev^#(s(x), tail(l), cons(head(l), accu), orig)) } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l , reverse(l) -> rev(0(), l, nil(), l) , rev(x, l, accu, orig) -> if(lt(x, length(orig)), x, l, accu, orig) , if(false(), x, l, accu, orig) -> accu , if(true(), x, l, accu, orig) -> rev(s(x), tail(l), cons(head(l), accu), orig) } Obligation: innermost runtime complexity Answer: MAYBE We replace rewrite rules by usable rules: Weak Usable Rules: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(cons(x, l)) -> c_1(length^#(l)) , lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) , reverse^#(l) -> c_3(rev^#(0(), l, nil(), l)) , rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(true(), x, l, accu, orig) -> c_5(rev^#(s(x), tail(l), cons(head(l), accu), orig)) } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l } Obligation: innermost runtime complexity Answer: MAYBE Consider the dependency graph 1: length^#(cons(x, l)) -> c_1(length^#(l)) -->_1 length^#(cons(x, l)) -> c_1(length^#(l)) :1 2: lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) -->_1 lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) :2 3: reverse^#(l) -> c_3(rev^#(0(), l, nil(), l)) -->_1 rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) :4 4: rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) -->_1 if^#(true(), x, l, accu, orig) -> c_5(rev^#(s(x), tail(l), cons(head(l), accu), orig)) :5 -->_2 lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) :2 -->_3 length^#(cons(x, l)) -> c_1(length^#(l)) :1 5: if^#(true(), x, l, accu, orig) -> c_5(rev^#(s(x), tail(l), cons(head(l), accu), orig)) -->_1 rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) :4 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). { reverse^#(l) -> c_3(rev^#(0(), l, nil(), l)) } We are left with following problem, upon which TcT provides the certificate MAYBE. Strict DPs: { length^#(cons(x, l)) -> c_1(length^#(l)) , lt^#(s(x), s(y)) -> c_2(lt^#(x, y)) , rev^#(x, l, accu, orig) -> c_4(if^#(lt(x, length(orig)), x, l, accu, orig), lt^#(x, length(orig)), length^#(orig)) , if^#(true(), x, l, accu, orig) -> c_5(rev^#(s(x), tail(l), cons(head(l), accu), orig)) } Weak Trs: { length(nil()) -> 0() , length(cons(x, l)) -> s(length(l)) , lt(x, 0()) -> false() , lt(0(), s(y)) -> true() , lt(s(x), s(y)) -> lt(x, y) , head(nil()) -> undefined() , head(cons(x, l)) -> x , tail(nil()) -> nil() , tail(cons(x, l)) -> l } Obligation: innermost runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrices' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrix interpretation of dimension 4' failed due to the following reason: The input cannot be shown compatible 2) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 3) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 4) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 5) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 6) 'matrix interpretation of dimension 1' failed due to the following reason: The input cannot be shown compatible 2) 'empty' failed due to the following reason: Empty strict component of the problem is NOT empty. Arrrr..