tct-trs: Prelude.head: empty list tct-trs: Prelude.head: empty list tct-trs: Prelude.head: empty list tct-trs: Prelude.head: empty list WORST_CASE(Omega(n^1),?) * Step 1: Sum. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: APP(z0,z1) -> c(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z0)) APP(z0,z1) -> c1(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z1)) GE(z0,0()) -> c7() GE(0(),s(z0)) -> c8() GE(s(z0),s(z1)) -> c9(GE(z0,z1)) GREATER(z0,z1) -> c13(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z0)) GREATER(z0,z1) -> c14(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z1)) HELPA(z0,z1,z2,z3) -> c6(IF(ge(z0,z1),z0,z1,z2,z3),GE(z0,z1)) HELPB(z0,z1,cons(z2,z3),z4) -> c19(HELPA(s(z0),z1,z3,z4)) HELPC(false(),z0,z1) -> c18() HELPC(true(),z0,z1) -> c17() IF(false(),z0,z1,z2,z3) -> c11(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),GREATER(z2,z3)) IF(false(),z0,z1,z2,z3) -> c12(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),SMALLER(z2,z3)) IF(true(),z0,z1,z2,z3) -> c10() LENGTH(cons(z0,z1)) -> c5(LENGTH(z1)) LENGTH(nil()) -> c4() PLUS(z0,0()) -> c2() PLUS(z0,s(z1)) -> c3(PLUS(z0,z1)) SMALLER(z0,z1) -> c15(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z0)) SMALLER(z0,z1) -> c16(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z1)) - Weak TRS: app(z0,z1) -> helpa(0(),plus(length(z0),length(z1)),z0,z1) ge(z0,0()) -> true() ge(0(),s(z0)) -> false() ge(s(z0),s(z1)) -> ge(z0,z1) greater(z0,z1) -> helpc(ge(length(z0),length(z1)),z0,z1) helpa(z0,z1,z2,z3) -> if(ge(z0,z1),z0,z1,z2,z3) helpb(z0,z1,cons(z2,z3),z4) -> cons(z2,helpa(s(z0),z1,z3,z4)) helpc(false(),z0,z1) -> z1 helpc(true(),z0,z1) -> z0 if(false(),z0,z1,z2,z3) -> helpb(z0,z1,greater(z2,z3),smaller(z2,z3)) if(true(),z0,z1,z2,z3) -> nil() length(cons(z0,z1)) -> s(length(z1)) length(nil()) -> 0() plus(z0,0()) -> z0 plus(z0,s(z1)) -> s(plus(z0,z1)) smaller(z0,z1) -> helpc(ge(length(z0),length(z1)),z1,z0) - Signature: {APP/2,GE/2,GREATER/2,HELPA/4,HELPB/4,HELPC/3,IF/5,LENGTH/1,PLUS/2,SMALLER/2,app/2,ge/2,greater/2,helpa/4 ,helpb/4,helpc/3,if/5,length/1,plus/2,smaller/2} / {0/0,c/3,c1/3,c10/0,c11/2,c12/2,c13/3,c14/3,c15/3,c16/3 ,c17/0,c18/0,c19/1,c2/0,c3/1,c4/0,c5/1,c6/2,c7/0,c8/0,c9/1,cons/2,false/0,nil/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {APP,GE,GREATER,HELPA,HELPB,HELPC,IF,LENGTH,PLUS,SMALLER ,app,ge,greater,helpa,helpb,helpc,if,length,plus,smaller} and constructors {0,c,c1,c10,c11,c12,c13,c14,c15 ,c16,c17,c18,c19,c2,c3,c4,c5,c6,c7,c8,c9,cons,false,nil,s,true} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 2: Sum. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: APP(z0,z1) -> c(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z0)) APP(z0,z1) -> c1(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z1)) GE(z0,0()) -> c7() GE(0(),s(z0)) -> c8() GE(s(z0),s(z1)) -> c9(GE(z0,z1)) GREATER(z0,z1) -> c13(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z0)) GREATER(z0,z1) -> c14(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z1)) HELPA(z0,z1,z2,z3) -> c6(IF(ge(z0,z1),z0,z1,z2,z3),GE(z0,z1)) HELPB(z0,z1,cons(z2,z3),z4) -> c19(HELPA(s(z0),z1,z3,z4)) HELPC(false(),z0,z1) -> c18() HELPC(true(),z0,z1) -> c17() IF(false(),z0,z1,z2,z3) -> c11(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),GREATER(z2,z3)) IF(false(),z0,z1,z2,z3) -> c12(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),SMALLER(z2,z3)) IF(true(),z0,z1,z2,z3) -> c10() LENGTH(cons(z0,z1)) -> c5(LENGTH(z1)) LENGTH(nil()) -> c4() PLUS(z0,0()) -> c2() PLUS(z0,s(z1)) -> c3(PLUS(z0,z1)) SMALLER(z0,z1) -> c15(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z0)) SMALLER(z0,z1) -> c16(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z1)) - Weak TRS: app(z0,z1) -> helpa(0(),plus(length(z0),length(z1)),z0,z1) ge(z0,0()) -> true() ge(0(),s(z0)) -> false() ge(s(z0),s(z1)) -> ge(z0,z1) greater(z0,z1) -> helpc(ge(length(z0),length(z1)),z0,z1) helpa(z0,z1,z2,z3) -> if(ge(z0,z1),z0,z1,z2,z3) helpb(z0,z1,cons(z2,z3),z4) -> cons(z2,helpa(s(z0),z1,z3,z4)) helpc(false(),z0,z1) -> z1 helpc(true(),z0,z1) -> z0 if(false(),z0,z1,z2,z3) -> helpb(z0,z1,greater(z2,z3),smaller(z2,z3)) if(true(),z0,z1,z2,z3) -> nil() length(cons(z0,z1)) -> s(length(z1)) length(nil()) -> 0() plus(z0,0()) -> z0 plus(z0,s(z1)) -> s(plus(z0,z1)) smaller(z0,z1) -> helpc(ge(length(z0),length(z1)),z1,z0) - Signature: {APP/2,GE/2,GREATER/2,HELPA/4,HELPB/4,HELPC/3,IF/5,LENGTH/1,PLUS/2,SMALLER/2,app/2,ge/2,greater/2,helpa/4 ,helpb/4,helpc/3,if/5,length/1,plus/2,smaller/2} / {0/0,c/3,c1/3,c10/0,c11/2,c12/2,c13/3,c14/3,c15/3,c16/3 ,c17/0,c18/0,c19/1,c2/0,c3/1,c4/0,c5/1,c6/2,c7/0,c8/0,c9/1,cons/2,false/0,nil/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {APP,GE,GREATER,HELPA,HELPB,HELPC,IF,LENGTH,PLUS,SMALLER ,app,ge,greater,helpa,helpb,helpc,if,length,plus,smaller} and constructors {0,c,c1,c10,c11,c12,c13,c14,c15 ,c16,c17,c18,c19,c2,c3,c4,c5,c6,c7,c8,c9,cons,false,nil,s,true} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () * Step 3: DecreasingLoops. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: APP(z0,z1) -> c(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z0)) APP(z0,z1) -> c1(HELPA(0(),plus(length(z0),length(z1)),z0,z1),PLUS(length(z0),length(z1)),LENGTH(z1)) GE(z0,0()) -> c7() GE(0(),s(z0)) -> c8() GE(s(z0),s(z1)) -> c9(GE(z0,z1)) GREATER(z0,z1) -> c13(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z0)) GREATER(z0,z1) -> c14(HELPC(ge(length(z0),length(z1)),z0,z1),GE(length(z0),length(z1)),LENGTH(z1)) HELPA(z0,z1,z2,z3) -> c6(IF(ge(z0,z1),z0,z1,z2,z3),GE(z0,z1)) HELPB(z0,z1,cons(z2,z3),z4) -> c19(HELPA(s(z0),z1,z3,z4)) HELPC(false(),z0,z1) -> c18() HELPC(true(),z0,z1) -> c17() IF(false(),z0,z1,z2,z3) -> c11(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),GREATER(z2,z3)) IF(false(),z0,z1,z2,z3) -> c12(HELPB(z0,z1,greater(z2,z3),smaller(z2,z3)),SMALLER(z2,z3)) IF(true(),z0,z1,z2,z3) -> c10() LENGTH(cons(z0,z1)) -> c5(LENGTH(z1)) LENGTH(nil()) -> c4() PLUS(z0,0()) -> c2() PLUS(z0,s(z1)) -> c3(PLUS(z0,z1)) SMALLER(z0,z1) -> c15(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z0)) SMALLER(z0,z1) -> c16(HELPC(ge(length(z0),length(z1)),z1,z0),GE(length(z0),length(z1)),LENGTH(z1)) - Weak TRS: app(z0,z1) -> helpa(0(),plus(length(z0),length(z1)),z0,z1) ge(z0,0()) -> true() ge(0(),s(z0)) -> false() ge(s(z0),s(z1)) -> ge(z0,z1) greater(z0,z1) -> helpc(ge(length(z0),length(z1)),z0,z1) helpa(z0,z1,z2,z3) -> if(ge(z0,z1),z0,z1,z2,z3) helpb(z0,z1,cons(z2,z3),z4) -> cons(z2,helpa(s(z0),z1,z3,z4)) helpc(false(),z0,z1) -> z1 helpc(true(),z0,z1) -> z0 if(false(),z0,z1,z2,z3) -> helpb(z0,z1,greater(z2,z3),smaller(z2,z3)) if(true(),z0,z1,z2,z3) -> nil() length(cons(z0,z1)) -> s(length(z1)) length(nil()) -> 0() plus(z0,0()) -> z0 plus(z0,s(z1)) -> s(plus(z0,z1)) smaller(z0,z1) -> helpc(ge(length(z0),length(z1)),z1,z0) - Signature: {APP/2,GE/2,GREATER/2,HELPA/4,HELPB/4,HELPC/3,IF/5,LENGTH/1,PLUS/2,SMALLER/2,app/2,ge/2,greater/2,helpa/4 ,helpb/4,helpc/3,if/5,length/1,plus/2,smaller/2} / {0/0,c/3,c1/3,c10/0,c11/2,c12/2,c13/3,c14/3,c15/3,c16/3 ,c17/0,c18/0,c19/1,c2/0,c3/1,c4/0,c5/1,c6/2,c7/0,c8/0,c9/1,cons/2,false/0,nil/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {APP,GE,GREATER,HELPA,HELPB,HELPC,IF,LENGTH,PLUS,SMALLER ,app,ge,greater,helpa,helpb,helpc,if,length,plus,smaller} and constructors {0,c,c1,c10,c11,c12,c13,c14,c15 ,c16,c17,c18,c19,c2,c3,c4,c5,c6,c7,c8,c9,cons,false,nil,s,true} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: GE(x,y){x -> s(x),y -> s(y)} = GE(s(x),s(y)) ->^+ c9(GE(x,y)) = C[GE(x,y) = GE(x,y){}] WORST_CASE(Omega(n^1),?)