/export/starexec/sandbox/solver/bin/starexec_run_tct_rci /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- WORST_CASE(Omega(n^1),O(n^6)) * Step 1: Sum. WORST_CASE(Omega(n^1),O(n^6)) + Considered Problem: - Strict TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2 ,cons/2,isNat/1,isNatIList/1,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61 ,a__U62,a__isNat,a__isNatIList,a__isNatList,a__length,a__zeros,mark} and constructors {0,U11,U21,U31,U41,U42 ,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:1: Sum. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2 ,cons/2,isNat/1,isNatIList/1,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61 ,a__U62,a__isNat,a__isNatIList,a__isNatList,a__length,a__zeros,mark} and constructors {0,U11,U21,U31,U41,U42 ,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: Sum {left = someStrategy, right = someStrategy} + Details: () ** Step 1.a:2: DecreasingLoops. WORST_CASE(Omega(n^1),?) + Considered Problem: - Strict TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2 ,cons/2,isNat/1,isNatIList/1,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61 ,a__U62,a__isNat,a__isNatIList,a__isNatList,a__length,a__zeros,mark} and constructors {0,U11,U21,U31,U41,U42 ,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: DecreasingLoops {bound = AnyLoop, narrow = 10} + Details: The system has following decreasing Loops: a__isNat(x){x -> s(x)} = a__isNat(s(x)) ->^+ a__U21(a__isNat(x)) = C[a__isNat(x) = a__isNat(x){}] ** Step 1.b:1: DependencyPairs. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2 ,cons/2,isNat/1,isNatIList/1,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61 ,a__U62,a__isNat,a__isNatIList,a__isNatList,a__length,a__zeros,mark} and constructors {0,U11,U21,U31,U41,U42 ,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs a__U11#(X) -> c_1() a__U11#(tt()) -> c_2() a__U21#(X) -> c_3() a__U21#(tt()) -> c_4() a__U31#(X) -> c_5() a__U31#(tt()) -> c_6() a__U41#(X1,X2) -> c_7() a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) a__U42#(X) -> c_9() a__U42#(tt()) -> c_10() a__U51#(X1,X2) -> c_11() a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) a__U52#(X) -> c_13() a__U52#(tt()) -> c_14() a__U61#(X1,X2,X3) -> c_15() a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(X1,X2) -> c_17() a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(X) -> c_19() a__isNat#(0()) -> c_20() a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) a__isNatIList#(X) -> c_24() a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatIList#(zeros()) -> c_26() a__isNatList#(X) -> c_27() a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(nil()) -> c_29() a__length#(X) -> c_30() a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) a__length#(nil()) -> c_32() a__zeros#() -> c_33() a__zeros#() -> c_34() mark#(0()) -> c_35() mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(nil()) -> c_50() mark#(s(X)) -> c_51(mark#(X)) mark#(tt()) -> c_52() mark#(zeros()) -> c_53(a__zeros#()) Weak DPs and mark the set of starting terms. ** Step 1.b:2: PredecessorEstimation. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: a__U11#(X) -> c_1() a__U11#(tt()) -> c_2() a__U21#(X) -> c_3() a__U21#(tt()) -> c_4() a__U31#(X) -> c_5() a__U31#(tt()) -> c_6() a__U41#(X1,X2) -> c_7() a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) a__U42#(X) -> c_9() a__U42#(tt()) -> c_10() a__U51#(X1,X2) -> c_11() a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) a__U52#(X) -> c_13() a__U52#(tt()) -> c_14() a__U61#(X1,X2,X3) -> c_15() a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(X1,X2) -> c_17() a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(X) -> c_19() a__isNat#(0()) -> c_20() a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) a__isNatIList#(X) -> c_24() a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatIList#(zeros()) -> c_26() a__isNatList#(X) -> c_27() a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(nil()) -> c_29() a__length#(X) -> c_30() a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) a__length#(nil()) -> c_32() a__zeros#() -> c_33() a__zeros#() -> c_34() mark#(0()) -> c_35() mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(nil()) -> c_50() mark#(s(X)) -> c_51(mark#(X)) mark#(tt()) -> c_52() mark#(zeros()) -> c_53(a__zeros#()) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/2,c_9/0,c_10/0 ,c_11/0,c_12/2,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/2,c_22/2,c_23/2,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/2,c_37/2,c_38/2,c_39/2,c_40/2 ,c_41/2,c_42/2,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,3,4,5,6,7,9,10,11,13,14,15,17,19,20,24,26,27,29,30,32,33,34,35,50,52} by application of Pre({1,2,3,4,5,6,7,9,10,11,13,14,15,17,19,20,24,26,27,29,30,32,33,34,35,50,52}) = {8,12,16,18,21,22,23,25 ,28,31,36,37,38,39,40,41,42,43,44,45,46,47,48,49,51,53}. Here rules are labelled as follows: 1: a__U11#(X) -> c_1() 2: a__U11#(tt()) -> c_2() 3: a__U21#(X) -> c_3() 4: a__U21#(tt()) -> c_4() 5: a__U31#(X) -> c_5() 6: a__U31#(tt()) -> c_6() 7: a__U41#(X1,X2) -> c_7() 8: a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) 9: a__U42#(X) -> c_9() 10: a__U42#(tt()) -> c_10() 11: a__U51#(X1,X2) -> c_11() 12: a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) 13: a__U52#(X) -> c_13() 14: a__U52#(tt()) -> c_14() 15: a__U61#(X1,X2,X3) -> c_15() 16: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) 17: a__U62#(X1,X2) -> c_17() 18: a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) 19: a__isNat#(X) -> c_19() 20: a__isNat#(0()) -> c_20() 21: a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) 22: a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) 23: a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) 24: a__isNatIList#(X) -> c_24() 25: a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) 26: a__isNatIList#(zeros()) -> c_26() 27: a__isNatList#(X) -> c_27() 28: a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) 29: a__isNatList#(nil()) -> c_29() 30: a__length#(X) -> c_30() 31: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) 32: a__length#(nil()) -> c_32() 33: a__zeros#() -> c_33() 34: a__zeros#() -> c_34() 35: mark#(0()) -> c_35() 36: mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) 37: mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) 38: mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) 39: mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) 40: mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) 41: mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) 42: mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) 43: mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) 44: mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) 45: mark#(cons(X1,X2)) -> c_45(mark#(X1)) 46: mark#(isNat(X)) -> c_46(a__isNat#(X)) 47: mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) 48: mark#(isNatList(X)) -> c_48(a__isNatList#(X)) 49: mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) 50: mark#(nil()) -> c_50() 51: mark#(s(X)) -> c_51(mark#(X)) 52: mark#(tt()) -> c_52() 53: mark#(zeros()) -> c_53(a__zeros#()) ** Step 1.b:3: PredecessorEstimation. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) mark#(zeros()) -> c_53(a__zeros#()) - Weak DPs: a__U11#(X) -> c_1() a__U11#(tt()) -> c_2() a__U21#(X) -> c_3() a__U21#(tt()) -> c_4() a__U31#(X) -> c_5() a__U31#(tt()) -> c_6() a__U41#(X1,X2) -> c_7() a__U42#(X) -> c_9() a__U42#(tt()) -> c_10() a__U51#(X1,X2) -> c_11() a__U52#(X) -> c_13() a__U52#(tt()) -> c_14() a__U61#(X1,X2,X3) -> c_15() a__U62#(X1,X2) -> c_17() a__isNat#(X) -> c_19() a__isNat#(0()) -> c_20() a__isNatIList#(X) -> c_24() a__isNatIList#(zeros()) -> c_26() a__isNatList#(X) -> c_27() a__isNatList#(nil()) -> c_29() a__length#(X) -> c_30() a__length#(nil()) -> c_32() a__zeros#() -> c_33() a__zeros#() -> c_34() mark#(0()) -> c_35() mark#(nil()) -> c_50() mark#(tt()) -> c_52() - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/2,c_9/0,c_10/0 ,c_11/0,c_12/2,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/2,c_22/2,c_23/2,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/2,c_37/2,c_38/2,c_39/2,c_40/2 ,c_41/2,c_42/2,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {26} by application of Pre({26}) = {4,11,12,13,14,15,16,17,18,19,20,24,25}. Here rules are labelled as follows: 1: a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) 2: a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) 3: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) 4: a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) 5: a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) 6: a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) 7: a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) 8: a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) 9: a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) 10: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) 11: mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) 12: mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) 13: mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) 14: mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) 15: mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) 16: mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) 17: mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) 18: mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) 19: mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) 20: mark#(cons(X1,X2)) -> c_45(mark#(X1)) 21: mark#(isNat(X)) -> c_46(a__isNat#(X)) 22: mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) 23: mark#(isNatList(X)) -> c_48(a__isNatList#(X)) 24: mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) 25: mark#(s(X)) -> c_51(mark#(X)) 26: mark#(zeros()) -> c_53(a__zeros#()) 27: a__U11#(X) -> c_1() 28: a__U11#(tt()) -> c_2() 29: a__U21#(X) -> c_3() 30: a__U21#(tt()) -> c_4() 31: a__U31#(X) -> c_5() 32: a__U31#(tt()) -> c_6() 33: a__U41#(X1,X2) -> c_7() 34: a__U42#(X) -> c_9() 35: a__U42#(tt()) -> c_10() 36: a__U51#(X1,X2) -> c_11() 37: a__U52#(X) -> c_13() 38: a__U52#(tt()) -> c_14() 39: a__U61#(X1,X2,X3) -> c_15() 40: a__U62#(X1,X2) -> c_17() 41: a__isNat#(X) -> c_19() 42: a__isNat#(0()) -> c_20() 43: a__isNatIList#(X) -> c_24() 44: a__isNatIList#(zeros()) -> c_26() 45: a__isNatList#(X) -> c_27() 46: a__isNatList#(nil()) -> c_29() 47: a__length#(X) -> c_30() 48: a__length#(nil()) -> c_32() 49: a__zeros#() -> c_33() 50: a__zeros#() -> c_34() 51: mark#(0()) -> c_35() 52: mark#(nil()) -> c_50() 53: mark#(tt()) -> c_52() ** Step 1.b:4: RemoveWeakSuffixes. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U11#(X) -> c_1() a__U11#(tt()) -> c_2() a__U21#(X) -> c_3() a__U21#(tt()) -> c_4() a__U31#(X) -> c_5() a__U31#(tt()) -> c_6() a__U41#(X1,X2) -> c_7() a__U42#(X) -> c_9() a__U42#(tt()) -> c_10() a__U51#(X1,X2) -> c_11() a__U52#(X) -> c_13() a__U52#(tt()) -> c_14() a__U61#(X1,X2,X3) -> c_15() a__U62#(X1,X2) -> c_17() a__isNat#(X) -> c_19() a__isNat#(0()) -> c_20() a__isNatIList#(X) -> c_24() a__isNatIList#(zeros()) -> c_26() a__isNatList#(X) -> c_27() a__isNatList#(nil()) -> c_29() a__length#(X) -> c_30() a__length#(nil()) -> c_32() a__zeros#() -> c_33() a__zeros#() -> c_34() mark#(0()) -> c_35() mark#(nil()) -> c_50() mark#(tt()) -> c_52() mark#(zeros()) -> c_53(a__zeros#()) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/2,c_9/0,c_10/0 ,c_11/0,c_12/2,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/2,c_22/2,c_23/2,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/2,c_37/2,c_38/2,c_39/2,c_40/2 ,c_41/2,c_42/2,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) -->_2 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):8 -->_2 a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)):7 -->_2 a__isNatIList#(zeros()) -> c_26():43 -->_2 a__isNatIList#(X) -> c_24():42 -->_1 a__U42#(tt()) -> c_10():34 -->_1 a__U42#(X) -> c_9():33 2:S:a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 -->_2 a__isNatList#(nil()) -> c_29():45 -->_2 a__isNatList#(X) -> c_27():44 -->_1 a__U52#(tt()) -> c_14():37 -->_1 a__U52#(X) -> c_13():36 3:S:a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):4 -->_2 a__isNat#(0()) -> c_20():41 -->_2 a__isNat#(X) -> c_19():40 -->_1 a__U62#(X1,X2) -> c_17():39 4:S:a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):10 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__length#(nil()) -> c_32():47 -->_1 a__length#(X) -> c_30():46 5:S:a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 -->_2 a__isNatList#(nil()) -> c_29():45 -->_2 a__isNatList#(X) -> c_27():44 -->_1 a__U11#(tt()) -> c_2():27 -->_1 a__U11#(X) -> c_1():26 6:S:a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) -->_2 a__isNat#(0()) -> c_20():41 -->_2 a__isNat#(X) -> c_19():40 -->_1 a__U21#(tt()) -> c_4():29 -->_1 a__U21#(X) -> c_3():28 -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 7:S:a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 -->_2 a__isNatList#(nil()) -> c_29():45 -->_2 a__isNatList#(X) -> c_27():44 -->_1 a__U31#(tt()) -> c_6():31 -->_1 a__U31#(X) -> c_5():30 8:S:a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) -->_2 a__isNat#(0()) -> c_20():41 -->_2 a__isNat#(X) -> c_19():40 -->_1 a__U41#(X1,X2) -> c_7():32 -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)):1 9:S:a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) -->_2 a__isNat#(0()) -> c_20():41 -->_2 a__isNat#(X) -> c_19():40 -->_1 a__U51#(X1,X2) -> c_11():35 -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)):2 10:S:a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) -->_2 a__isNatList#(nil()) -> c_29():45 -->_2 a__isNatList#(X) -> c_27():44 -->_1 a__U61#(X1,X2,X3) -> c_15():38 -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):3 11:S:mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U11#(tt()) -> c_2():27 -->_1 a__U11#(X) -> c_1():26 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 12:S:mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U21#(tt()) -> c_4():29 -->_1 a__U21#(X) -> c_3():28 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 13:S:mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U31#(tt()) -> c_6():31 -->_1 a__U31#(X) -> c_5():30 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 14:S:mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U41#(X1,X2) -> c_7():32 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)):1 15:S:mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U42#(tt()) -> c_10():34 -->_1 a__U42#(X) -> c_9():33 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 16:S:mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U51#(X1,X2) -> c_11():35 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)):2 17:S:mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U52#(tt()) -> c_14():37 -->_1 a__U52#(X) -> c_13():36 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 18:S:mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U61#(X1,X2,X3) -> c_15():38 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):3 19:S:mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__U62#(X1,X2) -> c_17():39 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):4 20:S:mark#(cons(X1,X2)) -> c_45(mark#(X1)) -->_1 mark#(zeros()) -> c_53(a__zeros#()):53 -->_1 mark#(s(X)) -> c_51(mark#(X)):25 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_1 mark#(tt()) -> c_52():52 -->_1 mark#(nil()) -> c_50():51 -->_1 mark#(0()) -> c_35():50 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_1 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_1 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_1 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_1 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_1 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 21:S:mark#(isNat(X)) -> c_46(a__isNat#(X)) -->_1 a__isNat#(0()) -> c_20():41 -->_1 a__isNat#(X) -> c_19():40 -->_1 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_1 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 22:S:mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) -->_1 a__isNatIList#(zeros()) -> c_26():43 -->_1 a__isNatIList#(X) -> c_24():42 -->_1 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):8 -->_1 a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)):7 23:S:mark#(isNatList(X)) -> c_48(a__isNatList#(X)) -->_1 a__isNatList#(nil()) -> c_29():45 -->_1 a__isNatList#(X) -> c_27():44 -->_1 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 24:S:mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_53(a__zeros#()):53 -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(tt()) -> c_52():52 -->_2 mark#(nil()) -> c_50():51 -->_2 mark#(0()) -> c_35():50 -->_1 a__length#(nil()) -> c_32():47 -->_1 a__length#(X) -> c_30():46 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):10 25:S:mark#(s(X)) -> c_51(mark#(X)) -->_1 mark#(zeros()) -> c_53(a__zeros#()):53 -->_1 mark#(tt()) -> c_52():52 -->_1 mark#(nil()) -> c_50():51 -->_1 mark#(0()) -> c_35():50 -->_1 mark#(s(X)) -> c_51(mark#(X)):25 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_1 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_1 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_1 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_1 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_1 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 26:W:a__U11#(X) -> c_1() 27:W:a__U11#(tt()) -> c_2() 28:W:a__U21#(X) -> c_3() 29:W:a__U21#(tt()) -> c_4() 30:W:a__U31#(X) -> c_5() 31:W:a__U31#(tt()) -> c_6() 32:W:a__U41#(X1,X2) -> c_7() 33:W:a__U42#(X) -> c_9() 34:W:a__U42#(tt()) -> c_10() 35:W:a__U51#(X1,X2) -> c_11() 36:W:a__U52#(X) -> c_13() 37:W:a__U52#(tt()) -> c_14() 38:W:a__U61#(X1,X2,X3) -> c_15() 39:W:a__U62#(X1,X2) -> c_17() 40:W:a__isNat#(X) -> c_19() 41:W:a__isNat#(0()) -> c_20() 42:W:a__isNatIList#(X) -> c_24() 43:W:a__isNatIList#(zeros()) -> c_26() 44:W:a__isNatList#(X) -> c_27() 45:W:a__isNatList#(nil()) -> c_29() 46:W:a__length#(X) -> c_30() 47:W:a__length#(nil()) -> c_32() 48:W:a__zeros#() -> c_33() 49:W:a__zeros#() -> c_34() 50:W:mark#(0()) -> c_35() 51:W:mark#(nil()) -> c_50() 52:W:mark#(tt()) -> c_52() 53:W:mark#(zeros()) -> c_53(a__zeros#()) -->_1 a__zeros#() -> c_34():49 -->_1 a__zeros#() -> c_33():48 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 38: a__U61#(X1,X2,X3) -> c_15() 39: a__U62#(X1,X2) -> c_17() 46: a__length#(X) -> c_30() 47: a__length#(nil()) -> c_32() 50: mark#(0()) -> c_35() 51: mark#(nil()) -> c_50() 52: mark#(tt()) -> c_52() 53: mark#(zeros()) -> c_53(a__zeros#()) 48: a__zeros#() -> c_33() 49: a__zeros#() -> c_34() 33: a__U42#(X) -> c_9() 34: a__U42#(tt()) -> c_10() 42: a__isNatIList#(X) -> c_24() 43: a__isNatIList#(zeros()) -> c_26() 30: a__U31#(X) -> c_5() 31: a__U31#(tt()) -> c_6() 26: a__U11#(X) -> c_1() 27: a__U11#(tt()) -> c_2() 36: a__U52#(X) -> c_13() 37: a__U52#(tt()) -> c_14() 44: a__isNatList#(X) -> c_27() 45: a__isNatList#(nil()) -> c_29() 35: a__U51#(X1,X2) -> c_11() 28: a__U21#(X) -> c_3() 29: a__U21#(tt()) -> c_4() 32: a__U41#(X1,X2) -> c_7() 40: a__isNat#(X) -> c_19() 41: a__isNat#(0()) -> c_20() ** Step 1.b:5: SimplifyRHS. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/2,c_9/0,c_10/0 ,c_11/0,c_12/2,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/2,c_22/2,c_23/2,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/2,c_37/2,c_38/2,c_39/2,c_40/2 ,c_41/2,c_42/2,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)) -->_2 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):8 -->_2 a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)):7 2:S:a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 3:S:a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):4 4:S:a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):10 5:S:a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 6:S:a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)) -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 7:S:a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 8:S:a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)):1 9:S:a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) -->_2 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_2 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 -->_1 a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)):2 10:S:a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) -->_2 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):3 11:S:mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 12:S:mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 13:S:mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 14:S:mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U41#(tt(),V2) -> c_8(a__U42#(a__isNatIList(V2)),a__isNatIList#(V2)):1 15:S:mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 16:S:mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U51#(tt(),V2) -> c_12(a__U52#(a__isNatList(V2)),a__isNatList#(V2)):2 17:S:mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 18:S:mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):3 19:S:mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):4 20:S:mark#(cons(X1,X2)) -> c_45(mark#(X1)) -->_1 mark#(s(X)) -> c_51(mark#(X)):25 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_1 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_1 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_1 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_1 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_1 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 21:S:mark#(isNat(X)) -> c_46(a__isNat#(X)) -->_1 a__isNat#(s(V1)) -> c_22(a__U21#(a__isNat(V1)),a__isNat#(V1)):6 -->_1 a__isNat#(length(V1)) -> c_21(a__U11#(a__isNatList(V1)),a__isNatList#(V1)):5 22:S:mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) -->_1 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):8 -->_1 a__isNatIList#(V) -> c_23(a__U31#(a__isNatList(V)),a__isNatList#(V)):7 23:S:mark#(isNatList(X)) -> c_48(a__isNatList#(X)) -->_1 a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)):9 24:S:mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):25 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_2 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_2 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_2 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_2 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_2 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_2 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_2 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_2 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):10 25:S:mark#(s(X)) -> c_51(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):25 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):24 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):23 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):22 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):21 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):20 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):19 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):18 -->_1 mark#(U52(X)) -> c_42(a__U52#(mark(X)),mark#(X)):17 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):16 -->_1 mark#(U42(X)) -> c_40(a__U42#(mark(X)),mark#(X)):15 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):14 -->_1 mark#(U31(X)) -> c_38(a__U31#(mark(X)),mark#(X)):13 -->_1 mark#(U21(X)) -> c_37(a__U21#(mark(X)),mark#(X)):12 -->_1 mark#(U11(X)) -> c_36(a__U11#(mark(X)),mark#(X)):11 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U52(X)) -> c_42(mark#(X)) ** Step 1.b:6: DecomposeDG. WORST_CASE(?,O(n^6)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) and a lower component a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) Further, following extension rules are added to the lower component. a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) *** Step 1.b:6.a:1: SimplifyRHS. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)) -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):2 2:S:a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):3 3:S:a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)) -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):1 4:S:mark#(U11(X)) -> c_36(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 5:S:mark#(U21(X)) -> c_37(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 6:S:mark#(U31(X)) -> c_38(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 7:S:mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 8:S:mark#(U42(X)) -> c_40(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 9:S:mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 10:S:mark#(U52(X)) -> c_42(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 11:S:mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 -->_1 a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L),a__isNat#(N)):1 12:S:mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 -->_1 a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)):2 13:S:mark#(cons(X1,X2)) -> c_45(mark#(X1)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 14:S:mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_51(mark#(X)):15 -->_2 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_2 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_2 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_2 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_2 mark#(U52(X)) -> c_42(mark#(X)):10 -->_2 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_2 mark#(U42(X)) -> c_40(mark#(X)):8 -->_2 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_2 mark#(U31(X)) -> c_38(mark#(X)):6 -->_2 mark#(U21(X)) -> c_37(mark#(X)):5 -->_2 mark#(U11(X)) -> c_36(mark#(X)):4 -->_1 a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N),a__isNatList#(L)):3 15:S:mark#(s(X)) -> c_51(mark#(X)) -->_1 mark#(s(X)) -> c_51(mark#(X)):15 -->_1 mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)):14 -->_1 mark#(cons(X1,X2)) -> c_45(mark#(X1)):13 -->_1 mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)):12 -->_1 mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)):11 -->_1 mark#(U52(X)) -> c_42(mark#(X)):10 -->_1 mark#(U51(X1,X2)) -> c_41(a__U51#(mark(X1),X2),mark#(X1)):9 -->_1 mark#(U42(X)) -> c_40(mark#(X)):8 -->_1 mark#(U41(X1,X2)) -> c_39(a__U41#(mark(X1),X2),mark#(X1)):7 -->_1 mark#(U31(X)) -> c_38(mark#(X)):6 -->_1 mark#(U21(X)) -> c_37(mark#(X)):5 -->_1 mark#(U11(X)) -> c_36(mark#(X)):4 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) *** Step 1.b:6.a:2: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(a__U11) = {1}, uargs(a__U21) = {1}, uargs(a__U31) = {1}, uargs(a__U41) = {1}, uargs(a__U42) = {1}, uargs(a__U51) = {1}, uargs(a__U52) = {1}, uargs(a__U61) = {1}, uargs(a__U62) = {1}, uargs(a__length) = {1}, uargs(cons) = {1}, uargs(s) = {1}, uargs(a__U61#) = {1}, uargs(a__U62#) = {1}, uargs(a__length#) = {1}, uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] p(U11) = [0] p(U21) = [0] p(U31) = [1] x1 + [0] p(U41) = [1] x1 + [0] p(U42) = [0] p(U51) = [0] p(U52) = [0] p(U61) = [0] p(U62) = [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [1] x1 + [0] p(a__U41) = [1] x1 + [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [1] x1 + [0] p(a__U52) = [1] x1 + [0] p(a__U61) = [1] x1 + [0] p(a__U62) = [1] x1 + [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [0] p(a__length) = [1] x1 + [0] p(a__zeros) = [0] p(cons) = [1] x1 + [0] p(isNat) = [0] p(isNatIList) = [0] p(isNatList) = [0] p(length) = [0] p(mark) = [0] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [0] p(a__U42#) = [0] p(a__U51#) = [0] p(a__U52#) = [0] p(a__U61#) = [1] x1 + [7] p(a__U62#) = [1] x1 + [0] p(a__isNat#) = [0] p(a__isNatIList#) = [0] p(a__isNatList#) = [0] p(a__length#) = [1] x1 + [0] p(a__zeros#) = [0] p(mark#) = [1] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [1] x1 + [0] p(c_17) = [0] p(c_18) = [1] x1 + [1] x2 + [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [1] x1 + [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [1] x1 + [0] p(c_37) = [1] x1 + [0] p(c_38) = [1] x1 + [0] p(c_39) = [1] x1 + [0] p(c_40) = [1] x1 + [0] p(c_41) = [1] x1 + [0] p(c_42) = [1] x1 + [0] p(c_43) = [1] x1 + [1] x2 + [4] p(c_44) = [1] x1 + [1] x2 + [0] p(c_45) = [1] x1 + [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [1] x1 + [1] x2 + [0] p(c_50) = [0] p(c_51) = [1] x1 + [4] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: a__U61#(tt(),L,N) = [7] > [0] = c_16(a__U62#(a__isNat(N),L)) Following rules are (at-least) weakly oriented: a__U62#(tt(),L) = [0] >= [1] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1] N + [0] >= [7] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1] >= [1] = c_36(mark#(X)) mark#(U21(X)) = [1] >= [1] = c_37(mark#(X)) mark#(U31(X)) = [1] >= [1] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1] >= [1] = c_39(mark#(X1)) mark#(U42(X)) = [1] >= [1] = c_40(mark#(X)) mark#(U51(X1,X2)) = [1] >= [1] = c_41(mark#(X1)) mark#(U52(X)) = [1] >= [1] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1] >= [12] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1] >= [1] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1] >= [1] = c_45(mark#(X1)) mark#(length(X)) = [1] >= [1] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [1] >= [5] = c_51(mark#(X)) a__U11(X) = [1] X + [0] >= [0] = U11(X) a__U11(tt()) = [0] >= [0] = tt() a__U21(X) = [1] X + [0] >= [0] = U21(X) a__U21(tt()) = [0] >= [0] = tt() a__U31(X) = [1] X + [0] >= [1] X + [0] = U31(X) a__U31(tt()) = [0] >= [0] = tt() a__U41(X1,X2) = [1] X1 + [0] >= [1] X1 + [0] = U41(X1,X2) a__U41(tt(),V2) = [0] >= [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1] X + [0] >= [0] = U42(X) a__U42(tt()) = [0] >= [0] = tt() a__U51(X1,X2) = [1] X1 + [0] >= [0] = U51(X1,X2) a__U51(tt(),V2) = [0] >= [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1] X + [0] >= [0] = U52(X) a__U52(tt()) = [0] >= [0] = tt() a__U61(X1,X2,X3) = [1] X1 + [0] >= [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0] >= [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1] X1 + [0] >= [0] = U62(X1,X2) a__U62(tt(),L) = [0] >= [0] = s(a__length(mark(L))) a__isNat(X) = [0] >= [0] = isNat(X) a__isNat(0()) = [0] >= [0] = tt() a__isNat(length(V1)) = [0] >= [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] >= [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0] >= [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0] >= [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0] >= [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] >= [0] = tt() a__isNatList(X) = [0] >= [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] >= [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] >= [0] = tt() a__length(X) = [1] X + [0] >= [0] = length(X) a__length(cons(N,L)) = [1] N + [0] >= [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] >= [0] = 0() a__zeros() = [0] >= [0] = cons(0(),zeros()) a__zeros() = [0] >= [0] = zeros() mark(0()) = [0] >= [0] = 0() mark(U11(X)) = [0] >= [0] = a__U11(mark(X)) mark(U21(X)) = [0] >= [0] = a__U21(mark(X)) mark(U31(X)) = [0] >= [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0] >= [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0] >= [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0] >= [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0] >= [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0] >= [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0] >= [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0] >= [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] >= [0] = a__isNat(X) mark(isNatIList(X)) = [0] >= [0] = a__isNatIList(X) mark(isNatList(X)) = [0] >= [0] = a__isNatList(X) mark(length(X)) = [0] >= [0] = a__length(mark(X)) mark(nil()) = [0] >= [0] = nil() mark(s(X)) = [0] >= [0] = s(mark(X)) mark(tt()) = [0] >= [0] = tt() mark(zeros()) = [0] >= [0] = a__zeros() Further, it can be verified that all rules not oriented are covered by the weightgap condition. *** Step 1.b:6.a:3: WeightGap. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(a__U11) = {1}, uargs(a__U21) = {1}, uargs(a__U31) = {1}, uargs(a__U41) = {1}, uargs(a__U42) = {1}, uargs(a__U51) = {1}, uargs(a__U52) = {1}, uargs(a__U61) = {1}, uargs(a__U62) = {1}, uargs(a__length) = {1}, uargs(cons) = {1}, uargs(s) = {1}, uargs(a__U61#) = {1}, uargs(a__U62#) = {1}, uargs(a__length#) = {1}, uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] p(U11) = [0] p(U21) = [0] p(U31) = [0] p(U41) = [0] p(U42) = [0] p(U51) = [0] p(U52) = [0] p(U61) = [0] p(U62) = [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [1] x1 + [0] p(a__U41) = [1] x1 + [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [1] x1 + [0] p(a__U52) = [1] x1 + [0] p(a__U61) = [1] x1 + [0] p(a__U62) = [1] x1 + [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [0] p(a__length) = [1] x1 + [0] p(a__zeros) = [0] p(cons) = [1] x1 + [0] p(isNat) = [0] p(isNatIList) = [0] p(isNatList) = [0] p(length) = [1] x1 + [0] p(mark) = [0] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [0] p(a__U42#) = [0] p(a__U51#) = [1] x2 + [0] p(a__U52#) = [0] p(a__U61#) = [1] x1 + [3] p(a__U62#) = [1] x1 + [3] p(a__isNat#) = [0] p(a__isNatIList#) = [0] p(a__isNatList#) = [0] p(a__length#) = [1] x1 + [0] p(a__zeros#) = [0] p(mark#) = [1] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [1] x1 + [0] p(c_17) = [0] p(c_18) = [1] x1 + [1] x2 + [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [1] x1 + [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [1] x1 + [0] p(c_37) = [1] x1 + [0] p(c_38) = [1] x1 + [0] p(c_39) = [1] x1 + [0] p(c_40) = [1] x1 + [0] p(c_41) = [1] x1 + [0] p(c_42) = [1] x1 + [0] p(c_43) = [1] x1 + [1] x2 + [0] p(c_44) = [1] x1 + [1] x2 + [0] p(c_45) = [1] x1 + [3] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [1] x1 + [1] x2 + [0] p(c_50) = [0] p(c_51) = [1] x1 + [4] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: a__U62#(tt(),L) = [3] > [1] = c_18(a__length#(mark(L)),mark#(L)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [3] >= [3] = c_16(a__U62#(a__isNat(N),L)) a__length#(cons(N,L)) = [1] N + [0] >= [3] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1] >= [1] = c_36(mark#(X)) mark#(U21(X)) = [1] >= [1] = c_37(mark#(X)) mark#(U31(X)) = [1] >= [1] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1] >= [1] = c_39(mark#(X1)) mark#(U42(X)) = [1] >= [1] = c_40(mark#(X)) mark#(U51(X1,X2)) = [1] >= [1] = c_41(mark#(X1)) mark#(U52(X)) = [1] >= [1] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1] >= [4] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1] >= [4] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1] >= [4] = c_45(mark#(X1)) mark#(length(X)) = [1] >= [1] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [1] >= [5] = c_51(mark#(X)) a__U11(X) = [1] X + [0] >= [0] = U11(X) a__U11(tt()) = [0] >= [0] = tt() a__U21(X) = [1] X + [0] >= [0] = U21(X) a__U21(tt()) = [0] >= [0] = tt() a__U31(X) = [1] X + [0] >= [0] = U31(X) a__U31(tt()) = [0] >= [0] = tt() a__U41(X1,X2) = [1] X1 + [0] >= [0] = U41(X1,X2) a__U41(tt(),V2) = [0] >= [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1] X + [0] >= [0] = U42(X) a__U42(tt()) = [0] >= [0] = tt() a__U51(X1,X2) = [1] X1 + [0] >= [0] = U51(X1,X2) a__U51(tt(),V2) = [0] >= [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1] X + [0] >= [0] = U52(X) a__U52(tt()) = [0] >= [0] = tt() a__U61(X1,X2,X3) = [1] X1 + [0] >= [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0] >= [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1] X1 + [0] >= [0] = U62(X1,X2) a__U62(tt(),L) = [0] >= [0] = s(a__length(mark(L))) a__isNat(X) = [0] >= [0] = isNat(X) a__isNat(0()) = [0] >= [0] = tt() a__isNat(length(V1)) = [0] >= [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] >= [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0] >= [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0] >= [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0] >= [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] >= [0] = tt() a__isNatList(X) = [0] >= [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] >= [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] >= [0] = tt() a__length(X) = [1] X + [0] >= [1] X + [0] = length(X) a__length(cons(N,L)) = [1] N + [0] >= [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] >= [0] = 0() a__zeros() = [0] >= [0] = cons(0(),zeros()) a__zeros() = [0] >= [0] = zeros() mark(0()) = [0] >= [0] = 0() mark(U11(X)) = [0] >= [0] = a__U11(mark(X)) mark(U21(X)) = [0] >= [0] = a__U21(mark(X)) mark(U31(X)) = [0] >= [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0] >= [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0] >= [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0] >= [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0] >= [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0] >= [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0] >= [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0] >= [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] >= [0] = a__isNat(X) mark(isNatIList(X)) = [0] >= [0] = a__isNatIList(X) mark(isNatList(X)) = [0] >= [0] = a__isNatList(X) mark(length(X)) = [0] >= [0] = a__length(mark(X)) mark(nil()) = [0] >= [0] = nil() mark(s(X)) = [0] >= [0] = s(mark(X)) mark(tt()) = [0] >= [0] = tt() mark(zeros()) = [0] >= [0] = a__zeros() Further, it can be verified that all rules not oriented are covered by the weightgap condition. *** Step 1.b:6.a:4: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [0 0] x_1 + [0] [0 1] [0] p(U21) = [0 0] x_1 + [0] [0 1] [0] p(U31) = [0 0] x_1 + [0] [0 1] [0] p(U41) = [0 0] x_1 + [1 0] x_2 + [0] [0 1] [0 0] [1] p(U42) = [0 0] x_1 + [0] [0 1] [0] p(U51) = [0 0] x_1 + [0] [0 1] [0] p(U52) = [0 0] x_1 + [0] [0 1] [0] p(U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(a__U11) = [0 0] x_1 + [0] [0 1] [0] p(a__U21) = [0 0] x_1 + [0] [0 1] [0] p(a__U31) = [0 0] x_1 + [0] [0 1] [0] p(a__U41) = [0 0] x_1 + [1 0] x_2 + [0] [0 1] [0 0] [1] p(a__U42) = [0 0] x_1 + [0] [0 1] [0] p(a__U51) = [0 0] x_1 + [0] [0 1] [0] p(a__U52) = [0 0] x_1 + [0] [0 1] [0] p(a__U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [2 2] [0] p(a__U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [2 2] [0] p(a__isNat) = [0] [0] p(a__isNatIList) = [1 1] x_1 + [0] [0 0] [1] p(a__isNatList) = [0] [0] p(a__length) = [0 0] x_1 + [0] [2 1] [0] p(a__zeros) = [0] [0] p(cons) = [0 0] x_1 + [1 1] x_2 + [0] [0 1] [0 0] [0] p(isNat) = [0] [0] p(isNatIList) = [1 1] x_1 + [0] [0 0] [1] p(isNatList) = [0] [0] p(length) = [0 0] x_1 + [0] [1 1] [0] p(mark) = [1 0] x_1 + [0] [0 2] [0] p(nil) = [2] [0] p(s) = [0 0] x_1 + [0] [0 1] [0] p(tt) = [0] [0] p(zeros) = [0] [0] p(a__U11#) = [0 2] x_1 + [0] [0 0] [2] p(a__U21#) = [0 0] x_1 + [0] [0 2] [0] p(a__U31#) = [0 0] x_1 + [0] [2 0] [0] p(a__U41#) = [0 0] x_1 + [2] [0 2] [0] p(a__U42#) = [2] [0] p(a__U51#) = [0] [0] p(a__U52#) = [0 2] x_1 + [1] [0 1] [2] p(a__U61#) = [1 1] x_2 + [0 0] x_3 + [0] [0 0] [2 2] [0] p(a__U62#) = [1 1] x_2 + [0] [2 3] [3] p(a__isNat#) = [0] [0] p(a__isNatIList#) = [1 2] x_1 + [2] [0 0] [0] p(a__isNatList#) = [0 2] x_1 + [2] [2 2] [0] p(a__length#) = [1 0] x_1 + [0] [2 0] [1] p(a__zeros#) = [1] [1] p(mark#) = [0 1] x_1 + [0] [0 3] [0] p(c_1) = [0] [1] p(c_2) = [0] [0] p(c_3) = [0] [0] p(c_4) = [0] [2] p(c_5) = [0] [1] p(c_6) = [0] [0] p(c_7) = [2] [0] p(c_8) = [0 1] x_1 + [2] [0 2] [0] p(c_9) = [0] [2] p(c_10) = [0] [0] p(c_11) = [0] [2] p(c_12) = [0 1] x_1 + [0] [1 2] [0] p(c_13) = [1] [0] p(c_14) = [0] [0] p(c_15) = [0] [0] p(c_16) = [1 0] x_1 + [0] [0 0] [0] p(c_17) = [0] [2] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [2 0] [1] p(c_19) = [2] [1] p(c_20) = [1] [0] p(c_21) = [0] [0] p(c_22) = [0] [0] p(c_23) = [0 2] x_1 + [2] [0 2] [0] p(c_24) = [0] [0] p(c_25) = [0 0] x_1 + [0] [0 1] [0] p(c_26) = [2] [0] p(c_27) = [0] [1] p(c_28) = [1 0] x_1 + [0 0] x_2 + [0] [2 0] [0 1] [0] p(c_29) = [2] [0] p(c_30) = [0] [0] p(c_31) = [1 0] x_1 + [0] [0 0] [1] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [1] [1] p(c_35) = [2] [2] p(c_36) = [1 0] x_1 + [0] [0 0] [0] p(c_37) = [1 0] x_1 + [0] [0 0] [0] p(c_38) = [1 0] x_1 + [0] [0 0] [0] p(c_39) = [1 0] x_1 + [0] [3 0] [0] p(c_40) = [1 0] x_1 + [0] [3 0] [0] p(c_41) = [1 0] x_1 + [0] [1 0] [0] p(c_42) = [1 0] x_1 + [0] [0 1] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [0] [3 0] [0 0] [0] p(c_44) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [3 0] [0] p(c_45) = [1 0] x_1 + [0] [3 0] [0] p(c_46) = [0 0] x_1 + [1] [0 2] [1] p(c_47) = [0 0] x_1 + [0] [2 2] [1] p(c_48) = [0 2] x_1 + [1] [0 0] [2] p(c_49) = [1 0] x_1 + [1 0] x_2 + [0] [3 0] [1 0] [0] p(c_50) = [0] [0] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [1] [1] p(c_53) = [0 0] x_1 + [2] [1 1] [0] Following rules are strictly oriented: mark#(U41(X1,X2)) = [0 1] X1 + [1] [0 3] [3] > [0 1] X1 + [0] [0 3] [0] = c_39(mark#(X1)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1] L + [0 0] N + [0] [0 0] [2 2] [0] >= [1 1] L + [0] [0 0] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1] L + [0] [2 3] [3] >= [1 1] L + [0] [2 2] [2] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1] L + [0] [2 2] [1] >= [1 1] L + [0] [0 0] [1] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 0] [0] = c_38(mark#(X)) mark#(U42(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 3] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 1] X1 + [0] [0 3] [0] >= [0 1] X1 + [0] [0 1] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 3] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 1] X1 + [1 1] X2 + [0] [0 3] [3 3] [0] >= [0 1] X1 + [1 1] X2 + [0] [0 0] [3 3] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 1] X1 + [1 1] X2 + [0] [0 3] [3 3] [0] >= [0 1] X1 + [1 1] X2 + [0] [0 3] [0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 1] X1 + [0] [0 3] [0] >= [0 1] X1 + [0] [0 3] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1] X + [0] [3 3] [0] >= [1 1] X + [0] [3 1] [0] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 1] X + [0] [0 3] [0] >= [0 1] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U11(X) a__U11(tt()) = [0] [0] >= [0] [0] = tt() a__U21(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [0] [0] >= [0] [0] = tt() a__U31(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U31(X) a__U31(tt()) = [0] [0] >= [0] [0] = tt() a__U41(X1,X2) = [0 0] X1 + [1 0] X2 + [0] [0 1] [0 0] [1] >= [0 0] X1 + [1 0] X2 + [0] [0 1] [0 0] [1] = U41(X1,X2) a__U41(tt(),V2) = [1 0] V2 + [0] [0 0] [1] >= [0] [1] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U42(X) a__U42(tt()) = [0] [0] >= [0] [0] = tt() a__U51(X1,X2) = [0 0] X1 + [0] [0 1] [0] >= [0 0] X1 + [0] [0 1] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [0] >= [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [0] [0] >= [0] [0] = tt() a__U61(X1,X2,X3) = [0 0] X1 + [0 0] X2 + [0] [0 1] [2 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0] L + [0] [2 2] [0] >= [0 0] L + [0] [2 2] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [0 1] [2 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = U62(X1,X2) a__U62(tt(),L) = [0 0] L + [0] [2 2] [0] >= [0 0] L + [0] [2 2] [0] = s(a__length(mark(L))) a__isNat(X) = [0] [0] >= [0] [0] = isNat(X) a__isNat(0()) = [0] [0] >= [0] [0] = tt() a__isNat(length(V1)) = [0] [0] >= [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [0] >= [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 1] V + [0] [0 0] [1] >= [0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 1] X + [0] [0 0] [1] >= [1 1] X + [0] [0 0] [1] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 1] V1 + [1 1] V2 + [0] [0 0] [0 0] [1] >= [1 0] V2 + [0] [0 0] [1] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [1] >= [0] [0] = tt() a__isNatList(X) = [0] [0] >= [0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [0] >= [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [0] >= [0] [0] = tt() a__length(X) = [0 0] X + [0] [2 1] [0] >= [0 0] X + [0] [1 1] [0] = length(X) a__length(cons(N,L)) = [0 0] L + [0 0] N + [0] [2 2] [0 1] [0] >= [0 0] L + [0] [2 2] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [4] >= [0] [0] = 0() a__zeros() = [0] [0] >= [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] >= [0] [0] = zeros() mark(0()) = [0] [0] >= [0] [0] = 0() mark(U11(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U11(mark(X)) mark(U21(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0] X1 + [1 0] X2 + [0] [0 2] [0 0] [2] >= [0 0] X1 + [1 0] X2 + [0] [0 2] [0 0] [1] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0] X1 + [0] [0 2] [0] >= [0 0] X1 + [0] [0 2] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0] X1 + [1 1] X2 + [0] [0 2] [0 0] [0] >= [0 0] X1 + [1 1] X2 + [0] [0 2] [0 0] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] [0] >= [0] [0] = a__isNat(X) mark(isNatIList(X)) = [1 1] X + [0] [0 0] [2] >= [1 1] X + [0] [0 0] [1] = a__isNatIList(X) mark(isNatList(X)) = [0] [0] >= [0] [0] = a__isNatList(X) mark(length(X)) = [0 0] X + [0] [2 2] [0] >= [0 0] X + [0] [2 2] [0] = a__length(mark(X)) mark(nil()) = [2] [0] >= [2] [0] = nil() mark(s(X)) = [0 0] X + [0] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = s(mark(X)) mark(tt()) = [0] [0] >= [0] [0] = tt() mark(zeros()) = [0] [0] >= [0] [0] = a__zeros() *** Step 1.b:6.a:5: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [0 0] x_1 + [0] [0 1] [0] p(U21) = [0 0] x_1 + [0] [0 1] [0] p(U31) = [0 0] x_1 + [0] [1 1] [2] p(U41) = [0 0] x_1 + [0] [0 1] [3] p(U42) = [0 0] x_1 + [0] [0 1] [0] p(U51) = [0 0] x_1 + [0] [0 1] [0] p(U52) = [0 0] x_1 + [0] [0 1] [0] p(U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(a__U11) = [0 0] x_1 + [0] [0 1] [0] p(a__U21) = [0 0] x_1 + [0] [0 1] [0] p(a__U31) = [0 0] x_1 + [0] [1 1] [2] p(a__U41) = [0 0] x_1 + [0] [0 1] [3] p(a__U42) = [0 0] x_1 + [0] [0 1] [0] p(a__U51) = [0 0] x_1 + [0] [0 1] [0] p(a__U52) = [0 0] x_1 + [0] [0 1] [0] p(a__U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(a__U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(a__isNat) = [0] [0] p(a__isNatIList) = [0 1] x_1 + [1] [0 0] [3] p(a__isNatList) = [1] [0] p(a__length) = [0 0] x_1 + [0] [1 1] [0] p(a__zeros) = [0] [0] p(cons) = [0 0] x_1 + [1 1] x_2 + [0] [0 1] [0 0] [0] p(isNat) = [0] [0] p(isNatIList) = [0 1] x_1 + [1] [0 0] [3] p(isNatList) = [1] [0] p(length) = [0 0] x_1 + [0] [1 1] [0] p(mark) = [1 0] x_1 + [0] [0 1] [0] p(nil) = [2] [2] p(s) = [0 0] x_1 + [0] [0 1] [0] p(tt) = [0] [0] p(zeros) = [0] [0] p(a__U11#) = [0] [2] p(a__U21#) = [0 0] x_1 + [0] [1 1] [0] p(a__U31#) = [0 0] x_1 + [0] [0 2] [1] p(a__U41#) = [2] [2] p(a__U42#) = [0 0] x_1 + [2] [2 1] [0] p(a__U51#) = [0 0] x_2 + [0] [2 0] [0] p(a__U52#) = [0 0] x_1 + [0] [0 1] [2] p(a__U61#) = [1 1] x_2 + [0 0] x_3 + [0] [0 2] [1 0] [1] p(a__U62#) = [1 1] x_2 + [0] [3 0] [0] p(a__isNat#) = [0] [2] p(a__isNatIList#) = [0] [1] p(a__isNatList#) = [1] [1] p(a__length#) = [1 0] x_1 + [0] [2 0] [0] p(a__zeros#) = [1] [0] p(mark#) = [0 1] x_1 + [0] [1 0] [0] p(c_1) = [0] [0] p(c_2) = [0] [0] p(c_3) = [1] [0] p(c_4) = [0] [0] p(c_5) = [2] [0] p(c_6) = [0] [0] p(c_7) = [0] [0] p(c_8) = [0] [0] p(c_9) = [0] [1] p(c_10) = [2] [0] p(c_11) = [0] [0] p(c_12) = [0] [1] p(c_13) = [0] [1] p(c_14) = [0] [0] p(c_15) = [0] [1] p(c_16) = [1 0] x_1 + [0] [0 0] [0] p(c_17) = [2] [0] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [0 1] [0] p(c_19) = [1] [0] p(c_20) = [2] [1] p(c_21) = [2 1] x_1 + [0] [0 1] [0] p(c_22) = [1] [0] p(c_23) = [0 0] x_1 + [0] [0 1] [0] p(c_24) = [2] [0] p(c_25) = [0 0] x_2 + [0] [0 1] [0] p(c_26) = [1] [0] p(c_27) = [2] [0] p(c_28) = [0] [1] p(c_29) = [0] [0] p(c_30) = [2] [0] p(c_31) = [1 0] x_1 + [0] [1 0] [0] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [2] [2] p(c_35) = [1] [0] p(c_36) = [1 0] x_1 + [0] [0 0] [0] p(c_37) = [1 0] x_1 + [0] [0 0] [0] p(c_38) = [1 1] x_1 + [0] [0 0] [0] p(c_39) = [1 0] x_1 + [0] [0 0] [0] p(c_40) = [1 0] x_1 + [0] [0 0] [0] p(c_41) = [1 0] x_1 + [0] [0 0] [0] p(c_42) = [1 0] x_1 + [0] [0 0] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_44) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_45) = [1 0] x_1 + [0] [0 0] [0] p(c_46) = [0] [0] p(c_47) = [0 1] x_1 + [2] [0 2] [1] p(c_48) = [1] [0] p(c_49) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_50) = [0] [1] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [0] [1] p(c_53) = [0] [0] Following rules are strictly oriented: mark#(U31(X)) = [1 1] X + [2] [0 0] [0] > [1 1] X + [0] [0 0] [0] = c_38(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1] L + [0 0] N + [0] [0 2] [1 0] [1] >= [1 1] L + [0] [0 0] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1] L + [0] [3 0] [0] >= [1 1] L + [0] [3 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1] L + [0] [2 2] [0] >= [1 1] L + [0] [1 1] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 1] X + [0] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 1] X + [0] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = c_37(mark#(X)) mark#(U41(X1,X2)) = [0 1] X1 + [3] [0 0] [0] >= [0 1] X1 + [0] [0 0] [0] = c_39(mark#(X1)) mark#(U42(X)) = [0 1] X + [0] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 1] X1 + [0] [0 0] [0] >= [0 1] X1 + [0] [0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 1] X + [0] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 1] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] >= [0 1] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 1] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] >= [0 1] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 1] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] >= [0 1] X1 + [0] [0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 1] X + [0] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U11(X) a__U11(tt()) = [0] [0] >= [0] [0] = tt() a__U21(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [0] [0] >= [0] [0] = tt() a__U31(X) = [0 0] X + [0] [1 1] [2] >= [0 0] X + [0] [1 1] [2] = U31(X) a__U31(tt()) = [0] [2] >= [0] [0] = tt() a__U41(X1,X2) = [0 0] X1 + [0] [0 1] [3] >= [0 0] X1 + [0] [0 1] [3] = U41(X1,X2) a__U41(tt(),V2) = [0] [3] >= [0] [3] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U42(X) a__U42(tt()) = [0] [0] >= [0] [0] = tt() a__U51(X1,X2) = [0 0] X1 + [0] [0 1] [0] >= [0 0] X1 + [0] [0 1] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [0] >= [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [0] [0] >= [0] [0] = tt() a__U61(X1,X2,X3) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0] L + [0] [1 1] [0] >= [0 0] L + [0] [1 1] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = U62(X1,X2) a__U62(tt(),L) = [0 0] L + [0] [1 1] [0] >= [0 0] L + [0] [1 1] [0] = s(a__length(mark(L))) a__isNat(X) = [0] [0] >= [0] [0] = isNat(X) a__isNat(0()) = [0] [0] >= [0] [0] = tt() a__isNat(length(V1)) = [0] [0] >= [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [0] >= [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 1] V + [1] [0 0] [3] >= [0] [3] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 1] X + [1] [0 0] [3] >= [0 1] X + [1] [0 0] [3] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 1] V1 + [1] [0 0] [3] >= [0] [3] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [3] >= [0] [0] = tt() a__isNatList(X) = [1] [0] >= [1] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [1] [0] >= [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [1] [0] >= [0] [0] = tt() a__length(X) = [0 0] X + [0] [1 1] [0] >= [0 0] X + [0] [1 1] [0] = length(X) a__length(cons(N,L)) = [0 0] L + [0 0] N + [0] [1 1] [0 1] [0] >= [0 0] L + [0] [1 1] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [4] >= [0] [0] = 0() a__zeros() = [0] [0] >= [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] >= [0] [0] = zeros() mark(0()) = [0] [0] >= [0] [0] = 0() mark(U11(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U11(mark(X)) mark(U21(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0] X + [0] [1 1] [2] >= [0 0] X + [0] [1 1] [2] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0] X1 + [0] [0 1] [3] >= [0 0] X1 + [0] [0 1] [3] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0] X1 + [0] [0 1] [0] >= [0 0] X1 + [0] [0 1] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0] X1 + [1 1] X2 + [0] [0 1] [0 0] [0] >= [0 0] X1 + [1 1] X2 + [0] [0 1] [0 0] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] [0] >= [0] [0] = a__isNat(X) mark(isNatIList(X)) = [0 1] X + [1] [0 0] [3] >= [0 1] X + [1] [0 0] [3] = a__isNatIList(X) mark(isNatList(X)) = [1] [0] >= [1] [0] = a__isNatList(X) mark(length(X)) = [0 0] X + [0] [1 1] [0] >= [0 0] X + [0] [1 1] [0] = a__length(mark(X)) mark(nil()) = [2] [2] >= [2] [2] = nil() mark(s(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = s(mark(X)) mark(tt()) = [0] [0] >= [0] [0] = tt() mark(zeros()) = [0] [0] >= [0] [0] = a__zeros() *** Step 1.b:6.a:6: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [1 1] x_1 + [0] [0 0] [0] p(U21) = [1 0] x_1 + [0] [0 0] [0] p(U31) = [1 0] x_1 + [0] [0 1] [0] p(U41) = [1 0] x_1 + [0] [0 0] [0] p(U42) = [1 1] x_1 + [0] [0 0] [0] p(U51) = [1 0] x_1 + [0] [0 0] [0] p(U52) = [1 0] x_1 + [0] [0 0] [0] p(U61) = [1 0] x_1 + [1 1] x_2 + [1] [0 0] [0 0] [0] p(U62) = [1 0] x_1 + [1 1] x_2 + [1] [0 0] [0 0] [0] p(a__U11) = [1 2] x_1 + [0] [0 0] [0] p(a__U21) = [1 0] x_1 + [0] [0 0] [0] p(a__U31) = [1 0] x_1 + [0] [0 1] [0] p(a__U41) = [1 0] x_1 + [0] [0 0] [0] p(a__U42) = [1 2] x_1 + [0] [0 0] [0] p(a__U51) = [1 0] x_1 + [0] [0 0] [0] p(a__U52) = [1 0] x_1 + [0] [0 0] [0] p(a__U61) = [1 0] x_1 + [2 2] x_2 + [1] [0 0] [0 0] [0] p(a__U62) = [1 0] x_1 + [2 2] x_2 + [1] [0 0] [0 0] [0] p(a__isNat) = [0] [0] p(a__isNatIList) = [0] [0] p(a__isNatList) = [0] [0] p(a__length) = [1 2] x_1 + [1] [0 0] [0] p(a__zeros) = [0] [0] p(cons) = [1 0] x_1 + [0 0] x_2 + [0] [0 0] [1 1] [0] p(isNat) = [0] [0] p(isNatIList) = [0] [0] p(isNatList) = [0] [0] p(length) = [1 1] x_1 + [1] [0 0] [0] p(mark) = [2 0] x_1 + [0] [0 1] [0] p(nil) = [0] [0] p(s) = [1 0] x_1 + [0] [0 0] [0] p(tt) = [0] [0] p(zeros) = [0] [0] p(a__U11#) = [1] [0] p(a__U21#) = [0] [0] p(a__U31#) = [0] [0] p(a__U41#) = [0] [1] p(a__U42#) = [0 0] x_1 + [2] [1 0] [1] p(a__U51#) = [0 0] x_1 + [0 0] x_2 + [0] [1 2] [0 1] [0] p(a__U52#) = [0 0] x_1 + [1] [1 0] [1] p(a__U61#) = [1 1] x_2 + [0] [0 1] [0] p(a__U62#) = [0 0] x_1 + [1 1] x_2 + [0] [0 3] [0 2] [2] p(a__isNat#) = [1] [0] p(a__isNatIList#) = [0 0] x_1 + [0] [1 0] [1] p(a__isNatList#) = [1 0] x_1 + [0] [0 0] [0] p(a__length#) = [0 1] x_1 + [0] [0 0] [1] p(a__zeros#) = [2] [0] p(mark#) = [1 0] x_1 + [0] [0 0] [0] p(c_1) = [0] [2] p(c_2) = [0] [1] p(c_3) = [0] [1] p(c_4) = [1] [0] p(c_5) = [0] [2] p(c_6) = [1] [0] p(c_7) = [0] [1] p(c_8) = [0 1] x_1 + [0] [2 0] [0] p(c_9) = [2] [0] p(c_10) = [1] [0] p(c_11) = [1] [0] p(c_12) = [1 2] x_1 + [0] [0 0] [0] p(c_13) = [2] [0] p(c_14) = [2] [0] p(c_15) = [1] [0] p(c_16) = [1 0] x_1 + [0] [0 0] [0] p(c_17) = [0] [2] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [1 0] [0 0] [2] p(c_19) = [0] [1] p(c_20) = [0] [1] p(c_21) = [1 0] x_1 + [0] [0 1] [0] p(c_22) = [0 0] x_1 + [0] [2 0] [1] p(c_23) = [0] [0] p(c_24) = [0] [0] p(c_25) = [0 0] x_1 + [1] [2 0] [0] p(c_26) = [1] [0] p(c_27) = [1] [0] p(c_28) = [0 0] x_2 + [2] [0 2] [1] p(c_29) = [0] [0] p(c_30) = [0] [2] p(c_31) = [1 0] x_1 + [0] [0 0] [1] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [1] [2] p(c_35) = [0] [1] p(c_36) = [1 1] x_1 + [0] [0 2] [0] p(c_37) = [1 0] x_1 + [0] [0 2] [0] p(c_38) = [1 0] x_1 + [0] [0 0] [0] p(c_39) = [1 0] x_1 + [0] [0 0] [0] p(c_40) = [1 0] x_1 + [0] [0 0] [0] p(c_41) = [1 1] x_1 + [0] [0 0] [0] p(c_42) = [1 0] x_1 + [0] [0 1] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_44) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 1] [0] p(c_45) = [1 0] x_1 + [0] [0 0] [0] p(c_46) = [1] [2] p(c_47) = [0] [0] p(c_48) = [1 0] x_1 + [0] [0 0] [2] p(c_49) = [1 1] x_1 + [1 0] x_2 + [0] [0 0] [0 1] [0] p(c_50) = [2] [0] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [0] [0] p(c_53) = [1] [0] Following rules are strictly oriented: mark#(U61(X1,X2,X3)) = [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [0] > [1 0] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [0] > [1 0] X1 + [1 1] X2 + [0] [0 0] [0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1] L + [0] [0 1] [0] >= [1 1] L + [0] [0 0] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1] L + [0] [0 2] [2] >= [1 1] L + [0] [0 1] [2] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1] L + [0] [0 0] [1] >= [1 1] L + [0] [0 0] [1] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1 1] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = c_39(mark#(X1)) mark#(U42(X)) = [1 1] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_42(mark#(X)) mark#(cons(X1,X2)) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1] X + [1] [0 0] [0] >= [1 1] X + [1] [0 0] [0] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [1 2] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = U11(X) a__U11(tt()) = [0] [0] >= [0] [0] = tt() a__U21(X) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = U21(X) a__U21(tt()) = [0] [0] >= [0] [0] = tt() a__U31(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U31(X) a__U31(tt()) = [0] [0] >= [0] [0] = tt() a__U41(X1,X2) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0] [0] >= [0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 2] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = U42(X) a__U42(tt()) = [0] [0] >= [0] [0] = tt() a__U51(X1,X2) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [0] >= [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = U52(X) a__U52(tt()) = [0] [0] >= [0] [0] = tt() a__U61(X1,X2,X3) = [1 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [0] >= [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [2 2] L + [1] [0 0] [0] >= [2 2] L + [1] [0 0] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [0] >= [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [0] = U62(X1,X2) a__U62(tt(),L) = [2 2] L + [1] [0 0] [0] >= [2 2] L + [1] [0 0] [0] = s(a__length(mark(L))) a__isNat(X) = [0] [0] >= [0] [0] = isNat(X) a__isNat(0()) = [0] [0] >= [0] [0] = tt() a__isNat(length(V1)) = [0] [0] >= [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [0] >= [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0] [0] >= [0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0] [0] >= [0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0] [0] >= [0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [0] >= [0] [0] = tt() a__isNatList(X) = [0] [0] >= [0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [0] >= [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [0] >= [0] [0] = tt() a__length(X) = [1 2] X + [1] [0 0] [0] >= [1 1] X + [1] [0 0] [0] = length(X) a__length(cons(N,L)) = [2 2] L + [1 0] N + [1] [0 0] [0 0] [0] >= [2 2] L + [1] [0 0] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [0] >= [0] [0] = 0() a__zeros() = [0] [0] >= [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] >= [0] [0] = zeros() mark(0()) = [0] [0] >= [0] [0] = 0() mark(U11(X)) = [2 2] X + [0] [0 0] [0] >= [2 2] X + [0] [0 0] [0] = a__U11(mark(X)) mark(U21(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = a__U21(mark(X)) mark(U31(X)) = [2 0] X + [0] [0 1] [0] >= [2 0] X + [0] [0 1] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [2 0] X1 + [0] [0 0] [0] >= [2 0] X1 + [0] [0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [2 2] X + [0] [0 0] [0] >= [2 2] X + [0] [0 0] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [2 0] X1 + [0] [0 0] [0] >= [2 0] X1 + [0] [0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [2 0] X1 + [2 2] X2 + [2] [0 0] [0 0] [0] >= [2 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [2 0] X1 + [2 2] X2 + [2] [0 0] [0 0] [0] >= [2 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [2 0] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] >= [2 0] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] [0] >= [0] [0] = a__isNat(X) mark(isNatIList(X)) = [0] [0] >= [0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0] [0] >= [0] [0] = a__isNatList(X) mark(length(X)) = [2 2] X + [2] [0 0] [0] >= [2 2] X + [1] [0 0] [0] = a__length(mark(X)) mark(nil()) = [0] [0] >= [0] [0] = nil() mark(s(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = s(mark(X)) mark(tt()) = [0] [0] >= [0] [0] = tt() mark(zeros()) = [0] [0] >= [0] [0] = a__zeros() *** Step 1.b:6.a:7: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [1 1] x_1 + [0] [0 0] [0] p(U21) = [1 1] x_1 + [0] [0 0] [0] p(U31) = [1 1] x_1 + [0] [0 0] [0] p(U41) = [1 0] x_1 + [0] [0 0] [0] p(U42) = [1 0] x_1 + [0] [0 0] [0] p(U51) = [1 0] x_1 + [0] [0 0] [0] p(U52) = [1 0] x_1 + [0] [0 0] [0] p(U61) = [1 0] x_1 + [1 1] x_2 + [0 1] x_3 + [1] [0 0] [0 0] [0 0] [1] p(U62) = [1 0] x_1 + [1 1] x_2 + [1] [0 0] [0 0] [1] p(a__U11) = [1 2] x_1 + [0] [0 0] [0] p(a__U21) = [1 1] x_1 + [0] [0 0] [0] p(a__U31) = [1 2] x_1 + [0] [0 0] [0] p(a__U41) = [1 0] x_1 + [0] [0 0] [0] p(a__U42) = [1 0] x_1 + [0] [0 0] [0] p(a__U51) = [1 0] x_1 + [0] [0 0] [0] p(a__U52) = [1 0] x_1 + [0] [0 0] [0] p(a__U61) = [1 0] x_1 + [2 2] x_2 + [0 1] x_3 + [1] [0 0] [0 0] [0 0] [1] p(a__U62) = [1 0] x_1 + [2 2] x_2 + [1] [0 0] [0 0] [1] p(a__isNat) = [0] [0] p(a__isNatIList) = [0 0] x_1 + [0] [1 0] [0] p(a__isNatList) = [0] [0] p(a__length) = [1 2] x_1 + [1] [0 0] [1] p(a__zeros) = [0] [0] p(cons) = [1 1] x_1 + [0 0] x_2 + [0] [0 0] [1 1] [0] p(isNat) = [0] [0] p(isNatIList) = [0 0] x_1 + [0] [1 0] [0] p(isNatList) = [0] [0] p(length) = [1 1] x_1 + [1] [0 0] [1] p(mark) = [2 0] x_1 + [0] [0 1] [0] p(nil) = [0] [3] p(s) = [1 0] x_1 + [0] [0 0] [1] p(tt) = [0] [0] p(zeros) = [0] [0] p(a__U11#) = [0] [0] p(a__U21#) = [0 0] x_1 + [0] [0 1] [0] p(a__U31#) = [0] [1] p(a__U41#) = [0 0] x_1 + [0] [1 1] [1] p(a__U42#) = [0 0] x_1 + [0] [0 2] [0] p(a__U51#) = [0] [1] p(a__U52#) = [0 0] x_1 + [0] [1 0] [0] p(a__U61#) = [1 1] x_2 + [0 0] x_3 + [0] [0 0] [2 2] [1] p(a__U62#) = [1 1] x_2 + [0] [2 2] [3] p(a__isNat#) = [2] [0] p(a__isNatIList#) = [2] [0] p(a__isNatList#) = [0 0] x_1 + [0] [1 1] [2] p(a__length#) = [0 1] x_1 + [0] [1 0] [0] p(a__zeros#) = [0] [2] p(mark#) = [1 0] x_1 + [0] [0 1] [0] p(c_1) = [0] [1] p(c_2) = [2] [0] p(c_3) = [1] [1] p(c_4) = [0] [0] p(c_5) = [1] [1] p(c_6) = [1] [0] p(c_7) = [1] [0] p(c_8) = [0] [0] p(c_9) = [1] [1] p(c_10) = [2] [0] p(c_11) = [0] [1] p(c_12) = [0 0] x_1 + [0] [0 1] [0] p(c_13) = [0] [2] p(c_14) = [0] [0] p(c_15) = [0] [1] p(c_16) = [1 0] x_1 + [0] [0 0] [0] p(c_17) = [0] [0] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [2 0] [2] p(c_19) = [1] [0] p(c_20) = [0] [2] p(c_21) = [0] [0] p(c_22) = [0] [1] p(c_23) = [2] [2] p(c_24) = [2] [1] p(c_25) = [0 0] x_2 + [0] [1 0] [1] p(c_26) = [1] [1] p(c_27) = [1] [0] p(c_28) = [0 0] x_2 + [0] [0 2] [0] p(c_29) = [2] [0] p(c_30) = [0] [1] p(c_31) = [1 0] x_1 + [0] [0 0] [0] p(c_32) = [0] [0] p(c_33) = [0] [2] p(c_34) = [1] [0] p(c_35) = [0] [1] p(c_36) = [1 0] x_1 + [0] [0 0] [0] p(c_37) = [1 0] x_1 + [0] [0 0] [0] p(c_38) = [1 1] x_1 + [0] [0 0] [0] p(c_39) = [1 0] x_1 + [0] [0 0] [0] p(c_40) = [1 0] x_1 + [0] [0 0] [0] p(c_41) = [1 0] x_1 + [0] [0 0] [0] p(c_42) = [1 0] x_1 + [0] [0 0] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [1] [0 0] [0 0] [1] p(c_44) = [1 0] x_1 + [1 0] x_2 + [1] [0 0] [0 0] [0] p(c_45) = [1 0] x_1 + [0] [0 0] [0] p(c_46) = [2 2] x_1 + [2] [0 2] [2] p(c_47) = [0] [2] p(c_48) = [0 0] x_1 + [2] [2 0] [0] p(c_49) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [1] p(c_50) = [2] [2] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [0] [2] p(c_53) = [1 0] x_1 + [1] [0 0] [2] Following rules are strictly oriented: mark#(length(X)) = [1 1] X + [1] [0 0] [1] > [1 1] X + [0] [0 0] [1] = c_49(a__length#(mark(X)),mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1] L + [0 0] N + [0] [0 0] [2 2] [1] >= [1 1] L + [0] [0 0] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1] L + [0] [2 2] [3] >= [1 1] L + [0] [2 0] [2] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1] L + [0 0] N + [0] [0 0] [1 1] [0] >= [1 1] L + [0] [0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1 1] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [1 1] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [1 1] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = c_39(mark#(X1)) mark#(U42(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1 0] X1 + [1 1] X2 + [0 1] X3 + [1] [0 0] [0 0] [0 0] [1] >= [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [1] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [1] >= [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1 1] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] >= [1 0] X1 + [0] [0 0] [0] = c_45(mark#(X1)) mark#(s(X)) = [1 0] X + [0] [0 0] [1] >= [1 0] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [1 2] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = U11(X) a__U11(tt()) = [0] [0] >= [0] [0] = tt() a__U21(X) = [1 1] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = U21(X) a__U21(tt()) = [0] [0] >= [0] [0] = tt() a__U31(X) = [1 2] X + [0] [0 0] [0] >= [1 1] X + [0] [0 0] [0] = U31(X) a__U31(tt()) = [0] [0] >= [0] [0] = tt() a__U41(X1,X2) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0] [0] >= [0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = U42(X) a__U42(tt()) = [0] [0] >= [0] [0] = tt() a__U51(X1,X2) = [1 0] X1 + [0] [0 0] [0] >= [1 0] X1 + [0] [0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [0] >= [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0] X + [0] [0 0] [0] >= [1 0] X + [0] [0 0] [0] = U52(X) a__U52(tt()) = [0] [0] >= [0] [0] = tt() a__U61(X1,X2,X3) = [1 0] X1 + [2 2] X2 + [0 1] X3 + [1] [0 0] [0 0] [0 0] [1] >= [1 0] X1 + [1 1] X2 + [0 1] X3 + [1] [0 0] [0 0] [0 0] [1] = U61(X1,X2,X3) a__U61(tt(),L,N) = [2 2] L + [0 1] N + [1] [0 0] [0 0] [1] >= [2 2] L + [1] [0 0] [1] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [1] >= [1 0] X1 + [1 1] X2 + [1] [0 0] [0 0] [1] = U62(X1,X2) a__U62(tt(),L) = [2 2] L + [1] [0 0] [1] >= [2 2] L + [1] [0 0] [1] = s(a__length(mark(L))) a__isNat(X) = [0] [0] >= [0] [0] = isNat(X) a__isNat(0()) = [0] [0] >= [0] [0] = tt() a__isNat(length(V1)) = [0] [0] >= [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [0] >= [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 0] V + [0] [1 0] [0] >= [0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 0] X + [0] [1 0] [0] >= [0 0] X + [0] [1 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 0] V1 + [0] [1 1] [0] >= [0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [0] >= [0] [0] = tt() a__isNatList(X) = [0] [0] >= [0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [0] >= [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [0] >= [0] [0] = tt() a__length(X) = [1 2] X + [1] [0 0] [1] >= [1 1] X + [1] [0 0] [1] = length(X) a__length(cons(N,L)) = [2 2] L + [1 1] N + [1] [0 0] [0 0] [1] >= [2 2] L + [0 1] N + [1] [0 0] [0 0] [1] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [7] [1] >= [0] [0] = 0() a__zeros() = [0] [0] >= [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] >= [0] [0] = zeros() mark(0()) = [0] [0] >= [0] [0] = 0() mark(U11(X)) = [2 2] X + [0] [0 0] [0] >= [2 2] X + [0] [0 0] [0] = a__U11(mark(X)) mark(U21(X)) = [2 2] X + [0] [0 0] [0] >= [2 1] X + [0] [0 0] [0] = a__U21(mark(X)) mark(U31(X)) = [2 2] X + [0] [0 0] [0] >= [2 2] X + [0] [0 0] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [2 0] X1 + [0] [0 0] [0] >= [2 0] X1 + [0] [0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [2 0] X1 + [0] [0 0] [0] >= [2 0] X1 + [0] [0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [2 0] X + [0] [0 0] [0] >= [2 0] X + [0] [0 0] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [2 0] X1 + [2 2] X2 + [0 2] X3 + [2] [0 0] [0 0] [0 0] [1] >= [2 0] X1 + [2 2] X2 + [0 1] X3 + [1] [0 0] [0 0] [0 0] [1] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [2 0] X1 + [2 2] X2 + [2] [0 0] [0 0] [1] >= [2 0] X1 + [2 2] X2 + [1] [0 0] [0 0] [1] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [2 2] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] >= [2 1] X1 + [0 0] X2 + [0] [0 0] [1 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] [0] >= [0] [0] = a__isNat(X) mark(isNatIList(X)) = [0 0] X + [0] [1 0] [0] >= [0 0] X + [0] [1 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0] [0] >= [0] [0] = a__isNatList(X) mark(length(X)) = [2 2] X + [2] [0 0] [1] >= [2 2] X + [1] [0 0] [1] = a__length(mark(X)) mark(nil()) = [0] [3] >= [0] [3] = nil() mark(s(X)) = [2 0] X + [0] [0 0] [1] >= [2 0] X + [0] [0 0] [1] = s(mark(X)) mark(tt()) = [0] [0] >= [0] [0] = tt() mark(zeros()) = [0] [0] >= [0] [0] = a__zeros() *** Step 1.b:6.a:8: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [1 0] x_1 + [0] [0 1] [0] p(U21) = [1 0] x_1 + [0] [0 1] [0] p(U31) = [0 0] x_1 + [0] [0 1] [0] p(U41) = [0 0] x_1 + [0 0] x_2 + [2] [0 1] [1 0] [1] p(U42) = [1 0] x_1 + [0] [0 1] [1] p(U51) = [0 0] x_1 + [0] [0 1] [0] p(U52) = [0 0] x_1 + [0] [0 1] [0] p(U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [3] p(U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [2] p(a__U11) = [1 0] x_1 + [0] [0 1] [0] p(a__U21) = [1 0] x_1 + [0] [0 1] [0] p(a__U31) = [0 0] x_1 + [0] [0 1] [0] p(a__U41) = [0 0] x_1 + [0 0] x_2 + [2] [0 1] [1 0] [1] p(a__U42) = [1 0] x_1 + [0] [0 1] [1] p(a__U51) = [0 0] x_1 + [0] [0 1] [0] p(a__U52) = [0 0] x_1 + [0] [0 1] [0] p(a__U61) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [2 2] [3] p(a__U62) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [2 2] [3] p(a__isNat) = [0] [1] p(a__isNatIList) = [0 0] x_1 + [2] [1 0] [1] p(a__isNatList) = [0] [1] p(a__length) = [0 0] x_1 + [0] [2 1] [2] p(a__zeros) = [1] [0] p(cons) = [0 0] x_1 + [1 1] x_2 + [1] [0 1] [0 0] [0] p(isNat) = [0] [1] p(isNatIList) = [0 0] x_1 + [1] [1 0] [1] p(isNatList) = [0] [1] p(length) = [0 0] x_1 + [0] [1 1] [2] p(mark) = [1 0] x_1 + [1] [0 2] [0] p(nil) = [0] [1] p(s) = [0 0] x_1 + [0] [0 1] [0] p(tt) = [0] [1] p(zeros) = [0] [0] p(a__U11#) = [2] [0] p(a__U21#) = [0] [0] p(a__U31#) = [0 0] x_1 + [2] [1 1] [1] p(a__U41#) = [2 0] x_2 + [0] [0 0] [1] p(a__U42#) = [1] [0] p(a__U51#) = [0] [0] p(a__U52#) = [0 0] x_1 + [1] [0 1] [2] p(a__U61#) = [0 0] x_1 + [1 1] x_2 + [2] [0 1] [0 0] [1] p(a__U62#) = [0 0] x_1 + [1 1] x_2 + [2] [3 3] [2 0] [0] p(a__isNat#) = [0 0] x_1 + [2] [0 2] [1] p(a__isNatIList#) = [0 0] x_1 + [2] [0 1] [0] p(a__isNatList#) = [2] [0] p(a__length#) = [1 0] x_1 + [1] [1 0] [1] p(a__zeros#) = [0] [0] p(mark#) = [0 1] x_1 + [0] [0 2] [0] p(c_1) = [0] [0] p(c_2) = [0] [2] p(c_3) = [0] [1] p(c_4) = [0] [0] p(c_5) = [1] [2] p(c_6) = [0] [0] p(c_7) = [0] [0] p(c_8) = [2] [1] p(c_9) = [1] [0] p(c_10) = [0] [0] p(c_11) = [1] [1] p(c_12) = [0 0] x_1 + [0] [0 1] [0] p(c_13) = [2] [0] p(c_14) = [0] [0] p(c_15) = [1] [1] p(c_16) = [1 0] x_1 + [0] [0 0] [0] p(c_17) = [0] [0] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_19) = [0] [0] p(c_20) = [0] [0] p(c_21) = [0 2] x_1 + [0] [2 0] [1] p(c_22) = [2 2] x_1 + [0] [0 1] [2] p(c_23) = [2] [0] p(c_24) = [2] [0] p(c_25) = [2 0] x_1 + [0] [0 0] [0] p(c_26) = [1] [0] p(c_27) = [0] [0] p(c_28) = [0 0] x_1 + [0 0] x_2 + [1] [1 0] [1 0] [0] p(c_29) = [2] [0] p(c_30) = [1] [0] p(c_31) = [1 0] x_1 + [0] [1 0] [0] p(c_32) = [0] [0] p(c_33) = [0] [0] p(c_34) = [1] [0] p(c_35) = [2] [1] p(c_36) = [1 0] x_1 + [0] [1 0] [0] p(c_37) = [1 0] x_1 + [0] [2 0] [0] p(c_38) = [1 0] x_1 + [0] [0 0] [0] p(c_39) = [1 0] x_1 + [1] [2 0] [0] p(c_40) = [1 0] x_1 + [0] [2 0] [0] p(c_41) = [1 0] x_1 + [0] [1 0] [0] p(c_42) = [1 0] x_1 + [0] [2 0] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [1] [0 0] [0 1] [1] p(c_44) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [2 0] [0] p(c_45) = [1 0] x_1 + [0] [0 0] [0] p(c_46) = [0 0] x_1 + [0] [0 1] [0] p(c_47) = [0 2] x_1 + [2] [0 2] [2] p(c_48) = [0 0] x_1 + [0] [0 1] [1] p(c_49) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [2 0] [0] p(c_50) = [1] [0] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [2] [0] p(c_53) = [0 1] x_1 + [2] [2 0] [1] Following rules are strictly oriented: mark#(U42(X)) = [0 1] X + [1] [0 2] [2] > [0 1] X + [0] [0 2] [0] = c_40(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1] L + [2] [0 0] [2] >= [1 1] L + [2] [0 0] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1] L + [2] [2 0] [3] >= [1 1] L + [2] [0 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1] L + [2] [1 1] [2] >= [1 1] L + [2] [1 1] [2] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 1] X + [0] [0 2] [0] >= [0 1] X + [0] [0 1] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 1] X + [0] [0 2] [0] >= [0 1] X + [0] [0 2] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 1] X + [0] [0 2] [0] >= [0 1] X + [0] [0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [0 1] X1 + [1 0] X2 + [1] [0 2] [2 0] [2] >= [0 1] X1 + [1] [0 2] [0] = c_39(mark#(X1)) mark#(U51(X1,X2)) = [0 1] X1 + [0] [0 2] [0] >= [0 1] X1 + [0] [0 1] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 1] X + [0] [0 2] [0] >= [0 1] X + [0] [0 2] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 1] X1 + [1 1] X2 + [3] [0 2] [2 2] [6] >= [0 1] X1 + [1 1] X2 + [3] [0 2] [0 0] [1] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 1] X1 + [1 1] X2 + [2] [0 2] [2 2] [4] >= [0 1] X1 + [1 1] X2 + [2] [0 2] [0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 1] X1 + [0] [0 2] [0] >= [0 1] X1 + [0] [0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1] X + [2] [2 2] [4] >= [1 1] X + [2] [1 2] [2] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 1] X + [0] [0 2] [0] >= [0 1] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U11(X) a__U11(tt()) = [0] [1] >= [0] [1] = tt() a__U21(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [0] [1] >= [0] [1] = tt() a__U31(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U31(X) a__U31(tt()) = [0] [1] >= [0] [1] = tt() a__U41(X1,X2) = [0 0] X1 + [0 0] X2 + [2] [0 1] [1 0] [1] >= [0 0] X1 + [0 0] X2 + [2] [0 1] [1 0] [1] = U41(X1,X2) a__U41(tt(),V2) = [0 0] V2 + [2] [1 0] [2] >= [0 0] V2 + [2] [1 0] [2] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 0] X + [0] [0 1] [1] >= [1 0] X + [0] [0 1] [1] = U42(X) a__U42(tt()) = [0] [2] >= [0] [1] = tt() a__U51(X1,X2) = [0 0] X1 + [0] [0 1] [0] >= [0 0] X1 + [0] [0 1] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [1] >= [0] [1] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [0] [1] >= [0] [1] = tt() a__U61(X1,X2,X3) = [0 0] X1 + [0 0] X2 + [0] [0 1] [2 2] [3] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [3] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0] L + [0] [2 2] [4] >= [0 0] L + [0] [2 2] [4] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [0 1] [2 2] [3] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [2] = U62(X1,X2) a__U62(tt(),L) = [0 0] L + [0] [2 2] [4] >= [0 0] L + [0] [2 2] [4] = s(a__length(mark(L))) a__isNat(X) = [0] [1] >= [0] [1] = isNat(X) a__isNat(0()) = [0] [1] >= [0] [1] = tt() a__isNat(length(V1)) = [0] [1] >= [0] [1] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [1] >= [0] [1] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 0] V + [2] [1 0] [1] >= [0] [1] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 0] X + [2] [1 0] [1] >= [0 0] X + [1] [1 0] [1] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 0] V2 + [2] [1 1] [2] >= [0 0] V2 + [2] [1 0] [2] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [2] [1] >= [0] [1] = tt() a__isNatList(X) = [0] [1] >= [0] [1] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [1] >= [0] [1] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [1] >= [0] [1] = tt() a__length(X) = [0 0] X + [0] [2 1] [2] >= [0 0] X + [0] [1 1] [2] = length(X) a__length(cons(N,L)) = [0 0] L + [0 0] N + [0] [2 2] [0 1] [4] >= [0 0] L + [0] [2 2] [4] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [3] >= [0] [0] = 0() a__zeros() = [1] [0] >= [1] [0] = cons(0(),zeros()) a__zeros() = [1] [0] >= [0] [0] = zeros() mark(0()) = [1] [0] >= [0] [0] = 0() mark(U11(X)) = [1 0] X + [1] [0 2] [0] >= [1 0] X + [1] [0 2] [0] = a__U11(mark(X)) mark(U21(X)) = [1 0] X + [1] [0 2] [0] >= [1 0] X + [1] [0 2] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0] X + [1] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0] X1 + [0 0] X2 + [3] [0 2] [2 0] [2] >= [0 0] X1 + [0 0] X2 + [2] [0 2] [1 0] [1] = a__U41(mark(X1),X2) mark(U42(X)) = [1 0] X + [1] [0 2] [2] >= [1 0] X + [1] [0 2] [1] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0] X1 + [1] [0 2] [0] >= [0 0] X1 + [0] [0 2] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0] X + [1] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0] X1 + [0 0] X2 + [1] [0 2] [2 2] [6] >= [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [3] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0] X1 + [0 0] X2 + [1] [0 2] [2 2] [4] >= [0 0] X1 + [0 0] X2 + [0] [0 2] [2 2] [3] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0] X1 + [1 1] X2 + [2] [0 2] [0 0] [0] >= [0 0] X1 + [1 1] X2 + [1] [0 2] [0 0] [0] = cons(mark(X1),X2) mark(isNat(X)) = [1] [2] >= [0] [1] = a__isNat(X) mark(isNatIList(X)) = [0 0] X + [2] [2 0] [2] >= [0 0] X + [2] [1 0] [1] = a__isNatIList(X) mark(isNatList(X)) = [1] [2] >= [0] [1] = a__isNatList(X) mark(length(X)) = [0 0] X + [1] [2 2] [4] >= [0 0] X + [0] [2 2] [4] = a__length(mark(X)) mark(nil()) = [1] [2] >= [0] [1] = nil() mark(s(X)) = [0 0] X + [1] [0 2] [0] >= [0 0] X + [0] [0 2] [0] = s(mark(X)) mark(tt()) = [1] [2] >= [0] [1] = tt() mark(zeros()) = [1] [0] >= [1] [0] = a__zeros() *** Step 1.b:6.a:9: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [0 0] x_1 + [0] [0 1] [0] p(U21) = [0 0] x_1 + [0] [0 1] [0] p(U31) = [0 0] x_1 + [0] [0 1] [1] p(U41) = [0 0] x_1 + [0 0] x_2 + [0] [1 1] [1 1] [2] p(U42) = [0 0] x_1 + [0] [0 1] [0] p(U51) = [0 0] x_1 + [0] [0 1] [0] p(U52) = [0 0] x_1 + [0] [0 1] [0] p(U61) = [0 0] x_1 + [0 0] x_2 + [2] [0 1] [1 1] [1] p(U62) = [1 0] x_1 + [0 0] x_2 + [2] [0 1] [1 1] [1] p(a__U11) = [0 0] x_1 + [0] [0 1] [0] p(a__U21) = [0 0] x_1 + [0] [0 1] [0] p(a__U31) = [0 0] x_1 + [0] [0 1] [1] p(a__U41) = [0 0] x_1 + [0 0] x_2 + [0] [1 1] [2 2] [2] p(a__U42) = [0 0] x_1 + [0] [0 1] [0] p(a__U51) = [0 0] x_1 + [0] [0 1] [0] p(a__U52) = [0 0] x_1 + [0] [0 1] [0] p(a__U61) = [0 0] x_1 + [0 0] x_2 + [2] [0 1] [2 2] [1] p(a__U62) = [1 0] x_1 + [0 0] x_2 + [2] [0 1] [2 2] [1] p(a__isNat) = [0] [0] p(a__isNatIList) = [0 0] x_1 + [0] [2 2] [2] p(a__isNatList) = [0] [0] p(a__length) = [0 0] x_1 + [2] [2 1] [0] p(a__zeros) = [0] [1] p(cons) = [0 0] x_1 + [1 1] x_2 + [0] [0 1] [0 0] [1] p(isNat) = [0] [0] p(isNatIList) = [0 0] x_1 + [0] [1 1] [2] p(isNatList) = [0] [0] p(length) = [0 0] x_1 + [2] [1 1] [0] p(mark) = [1 0] x_1 + [0] [0 2] [1] p(nil) = [3] [0] p(s) = [0 0] x_1 + [1] [0 1] [0] p(tt) = [0] [0] p(zeros) = [0] [0] p(a__U11#) = [2 0] x_1 + [1] [0 2] [1] p(a__U21#) = [1] [2] p(a__U31#) = [2 0] x_1 + [0] [2 0] [1] p(a__U41#) = [1 0] x_1 + [0 0] x_2 + [0] [0 1] [2 0] [1] p(a__U42#) = [0] [0] p(a__U51#) = [0] [1] p(a__U52#) = [1] [0] p(a__U61#) = [0 0] x_1 + [2 2] x_2 + [0 0] x_3 + [0] [0 1] [1 2] [1 1] [1] p(a__U62#) = [2 2] x_2 + [0] [0 0] [1] p(a__isNat#) = [1] [1] p(a__isNatIList#) = [0] [0] p(a__isNatList#) = [0] [1] p(a__length#) = [2 0] x_1 + [0] [0 0] [0] p(a__zeros#) = [0] [2] p(mark#) = [0 2] x_1 + [0] [1 1] [0] p(c_1) = [0] [1] p(c_2) = [0] [1] p(c_3) = [1] [1] p(c_4) = [0] [0] p(c_5) = [2] [2] p(c_6) = [0] [1] p(c_7) = [1] [0] p(c_8) = [1] [0] p(c_9) = [1] [1] p(c_10) = [1] [1] p(c_11) = [2] [0] p(c_12) = [1] [0] p(c_13) = [0] [2] p(c_14) = [0] [1] p(c_15) = [1] [2] p(c_16) = [1 0] x_1 + [0] [0 1] [0] p(c_17) = [0] [0] p(c_18) = [1 0] x_1 + [1 0] x_2 + [0] [0 1] [0 0] [0] p(c_19) = [1] [2] p(c_20) = [2] [0] p(c_21) = [2 0] x_1 + [0] [0 1] [1] p(c_22) = [0 0] x_1 + [0] [1 2] [0] p(c_23) = [0 1] x_1 + [0] [2 0] [0] p(c_24) = [0] [0] p(c_25) = [1 0] x_1 + [0 2] x_2 + [2] [0 1] [1 0] [0] p(c_26) = [2] [2] p(c_27) = [0] [1] p(c_28) = [0] [1] p(c_29) = [0] [2] p(c_30) = [2] [0] p(c_31) = [1 0] x_1 + [0] [0 0] [0] p(c_32) = [0] [0] p(c_33) = [0] [2] p(c_34) = [0] [0] p(c_35) = [0] [0] p(c_36) = [1 0] x_1 + [0] [0 0] [0] p(c_37) = [1 0] x_1 + [0] [0 0] [0] p(c_38) = [1 0] x_1 + [0] [0 0] [1] p(c_39) = [1 0] x_1 + [1] [0 1] [0] p(c_40) = [1 0] x_1 + [0] [0 0] [0] p(c_41) = [1 0] x_1 + [0] [0 0] [0] p(c_42) = [1 0] x_1 + [0] [0 0] [0] p(c_43) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [3] p(c_44) = [1 2] x_1 + [1 0] x_2 + [0] [0 0] [0 1] [2] p(c_45) = [1 0] x_1 + [0] [0 0] [1] p(c_46) = [1] [0] p(c_47) = [0 0] x_1 + [0] [0 1] [2] p(c_48) = [1] [1] p(c_49) = [1 0] x_1 + [1 0] x_2 + [0] [0 2] [0 1] [2] p(c_50) = [0] [0] p(c_51) = [1 0] x_1 + [0] [0 0] [0] p(c_52) = [0] [0] p(c_53) = [1] [2] Following rules are strictly oriented: mark#(cons(X1,X2)) = [0 2] X1 + [0 0] X2 + [2] [0 1] [1 1] [1] > [0 2] X1 + [0] [0 0] [1] = c_45(mark#(X1)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [2 2] L + [0 0] N + [0] [1 2] [1 1] [1] >= [2 2] L + [0] [0 0] [1] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [2 2] L + [0] [0 0] [1] >= [2 2] L + [0] [0 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [2 2] L + [0] [0 0] [0] >= [2 2] L + [0] [0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 2] X + [0] [0 1] [0] >= [0 2] X + [0] [0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 2] X + [0] [0 1] [0] >= [0 2] X + [0] [0 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 2] X + [2] [0 1] [1] >= [0 2] X + [0] [0 0] [1] = c_38(mark#(X)) mark#(U41(X1,X2)) = [2 2] X1 + [2 2] X2 + [4] [1 1] [1 1] [2] >= [0 2] X1 + [1] [1 1] [0] = c_39(mark#(X1)) mark#(U42(X)) = [0 2] X + [0] [0 1] [0] >= [0 2] X + [0] [0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 2] X1 + [0] [0 1] [0] >= [0 2] X1 + [0] [0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 2] X + [0] [0 1] [0] >= [0 2] X + [0] [0 0] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 2] X1 + [2 2] X2 + [2] [0 1] [1 1] [3] >= [0 2] X1 + [2 2] X2 + [0] [0 0] [0 0] [3] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 2] X1 + [2 2] X2 + [2] [1 1] [1 1] [3] >= [0 2] X1 + [2 2] X2 + [2] [1 1] [0 0] [2] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(length(X)) = [2 2] X + [0] [1 1] [2] >= [2 2] X + [0] [1 1] [2] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 2] X + [0] [0 1] [1] >= [0 2] X + [0] [0 0] [0] = c_51(mark#(X)) a__U11(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U11(X) a__U11(tt()) = [0] [0] >= [0] [0] = tt() a__U21(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [0] [0] >= [0] [0] = tt() a__U31(X) = [0 0] X + [0] [0 1] [1] >= [0 0] X + [0] [0 1] [1] = U31(X) a__U31(tt()) = [0] [1] >= [0] [0] = tt() a__U41(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [1 1] [2 2] [2] >= [0 0] X1 + [0 0] X2 + [0] [1 1] [1 1] [2] = U41(X1,X2) a__U41(tt(),V2) = [0 0] V2 + [0] [2 2] [2] >= [0 0] V2 + [0] [2 2] [2] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U42(X) a__U42(tt()) = [0] [0] >= [0] [0] = tt() a__U51(X1,X2) = [0 0] X1 + [0] [0 1] [0] >= [0 0] X1 + [0] [0 1] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [0] >= [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [0] [0] >= [0] [0] = tt() a__U61(X1,X2,X3) = [0 0] X1 + [0 0] X2 + [2] [0 1] [2 2] [1] >= [0 0] X1 + [0 0] X2 + [2] [0 1] [1 1] [1] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0] L + [2] [2 2] [1] >= [0 0] L + [2] [2 2] [1] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1 0] X1 + [0 0] X2 + [2] [0 1] [2 2] [1] >= [1 0] X1 + [0 0] X2 + [2] [0 1] [1 1] [1] = U62(X1,X2) a__U62(tt(),L) = [0 0] L + [2] [2 2] [1] >= [0 0] L + [1] [2 2] [1] = s(a__length(mark(L))) a__isNat(X) = [0] [0] >= [0] [0] = isNat(X) a__isNat(0()) = [0] [0] >= [0] [0] = tt() a__isNat(length(V1)) = [0] [0] >= [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [0] >= [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 0] V + [0] [2 2] [2] >= [0] [1] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 0] X + [0] [2 2] [2] >= [0 0] X + [0] [1 1] [2] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 0] V1 + [0 0] V2 + [0] [0 2] [2 2] [4] >= [0 0] V2 + [0] [2 2] [2] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [2] >= [0] [0] = tt() a__isNatList(X) = [0] [0] >= [0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [0] >= [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [0] >= [0] [0] = tt() a__length(X) = [0 0] X + [2] [2 1] [0] >= [0 0] X + [2] [1 1] [0] = length(X) a__length(cons(N,L)) = [0 0] L + [0 0] N + [2] [2 2] [0 1] [1] >= [0 0] L + [2] [2 2] [1] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [2] [6] >= [0] [0] = 0() a__zeros() = [0] [1] >= [0] [1] = cons(0(),zeros()) a__zeros() = [0] [1] >= [0] [0] = zeros() mark(0()) = [0] [1] >= [0] [0] = 0() mark(U11(X)) = [0 0] X + [0] [0 2] [1] >= [0 0] X + [0] [0 2] [1] = a__U11(mark(X)) mark(U21(X)) = [0 0] X + [0] [0 2] [1] >= [0 0] X + [0] [0 2] [1] = a__U21(mark(X)) mark(U31(X)) = [0 0] X + [0] [0 2] [3] >= [0 0] X + [0] [0 2] [2] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [2 2] [2 2] [5] >= [0 0] X1 + [0 0] X2 + [0] [1 2] [2 2] [3] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0] X + [0] [0 2] [1] >= [0 0] X + [0] [0 2] [1] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0] X1 + [0] [0 2] [1] >= [0 0] X1 + [0] [0 2] [1] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0] X + [0] [0 2] [1] >= [0 0] X + [0] [0 2] [1] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0] X1 + [0 0] X2 + [2] [0 2] [2 2] [3] >= [0 0] X1 + [0 0] X2 + [2] [0 2] [2 2] [2] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [1 0] X1 + [0 0] X2 + [2] [0 2] [2 2] [3] >= [1 0] X1 + [0 0] X2 + [2] [0 2] [2 2] [2] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0] X1 + [1 1] X2 + [0] [0 2] [0 0] [3] >= [0 0] X1 + [1 1] X2 + [0] [0 2] [0 0] [2] = cons(mark(X1),X2) mark(isNat(X)) = [0] [1] >= [0] [0] = a__isNat(X) mark(isNatIList(X)) = [0 0] X + [0] [2 2] [5] >= [0 0] X + [0] [2 2] [2] = a__isNatIList(X) mark(isNatList(X)) = [0] [1] >= [0] [0] = a__isNatList(X) mark(length(X)) = [0 0] X + [2] [2 2] [1] >= [0 0] X + [2] [2 2] [1] = a__length(mark(X)) mark(nil()) = [3] [1] >= [3] [0] = nil() mark(s(X)) = [0 0] X + [1] [0 2] [1] >= [0 0] X + [1] [0 2] [1] = s(mark(X)) mark(tt()) = [0] [1] >= [0] [0] = tt() mark(zeros()) = [0] [1] >= [0] [1] = a__zeros() *** Step 1.b:6.a:10: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [1] [0] p(U11) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U21) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U31) = [0 0 0] [1] [0 1 0] x_1 + [1] [0 0 1] [0] p(U41) = [0 0 0] [0 1 1] [1] [0 1 0] x_1 + [0 0 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U51) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U52) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U61) = [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] x_1 + [1 1 0] x_2 + [1 1 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(U62) = [0 0 0] [0 0 0] [0] [1 1 0] x_1 + [1 1 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(a__U11) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U21) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U31) = [0 0 0] [1] [0 1 0] x_1 + [1] [0 0 1] [0] p(a__U41) = [0 0 0] [0 1 1] [1] [0 1 0] x_1 + [0 0 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(a__U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U51) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U52) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U61) = [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] x_1 + [1 1 0] x_2 + [1 1 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(a__U62) = [0 0 0] [0 0 0] [0] [1 1 0] x_1 + [1 1 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(a__isNat) = [1 1 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(a__isNatIList) = [1 1 0] [1] [0 0 0] x_1 + [1] [0 0 0] [0] p(a__isNatList) = [0 0 1] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(a__length) = [0 0 0] [1] [1 1 0] x_1 + [0] [0 0 0] [0] p(a__zeros) = [0] [1] [1] p(cons) = [0 0 0] [1 1 0] [0] [1 1 0] x_1 + [0 0 1] x_2 + [0] [0 0 0] [0 0 0] [1] p(isNat) = [1 1 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(isNatIList) = [1 1 0] [1] [0 0 0] x_1 + [1] [0 0 0] [0] p(isNatList) = [0 0 1] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(length) = [0 0 0] [1] [1 1 0] x_1 + [0] [0 0 0] [0] p(mark) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [1] p(nil) = [1] [0] [1] p(s) = [0 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [0] p(tt) = [1] [0] [0] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 0 0] [1 1 0] [0 0 0] [0] [1 0 0] x_1 + [1 1 0] x_2 + [1 1 0] x_3 + [0] [0 0 0] [1 1 0] [1 1 1] [1] p(a__U62#) = [0 0 0] [1 1 0] [0] [1 0 0] x_1 + [0 0 0] x_2 + [0] [1 1 0] [1 1 1] [1] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [1] p(a__zeros#) = [0] [0] [0] p(mark#) = [0 1 0] [0] [1 0 0] x_1 + [0] [0 1 1] [0] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [1 1 0] x_1 + [0] [0 1 0] [1] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 1] [0 0 1] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_37) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_38) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_39) = [1 0 0] [1] [0 0 0] x_1 + [1] [1 0 0] [1] p(c_40) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_41) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_43) = [1 0 0] [1 1 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [1 0 0] [0 1 0] [0] p(c_44) = [1 1 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [1 0 0] [1 1 0] [1] p(c_45) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [1] [1 0 0] [0 0 0] [0] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [1] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: mark#(s(X)) = [0 1 0] [1] [0 0 0] X + [0] [0 1 0] [1] > [0 1 0] [0] [0 0 0] X + [0] [0 1 0] [1] = c_51(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1 0] [0 0 0] [0] [1 1 0] L + [1 1 0] N + [1] [1 1 0] [1 1 1] [1] >= [1 1 0] [0 0 0] [0] [1 1 0] L + [1 1 0] N + [0] [0 0 0] [1 1 0] [1] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1 0] [0] [0 0 0] L + [1] [1 1 1] [2] >= [1 1 0] [0] [0 0 0] L + [0] [0 1 1] [2] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1 0] [0] [0 0 0] L + [1] [0 0 0] [1] >= [1 1 0] [0] [0 0 0] L + [0] [0 0 0] [1] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] X + [0] [0 1 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 1 0] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [0 1 0] [0 0 0] [1] [0 0 0] X1 + [0 1 1] X2 + [1] [0 1 0] [0 0 0] [1] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 1 0] [1] = c_39(mark#(X1)) mark#(U42(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 1 0] [0] [0 0 0] X1 + [1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] X1 + [1] [0 1 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] >= [0 1 0] [0] [0 0 0] X + [1] [0 1 0] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1 1 0] [1 1 0] [1 1 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [1 1 0] [1 1 0] [1 1 0] [0] >= [1 1 0] [1 1 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 0 0] [1 1 0] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [1 1 0] [1] >= [1 1 0] [1 1 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [1 1 0] [1] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1 1 0] [0 0 1] [0] [0 0 0] X1 + [1 1 0] X2 + [0] [1 1 0] [0 0 1] [1] >= [0 1 0] [0] [0 0 0] X1 + [0] [1 0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1 0] [0] [0 0 0] X + [1] [1 1 0] [0] >= [1 1 0] [0] [0 0 0] X + [1] [1 0 0] [0] = c_49(a__length#(mark(X)),mark#(X)) a__U11(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U11(X) a__U11(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U21(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U21(X) a__U21(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U31(X) = [0 0 0] [1] [0 1 0] X + [1] [0 0 1] [0] >= [0 0 0] [1] [0 1 0] X + [1] [0 0 1] [0] = U31(X) a__U31(tt()) = [1] [1] [0] >= [1] [0] [0] = tt() a__U41(X1,X2) = [0 0 0] [0 1 1] [1] [0 1 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 1 1] [1] [0 1 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0 1 1] [1] [0 0 0] V2 + [1] [0 0 0] [0] >= [1] [1] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U42(X) a__U42(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U51(X1,X2) = [0 0 0] [1] [0 1 0] X1 + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X1 + [0] [0 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [1] [0] [0] >= [1] [0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U52(X) a__U52(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U61(X1,X2,X3) = [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1 1 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1 1 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0 0] [0 0 0] [0] [1 1 0] L + [1 1 0] N + [1] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [1 1 0] L + [1 1 0] N + [1] [0 0 0] [0 0 0] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = U62(X1,X2) a__U62(tt(),L) = [0 0 0] [0] [1 1 0] L + [2] [0 0 0] [0] >= [0 0 0] [0] [1 1 0] L + [2] [0 0 0] [0] = s(a__length(mark(L))) a__isNat(X) = [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = isNat(X) a__isNat(0()) = [1] [0] [0] >= [1] [0] [0] = tt() a__isNat(length(V1)) = [1 1 0] [1] [0 0 0] V1 + [0] [0 0 0] [0] >= [1] [0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0 1 0] [1] [0 0 0] V1 + [0] [0 0 0] [0] >= [1] [0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 1 0] [1] [0 0 0] V + [1] [0 0 0] [0] >= [1] [1] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 1 0] [1] [0 0 0] X + [1] [0 0 0] [0] >= [1 1 0] [1] [0 0 0] X + [1] [0 0 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 1 0] [1 1 1] [1] [0 0 0] V1 + [0 0 0] V2 + [1] [0 0 0] [0 0 0] [0] >= [0 1 1] [1] [0 0 0] V2 + [1] [0 0 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [1] [0] >= [1] [0] [0] = tt() a__isNatList(X) = [0 0 1] [0] [0 0 0] X + [0] [0 0 0] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [1] [0] [0] >= [1] [0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [1] [0] [0] >= [1] [0] [0] = tt() a__length(X) = [0 0 0] [1] [1 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [1 1 0] X + [0] [0 0 0] [0] = length(X) a__length(cons(N,L)) = [0 0 0] [0 0 0] [1] [1 1 1] L + [1 1 0] N + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [1 1 1] L + [1 1 0] N + [0] [0 0 0] [0 0 0] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [1] [0] >= [0] [1] [0] = 0() a__zeros() = [0] [1] [1] >= [0] [1] [1] = cons(0(),zeros()) a__zeros() = [0] [1] [1] >= [0] [0] [0] = zeros() mark(0()) = [0] [2] [1] >= [0] [1] [0] = 0() mark(U11(X)) = [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [0] = a__U11(mark(X)) mark(U21(X)) = [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0 0] [1] [0 1 0] X + [2] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X + [2] [0 0 0] [1] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0 0] [0 1 1] [1] [0 1 0] X1 + [0 0 0] X2 + [2] [0 0 0] [0 0 0] [1] >= [0 0 0] [0 1 1] [1] [0 1 0] X1 + [0 0 0] X2 + [2] [0 0 0] [0 0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0 0] [1] [0 1 0] X1 + [1] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X1 + [1] [0 0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [1] [0 1 0] X + [1] [0 0 0] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1 1 0] X3 + [1] [0 0 0] [0 0 0] [0 0 0] [1] >= [0 0 0] [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [1 1 0] X3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [2] [0 0 0] [0 0 0] [1] >= [0 0 0] [0 0 0] [0] [1 1 0] X1 + [1 1 0] X2 + [2] [0 0 0] [0 0 0] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0 0] [1 1 0] [0] [1 1 0] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 0 0] [1 1 0] [0] [1 1 0] X1 + [0 0 1] X2 + [1] [0 0 0] [0 0 0] [1] = cons(mark(X1),X2) mark(isNat(X)) = [1 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] >= [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = a__isNat(X) mark(isNatIList(X)) = [1 1 0] [1] [0 0 0] X + [2] [0 0 0] [1] >= [1 1 0] [1] [0 0 0] X + [1] [0 0 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [1] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 0] [0] = a__isNatList(X) mark(length(X)) = [0 0 0] [1] [1 1 0] X + [1] [0 0 0] [1] >= [0 0 0] [1] [1 1 0] X + [1] [0 0 0] [0] = a__length(mark(X)) mark(nil()) = [1] [1] [1] >= [1] [0] [1] = nil() mark(s(X)) = [0 0 0] [0] [0 1 0] X + [2] [0 0 0] [1] >= [0 0 0] [0] [0 1 0] X + [2] [0 0 0] [0] = s(mark(X)) mark(tt()) = [1] [1] [1] >= [1] [0] [0] = tt() mark(zeros()) = [0] [1] [1] >= [0] [1] [1] = a__zeros() *** Step 1.b:6.a:11: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] [0] p(U11) = [0 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(U21) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U31) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U41) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [1 1 0] x_2 + [0] [0 0 1] [0 0 0] [0] p(U42) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U51) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U52) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(U61) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 1] [0 1 1] [1] p(U62) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 1] [0 1 1] [1] p(a__U11) = [0 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(a__U21) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U31) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U41) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [1 1 0] x_2 + [0] [0 0 1] [0 0 0] [0] p(a__U42) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U51) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U52) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 1] [0] p(a__U61) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 1] [0 1 1] [1] p(a__U62) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 1] [0 1 1] [1] p(a__isNat) = [0] [1] [0] p(a__isNatIList) = [0 0 0] [0] [1 1 0] x_1 + [0] [0 0 0] [0] p(a__isNatList) = [0 0 0] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(a__length) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [1] p(a__zeros) = [1] [1] [0] p(cons) = [0 0 0] [0 0 0] [1] [0 0 0] x_1 + [1 1 1] x_2 + [0] [0 0 1] [0 0 0] [0] p(isNat) = [0] [1] [0] p(isNatIList) = [0 0 0] [0] [1 1 0] x_1 + [0] [0 0 0] [0] p(isNatList) = [0 0 0] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(length) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [1] p(mark) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 1] [0] p(nil) = [1] [0] [0] p(s) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(tt) = [0] [1] [0] p(zeros) = [0] [1] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 1 0] [0 1 1] [0 0 0] [0] [0 1 0] x_1 + [0 1 1] x_2 + [0 0 0] x_3 + [1] [0 1 0] [1 1 1] [0 0 1] [1] p(a__U62#) = [0 1 0] [0 1 1] [0] [0 0 0] x_1 + [1 0 0] x_2 + [0] [0 1 0] [0 0 1] [1] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [0 1 0] [1] [0 0 0] x_1 + [1] [0 0 1] [0] p(a__zeros#) = [0] [0] [0] p(mark#) = [0 0 1] [0] [1 0 0] x_1 + [1] [0 0 1] [0] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 1 1] [0] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_37) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_38) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_39) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_40) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_41) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_43) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [1 0 0] [0 0 0] [0] p(c_44) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [1] [0 0 0] [1 0 0] [1] p(c_45) = [1 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [1] [1 0 1] [0 0 0] [0] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: a__length#(cons(N,L)) = [1 1 1] [0 0 0] [1] [0 0 0] L + [0 0 0] N + [1] [0 0 0] [0 0 1] [0] > [1 1 1] [0] [0 0 0] L + [0] [0 0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [0 1 1] [0 0 0] [1] [0 1 1] L + [0 0 0] N + [2] [1 1 1] [0 0 1] [2] >= [0 1 1] [1] [0 0 1] L + [2] [1 0 1] [2] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [0 1 1] [1] [1 0 0] L + [0] [0 0 1] [2] >= [0 1 1] [1] [0 0 0] L + [0] [0 0 0] [0] = c_18(a__length#(mark(L)),mark#(L)) mark#(U11(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [1] [0 0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [0 0 1] [0] [0 0 0] X1 + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_39(mark#(X1)) mark#(U42(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 0 1] [0] [0 0 0] X1 + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 0 1] [0] [1 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 1 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 1] [0 1 1] [1] >= [0 1 1] [0 1 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 0] [0 1 1] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 1 1] [0 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 1 1] [0 1 1] [1] >= [0 1 1] [0 1 1] [0] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 1] [0 0 0] [1] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 0 1] [0] [0 0 0] X1 + [2] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X1 + [1] [0 0 1] [0] = c_45(mark#(X1)) mark#(length(X)) = [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] >= [0 1 1] [1] [0 0 0] X + [1] [0 1 1] [1] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 0 1] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 0] [0] = c_51(mark#(X)) a__U11(X) = [0 0 0] [0] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [1] [0 0 1] [0] = U11(X) a__U11(tt()) = [0] [1] [0] >= [0] [1] [0] = tt() a__U21(X) = [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U21(X) a__U21(tt()) = [0] [1] [0] >= [0] [1] [0] = tt() a__U31(X) = [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U31(X) a__U31(tt()) = [0] [1] [0] >= [0] [1] [0] = tt() a__U41(X1,X2) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [1 1 0] X2 + [0] [0 0 1] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [1 1 0] X2 + [0] [0 0 1] [0 0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [0] >= [0 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U42(X) a__U42(tt()) = [0] [1] [0] >= [0] [1] [0] = tt() a__U51(X1,X2) = [0 0 0] [0] [0 1 0] X1 + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X1 + [0] [0 0 1] [0] = U51(X1,X2) a__U51(tt(),V2) = [0] [1] [0] >= [0] [1] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0 0] [0] [0 0 0] X + [1] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] X + [1] [0 0 1] [0] = U52(X) a__U52(tt()) = [0] [1] [0] >= [0] [1] [0] = tt() a__U61(X1,X2,X3) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0 0] [0] [0 0 0] L + [0] [0 1 1] [2] >= [0 0 0] [0] [0 0 0] L + [0] [0 1 1] [2] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] = U62(X1,X2) a__U62(tt(),L) = [0 0 0] [0] [0 0 0] L + [0] [0 1 1] [2] >= [0 0 0] [0] [0 0 0] L + [0] [0 1 1] [1] = s(a__length(mark(L))) a__isNat(X) = [0] [1] [0] >= [0] [1] [0] = isNat(X) a__isNat(0()) = [0] [1] [0] >= [0] [1] [0] = tt() a__isNat(length(V1)) = [0] [1] [0] >= [0] [1] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] [1] [0] >= [0] [1] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 0 0] [0] [1 1 0] V + [0] [0 0 0] [0] >= [0 0 0] [0] [1 0 0] V + [0] [0 0 0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 0 0] [0] [1 1 1] V2 + [1] [0 0 0] [0] >= [0 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [1] [0] >= [0] [1] [0] = tt() a__isNatList(X) = [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] [1] [0] >= [0] [1] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [1] [0] >= [0] [1] [0] = tt() a__length(X) = [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] = length(X) a__length(cons(N,L)) = [0 0 0] [0 0 0] [0] [0 0 0] L + [0 0 0] N + [0] [1 1 1] [0 0 1] [1] >= [0 0 0] [0] [0 0 0] L + [0] [1 1 1] [1] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [0] [1] >= [0] [0] [0] = 0() a__zeros() = [1] [1] [0] >= [1] [1] [0] = cons(0(),zeros()) a__zeros() = [1] [1] [0] >= [0] [1] [0] = zeros() mark(0()) = [1] [0] [0] >= [0] [0] [0] = 0() mark(U11(X)) = [0 0 0] [1] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [1] [0 0 1] [0] = a__U11(mark(X)) mark(U21(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0 0] [0 0 0] [1] [0 0 0] X1 + [1 1 0] X2 + [0] [0 0 1] [0 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [1 1 0] X2 + [0] [0 0 1] [0 0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0 0] [1] [0 1 0] X1 + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X1 + [0] [0 0 1] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0 0] [1] [0 0 0] X + [1] [0 0 1] [0] >= [0 0 0] [1] [0 0 0] X + [1] [0 0 1] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0 0] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 0] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 1 1] [0 1 1] [1] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0 0 0] [0 0 0] [1] [0 0 0] X1 + [1 1 1] X2 + [0] [0 0 1] [0 0 0] [0] >= [0 0 0] [0 0 0] [1] [0 0 0] X1 + [1 1 1] X2 + [0] [0 0 1] [0 0 0] [0] = cons(mark(X1),X2) mark(isNat(X)) = [1] [1] [0] >= [0] [1] [0] = a__isNat(X) mark(isNatIList(X)) = [0 0 0] [1] [1 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [1 1 0] X + [0] [0 0 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0 0 0] [1] [1 0 0] X + [0] [0 0 0] [0] >= [0 0 0] [0] [1 0 0] X + [0] [0 0 0] [0] = a__isNatList(X) mark(length(X)) = [0 0 0] [1] [0 0 0] X + [0] [0 1 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] = a__length(mark(X)) mark(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() mark(s(X)) = [0 0 0] [1] [0 0 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = s(mark(X)) mark(tt()) = [1] [1] [0] >= [0] [1] [0] = tt() mark(zeros()) = [1] [1] [0] >= [1] [1] [0] = a__zeros() *** Step 1.b:6.a:12: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] [0] p(U11) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [1] p(U21) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(U31) = [0 0 0] [0] [0 0 0] x_1 + [1] [1 0 1] [0] p(U41) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [1 0 0] [0] p(U42) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 1] [0] p(U51) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [1 0 0] [0] p(U52) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [0] p(U61) = [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] p(U62) = [0 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 1 1] [0] p(a__U11) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [1] p(a__U21) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(a__U31) = [0 0 0] [0] [0 0 0] x_1 + [1] [1 0 1] [0] p(a__U41) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [1 0 0] [0] p(a__U42) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 1] [0] p(a__U51) = [0 0 0] [0 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [1 0 0] [0] p(a__U52) = [0 0 0] [0] [0 0 0] x_1 + [0] [0 1 1] [0] p(a__U61) = [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] x_1 + [0 0 0] x_2 + [0 0 0] x_3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] p(a__U62) = [0 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 1 1] [0] p(a__isNat) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(a__isNatIList) = [0 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(a__isNatList) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(a__length) = [1 0 0] [1] [1 0 0] x_1 + [0] [0 1 1] [0] p(a__zeros) = [0] [0] [0] p(cons) = [1 0 0] [1 0 0] [0] [1 0 0] x_1 + [1 1 1] x_2 + [0] [0 0 1] [0 0 0] [0] p(isNat) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(isNatIList) = [0 0 0] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(isNatList) = [0 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(length) = [1 0 0] [1] [1 0 0] x_1 + [0] [0 1 1] [0] p(mark) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(nil) = [0] [0] [0] p(s) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(tt) = [0] [0] [0] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 0 0] [0 1 1] [0 0 0] [0] [1 0 0] x_1 + [0 0 0] x_2 + [1 0 0] x_3 + [0] [0 0 0] [0 1 1] [0 0 0] [0] p(a__U62#) = [0 1 1] [0] [1 1 1] x_2 + [0] [0 1 1] [0] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [0 1 0] [0] [1 0 0] x_1 + [0] [1 1 0] [0] p(a__zeros#) = [0] [0] [0] p(mark#) = [0 0 1] [0] [0 1 1] x_1 + [0] [0 0 1] [0] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 1 0] x_2 + [0] [1 0 0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 1 0] [0] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [0] [1 0 0] x_1 + [1] [0 1 0] [1] p(c_37) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_38) = [1 0 0] [0] [1 0 0] x_1 + [1] [0 0 0] [0] p(c_39) = [1 0 0] [0] [1 0 0] x_1 + [0] [1 0 0] [0] p(c_40) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 1] [0] p(c_41) = [1 0 0] [0] [1 0 0] x_1 + [0] [0 0 1] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 1 0] [0] p(c_43) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_44) = [1 0 0] [1 0 0] [0] [1 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 1] [0] p(c_45) = [1 0 0] [0] [1 0 0] x_1 + [0] [1 0 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 0 0] [1 0 0] [0] [1 1 0] x_1 + [0 0 1] x_2 + [0] [0 0 0] [0 0 1] [0] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: mark#(U11(X)) = [0 1 1] [1] [0 1 1] X + [1] [0 1 1] [1] > [0 0 1] [0] [0 0 1] X + [1] [0 1 1] [1] = c_36(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [0 1 1] [0 0 0] [0] [0 0 0] L + [1 0 0] N + [0] [0 1 1] [0 0 0] [0] >= [0 1 1] [0] [0 0 0] L + [0] [0 1 1] [0] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [0 1 1] [0] [1 1 1] L + [0] [0 1 1] [0] >= [0 1 1] [0] [0 1 1] L + [0] [0 1 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1 1] [1 0 0] [0] [1 0 0] L + [1 0 0] N + [0] [2 1 1] [2 0 0] [0] >= [0 1 1] [1 0 0] [0] [0 0 0] L + [0 0 0] N + [0] [0 1 1] [0 0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U21(X)) = [0 0 1] [0] [0 0 1] X + [0] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 1] [0] = c_37(mark#(X)) mark#(U31(X)) = [1 0 1] [0] [1 0 1] X + [1] [1 0 1] [0] >= [0 0 1] [0] [0 0 1] X + [1] [0 0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [0 0 1] [1 0 0] [0] [0 0 1] X1 + [1 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 1] [0] [0 0 1] X1 + [0] [0 0 1] [0] = c_39(mark#(X1)) mark#(U42(X)) = [1 0 1] [0] [1 0 1] X + [0] [1 0 1] [0] >= [0 0 1] [0] [0 0 1] X + [0] [0 0 1] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 0 1] [1 0 0] [0] [0 0 1] X1 + [1 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 1] [0] [0 0 1] X1 + [0] [0 0 1] [0] = c_41(mark#(X1)) mark#(U52(X)) = [0 1 1] [0] [0 1 1] X + [0] [0 1 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 1 1] [0] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [0 0 1] [0 1 1] [1 0 0] [0] [1 0 1] X1 + [0 1 1] X2 + [1 0 0] X3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] >= [0 0 1] [0 1 1] [0 0 0] [0] [1 0 0] X1 + [0 0 0] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [0 0 1] [0 1 1] [0] [0 0 1] X1 + [0 1 1] X2 + [0] [0 0 1] [0 1 1] [0] >= [0 0 1] [0 1 1] [0] [0 0 0] X1 + [0 1 1] X2 + [0] [0 0 1] [0 1 1] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 0 1] [0 0 0] [0] [1 0 1] X1 + [1 1 1] X2 + [0] [0 0 1] [0 0 0] [0] >= [0 0 1] [0] [0 0 1] X1 + [0] [0 0 1] [0] = c_45(mark#(X1)) mark#(length(X)) = [0 1 1] [0] [1 1 1] X + [0] [0 1 1] [0] >= [0 1 1] [0] [1 1 1] X + [0] [0 0 1] [0] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 0 1] [0] [0 0 1] X + [0] [0 0 1] [0] >= [0 0 1] [0] [0 0 0] X + [0] [0 0 0] [0] = c_51(mark#(X)) a__U11(X) = [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] = U11(X) a__U11(tt()) = [0] [0] [1] >= [0] [0] [0] = tt() a__U21(X) = [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = U21(X) a__U21(tt()) = [0] [0] [0] >= [0] [0] [0] = tt() a__U31(X) = [0 0 0] [0] [0 0 0] X + [1] [1 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [1] [1 0 1] [0] = U31(X) a__U31(tt()) = [0] [1] [0] >= [0] [0] [0] = tt() a__U41(X1,X2) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0 0 0] [0] [0 0 0] V2 + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] V2 + [0] [1 0 0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0 0] [0] [0 0 0] X + [0] [1 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 1] [0] = U42(X) a__U42(tt()) = [0] [0] [0] >= [0] [0] [0] = tt() a__U51(X1,X2) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0 0 0] [0] [0 0 0] V2 + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] V2 + [0] [1 0 0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [0] = U52(X) a__U52(tt()) = [0] [0] [0] >= [0] [0] [0] = tt() a__U61(X1,X2,X3) = [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] >= [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 0 0] [0 0 0] [1] [0 0 0] L + [0 0 0] N + [0] [0 1 1] [1 0 0] [0] >= [1 0 0] [0 0 0] [1] [0 0 0] L + [0 0 0] N + [0] [0 1 1] [1 0 0] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 1] [0] >= [0 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 1] [0] = U62(X1,X2) a__U62(tt(),L) = [1 0 0] [1] [0 0 0] L + [0] [0 1 1] [0] >= [1 0 0] [1] [0 0 0] L + [0] [0 1 1] [0] = s(a__length(mark(L))) a__isNat(X) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = isNat(X) a__isNat(0()) = [0] [0] [0] >= [0] [0] [0] = tt() a__isNat(length(V1)) = [0 0 0] [0] [0 0 0] V1 + [0] [1 0 0] [1] >= [0 0 0] [0] [0 0 0] V1 + [0] [1 0 0] [1] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0 0 0] [0] [0 0 0] V1 + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] V1 + [0] [1 0 0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 0 0] [0] [0 0 0] V + [1] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] V + [1] [1 0 0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 0 0] [0 0 0] [0] [0 0 0] V1 + [0 0 0] V2 + [1] [1 0 0] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] V1 + [0 0 0] V2 + [0] [1 0 0] [1 0 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [1] [0] >= [0] [0] [0] = tt() a__isNatList(X) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0 0 0] [0 0 0] [0] [0 0 0] V1 + [0 0 0] V2 + [0] [1 0 0] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] V1 + [0 0 0] V2 + [0] [1 0 0] [1 0 0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [0] [0] >= [0] [0] [0] = tt() a__length(X) = [1 0 0] [1] [1 0 0] X + [0] [0 1 1] [0] >= [1 0 0] [1] [1 0 0] X + [0] [0 1 1] [0] = length(X) a__length(cons(N,L)) = [1 0 0] [1 0 0] [1] [1 0 0] L + [1 0 0] N + [0] [1 1 1] [1 0 1] [0] >= [1 0 0] [0 0 0] [1] [0 0 0] L + [0 0 0] N + [0] [1 1 1] [1 0 0] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [0] [0] >= [0] [0] [0] = 0() a__zeros() = [0] [0] [0] >= [0] [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] [0] >= [0] [0] [0] = zeros() mark(0()) = [0] [0] [0] >= [0] [0] [0] = 0() mark(U11(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [1] = a__U11(mark(X)) mark(U21(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0 0] [0] [0 0 0] X + [1] [1 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [1] [1 0 1] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 1] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] >= [0 0 0] [0 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [1 0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [0] >= [0 0 0] [0] [0 0 0] X + [0] [0 1 1] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] >= [0 0 0] [1 0 0] [0 0 0] [1] [1 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [0 0 1] [0 1 1] [1 0 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 1] [0] >= [0 0 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 1 1] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 0 0] [1 0 0] [0] [1 0 0] X1 + [1 1 1] X2 + [0] [0 0 1] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [1 0 0] X1 + [1 1 1] X2 + [0] [0 0 1] [0 0 0] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = a__isNat(X) mark(isNatIList(X)) = [0 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [1] [1 0 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] >= [0 0 0] [0] [0 0 0] X + [0] [1 0 0] [0] = a__isNatList(X) mark(length(X)) = [1 0 0] [1] [1 0 0] X + [0] [0 1 1] [0] >= [1 0 0] [1] [1 0 0] X + [0] [0 1 1] [0] = a__length(mark(X)) mark(nil()) = [0] [0] [0] >= [0] [0] [0] = nil() mark(s(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = s(mark(X)) mark(tt()) = [0] [0] [0] >= [0] [0] [0] = tt() mark(zeros()) = [0] [0] [0] >= [0] [0] [0] = a__zeros() *** Step 1.b:6.a:13: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: mark#(U21(X)) -> c_37(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] [0] p(U11) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(U21) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(U31) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(U41) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [1] p(U42) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(U51) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [1 0 0] [0] p(U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U61) = [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] x_1 + [1 1 1] x_2 + [1 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] p(U62) = [0 0 0] [1 0 0] [1] [1 1 1] x_1 + [1 1 1] x_2 + [0] [0 0 0] [0 0 0] [1] p(a__U11) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(a__U21) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(a__U31) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(a__U41) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [1] p(a__U42) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(a__U51) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [1 0 0] [0] p(a__U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U61) = [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] x_1 + [1 1 1] x_2 + [1 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] p(a__U62) = [0 0 0] [1 0 0] [1] [1 1 1] x_1 + [1 1 1] x_2 + [0] [0 0 0] [0 0 0] [1] p(a__isNat) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(a__isNatIList) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 1 0] [1] p(a__isNatList) = [1 0 0] [1] [0 0 0] x_1 + [0] [1 0 0] [0] p(a__length) = [1 0 0] [1] [1 1 1] x_1 + [1] [0 0 0] [1] p(a__zeros) = [0] [0] [0] p(cons) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [1 0 0] x_2 + [0] [0 0 0] [1 1 1] [0] p(isNat) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(isNatIList) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 1 0] [1] p(isNatList) = [1 0 0] [1] [0 0 0] x_1 + [0] [1 0 0] [0] p(length) = [1 0 0] [1] [1 1 1] x_1 + [1] [0 0 0] [1] p(mark) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(nil) = [1] [0] [0] p(s) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(tt) = [0] [0] [1] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 0 0] [1 1 1] [0 0 0] [0] [0 0 0] x_1 + [1 1 1] x_2 + [1 1 1] x_3 + [0] [0 0 1] [0 0 0] [0 0 0] [0] p(a__U62#) = [0 0 0] [1 1 1] [0] [0 0 1] x_1 + [0 1 1] x_2 + [0] [1 0 0] [0 0 0] [0] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [0 0 1] [0] [1 0 0] x_1 + [0] [0 0 0] [1] p(a__zeros#) = [0] [0] [0] p(mark#) = [1 1 0] [0] [0 1 0] x_1 + [1] [0 1 1] [1] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [1 0 1] x_1 + [0] [0 0 0] [1] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_37) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 1 0] [1] p(c_38) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 1 0] [1] p(c_39) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_40) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_41) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 1 0] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [1] p(c_43) = [1 0 0] [1 0 0] [0] [1 0 0] x_1 + [0 0 0] x_2 + [1] [1 0 1] [0 0 0] [0] p(c_44) = [1 0 0] [1 0 0] [1] [1 0 0] x_1 + [0 0 1] x_2 + [0] [1 0 1] [0 0 1] [0] p(c_45) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 1 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 1 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 1] x_2 + [1] [1 0 0] [0 1 0] [1] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: mark#(U51(X1,X2)) = [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [1] [0 1 0] [1 0 0] [1] > [1 1 0] [0] [0 0 0] X1 + [1] [0 1 0] [1] = c_41(mark#(X1)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1 1] [0 0 0] [0] [1 1 1] L + [1 1 1] N + [0] [0 0 0] [0 0 0] [1] >= [1 1 1] [0 0 0] [0] [1 1 1] L + [1 0 0] N + [0] [0 0 0] [0 0 0] [1] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1 1] [0] [0 1 1] L + [1] [0 0 0] [0] >= [1 1 1] [0] [0 0 0] L + [0] [0 0 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1 1] [0 0 0] [0] [1 0 0] L + [1 0 0] N + [0] [0 0 0] [0 0 0] [1] >= [1 1 1] [0] [1 0 0] L + [0] [0 0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [2] >= [1 1 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [2] >= [1 1 0] [0] [0 0 0] X + [1] [0 1 0] [2] = c_37(mark#(X)) mark#(U31(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [2] >= [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [2] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [1] [0 1 0] [0 0 0] [2] >= [1 1 0] [1] [0 0 0] X1 + [0] [0 0 0] [1] = c_39(mark#(X1)) mark#(U42(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [2] >= [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [1] = c_40(mark#(X)) mark#(U52(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 1] [1] >= [1 1 0] [0] [0 0 0] X + [1] [0 0 0] [1] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1 1 1] [2 1 1] [2 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [1 0 0] X3 + [1] [1 1 1] [1 1 1] [1 0 0] [2] >= [1 1 0] [1 1 1] [0] [0 0 0] X1 + [1 1 1] X2 + [1] [0 0 1] [1 1 1] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 1 1] [2 1 1] [1] [1 1 1] X1 + [1 1 1] X2 + [1] [1 1 1] [1 1 1] [2] >= [1 1 0] [1 1 1] [1] [0 1 1] X1 + [1 1 1] X2 + [1] [1 1 1] [1 1 1] [1] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1 1 0] [2 0 0] [0] [0 1 0] X1 + [1 0 0] X2 + [1] [0 1 0] [2 1 1] [1] >= [1 1 0] [0] [0 0 0] X1 + [1] [0 1 0] [1] = c_45(mark#(X1)) mark#(length(X)) = [2 1 1] [2] [1 1 1] X + [2] [1 1 1] [3] >= [2 1 1] [0] [1 1 1] X + [2] [0 1 1] [2] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [1 1 0] [0] [0 1 0] X + [1] [0 1 0] [1] >= [1 1 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_51(mark#(X)) a__U11(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = U11(X) a__U11(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() a__U21(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = U21(X) a__U21(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() a__U31(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = U31(X) a__U31(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() a__U41(X1,X2) = [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] = U41(X1,X2) a__U41(tt(),V2) = [1 0 0] [1] [0 0 0] V2 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 0 0] V2 + [0] [0 0 0] [1] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = U42(X) a__U42(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() a__U51(X1,X2) = [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [1 0 0] [1] [0 0 0] V2 + [0] [1 0 0] [0] >= [1 0 0] [1] [0 0 0] V2 + [0] [1 0 0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U52(X) a__U52(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() a__U61(X1,X2,X3) = [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] >= [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 0 0] [1 0 0] [1] [1 1 1] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0 0 0] [1] [1 1 1] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 0] [1] >= [0 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 0] [1] = U62(X1,X2) a__U62(tt(),L) = [1 0 0] [1] [1 1 1] L + [1] [0 0 0] [1] >= [1 0 0] [1] [1 1 1] L + [1] [0 0 0] [0] = s(a__length(mark(L))) a__isNat(X) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] = isNat(X) a__isNat(0()) = [0] [0] [1] >= [0] [0] [1] = tt() a__isNat(length(V1)) = [1 0 0] [1] [0 0 0] V1 + [0] [0 0 0] [1] >= [1 0 0] [1] [0 0 0] V1 + [0] [0 0 0] [1] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [1] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 0 0] [1] [0 0 0] V + [0] [0 1 0] [1] >= [1 0 0] [1] [0 0 0] V + [0] [0 0 0] [1] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 0 0] [1] [0 0 0] X + [0] [0 1 0] [1] >= [1 0 0] [1] [0 0 0] X + [0] [0 1 0] [1] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 1 0] [1 0 0] [1] >= [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [1] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [0] [1] >= [0] [0] [1] = tt() a__isNatList(X) = [1 0 0] [1] [0 0 0] X + [0] [1 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [1 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [1 0 0] [1 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [1 0 0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [2] [0] [1] >= [0] [0] [1] = tt() a__length(X) = [1 0 0] [1] [1 1 1] X + [1] [0 0 0] [1] >= [1 0 0] [1] [1 1 1] X + [1] [0 0 0] [1] = length(X) a__length(cons(N,L)) = [1 0 0] [1 0 0] [1] [3 1 1] L + [1 1 0] N + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [1 0 0] [1] [3 1 1] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [2] [2] [1] >= [0] [0] [0] = 0() a__zeros() = [0] [0] [0] >= [0] [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] [0] >= [0] [0] [0] = zeros() mark(0()) = [0] [0] [0] >= [0] [0] [0] = 0() mark(U11(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = a__U11(mark(X)) mark(U21(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = a__U21(mark(X)) mark(U31(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = a__U31(mark(X)) mark(U41(X1,X2)) = [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [1] = a__U41(mark(X1),X2) mark(U42(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [1] = a__U42(mark(X)) mark(U51(X1,X2)) = [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] >= [0 0 0] [1 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 0] [1] >= [0 0 0] [1 0 0] [1] [1 1 1] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 0] [1] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 0 0] [1 0 0] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [1 1 1] [0] >= [1 0 0] [1 0 0] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [1 1 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] = a__isNat(X) mark(isNatIList(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 1 0] [1] >= [1 0 0] [1] [0 0 0] X + [0] [0 1 0] [1] = a__isNatIList(X) mark(isNatList(X)) = [1 0 0] [1] [0 0 0] X + [0] [1 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [1 0 0] [0] = a__isNatList(X) mark(length(X)) = [1 0 0] [1] [1 1 1] X + [1] [0 0 0] [1] >= [1 0 0] [1] [1 1 1] X + [1] [0 0 0] [1] = a__length(mark(X)) mark(nil()) = [1] [0] [0] >= [1] [0] [0] = nil() mark(s(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = s(mark(X)) mark(tt()) = [0] [0] [1] >= [0] [0] [1] = tt() mark(zeros()) = [0] [0] [0] >= [0] [0] [0] = a__zeros() *** Step 1.b:6.a:14: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: mark#(U21(X)) -> c_37(mark#(X)) mark#(U52(X)) -> c_42(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [1] [0] [0] p(U11) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(U21) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U31) = [0 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U41) = [1 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [1] [0 0 1] [0 0 1] [1] p(U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 1] [1] p(U51) = [0 0 0] [0 0 0] [1] [0 1 0] x_1 + [0 0 1] x_2 + [1] [0 0 1] [0 0 0] [0] p(U52) = [0 0 1] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(U61) = [0 0 1] [0 0 1] [0 0 0] [0] [0 1 1] x_1 + [1 1 0] x_2 + [1 0 0] x_3 + [0] [0 0 1] [0 0 1] [0 0 1] [1] p(U62) = [0 0 1] [0 0 1] [0] [1 1 0] x_1 + [1 1 0] x_2 + [1] [0 0 1] [0 0 1] [1] p(a__U11) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(a__U21) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U31) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U41) = [1 0 0] [0 0 0] [0] [0 1 0] x_1 + [0 0 1] x_2 + [1] [0 0 1] [0 0 1] [1] p(a__U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 1] [1] p(a__U51) = [0 0 0] [0 0 0] [1] [0 1 0] x_1 + [0 0 1] x_2 + [1] [0 0 1] [0 0 0] [0] p(a__U52) = [0 0 1] [0] [0 1 0] x_1 + [1] [0 0 1] [0] p(a__U61) = [0 0 1] [0 0 1] [0 0 0] [0] [0 1 1] x_1 + [1 1 1] x_2 + [1 0 1] x_3 + [0] [0 0 1] [0 0 1] [0 0 1] [1] p(a__U62) = [0 0 1] [0 0 1] [0] [1 1 0] x_1 + [1 1 1] x_2 + [1] [0 0 1] [0 0 1] [1] p(a__isNat) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [1] p(a__isNatIList) = [1 1 0] [1] [0 0 1] x_1 + [0] [0 0 1] [1] p(a__isNatList) = [0 0 1] [0] [0 0 1] x_1 + [0] [0 0 0] [1] p(a__length) = [0 0 1] [0] [1 1 0] x_1 + [1] [0 0 1] [1] p(a__zeros) = [1] [0] [1] p(cons) = [1 0 0] [1 1 1] [0] [0 1 1] x_1 + [0 0 1] x_2 + [0] [0 0 1] [0 0 1] [1] p(isNat) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(isNatIList) = [1 1 0] [0] [0 0 1] x_1 + [0] [0 0 1] [0] p(isNatList) = [0 0 1] [0] [0 0 1] x_1 + [0] [0 0 0] [0] p(length) = [0 0 1] [0] [1 1 0] x_1 + [1] [0 0 1] [1] p(mark) = [1 0 0] [1] [0 1 1] x_1 + [0] [0 0 1] [1] p(nil) = [0] [0] [1] p(s) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(tt) = [1] [0] [1] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 0 0] [1 1 0] [1 0 0] [0] [0 0 0] x_1 + [1 0 1] x_2 + [0 1 1] x_3 + [0] [1 0 0] [0 0 0] [0 0 1] [1] p(a__U62#) = [1 0 0] [1 1 0] [0] [0 0 0] x_1 + [1 0 1] x_2 + [0] [0 0 0] [0 0 0] [0] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(a__zeros#) = [0] [0] [0] p(mark#) = [0 1 0] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 1 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_37) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_38) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_39) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_40) = [1 0 0] [0] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_41) = [1 0 0] [1] [0 0 0] x_1 + [1] [0 0 0] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_43) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_44) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_45) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: mark#(U52(X)) = [0 1 0] [1] [0 0 1] X + [0] [0 0 0] [0] > [0 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_42(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1 0] [1 0 0] [0] [1 0 1] L + [0 1 1] N + [0] [0 0 0] [0 0 1] [2] >= [1 1 0] [1 0 0] [0] [0 0 0] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [1] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1 0] [1] [1 0 1] L + [0] [0 0 0] [0] >= [1 1 0] [1] [1 0 0] L + [0] [0 0 0] [0] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1 1] [1 0 0] [0] [0 0 0] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 0 0] [0] [0 0 0] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [0 1 0] [1] [1 0 0] X + [0] [0 0 0] [0] >= [0 1 0] [1] [1 0 0] X + [0] [0 0 0] [0] = c_36(mark#(X)) mark#(U21(X)) = [0 1 0] [0] [1 0 0] X + [0] [0 0 0] [0] >= [0 1 0] [0] [1 0 0] X + [0] [0 0 0] [0] = c_37(mark#(X)) mark#(U31(X)) = [0 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [0 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_38(mark#(X)) mark#(U41(X1,X2)) = [0 1 0] [1] [1 0 0] X1 + [0] [0 0 0] [0] >= [0 1 0] [0] [1 0 0] X1 + [0] [0 0 0] [0] = c_39(mark#(X1)) mark#(U42(X)) = [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [0] >= [0 1 0] [0] [0 0 0] X + [1] [0 0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [0 1 0] [0 0 1] [1] [0 0 0] X1 + [0 0 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 1 0] [1] [0 0 0] X1 + [1] [0 0 0] [0] = c_41(mark#(X1)) mark#(U61(X1,X2,X3)) = [0 1 1] [1 1 0] [1 0 0] [0] [0 0 1] X1 + [0 0 1] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] >= [0 1 0] [1 1 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 1 0] [1 1 0] [1] [0 0 1] X1 + [0 0 1] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 1 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [0 1 1] [0 0 1] [0] [1 0 0] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1 0] [1] [0 0 1] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 0 0] X + [0] [0 0 0] [0] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [0 1 0] [0] [1 0 0] X + [0] [0 0 0] [0] >= [0 1 0] [0] [1 0 0] X + [0] [0 0 0] [0] = c_51(mark#(X)) a__U11(X) = [1 0 0] [0] [0 1 0] X + [1] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] X + [1] [0 0 1] [0] = U11(X) a__U11(tt()) = [1] [1] [1] >= [1] [0] [1] = tt() a__U21(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U21(X) a__U21(tt()) = [1] [0] [1] >= [1] [0] [1] = tt() a__U31(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [0] >= [0 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U31(X) a__U31(tt()) = [1] [0] [1] >= [1] [0] [1] = tt() a__U41(X1,X2) = [1 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 1] [1] >= [1 0 0] [0 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [1] [0 0 1] [0 0 1] [1] = U41(X1,X2) a__U41(tt(),V2) = [0 0 0] [1] [0 0 1] V2 + [1] [0 0 1] [2] >= [0 0 0] [1] [0 0 1] V2 + [0] [0 0 1] [2] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [1] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 1] [1] = U42(X) a__U42(tt()) = [1] [0] [2] >= [1] [0] [1] = tt() a__U51(X1,X2) = [0 0 0] [0 0 0] [1] [0 1 0] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 0] [0] >= [0 0 0] [0 0 0] [1] [0 1 0] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0 0 0] [1] [0 0 1] V2 + [1] [0 0 0] [1] >= [0 0 0] [1] [0 0 1] V2 + [1] [0 0 0] [1] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0 1] [0] [0 1 0] X + [1] [0 0 1] [0] >= [0 0 1] [0] [0 1 0] X + [1] [0 0 1] [0] = U52(X) a__U52(tt()) = [1] [1] [1] >= [1] [0] [1] = tt() a__U61(X1,X2,X3) = [0 0 1] [0 0 1] [0 0 0] [0] [0 1 1] X1 + [1 1 1] X2 + [1 0 1] X3 + [0] [0 0 1] [0 0 1] [0 0 1] [1] >= [0 0 1] [0 0 1] [0 0 0] [0] [0 1 1] X1 + [1 1 0] X2 + [1 0 0] X3 + [0] [0 0 1] [0 0 1] [0 0 1] [1] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0 0 1] [0 0 0] [1] [1 1 1] L + [1 0 1] N + [1] [0 0 1] [0 0 1] [2] >= [0 0 1] [0 0 0] [1] [1 1 1] L + [1 0 1] N + [1] [0 0 1] [0 0 0] [2] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 1] [0 0 1] [0] [1 1 0] X1 + [1 1 1] X2 + [1] [0 0 1] [0 0 1] [1] >= [0 0 1] [0 0 1] [0] [1 1 0] X1 + [1 1 0] X2 + [1] [0 0 1] [0 0 1] [1] = U62(X1,X2) a__U62(tt(),L) = [0 0 1] [1] [1 1 1] L + [2] [0 0 1] [2] >= [0 0 1] [1] [1 1 1] L + [2] [0 0 1] [2] = s(a__length(mark(L))) a__isNat(X) = [1 0 0] [0] [0 0 1] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 1] X + [0] [0 0 0] [0] = isNat(X) a__isNat(0()) = [1] [0] [1] >= [1] [0] [1] = tt() a__isNat(length(V1)) = [0 0 1] [0] [0 0 1] V1 + [1] [0 0 0] [1] >= [0 0 1] [0] [0 0 1] V1 + [1] [0 0 0] [1] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [1 0 0] [0] [0 0 1] V1 + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 1] V1 + [0] [0 0 0] [1] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 1 0] [1] [0 0 1] V + [0] [0 0 1] [1] >= [0 0 0] [1] [0 0 1] V + [0] [0 0 0] [1] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 1 0] [1] [0 0 1] X + [0] [0 0 1] [1] >= [1 1 0] [0] [0 0 1] X + [0] [0 0 1] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 1 1] [1 1 2] [1] [0 0 1] V1 + [0 0 1] V2 + [1] [0 0 1] [0 0 1] [2] >= [1 0 0] [0 0 0] [0] [0 0 1] V1 + [0 0 1] V2 + [1] [0 0 0] [0 0 1] [2] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [0] [1] >= [1] [0] [1] = tt() a__isNatList(X) = [0 0 1] [0] [0 0 1] X + [0] [0 0 0] [1] >= [0 0 1] [0] [0 0 1] X + [0] [0 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0 0 1] [0 0 1] [1] [0 0 1] V1 + [0 0 1] V2 + [1] [0 0 0] [0 0 0] [1] >= [0 0 0] [0 0 0] [1] [0 0 1] V1 + [0 0 1] V2 + [1] [0 0 0] [0 0 0] [1] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [1] [1] [1] >= [1] [0] [1] = tt() a__length(X) = [0 0 1] [0] [1 1 0] X + [1] [0 0 1] [1] >= [0 0 1] [0] [1 1 0] X + [1] [0 0 1] [1] = length(X) a__length(cons(N,L)) = [0 0 1] [0 0 1] [1] [1 1 2] L + [1 1 1] N + [1] [0 0 1] [0 0 1] [2] >= [0 0 1] [0 0 0] [1] [1 1 2] L + [1 0 1] N + [1] [0 0 1] [0 0 1] [2] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [1] [2] >= [1] [0] [0] = 0() a__zeros() = [1] [0] [1] >= [1] [0] [1] = cons(0(),zeros()) a__zeros() = [1] [0] [1] >= [0] [0] [0] = zeros() mark(0()) = [2] [0] [1] >= [1] [0] [0] = 0() mark(U11(X)) = [1 0 0] [1] [0 1 1] X + [1] [0 0 1] [1] >= [1 0 0] [1] [0 1 1] X + [1] [0 0 1] [1] = a__U11(mark(X)) mark(U21(X)) = [1 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] >= [1 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] = a__U21(mark(X)) mark(U31(X)) = [0 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] >= [0 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] = a__U31(mark(X)) mark(U41(X1,X2)) = [1 0 0] [0 0 0] [1] [0 1 1] X1 + [0 0 1] X2 + [2] [0 0 1] [0 0 1] [2] >= [1 0 0] [0 0 0] [1] [0 1 1] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 1] [2] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0 0] [2] [0 1 1] X + [1] [0 0 1] [2] >= [0 0 0] [1] [0 1 1] X + [0] [0 0 1] [2] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0 0] [0 0 0] [2] [0 1 1] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 0] [1] >= [0 0 0] [0 0 0] [1] [0 1 1] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 0] [1] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0 1] [1] [0 1 1] X + [1] [0 0 1] [1] >= [0 0 1] [1] [0 1 1] X + [1] [0 0 1] [1] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0 1] [0 0 1] [0 0 0] [1] [0 1 2] X1 + [1 1 1] X2 + [1 0 1] X3 + [1] [0 0 1] [0 0 1] [0 0 1] [2] >= [0 0 1] [0 0 1] [0 0 0] [1] [0 1 2] X1 + [1 1 1] X2 + [1 0 1] X3 + [1] [0 0 1] [0 0 1] [0 0 1] [2] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 1] [0 0 1] [1] [1 1 1] X1 + [1 1 1] X2 + [2] [0 0 1] [0 0 1] [2] >= [0 0 1] [0 0 1] [1] [1 1 1] X1 + [1 1 1] X2 + [2] [0 0 1] [0 0 1] [2] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 0 0] [1 1 1] [1] [0 1 2] X1 + [0 0 2] X2 + [1] [0 0 1] [0 0 1] [2] >= [1 0 0] [1 1 1] [1] [0 1 2] X1 + [0 0 1] X2 + [1] [0 0 1] [0 0 1] [2] = cons(mark(X1),X2) mark(isNat(X)) = [1 0 0] [1] [0 0 1] X + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 1] X + [0] [0 0 0] [1] = a__isNat(X) mark(isNatIList(X)) = [1 1 0] [1] [0 0 2] X + [0] [0 0 1] [1] >= [1 1 0] [1] [0 0 1] X + [0] [0 0 1] [1] = a__isNatIList(X) mark(isNatList(X)) = [0 0 1] [1] [0 0 1] X + [0] [0 0 0] [1] >= [0 0 1] [0] [0 0 1] X + [0] [0 0 0] [1] = a__isNatList(X) mark(length(X)) = [0 0 1] [1] [1 1 1] X + [2] [0 0 1] [2] >= [0 0 1] [1] [1 1 1] X + [2] [0 0 1] [2] = a__length(mark(X)) mark(nil()) = [1] [1] [2] >= [0] [0] [1] = nil() mark(s(X)) = [1 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] >= [1 0 0] [1] [0 1 1] X + [0] [0 0 1] [1] = s(mark(X)) mark(tt()) = [2] [1] [2] >= [1] [0] [1] = tt() mark(zeros()) = [1] [0] [1] >= [1] [0] [1] = a__zeros() *** Step 1.b:6.a:15: MI. WORST_CASE(?,O(n^2)) + Considered Problem: - Strict DPs: mark#(U21(X)) -> c_37(mark#(X)) - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_16) = {1}, uargs(c_18) = {1,2}, uargs(c_31) = {1}, uargs(c_36) = {1}, uargs(c_37) = {1}, uargs(c_38) = {1}, uargs(c_39) = {1}, uargs(c_40) = {1}, uargs(c_41) = {1}, uargs(c_42) = {1}, uargs(c_43) = {1,2}, uargs(c_44) = {1,2}, uargs(c_45) = {1}, uargs(c_49) = {1,2}, uargs(c_51) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] [0] p(U11) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U21) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U31) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(U41) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 0] [0] p(U42) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(U51) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(U61) = [1 0 0] [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 1 1] x_2 + [0 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(U62) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 1 1] x_2 + [0] [0 0 0] [0 0 0] [0] p(a__U11) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U21) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U31) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 1] [0] p(a__U41) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 0] [0] p(a__U42) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U51) = [1 0 0] [1 0 0] [0] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(a__U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U61) = [1 0 0] [1 1 1] [1 0 0] [1] [0 1 0] x_1 + [0 1 1] x_2 + [0 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] p(a__U62) = [1 0 0] [1 1 1] [1] [0 1 0] x_1 + [0 1 1] x_2 + [0] [0 0 0] [0 0 0] [0] p(a__isNat) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 0] [0] p(a__isNatIList) = [1 0 0] [1] [0 0 0] x_1 + [0] [0 0 1] [0] p(a__isNatList) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(a__length) = [1 0 1] [0] [0 1 1] x_1 + [0] [0 0 0] [0] p(a__zeros) = [1] [0] [0] p(cons) = [1 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [1 1 1] [0] p(isNat) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(isNatIList) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(isNatList) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(length) = [1 0 0] [0] [0 1 1] x_1 + [0] [0 0 0] [0] p(mark) = [1 1 0] [1] [0 1 0] x_1 + [0] [0 0 1] [0] p(nil) = [1] [0] [0] p(s) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(tt) = [1] [0] [0] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [0] [0] [0] p(a__U42#) = [0] [0] [0] p(a__U51#) = [0] [0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 0 0] [1 1 1] [0 0 0] [0] [0 0 0] x_1 + [0 0 1] x_2 + [0 0 1] x_3 + [1] [1 0 0] [0 0 1] [1 0 0] [0] p(a__U62#) = [0 0 0] [1 1 1] [0] [1 0 0] x_1 + [0 0 1] x_2 + [1] [0 1 0] [0 0 1] [1] p(a__isNat#) = [0] [0] [0] p(a__isNatIList#) = [0] [0] [0] p(a__isNatList#) = [0] [0] [0] p(a__length#) = [0 0 1] [0] [0 0 0] x_1 + [1] [1 0 0] [0] p(a__zeros#) = [0] [0] [0] p(mark#) = [1 1 0] [0] [0 0 0] x_1 + [0] [1 1 1] [1] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [0] [0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [1 0 0] [0] [0 0 1] x_1 + [0] [0 0 1] [0] p(c_17) = [0] [0] [0] p(c_18) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 0] [0 0 0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [0] [0] [0] p(c_22) = [0] [0] [0] p(c_23) = [0] [0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [0] [0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [1 0 0] [1] [0 0 0] x_1 + [0] [1 0 0] [1] p(c_37) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_38) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_39) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 1] [0] p(c_40) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_41) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_42) = [1 0 0] [0] [0 0 0] x_1 + [0] [1 0 0] [1] p(c_43) = [1 0 0] [1 0 0] [1] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 1] [0 0 0] [0] p(c_44) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [1 0 0] [1 0 0] [0] p(c_45) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 1 0] [1 0 0] [0] p(c_50) = [0] [0] [0] p(c_51) = [1 0 0] [1] [0 0 0] x_1 + [0] [1 0 0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: mark#(U21(X)) = [1 1 0] [1] [0 0 0] X + [0] [1 1 0] [2] > [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_37(mark#(X)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [1 1 1] [0 0 0] [0] [0 0 1] L + [0 0 1] N + [1] [0 0 1] [1 0 0] [1] >= [1 1 1] [0] [0 0 1] L + [1] [0 0 1] [1] = c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) = [1 1 1] [0] [0 0 1] L + [2] [0 0 1] [1] >= [1 1 1] [0] [0 0 0] L + [0] [0 0 0] [1] = c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) = [1 1 1] [0 0 0] [0] [0 0 0] L + [0 0 0] N + [1] [1 0 0] [1 0 0] [1] >= [1 1 1] [0] [0 0 0] L + [0] [0 0 0] [0] = c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) = [1 1 0] [1] [0 0 0] X + [0] [1 1 0] [2] >= [1 1 0] [1] [0 0 0] X + [0] [1 1 0] [1] = c_36(mark#(X)) mark#(U31(X)) = [1 1 0] [0] [0 0 0] X + [0] [1 1 1] [1] >= [1 1 0] [0] [0 0 0] X + [0] [1 1 1] [1] = c_38(mark#(X)) mark#(U41(X1,X2)) = [1 1 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 1] [1 0 0] [1] >= [1 1 0] [0] [0 0 0] X1 + [0] [1 1 1] [1] = c_39(mark#(X1)) mark#(U42(X)) = [1 1 0] [0] [0 0 0] X + [0] [1 1 0] [1] >= [1 1 0] [0] [0 0 0] X + [0] [0 0 0] [0] = c_40(mark#(X)) mark#(U51(X1,X2)) = [1 1 0] [1 0 0] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [1 0 0] [1] >= [1 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_41(mark#(X1)) mark#(U52(X)) = [1 1 0] [0] [0 0 0] X + [0] [1 1 0] [1] >= [1 1 0] [0] [0 0 0] X + [0] [1 1 0] [1] = c_42(mark#(X)) mark#(U61(X1,X2,X3)) = [1 1 0] [1 1 1] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [1 1 0] [1 1 1] [1 0 0] [2] >= [1 1 0] [1 1 1] [0 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0] [1 1 0] [0 0 1] [1 0 0] [1] = c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) = [1 1 0] [1 1 1] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [1 1 1] [2] >= [1 1 0] [1 1 1] [0] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [1 1 1] [0] = c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) = [1 1 0] [1 0 0] [1] [0 0 0] X1 + [0 0 0] X2 + [0] [1 1 0] [2 1 1] [2] >= [1 1 0] [0] [0 0 0] X1 + [0] [0 0 0] [0] = c_45(mark#(X1)) mark#(length(X)) = [1 1 1] [0] [0 0 0] X + [0] [1 1 1] [1] >= [1 1 1] [0] [0 0 0] X + [0] [1 1 0] [1] = c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) = [1 1 0] [1] [0 0 0] X + [0] [1 1 0] [2] >= [1 1 0] [1] [0 0 0] X + [0] [1 1 0] [0] = c_51(mark#(X)) a__U11(X) = [1 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U11(X) a__U11(tt()) = [2] [0] [0] >= [1] [0] [0] = tt() a__U21(X) = [1 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U21(X) a__U21(tt()) = [2] [0] [0] >= [1] [0] [0] = tt() a__U31(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 1] [0] = U31(X) a__U31(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U41(X1,X2) = [1 0 0] [1 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [1 0 0] [1] [0 0 0] V2 + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] V2 + [0] [0 0 0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = U42(X) a__U42(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U51(X1,X2) = [1 0 0] [1 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [1 0 0] [1] [0 0 0] V2 + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] V2 + [0] [0 0 0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = U52(X) a__U52(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U61(X1,X2,X3) = [1 0 0] [1 1 1] [1 0 0] [1] [0 1 0] X1 + [0 1 1] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 1] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 1 1] [1 0 0] [2] [0 1 1] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [0] >= [1 1 1] [1 0 0] [2] [0 1 1] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1 0 0] [1 1 1] [1] [0 1 0] X1 + [0 1 1] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 1] X2 + [0] [0 0 0] [0 0 0] [0] = U62(X1,X2) a__U62(tt(),L) = [1 1 1] [2] [0 1 1] L + [0] [0 0 0] [0] >= [1 1 1] [2] [0 1 1] L + [0] [0 0 0] [0] = s(a__length(mark(L))) a__isNat(X) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = isNat(X) a__isNat(0()) = [1] [0] [0] >= [1] [0] [0] = tt() a__isNat(length(V1)) = [1 0 0] [1] [0 0 0] V1 + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] V1 + [0] [0 0 0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [1 0 0] [2] [0 0 0] V1 + [0] [0 0 0] [0] >= [1 0 0] [2] [0 0 0] V1 + [0] [0 0 0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 0 0] [1] [0 0 0] V + [0] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] V + [0] [0 0 0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 0 0] [1] [0 0 0] X + [0] [0 0 1] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 1] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 0 0] [1 0 0] [2] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [1 1 1] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [0] [0] >= [1] [0] [0] = tt() a__isNatList(X) = [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [1] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [1] [0] [0] >= [1] [0] [0] = tt() a__length(X) = [1 0 1] [0] [0 1 1] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 1 1] X + [0] [0 0 0] [0] = length(X) a__length(cons(N,L)) = [2 1 1] [1 0 0] [1] [1 1 1] L + [0 1 0] N + [0] [0 0 0] [0 0 0] [0] >= [2 1 1] [1 0 0] [1] [0 1 1] L + [0 0 0] N + [0] [0 0 0] [0 0 0] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [0] [0] >= [0] [0] [0] = 0() a__zeros() = [1] [0] [0] >= [1] [0] [0] = cons(0(),zeros()) a__zeros() = [1] [0] [0] >= [0] [0] [0] = zeros() mark(0()) = [1] [0] [0] >= [0] [0] [0] = 0() mark(U11(X)) = [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] = a__U11(mark(X)) mark(U21(X)) = [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] = a__U21(mark(X)) mark(U31(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 1] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 1] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 0] [0] >= [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 1] [0 0 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 0 0] [1] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [1] [0 1 0] X + [0] [0 0 0] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [1 1 0] [1 1 1] [1 0 0] [2] [0 1 0] X1 + [0 1 1] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 1 1] [1 0 0] [2] [0 1 0] X1 + [0 1 1] X2 + [0 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [1 1 0] [1 1 1] [2] [0 1 0] X1 + [0 1 1] X2 + [0] [0 0 0] [0 0 0] [0] >= [1 1 0] [1 1 1] [2] [0 1 0] X1 + [0 1 1] X2 + [0] [0 0 0] [0 0 0] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 1 0] [1 0 0] [2] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 1 1] [0] >= [1 1 0] [1 0 0] [2] [0 1 0] X1 + [0 0 0] X2 + [0] [0 0 0] [1 1 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] = a__isNat(X) mark(isNatIList(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 1] [0] >= [1 0 0] [1] [0 0 0] X + [0] [0 0 1] [0] = a__isNatIList(X) mark(isNatList(X)) = [1 0 0] [1] [0 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [0] = a__isNatList(X) mark(length(X)) = [1 1 1] [1] [0 1 1] X + [0] [0 0 0] [0] >= [1 1 1] [1] [0 1 1] X + [0] [0 0 0] [0] = a__length(mark(X)) mark(nil()) = [2] [0] [0] >= [1] [0] [0] = nil() mark(s(X)) = [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] >= [1 1 0] [2] [0 1 0] X + [0] [0 0 0] [0] = s(mark(X)) mark(tt()) = [2] [0] [0] >= [1] [0] [0] = tt() mark(zeros()) = [1] [0] [0] >= [1] [0] [0] = a__zeros() *** Step 1.b:6.a:16: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: a__U61#(tt(),L,N) -> c_16(a__U62#(a__isNat(N),L)) a__U62#(tt(),L) -> c_18(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_31(a__U61#(a__isNatList(L),L,N)) mark#(U11(X)) -> c_36(mark#(X)) mark#(U21(X)) -> c_37(mark#(X)) mark#(U31(X)) -> c_38(mark#(X)) mark#(U41(X1,X2)) -> c_39(mark#(X1)) mark#(U42(X)) -> c_40(mark#(X)) mark#(U51(X1,X2)) -> c_41(mark#(X1)) mark#(U52(X)) -> c_42(mark#(X)) mark#(U61(X1,X2,X3)) -> c_43(a__U61#(mark(X1),X2,X3),mark#(X1)) mark#(U62(X1,X2)) -> c_44(a__U62#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_45(mark#(X1)) mark#(length(X)) -> c_49(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_51(mark#(X)) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/1,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/1,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/1,c_40/1 ,c_41/1,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). *** Step 1.b:6.b:1: DecomposeDG. WORST_CASE(?,O(n^4)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: DecomposeDG {onSelection = all below first cut in WDG, onUpper = Nothing, onLower = Nothing} + Details: We decompose the input problem according to the dependency graph into the upper component a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) and a lower component a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) Further, following extension rules are added to the lower component. a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) **** Step 1.b:6.b:1.a:1: SimplifyRHS. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) -> a__isNat#(N) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(isNat(X)) -> c_46(a__isNat#(X)) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48(a__isNatList#(X)) - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) -->_1 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):3 2:S:a__U61#(tt(),L,N) -> a__isNat#(N) 3:S:a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)) -->_1 a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)):1 4:S:a__length#(cons(N,L)) -> a__isNatList#(L) 5:S:mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) 6:S:mark#(isNat(X)) -> c_46(a__isNat#(X)) 7:S:mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) -->_1 a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2),a__isNat#(V1)):3 8:S:mark#(isNatList(X)) -> c_48(a__isNatList#(X)) 9:W:a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) -->_1 a__U62#(tt(),L) -> mark#(L):11 -->_1 a__U62#(tt(),L) -> a__length#(mark(L)):10 10:W:a__U62#(tt(),L) -> a__length#(mark(L)) -->_1 a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N):12 -->_1 a__length#(cons(N,L)) -> a__isNatList#(L):4 11:W:a__U62#(tt(),L) -> mark#(L) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 12:W:a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) -->_1 a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L):9 -->_1 a__U61#(tt(),L,N) -> a__isNat#(N):2 13:W:mark#(U11(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 14:W:mark#(U21(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 15:W:mark#(U31(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 16:W:mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) -->_1 a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)):1 17:W:mark#(U41(X1,X2)) -> mark#(X1) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 18:W:mark#(U42(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 19:W:mark#(U51(X1,X2)) -> mark#(X1) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 20:W:mark#(U52(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 21:W:mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) -->_1 a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L):9 -->_1 a__U61#(tt(),L,N) -> a__isNat#(N):2 22:W:mark#(U61(X1,X2,X3)) -> mark#(X1) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 23:W:mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) -->_1 a__U62#(tt(),L) -> mark#(L):11 -->_1 a__U62#(tt(),L) -> a__length#(mark(L)):10 24:W:mark#(U62(X1,X2)) -> mark#(X1) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 25:W:mark#(cons(X1,X2)) -> mark#(X1) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 26:W:mark#(length(X)) -> a__length#(mark(X)) -->_1 a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N):12 -->_1 a__length#(cons(N,L)) -> a__isNatList#(L):4 27:W:mark#(length(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 28:W:mark#(s(X)) -> mark#(X) -->_1 mark#(s(X)) -> mark#(X):28 -->_1 mark#(length(X)) -> mark#(X):27 -->_1 mark#(length(X)) -> a__length#(mark(X)):26 -->_1 mark#(cons(X1,X2)) -> mark#(X1):25 -->_1 mark#(U62(X1,X2)) -> mark#(X1):24 -->_1 mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2):23 -->_1 mark#(U61(X1,X2,X3)) -> mark#(X1):22 -->_1 mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3):21 -->_1 mark#(U52(X)) -> mark#(X):20 -->_1 mark#(U51(X1,X2)) -> mark#(X1):19 -->_1 mark#(U42(X)) -> mark#(X):18 -->_1 mark#(U41(X1,X2)) -> mark#(X1):17 -->_1 mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2):16 -->_1 mark#(U31(X)) -> mark#(X):15 -->_1 mark#(U21(X)) -> mark#(X):14 -->_1 mark#(U11(X)) -> mark#(X):13 -->_1 mark#(isNatList(X)) -> c_48(a__isNatList#(X)):8 -->_1 mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)):7 -->_1 mark#(isNat(X)) -> c_46(a__isNat#(X)):6 -->_1 mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2):5 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) mark#(isNat(X)) -> c_46() mark#(isNatList(X)) -> c_48() **** Step 1.b:6.b:1.a:2: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) -> a__isNat#(N) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(isNat(X)) -> c_46() mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_8) = {1}, uargs(c_25) = {1}, uargs(c_47) = {1} Following symbols are considered usable: {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat#,a__isNatIList# ,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] p(U11) = [1] x1 + [0] p(U21) = [1] x1 + [0] p(U31) = [0] p(U41) = [1] x1 + [1] x2 + [0] p(U42) = [1] x1 + [0] p(U51) = [1] x1 + [1] x2 + [0] p(U52) = [0] p(U61) = [1] x1 + [1] x2 + [1] x3 + [0] p(U62) = [1] x1 + [0] p(a__U11) = [4] x1 + [0] p(a__U21) = [0] p(a__U31) = [0] p(a__U41) = [0] p(a__U42) = [0] p(a__U51) = [1] p(a__U52) = [0] p(a__U61) = [0] p(a__U62) = [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [3] p(a__length) = [0] p(a__zeros) = [0] p(cons) = [0] p(isNat) = [1] x1 + [0] p(isNatIList) = [1] x1 + [0] p(isNatList) = [0] p(length) = [1] x1 + [0] p(mark) = [0] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [0] p(a__U42#) = [1] x1 + [0] p(a__U51#) = [4] p(a__U52#) = [0] p(a__U61#) = [4] p(a__U62#) = [4] p(a__isNat#) = [1] p(a__isNatIList#) = [0] p(a__isNatList#) = [3] p(a__length#) = [4] p(a__zeros#) = [0] p(mark#) = [4] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [4] x1 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [1] x1 + [0] p(c_23) = [1] x1 + [0] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [1] x2 + [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [2] x1 + [0] p(c_37) = [1] x1 + [0] p(c_38) = [1] x1 + [0] p(c_39) = [0] p(c_40) = [1] x1 + [0] p(c_41) = [0] p(c_42) = [1] x1 + [0] p(c_43) = [1] x1 + [0] p(c_44) = [1] x2 + [0] p(c_45) = [1] x1 + [0] p(c_46) = [4] p(c_47) = [1] x1 + [3] p(c_48) = [3] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [2] x1 + [0] Following rules are strictly oriented: a__U61#(tt(),L,N) = [4] > [1] = a__isNat#(N) a__length#(cons(N,L)) = [4] > [3] = a__isNatList#(L) mark#(isNatIList(X)) = [4] > [3] = c_47(a__isNatIList#(X)) mark#(isNatList(X)) = [4] > [3] = c_48() Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [0] >= [0] = c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) = [4] >= [4] = a__U62#(a__isNat(N),L) a__U62#(tt(),L) = [4] >= [4] = a__length#(mark(L)) a__U62#(tt(),L) = [4] >= [4] = mark#(L) a__isNatIList#(cons(V1,V2)) = [0] >= [0] = c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) = [4] >= [4] = a__U61#(a__isNatList(L),L,N) mark#(U11(X)) = [4] >= [4] = mark#(X) mark#(U21(X)) = [4] >= [4] = mark#(X) mark#(U31(X)) = [4] >= [4] = mark#(X) mark#(U41(X1,X2)) = [4] >= [0] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [4] >= [4] = mark#(X1) mark#(U42(X)) = [4] >= [4] = mark#(X) mark#(U51(X1,X2)) = [4] >= [4] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [4] >= [4] = mark#(X1) mark#(U52(X)) = [4] >= [4] = mark#(X) mark#(U61(X1,X2,X3)) = [4] >= [4] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [4] >= [4] = mark#(X1) mark#(U62(X1,X2)) = [4] >= [4] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [4] >= [4] = mark#(X1) mark#(cons(X1,X2)) = [4] >= [4] = mark#(X1) mark#(isNat(X)) = [4] >= [4] = c_46() mark#(length(X)) = [4] >= [4] = a__length#(mark(X)) mark#(length(X)) = [4] >= [4] = mark#(X) mark#(s(X)) = [4] >= [4] = mark#(X) **** Step 1.b:6.b:1.a:3: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(isNat(X)) -> c_46() - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_8) = {1}, uargs(c_25) = {1}, uargs(c_47) = {1} Following symbols are considered usable: {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat#,a__isNatIList# ,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] p(U11) = [1] x1 + [0] p(U21) = [1] x1 + [0] p(U31) = [1] x1 + [0] p(U41) = [1] x1 + [0] p(U42) = [1] x1 + [0] p(U51) = [1] x1 + [1] x2 + [0] p(U52) = [1] x1 + [0] p(U61) = [1] x1 + [1] x3 + [0] p(U62) = [1] x1 + [1] x2 + [0] p(a__U11) = [0] p(a__U21) = [0] p(a__U31) = [0] p(a__U41) = [0] p(a__U42) = [0] p(a__U51) = [0] p(a__U52) = [0] p(a__U61) = [0] p(a__U62) = [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [0] p(a__length) = [2] p(a__zeros) = [0] p(cons) = [1] x1 + [1] x2 + [0] p(isNat) = [0] p(isNatIList) = [1] x1 + [0] p(isNatList) = [0] p(length) = [0] p(mark) = [4] p(nil) = [0] p(s) = [1] x1 + [6] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [0] p(a__U42#) = [0] p(a__U51#) = [1] p(a__U52#) = [0] p(a__U61#) = [1] p(a__U62#) = [1] p(a__isNat#) = [1] p(a__isNatIList#) = [0] p(a__isNatList#) = [1] p(a__length#) = [1] p(a__zeros#) = [0] p(mark#) = [1] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [2] x1 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [4] x1 + [1] p(c_48) = [1] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: mark#(isNat(X)) = [1] > [0] = c_46() Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [0] >= [0] = c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) = [1] >= [1] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [1] >= [1] = a__isNat#(N) a__U62#(tt(),L) = [1] >= [1] = a__length#(mark(L)) a__U62#(tt(),L) = [1] >= [1] = mark#(L) a__isNatIList#(cons(V1,V2)) = [0] >= [0] = c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) = [1] >= [1] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1] >= [1] = a__isNatList#(L) mark#(U11(X)) = [1] >= [1] = mark#(X) mark#(U21(X)) = [1] >= [1] = mark#(X) mark#(U31(X)) = [1] >= [1] = mark#(X) mark#(U41(X1,X2)) = [1] >= [0] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [1] >= [1] = mark#(X1) mark#(U42(X)) = [1] >= [1] = mark#(X) mark#(U51(X1,X2)) = [1] >= [1] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [1] >= [1] = mark#(X1) mark#(U52(X)) = [1] >= [1] = mark#(X) mark#(U61(X1,X2,X3)) = [1] >= [1] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [1] >= [1] = mark#(X1) mark#(U62(X1,X2)) = [1] >= [1] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [1] >= [1] = mark#(X1) mark#(cons(X1,X2)) = [1] >= [1] = mark#(X1) mark#(isNatIList(X)) = [1] >= [1] = c_47(a__isNatIList#(X)) mark#(isNatList(X)) = [1] >= [1] = c_48() mark#(length(X)) = [1] >= [1] = a__length#(mark(X)) mark#(length(X)) = [1] >= [1] = mark#(X) mark#(s(X)) = [1] >= [1] = mark#(X) **** Step 1.b:6.b:1.a:4: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> c_46() mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_8) = {1}, uargs(c_25) = {1}, uargs(c_47) = {1} Following symbols are considered usable: {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat#,a__isNatIList# ,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [4] p(U11) = [0] p(U21) = [1] x1 + [0] p(U31) = [0] p(U41) = [1] x2 + [0] p(U42) = [0] p(U51) = [1] x1 + [1] x2 + [0] p(U52) = [0] p(U61) = [1] x1 + [1] x2 + [1] x3 + [0] p(U62) = [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [0] p(a__U31) = [0] p(a__U41) = [3] p(a__U42) = [0] p(a__U51) = [0] p(a__U52) = [0] p(a__U61) = [0] p(a__U62) = [0] p(a__isNat) = [2] x1 + [0] p(a__isNatIList) = [0] p(a__isNatList) = [1] x1 + [0] p(a__length) = [0] p(a__zeros) = [0] p(cons) = [1] x1 + [0] p(isNat) = [1] x1 + [0] p(isNatIList) = [1] x1 + [0] p(isNatList) = [1] x1 + [0] p(length) = [0] p(mark) = [0] p(nil) = [0] p(s) = [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [0] p(a__U42#) = [0] p(a__U51#) = [0] p(a__U52#) = [0] p(a__U61#) = [2] p(a__U62#) = [2] p(a__isNat#) = [2] p(a__isNatIList#) = [0] p(a__isNatList#) = [0] p(a__length#) = [2] p(a__zeros#) = [0] p(mark#) = [2] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [4] x1 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [4] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [4] x1 + [0] p(c_46) = [2] p(c_47) = [4] x1 + [2] p(c_48) = [2] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: mark#(U51(X1,X2)) = [2] > [0] = a__U51#(mark(X1),X2) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [0] >= [0] = c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) = [2] >= [2] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [2] >= [2] = a__isNat#(N) a__U62#(tt(),L) = [2] >= [2] = a__length#(mark(L)) a__U62#(tt(),L) = [2] >= [2] = mark#(L) a__isNatIList#(cons(V1,V2)) = [0] >= [0] = c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) = [2] >= [2] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [2] >= [0] = a__isNatList#(L) mark#(U11(X)) = [2] >= [2] = mark#(X) mark#(U21(X)) = [2] >= [2] = mark#(X) mark#(U31(X)) = [2] >= [2] = mark#(X) mark#(U41(X1,X2)) = [2] >= [0] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [2] >= [2] = mark#(X1) mark#(U42(X)) = [2] >= [2] = mark#(X) mark#(U51(X1,X2)) = [2] >= [2] = mark#(X1) mark#(U52(X)) = [2] >= [2] = mark#(X) mark#(U61(X1,X2,X3)) = [2] >= [2] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [2] >= [2] = mark#(X1) mark#(U62(X1,X2)) = [2] >= [2] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [2] >= [2] = mark#(X1) mark#(cons(X1,X2)) = [2] >= [2] = mark#(X1) mark#(isNat(X)) = [2] >= [2] = c_46() mark#(isNatIList(X)) = [2] >= [2] = c_47(a__isNatIList#(X)) mark#(isNatList(X)) = [2] >= [2] = c_48() mark#(length(X)) = [2] >= [2] = a__length#(mark(X)) mark#(length(X)) = [2] >= [2] = mark#(X) mark#(s(X)) = [2] >= [2] = mark#(X) **** Step 1.b:6.b:1.a:5: WeightGap. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) - Weak DPs: a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> c_46() mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(a__U11) = {1}, uargs(a__U21) = {1}, uargs(a__U31) = {1}, uargs(a__U41) = {1}, uargs(a__U42) = {1}, uargs(a__U51) = {1}, uargs(a__U52) = {1}, uargs(a__U61) = {1}, uargs(a__U62) = {1}, uargs(a__length) = {1}, uargs(cons) = {1}, uargs(s) = {1}, uargs(a__U41#) = {1}, uargs(a__U51#) = {1}, uargs(a__U61#) = {1}, uargs(a__U62#) = {1}, uargs(a__length#) = {1}, uargs(c_8) = {1}, uargs(c_25) = {1}, uargs(c_47) = {1} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] p(U11) = [0] p(U21) = [0] p(U31) = [0] p(U41) = [0] p(U42) = [0] p(U51) = [0] p(U52) = [0] p(U61) = [1] x1 + [0] p(U62) = [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [1] x1 + [0] p(a__U41) = [1] x1 + [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [1] x1 + [0] p(a__U52) = [1] x1 + [0] p(a__U61) = [1] x1 + [0] p(a__U62) = [1] x1 + [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [0] p(a__length) = [1] x1 + [0] p(a__zeros) = [0] p(cons) = [1] x1 + [0] p(isNat) = [0] p(isNatIList) = [0] p(isNatList) = [0] p(length) = [0] p(mark) = [0] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [1] x1 + [2] p(a__U42#) = [0] p(a__U51#) = [1] x1 + [4] p(a__U52#) = [0] p(a__U61#) = [1] x1 + [4] p(a__U62#) = [1] x1 + [4] p(a__isNat#) = [4] p(a__isNatIList#) = [0] p(a__isNatList#) = [4] p(a__length#) = [1] x1 + [4] p(a__zeros#) = [0] p(mark#) = [4] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [1] x1 + [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [0] p(c_22) = [0] p(c_23) = [0] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [4] p(c_47) = [1] x1 + [1] p(c_48) = [4] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: a__U41#(tt(),V2) = [2] > [0] = c_8(a__isNatIList#(V2)) Following rules are (at-least) weakly oriented: a__U61#(tt(),L,N) = [4] >= [4] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [4] >= [4] = a__isNat#(N) a__U62#(tt(),L) = [4] >= [4] = a__length#(mark(L)) a__U62#(tt(),L) = [4] >= [4] = mark#(L) a__isNatIList#(cons(V1,V2)) = [0] >= [2] = c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) = [1] N + [4] >= [4] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1] N + [4] >= [4] = a__isNatList#(L) mark#(U11(X)) = [4] >= [4] = mark#(X) mark#(U21(X)) = [4] >= [4] = mark#(X) mark#(U31(X)) = [4] >= [4] = mark#(X) mark#(U41(X1,X2)) = [4] >= [2] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [4] >= [4] = mark#(X1) mark#(U42(X)) = [4] >= [4] = mark#(X) mark#(U51(X1,X2)) = [4] >= [4] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [4] >= [4] = mark#(X1) mark#(U52(X)) = [4] >= [4] = mark#(X) mark#(U61(X1,X2,X3)) = [4] >= [4] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [4] >= [4] = mark#(X1) mark#(U62(X1,X2)) = [4] >= [4] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [4] >= [4] = mark#(X1) mark#(cons(X1,X2)) = [4] >= [4] = mark#(X1) mark#(isNat(X)) = [4] >= [4] = c_46() mark#(isNatIList(X)) = [4] >= [1] = c_47(a__isNatIList#(X)) mark#(isNatList(X)) = [4] >= [4] = c_48() mark#(length(X)) = [4] >= [4] = a__length#(mark(X)) mark#(length(X)) = [4] >= [4] = mark#(X) mark#(s(X)) = [4] >= [4] = mark#(X) a__U11(X) = [1] X + [0] >= [0] = U11(X) a__U11(tt()) = [0] >= [0] = tt() a__U21(X) = [1] X + [0] >= [0] = U21(X) a__U21(tt()) = [0] >= [0] = tt() a__U31(X) = [1] X + [0] >= [0] = U31(X) a__U31(tt()) = [0] >= [0] = tt() a__U41(X1,X2) = [1] X1 + [0] >= [0] = U41(X1,X2) a__U41(tt(),V2) = [0] >= [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1] X + [0] >= [0] = U42(X) a__U42(tt()) = [0] >= [0] = tt() a__U51(X1,X2) = [1] X1 + [0] >= [0] = U51(X1,X2) a__U51(tt(),V2) = [0] >= [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1] X + [0] >= [0] = U52(X) a__U52(tt()) = [0] >= [0] = tt() a__U61(X1,X2,X3) = [1] X1 + [0] >= [1] X1 + [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0] >= [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1] X1 + [0] >= [0] = U62(X1,X2) a__U62(tt(),L) = [0] >= [0] = s(a__length(mark(L))) a__isNat(X) = [0] >= [0] = isNat(X) a__isNat(0()) = [0] >= [0] = tt() a__isNat(length(V1)) = [0] >= [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] >= [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0] >= [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0] >= [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0] >= [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] >= [0] = tt() a__isNatList(X) = [0] >= [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] >= [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] >= [0] = tt() a__length(X) = [1] X + [0] >= [0] = length(X) a__length(cons(N,L)) = [1] N + [0] >= [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] >= [0] = 0() a__zeros() = [0] >= [0] = cons(0(),zeros()) a__zeros() = [0] >= [0] = zeros() mark(0()) = [0] >= [0] = 0() mark(U11(X)) = [0] >= [0] = a__U11(mark(X)) mark(U21(X)) = [0] >= [0] = a__U21(mark(X)) mark(U31(X)) = [0] >= [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0] >= [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0] >= [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0] >= [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0] >= [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0] >= [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0] >= [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0] >= [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] >= [0] = a__isNat(X) mark(isNatIList(X)) = [0] >= [0] = a__isNatIList(X) mark(isNatList(X)) = [0] >= [0] = a__isNatList(X) mark(length(X)) = [0] >= [0] = a__length(mark(X)) mark(nil()) = [0] >= [0] = nil() mark(s(X)) = [0] >= [0] = s(mark(X)) mark(tt()) = [0] >= [0] = tt() mark(zeros()) = [0] >= [0] = a__zeros() Further, it can be verified that all rules not oriented are covered by the weightgap condition. **** Step 1.b:6.b:1.a:6: NaturalMI. WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) - Weak DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> c_46() mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_8) = {1}, uargs(c_25) = {1}, uargs(c_47) = {1} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] p(U11) = [1] x1 + [0] p(U21) = [1] x1 + [0] p(U31) = [1] x1 + [0] p(U41) = [1] x1 + [1] x2 + [0] p(U42) = [1] x1 + [0] p(U51) = [1] x1 + [0] p(U52) = [1] x1 + [0] p(U61) = [1] x1 + [1] x2 + [0] p(U62) = [1] x1 + [1] x2 + [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [1] x1 + [0] p(a__U41) = [1] x1 + [1] x2 + [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [1] x1 + [0] p(a__U52) = [1] x1 + [0] p(a__U61) = [1] x1 + [1] x2 + [0] p(a__U62) = [1] x1 + [1] x2 + [0] p(a__isNat) = [4] p(a__isNatIList) = [1] x1 + [4] p(a__isNatList) = [4] p(a__length) = [1] x1 + [2] p(a__zeros) = [2] p(cons) = [1] x1 + [1] x2 + [2] p(isNat) = [4] p(isNatIList) = [1] x1 + [4] p(isNatList) = [2] p(length) = [1] x1 + [2] p(mark) = [1] x1 + [2] p(nil) = [7] p(s) = [1] x1 + [0] p(tt) = [4] p(zeros) = [0] p(a__U11#) = [1] x1 + [4] p(a__U21#) = [4] x1 + [0] p(a__U31#) = [0] p(a__U41#) = [1] x2 + [1] p(a__U42#) = [0] p(a__U51#) = [1] p(a__U52#) = [1] x1 + [2] p(a__U61#) = [1] x2 + [2] p(a__U62#) = [1] x2 + [2] p(a__isNat#) = [0] p(a__isNatIList#) = [1] x1 + [0] p(a__isNatList#) = [1] p(a__length#) = [1] x1 + [0] p(a__zeros#) = [0] p(mark#) = [1] x1 + [2] p(c_1) = [0] p(c_2) = [1] p(c_3) = [0] p(c_4) = [0] p(c_5) = [2] p(c_6) = [1] p(c_7) = [0] p(c_8) = [1] x1 + [0] p(c_9) = [2] p(c_10) = [1] p(c_11) = [4] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [1] p(c_15) = [1] p(c_16) = [4] x1 + [1] x2 + [0] p(c_17) = [1] p(c_18) = [1] x2 + [4] p(c_19) = [2] p(c_20) = [2] p(c_21) = [2] x1 + [0] p(c_22) = [0] p(c_23) = [1] p(c_24) = [0] p(c_25) = [1] x1 + [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [4] p(c_29) = [0] p(c_30) = [0] p(c_31) = [1] x1 + [1] x2 + [1] p(c_32) = [4] p(c_33) = [1] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [4] x2 + [0] p(c_40) = [2] x1 + [0] p(c_41) = [1] x1 + [1] p(c_42) = [0] p(c_43) = [1] x1 + [0] p(c_44) = [1] x1 + [1] x2 + [0] p(c_45) = [1] p(c_46) = [0] p(c_47) = [1] x1 + [0] p(c_48) = [0] p(c_49) = [1] x2 + [1] p(c_50) = [1] p(c_51) = [4] x1 + [0] p(c_52) = [1] p(c_53) = [2] Following rules are strictly oriented: a__isNatIList#(cons(V1,V2)) = [1] V1 + [1] V2 + [2] > [1] V2 + [1] = c_25(a__U41#(a__isNat(V1),V2)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [1] V2 + [1] >= [1] V2 + [0] = c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) = [1] L + [2] >= [1] L + [2] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [1] L + [2] >= [0] = a__isNat#(N) a__U62#(tt(),L) = [1] L + [2] >= [1] L + [2] = a__length#(mark(L)) a__U62#(tt(),L) = [1] L + [2] >= [1] L + [2] = mark#(L) a__length#(cons(N,L)) = [1] L + [1] N + [2] >= [1] L + [2] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1] L + [1] N + [2] >= [1] = a__isNatList#(L) mark#(U11(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) mark#(U21(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) mark#(U31(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) mark#(U41(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X2 + [1] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [2] = mark#(X1) mark#(U42(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) mark#(U51(X1,X2)) = [1] X1 + [2] >= [1] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [1] X1 + [2] >= [1] X1 + [2] = mark#(X1) mark#(U52(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) mark#(U61(X1,X2,X3)) = [1] X1 + [1] X2 + [2] >= [1] X2 + [2] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [2] = mark#(X1) mark#(U62(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X2 + [2] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [2] = mark#(X1) mark#(cons(X1,X2)) = [1] X1 + [1] X2 + [4] >= [1] X1 + [2] = mark#(X1) mark#(isNat(X)) = [6] >= [0] = c_46() mark#(isNatIList(X)) = [1] X + [6] >= [1] X + [0] = c_47(a__isNatIList#(X)) mark#(isNatList(X)) = [4] >= [0] = c_48() mark#(length(X)) = [1] X + [4] >= [1] X + [2] = a__length#(mark(X)) mark#(length(X)) = [1] X + [4] >= [1] X + [2] = mark#(X) mark#(s(X)) = [1] X + [2] >= [1] X + [2] = mark#(X) a__U11(X) = [1] X + [0] >= [1] X + [0] = U11(X) a__U11(tt()) = [4] >= [4] = tt() a__U21(X) = [1] X + [0] >= [1] X + [0] = U21(X) a__U21(tt()) = [4] >= [4] = tt() a__U31(X) = [1] X + [0] >= [1] X + [0] = U31(X) a__U31(tt()) = [4] >= [4] = tt() a__U41(X1,X2) = [1] X1 + [1] X2 + [0] >= [1] X1 + [1] X2 + [0] = U41(X1,X2) a__U41(tt(),V2) = [1] V2 + [4] >= [1] V2 + [4] = a__U42(a__isNatIList(V2)) a__U42(X) = [1] X + [0] >= [1] X + [0] = U42(X) a__U42(tt()) = [4] >= [4] = tt() a__U51(X1,X2) = [1] X1 + [0] >= [1] X1 + [0] = U51(X1,X2) a__U51(tt(),V2) = [4] >= [4] = a__U52(a__isNatList(V2)) a__U52(X) = [1] X + [0] >= [1] X + [0] = U52(X) a__U52(tt()) = [4] >= [4] = tt() a__U61(X1,X2,X3) = [1] X1 + [1] X2 + [0] >= [1] X1 + [1] X2 + [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1] L + [4] >= [1] L + [4] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1] X1 + [1] X2 + [0] >= [1] X1 + [1] X2 + [0] = U62(X1,X2) a__U62(tt(),L) = [1] L + [4] >= [1] L + [4] = s(a__length(mark(L))) a__isNat(X) = [4] >= [4] = isNat(X) a__isNat(0()) = [4] >= [4] = tt() a__isNat(length(V1)) = [4] >= [4] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [4] >= [4] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1] V + [4] >= [4] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1] X + [4] >= [1] X + [4] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1] V1 + [1] V2 + [6] >= [1] V2 + [4] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [4] >= [4] = tt() a__isNatList(X) = [4] >= [2] = isNatList(X) a__isNatList(cons(V1,V2)) = [4] >= [4] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [4] >= [4] = tt() a__length(X) = [1] X + [2] >= [1] X + [2] = length(X) a__length(cons(N,L)) = [1] L + [1] N + [4] >= [1] L + [4] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [9] >= [0] = 0() a__zeros() = [2] >= [2] = cons(0(),zeros()) a__zeros() = [2] >= [0] = zeros() mark(0()) = [2] >= [0] = 0() mark(U11(X)) = [1] X + [2] >= [1] X + [2] = a__U11(mark(X)) mark(U21(X)) = [1] X + [2] >= [1] X + [2] = a__U21(mark(X)) mark(U31(X)) = [1] X + [2] >= [1] X + [2] = a__U31(mark(X)) mark(U41(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = a__U41(mark(X1),X2) mark(U42(X)) = [1] X + [2] >= [1] X + [2] = a__U42(mark(X)) mark(U51(X1,X2)) = [1] X1 + [2] >= [1] X1 + [2] = a__U51(mark(X1),X2) mark(U52(X)) = [1] X + [2] >= [1] X + [2] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [1] X1 + [1] X2 + [2] >= [1] X1 + [1] X2 + [2] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1] X1 + [1] X2 + [4] >= [1] X1 + [1] X2 + [4] = cons(mark(X1),X2) mark(isNat(X)) = [6] >= [4] = a__isNat(X) mark(isNatIList(X)) = [1] X + [6] >= [1] X + [4] = a__isNatIList(X) mark(isNatList(X)) = [4] >= [4] = a__isNatList(X) mark(length(X)) = [1] X + [4] >= [1] X + [4] = a__length(mark(X)) mark(nil()) = [9] >= [7] = nil() mark(s(X)) = [1] X + [2] >= [1] X + [2] = s(mark(X)) mark(tt()) = [6] >= [4] = tt() mark(zeros()) = [2] >= [2] = a__zeros() **** Step 1.b:6.b:1.a:7: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: a__U41#(tt(),V2) -> c_8(a__isNatIList#(V2)) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(cons(V1,V2)) -> c_25(a__U41#(a__isNat(V1),V2)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> c_46() mark#(isNatIList(X)) -> c_47(a__isNatIList#(X)) mark#(isNatList(X)) -> c_48() mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/1 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/0,c_47/1,c_48/0,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). **** Step 1.b:6.b:1.b:1: NaturalMI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules} + Details: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(c_12) = {1}, uargs(c_21) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1}, uargs(c_28) = {1,2} Following symbols are considered usable: {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat#,a__isNatIList# ,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] p(U11) = [1] x1 + [0] p(U21) = [1] x1 + [0] p(U31) = [1] x1 + [0] p(U41) = [1] x1 + [0] p(U42) = [1] x1 + [0] p(U51) = [1] x2 + [0] p(U52) = [1] x1 + [0] p(U61) = [1] x1 + [1] x2 + [1] x3 + [0] p(U62) = [1] x1 + [1] x2 + [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [3] x1 + [0] p(a__U41) = [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [0] p(a__U52) = [0] p(a__U61) = [0] p(a__U62) = [0] p(a__isNat) = [0] p(a__isNatIList) = [2] p(a__isNatList) = [3] x1 + [5] p(a__length) = [0] p(a__zeros) = [0] p(cons) = [1] x2 + [0] p(isNat) = [0] p(isNatIList) = [1] x1 + [0] p(isNatList) = [1] x1 + [0] p(length) = [0] p(mark) = [4] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [2] p(a__U42#) = [0] p(a__U51#) = [0] p(a__U52#) = [0] p(a__U61#) = [5] p(a__U62#) = [5] p(a__isNat#) = [0] p(a__isNatIList#) = [2] p(a__isNatList#) = [0] p(a__length#) = [5] p(a__zeros#) = [0] p(mark#) = [5] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [2] x1 + [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [4] x1 + [4] x2 + [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [4] x1 + [0] p(c_22) = [2] x1 + [0] p(c_23) = [1] x1 + [1] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [4] x1 + [2] x2 + [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [2] p(c_48) = [0] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: a__isNatIList#(V) = [2] > [1] = c_23(a__isNatList#(V)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [2] >= [2] = a__isNatIList#(V2) a__U51#(tt(),V2) = [0] >= [0] = c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) = [5] >= [5] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [5] >= [0] = a__isNat#(N) a__U62#(tt(),L) = [5] >= [5] = a__length#(mark(L)) a__U62#(tt(),L) = [5] >= [5] = mark#(L) a__isNat#(length(V1)) = [0] >= [0] = c_21(a__isNatList#(V1)) a__isNat#(s(V1)) = [0] >= [0] = c_22(a__isNat#(V1)) a__isNatIList#(cons(V1,V2)) = [2] >= [2] = a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) = [2] >= [0] = a__isNat#(V1) a__isNatList#(cons(V1,V2)) = [0] >= [0] = c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) = [5] >= [5] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [5] >= [0] = a__isNatList#(L) mark#(U11(X)) = [5] >= [5] = mark#(X) mark#(U21(X)) = [5] >= [5] = mark#(X) mark#(U31(X)) = [5] >= [5] = mark#(X) mark#(U41(X1,X2)) = [5] >= [2] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [5] >= [5] = mark#(X1) mark#(U42(X)) = [5] >= [5] = mark#(X) mark#(U51(X1,X2)) = [5] >= [0] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [5] >= [5] = mark#(X1) mark#(U52(X)) = [5] >= [5] = mark#(X) mark#(U61(X1,X2,X3)) = [5] >= [5] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [5] >= [5] = mark#(X1) mark#(U62(X1,X2)) = [5] >= [5] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [5] >= [5] = mark#(X1) mark#(cons(X1,X2)) = [5] >= [5] = mark#(X1) mark#(isNat(X)) = [5] >= [0] = a__isNat#(X) mark#(isNatIList(X)) = [5] >= [2] = a__isNatIList#(X) mark#(isNatList(X)) = [5] >= [0] = a__isNatList#(X) mark#(length(X)) = [5] >= [5] = a__length#(mark(X)) mark#(length(X)) = [5] >= [5] = mark#(X) mark#(s(X)) = [5] >= [5] = mark#(X) **** Step 1.b:6.b:1.b:2: WeightGap. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny} + Details: The weightgap principle applies using the following constant growth matrix-interpretation: We apply a matrix interpretation of kind constructor based matrix interpretation: The following argument positions are considered usable: uargs(a__U11) = {1}, uargs(a__U21) = {1}, uargs(a__U31) = {1}, uargs(a__U41) = {1}, uargs(a__U42) = {1}, uargs(a__U51) = {1}, uargs(a__U52) = {1}, uargs(a__U61) = {1}, uargs(a__U62) = {1}, uargs(a__length) = {1}, uargs(cons) = {1}, uargs(s) = {1}, uargs(a__U41#) = {1}, uargs(a__U51#) = {1}, uargs(a__U61#) = {1}, uargs(a__U62#) = {1}, uargs(a__length#) = {1}, uargs(c_12) = {1}, uargs(c_21) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1}, uargs(c_28) = {1,2} Following symbols are considered usable: all TcT has computed the following interpretation: p(0) = [0] p(U11) = [0] p(U21) = [0] p(U31) = [0] p(U41) = [0] p(U42) = [0] p(U51) = [0] p(U52) = [0] p(U61) = [0] p(U62) = [0] p(a__U11) = [1] x1 + [0] p(a__U21) = [1] x1 + [0] p(a__U31) = [1] x1 + [0] p(a__U41) = [1] x1 + [0] p(a__U42) = [1] x1 + [0] p(a__U51) = [1] x1 + [0] p(a__U52) = [1] x1 + [0] p(a__U61) = [1] x1 + [0] p(a__U62) = [1] x1 + [0] p(a__isNat) = [0] p(a__isNatIList) = [0] p(a__isNatList) = [0] p(a__length) = [1] x1 + [0] p(a__zeros) = [0] p(cons) = [1] x1 + [0] p(isNat) = [0] p(isNatIList) = [0] p(isNatList) = [0] p(length) = [0] p(mark) = [0] p(nil) = [0] p(s) = [1] x1 + [0] p(tt) = [0] p(zeros) = [0] p(a__U11#) = [0] p(a__U21#) = [0] p(a__U31#) = [0] p(a__U41#) = [1] x1 + [1] p(a__U42#) = [0] p(a__U51#) = [1] x1 + [0] p(a__U52#) = [0] p(a__U61#) = [1] x1 + [1] p(a__U62#) = [1] x1 + [1] p(a__isNat#) = [0] p(a__isNatIList#) = [1] p(a__isNatList#) = [1] p(a__length#) = [1] x1 + [1] p(a__zeros#) = [0] p(mark#) = [1] p(c_1) = [0] p(c_2) = [0] p(c_3) = [0] p(c_4) = [0] p(c_5) = [0] p(c_6) = [0] p(c_7) = [0] p(c_8) = [0] p(c_9) = [0] p(c_10) = [0] p(c_11) = [0] p(c_12) = [1] x1 + [0] p(c_13) = [0] p(c_14) = [0] p(c_15) = [0] p(c_16) = [0] p(c_17) = [0] p(c_18) = [0] p(c_19) = [0] p(c_20) = [0] p(c_21) = [1] x1 + [0] p(c_22) = [1] x1 + [0] p(c_23) = [1] x1 + [0] p(c_24) = [0] p(c_25) = [0] p(c_26) = [0] p(c_27) = [0] p(c_28) = [1] x1 + [1] x2 + [0] p(c_29) = [0] p(c_30) = [0] p(c_31) = [0] p(c_32) = [0] p(c_33) = [0] p(c_34) = [0] p(c_35) = [0] p(c_36) = [0] p(c_37) = [0] p(c_38) = [0] p(c_39) = [0] p(c_40) = [0] p(c_41) = [0] p(c_42) = [0] p(c_43) = [0] p(c_44) = [0] p(c_45) = [0] p(c_46) = [0] p(c_47) = [0] p(c_48) = [0] p(c_49) = [0] p(c_50) = [0] p(c_51) = [0] p(c_52) = [0] p(c_53) = [0] Following rules are strictly oriented: a__isNatList#(cons(V1,V2)) = [1] > [0] = c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [1] >= [1] = a__isNatIList#(V2) a__U51#(tt(),V2) = [0] >= [1] = c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) = [1] >= [1] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [1] >= [0] = a__isNat#(N) a__U62#(tt(),L) = [1] >= [1] = a__length#(mark(L)) a__U62#(tt(),L) = [1] >= [1] = mark#(L) a__isNat#(length(V1)) = [0] >= [1] = c_21(a__isNatList#(V1)) a__isNat#(s(V1)) = [0] >= [0] = c_22(a__isNat#(V1)) a__isNatIList#(V) = [1] >= [1] = c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) = [1] >= [1] = a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) = [1] >= [0] = a__isNat#(V1) a__length#(cons(N,L)) = [1] N + [1] >= [1] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1] N + [1] >= [1] = a__isNatList#(L) mark#(U11(X)) = [1] >= [1] = mark#(X) mark#(U21(X)) = [1] >= [1] = mark#(X) mark#(U31(X)) = [1] >= [1] = mark#(X) mark#(U41(X1,X2)) = [1] >= [1] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [1] >= [1] = mark#(X1) mark#(U42(X)) = [1] >= [1] = mark#(X) mark#(U51(X1,X2)) = [1] >= [0] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [1] >= [1] = mark#(X1) mark#(U52(X)) = [1] >= [1] = mark#(X) mark#(U61(X1,X2,X3)) = [1] >= [1] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [1] >= [1] = mark#(X1) mark#(U62(X1,X2)) = [1] >= [1] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [1] >= [1] = mark#(X1) mark#(cons(X1,X2)) = [1] >= [1] = mark#(X1) mark#(isNat(X)) = [1] >= [0] = a__isNat#(X) mark#(isNatIList(X)) = [1] >= [1] = a__isNatIList#(X) mark#(isNatList(X)) = [1] >= [1] = a__isNatList#(X) mark#(length(X)) = [1] >= [1] = a__length#(mark(X)) mark#(length(X)) = [1] >= [1] = mark#(X) mark#(s(X)) = [1] >= [1] = mark#(X) a__U11(X) = [1] X + [0] >= [0] = U11(X) a__U11(tt()) = [0] >= [0] = tt() a__U21(X) = [1] X + [0] >= [0] = U21(X) a__U21(tt()) = [0] >= [0] = tt() a__U31(X) = [1] X + [0] >= [0] = U31(X) a__U31(tt()) = [0] >= [0] = tt() a__U41(X1,X2) = [1] X1 + [0] >= [0] = U41(X1,X2) a__U41(tt(),V2) = [0] >= [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1] X + [0] >= [0] = U42(X) a__U42(tt()) = [0] >= [0] = tt() a__U51(X1,X2) = [1] X1 + [0] >= [0] = U51(X1,X2) a__U51(tt(),V2) = [0] >= [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1] X + [0] >= [0] = U52(X) a__U52(tt()) = [0] >= [0] = tt() a__U61(X1,X2,X3) = [1] X1 + [0] >= [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [0] >= [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1] X1 + [0] >= [0] = U62(X1,X2) a__U62(tt(),L) = [0] >= [0] = s(a__length(mark(L))) a__isNat(X) = [0] >= [0] = isNat(X) a__isNat(0()) = [0] >= [0] = tt() a__isNat(length(V1)) = [0] >= [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0] >= [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0] >= [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0] >= [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0] >= [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] >= [0] = tt() a__isNatList(X) = [0] >= [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0] >= [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] >= [0] = tt() a__length(X) = [1] X + [0] >= [0] = length(X) a__length(cons(N,L)) = [1] N + [0] >= [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] >= [0] = 0() a__zeros() = [0] >= [0] = cons(0(),zeros()) a__zeros() = [0] >= [0] = zeros() mark(0()) = [0] >= [0] = 0() mark(U11(X)) = [0] >= [0] = a__U11(mark(X)) mark(U21(X)) = [0] >= [0] = a__U21(mark(X)) mark(U31(X)) = [0] >= [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0] >= [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0] >= [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0] >= [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0] >= [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0] >= [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0] >= [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [0] >= [0] = cons(mark(X1),X2) mark(isNat(X)) = [0] >= [0] = a__isNat(X) mark(isNatIList(X)) = [0] >= [0] = a__isNatIList(X) mark(isNatList(X)) = [0] >= [0] = a__isNatList(X) mark(length(X)) = [0] >= [0] = a__length(mark(X)) mark(nil()) = [0] >= [0] = nil() mark(s(X)) = [0] >= [0] = s(mark(X)) mark(tt()) = [0] >= [0] = tt() mark(zeros()) = [0] >= [0] = a__zeros() Further, it can be verified that all rules not oriented are covered by the weightgap condition. **** Step 1.b:6.b:1.b:3: MI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_12) = {1}, uargs(c_21) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1}, uargs(c_28) = {1,2} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [0 0] x_1 + [0] [0 1] [1] p(U21) = [0 0] x_1 + [0] [0 1] [0] p(U31) = [0 0] x_1 + [0] [0 1] [0] p(U41) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(U42) = [0 0] x_1 + [0] [0 1] [0] p(U51) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 0] [0] p(U52) = [0 0] x_1 + [0] [0 1] [0] p(U61) = [0 0] x_1 + [1 0] x_2 + [0 0] x_3 + [1] [0 1] [0 1] [1 0] [0] p(U62) = [0 0] x_1 + [1 0] x_2 + [1] [1 1] [0 1] [0] p(a__U11) = [0 0] x_1 + [0] [0 1] [1] p(a__U21) = [0 0] x_1 + [0] [0 1] [0] p(a__U31) = [0 0] x_1 + [0] [0 1] [0] p(a__U41) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 1] [0] p(a__U42) = [0 0] x_1 + [0] [0 1] [0] p(a__U51) = [0 0] x_1 + [0 0] x_2 + [0] [0 1] [1 0] [0] p(a__U52) = [0 0] x_1 + [0] [0 1] [0] p(a__U61) = [0 0] x_1 + [1 0] x_2 + [0 0] x_3 + [1] [0 1] [0 1] [1 0] [0] p(a__U62) = [0 0] x_1 + [1 0] x_2 + [1] [1 1] [0 1] [0] p(a__isNat) = [0 0] x_1 + [0] [1 0] [1] p(a__isNatIList) = [1 0] x_1 + [0] [1 1] [1] p(a__isNatList) = [0 0] x_1 + [0] [1 0] [1] p(a__length) = [1 0] x_1 + [1] [0 1] [1] p(a__zeros) = [0] [1] p(cons) = [1 0] x_1 + [1 0] x_2 + [0] [1 1] [1 1] [0] p(isNat) = [0 0] x_1 + [0] [1 0] [1] p(isNatIList) = [1 0] x_1 + [0] [1 1] [1] p(isNatList) = [0 0] x_1 + [0] [1 0] [1] p(length) = [1 0] x_1 + [1] [0 1] [1] p(mark) = [1 0] x_1 + [0] [0 1] [0] p(nil) = [0] [1] p(s) = [1 0] x_1 + [0] [0 1] [0] p(tt) = [0] [1] p(zeros) = [0] [1] p(a__U11#) = [0 0] x_1 + [0] [1 0] [1] p(a__U21#) = [0 0] x_1 + [2] [2 0] [0] p(a__U31#) = [2] [2] p(a__U41#) = [1 1] x_2 + [1] [0 0] [0] p(a__U42#) = [0] [2] p(a__U51#) = [0 0] x_1 + [1 0] x_2 + [0] [0 1] [1 0] [0] p(a__U52#) = [0 1] x_1 + [0] [1 0] [0] p(a__U61#) = [0 1] x_1 + [0 1] x_2 + [1 0] x_3 + [0] [0 0] [0 1] [1 0] [0] p(a__U62#) = [0 1] x_2 + [1] [0 1] [0] p(a__isNat#) = [1 0] x_1 + [0] [0 0] [0] p(a__isNatIList#) = [1 1] x_1 + [1] [0 0] [0] p(a__isNatList#) = [1 0] x_1 + [0] [0 0] [0] p(a__length#) = [0 1] x_1 + [1] [0 1] [0] p(a__zeros#) = [0] [0] p(mark#) = [0 1] x_1 + [1] [0 1] [0] p(c_1) = [0] [0] p(c_2) = [0] [2] p(c_3) = [1] [0] p(c_4) = [0] [0] p(c_5) = [0] [0] p(c_6) = [2] [0] p(c_7) = [2] [2] p(c_8) = [0 0] x_1 + [0] [0 1] [1] p(c_9) = [0] [0] p(c_10) = [0] [0] p(c_11) = [1] [0] p(c_12) = [1 2] x_1 + [0] [1 1] [0] p(c_13) = [0] [0] p(c_14) = [1] [2] p(c_15) = [2] [0] p(c_16) = [2 0] x_1 + [2 0] x_2 + [2] [1 1] [0 1] [0] p(c_17) = [0] [2] p(c_18) = [0 2] x_1 + [0 0] x_2 + [0] [0 2] [0 1] [2] p(c_19) = [0] [0] p(c_20) = [1] [0] p(c_21) = [1 0] x_1 + [0] [0 1] [0] p(c_22) = [1 0] x_1 + [0] [0 0] [0] p(c_23) = [1 0] x_1 + [1] [0 0] [0] p(c_24) = [0] [1] p(c_25) = [2 2] x_2 + [0] [1 0] [1] p(c_26) = [1] [0] p(c_27) = [0] [1] p(c_28) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 0] [0] p(c_29) = [1] [2] p(c_30) = [1] [2] p(c_31) = [2 1] x_2 + [2] [0 2] [2] p(c_32) = [0] [0] p(c_33) = [0] [2] p(c_34) = [2] [0] p(c_35) = [2] [2] p(c_36) = [0 0] x_1 + [0] [0 1] [0] p(c_37) = [2] [1] p(c_38) = [0 0] x_1 + [2] [1 0] [2] p(c_39) = [0] [0] p(c_40) = [1 1] x_1 + [0] [0 0] [2] p(c_41) = [1] [0] p(c_42) = [2] [0] p(c_43) = [0] [2] p(c_44) = [2 1] x_1 + [2 0] x_2 + [0] [1 2] [0 0] [2] p(c_45) = [0] [2] p(c_46) = [2] [1] p(c_47) = [0 0] x_1 + [1] [1 0] [0] p(c_48) = [0 0] x_1 + [0] [2 0] [2] p(c_49) = [0 0] x_1 + [0 0] x_2 + [0] [2 0] [1 0] [0] p(c_50) = [0] [2] p(c_51) = [2] [0] p(c_52) = [0] [0] p(c_53) = [0 2] x_1 + [0] [0 2] [1] Following rules are strictly oriented: a__isNat#(length(V1)) = [1 0] V1 + [1] [0 0] [0] > [1 0] V1 + [0] [0 0] [0] = c_21(a__isNatList#(V1)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [1 1] V2 + [1] [0 0] [0] >= [1 1] V2 + [1] [0 0] [0] = a__isNatIList#(V2) a__U51#(tt(),V2) = [1 0] V2 + [0] [1 0] [1] >= [1 0] V2 + [0] [1 0] [0] = c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) = [0 1] L + [1 0] N + [1] [0 1] [1 0] [0] >= [0 1] L + [1] [0 1] [0] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [0 1] L + [1 0] N + [1] [0 1] [1 0] [0] >= [1 0] N + [0] [0 0] [0] = a__isNat#(N) a__U62#(tt(),L) = [0 1] L + [1] [0 1] [0] >= [0 1] L + [1] [0 1] [0] = a__length#(mark(L)) a__U62#(tt(),L) = [0 1] L + [1] [0 1] [0] >= [0 1] L + [1] [0 1] [0] = mark#(L) a__isNat#(s(V1)) = [1 0] V1 + [0] [0 0] [0] >= [1 0] V1 + [0] [0 0] [0] = c_22(a__isNat#(V1)) a__isNatIList#(V) = [1 1] V + [1] [0 0] [0] >= [1 0] V + [1] [0 0] [0] = c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) = [2 1] V1 + [2 1] V2 + [1] [0 0] [0 0] [0] >= [1 1] V2 + [1] [0 0] [0] = a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) = [2 1] V1 + [2 1] V2 + [1] [0 0] [0 0] [0] >= [1 0] V1 + [0] [0 0] [0] = a__isNat#(V1) a__isNatList#(cons(V1,V2)) = [1 0] V1 + [1 0] V2 + [0] [0 0] [0 0] [0] >= [1 0] V1 + [1 0] V2 + [0] [0 0] [0 0] [0] = c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) = [1 1] L + [1 1] N + [1] [1 1] [1 1] [0] >= [1 1] L + [1 0] N + [1] [0 1] [1 0] [0] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1 1] L + [1 1] N + [1] [1 1] [1 1] [0] >= [1 0] L + [0] [0 0] [0] = a__isNatList#(L) mark#(U11(X)) = [0 1] X + [2] [0 1] [1] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(U21(X)) = [0 1] X + [1] [0 1] [0] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(U31(X)) = [0 1] X + [1] [0 1] [0] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(U41(X1,X2)) = [0 1] X1 + [1 1] X2 + [1] [0 1] [1 1] [0] >= [1 1] X2 + [1] [0 0] [0] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [0 1] X1 + [1 1] X2 + [1] [0 1] [1 1] [0] >= [0 1] X1 + [1] [0 1] [0] = mark#(X1) mark#(U42(X)) = [0 1] X + [1] [0 1] [0] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(U51(X1,X2)) = [0 1] X1 + [1 0] X2 + [1] [0 1] [1 0] [0] >= [0 0] X1 + [1 0] X2 + [0] [0 1] [1 0] [0] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [0 1] X1 + [1 0] X2 + [1] [0 1] [1 0] [0] >= [0 1] X1 + [1] [0 1] [0] = mark#(X1) mark#(U52(X)) = [0 1] X + [1] [0 1] [0] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(U61(X1,X2,X3)) = [0 1] X1 + [0 1] X2 + [1 0] X3 + [1] [0 1] [0 1] [1 0] [0] >= [0 1] X1 + [0 1] X2 + [1 0] X3 + [0] [0 0] [0 1] [1 0] [0] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [0 1] X1 + [0 1] X2 + [1 0] X3 + [1] [0 1] [0 1] [1 0] [0] >= [0 1] X1 + [1] [0 1] [0] = mark#(X1) mark#(U62(X1,X2)) = [1 1] X1 + [0 1] X2 + [1] [1 1] [0 1] [0] >= [0 1] X2 + [1] [0 1] [0] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [1 1] X1 + [0 1] X2 + [1] [1 1] [0 1] [0] >= [0 1] X1 + [1] [0 1] [0] = mark#(X1) mark#(cons(X1,X2)) = [1 1] X1 + [1 1] X2 + [1] [1 1] [1 1] [0] >= [0 1] X1 + [1] [0 1] [0] = mark#(X1) mark#(isNat(X)) = [1 0] X + [2] [1 0] [1] >= [1 0] X + [0] [0 0] [0] = a__isNat#(X) mark#(isNatIList(X)) = [1 1] X + [2] [1 1] [1] >= [1 1] X + [1] [0 0] [0] = a__isNatIList#(X) mark#(isNatList(X)) = [1 0] X + [2] [1 0] [1] >= [1 0] X + [0] [0 0] [0] = a__isNatList#(X) mark#(length(X)) = [0 1] X + [2] [0 1] [1] >= [0 1] X + [1] [0 1] [0] = a__length#(mark(X)) mark#(length(X)) = [0 1] X + [2] [0 1] [1] >= [0 1] X + [1] [0 1] [0] = mark#(X) mark#(s(X)) = [0 1] X + [1] [0 1] [0] >= [0 1] X + [1] [0 1] [0] = mark#(X) a__U11(X) = [0 0] X + [0] [0 1] [1] >= [0 0] X + [0] [0 1] [1] = U11(X) a__U11(tt()) = [0] [2] >= [0] [1] = tt() a__U21(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [0] [1] >= [0] [1] = tt() a__U31(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U31(X) a__U31(tt()) = [0] [1] >= [0] [1] = tt() a__U41(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = U41(X1,X2) a__U41(tt(),V2) = [0 0] V2 + [0] [1 1] [1] >= [0 0] V2 + [0] [1 1] [1] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U42(X) a__U42(tt()) = [0] [1] >= [0] [1] = tt() a__U51(X1,X2) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 0] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0 0] V2 + [0] [1 0] [1] >= [0 0] V2 + [0] [1 0] [1] = a__U52(a__isNatList(V2)) a__U52(X) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [0] [1] >= [0] [1] = tt() a__U61(X1,X2,X3) = [0 0] X1 + [1 0] X2 + [0 0] X3 + [1] [0 1] [0 1] [1 0] [0] >= [0 0] X1 + [1 0] X2 + [0 0] X3 + [1] [0 1] [0 1] [1 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 0] L + [0 0] N + [1] [0 1] [1 0] [1] >= [1 0] L + [0 0] N + [1] [0 1] [1 0] [1] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0] X1 + [1 0] X2 + [1] [1 1] [0 1] [0] >= [0 0] X1 + [1 0] X2 + [1] [1 1] [0 1] [0] = U62(X1,X2) a__U62(tt(),L) = [1 0] L + [1] [0 1] [1] >= [1 0] L + [1] [0 1] [1] = s(a__length(mark(L))) a__isNat(X) = [0 0] X + [0] [1 0] [1] >= [0 0] X + [0] [1 0] [1] = isNat(X) a__isNat(0()) = [0] [1] >= [0] [1] = tt() a__isNat(length(V1)) = [0 0] V1 + [0] [1 0] [2] >= [0 0] V1 + [0] [1 0] [2] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0 0] V1 + [0] [1 0] [1] >= [0 0] V1 + [0] [1 0] [1] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 0] V + [0] [1 1] [1] >= [0 0] V + [0] [1 0] [1] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 0] X + [0] [1 1] [1] >= [1 0] X + [0] [1 1] [1] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 0] V1 + [1 0] V2 + [0] [2 1] [2 1] [1] >= [0 0] V1 + [0 0] V2 + [0] [1 0] [1 1] [1] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [0] [2] >= [0] [1] = tt() a__isNatList(X) = [0 0] X + [0] [1 0] [1] >= [0 0] X + [0] [1 0] [1] = isNatList(X) a__isNatList(cons(V1,V2)) = [0 0] V1 + [0 0] V2 + [0] [1 0] [1 0] [1] >= [0 0] V1 + [0 0] V2 + [0] [1 0] [1 0] [1] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [0] [1] >= [0] [1] = tt() a__length(X) = [1 0] X + [1] [0 1] [1] >= [1 0] X + [1] [0 1] [1] = length(X) a__length(cons(N,L)) = [1 0] L + [1 0] N + [1] [1 1] [1 1] [1] >= [1 0] L + [0 0] N + [1] [1 1] [1 0] [1] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [1] [2] >= [0] [0] = 0() a__zeros() = [0] [1] >= [0] [1] = cons(0(),zeros()) a__zeros() = [0] [1] >= [0] [1] = zeros() mark(0()) = [0] [0] >= [0] [0] = 0() mark(U11(X)) = [0 0] X + [0] [0 1] [1] >= [0 0] X + [0] [0 1] [1] = a__U11(mark(X)) mark(U21(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 1] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0] X1 + [0 0] X2 + [0] [0 1] [1 0] [0] >= [0 0] X1 + [0 0] X2 + [0] [0 1] [1 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [0 0] X + [0] [0 1] [0] >= [0 0] X + [0] [0 1] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [0 0] X1 + [1 0] X2 + [0 0] X3 + [1] [0 1] [0 1] [1 0] [0] >= [0 0] X1 + [1 0] X2 + [0 0] X3 + [1] [0 1] [0 1] [1 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0] X1 + [1 0] X2 + [1] [1 1] [0 1] [0] >= [0 0] X1 + [1 0] X2 + [1] [1 1] [0 1] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 0] X1 + [1 0] X2 + [0] [1 1] [1 1] [0] >= [1 0] X1 + [1 0] X2 + [0] [1 1] [1 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [0 0] X + [0] [1 0] [1] >= [0 0] X + [0] [1 0] [1] = a__isNat(X) mark(isNatIList(X)) = [1 0] X + [0] [1 1] [1] >= [1 0] X + [0] [1 1] [1] = a__isNatIList(X) mark(isNatList(X)) = [0 0] X + [0] [1 0] [1] >= [0 0] X + [0] [1 0] [1] = a__isNatList(X) mark(length(X)) = [1 0] X + [1] [0 1] [1] >= [1 0] X + [1] [0 1] [1] = a__length(mark(X)) mark(nil()) = [0] [1] >= [0] [1] = nil() mark(s(X)) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = s(mark(X)) mark(tt()) = [0] [1] >= [0] [1] = tt() mark(zeros()) = [0] [1] >= [0] [1] = a__zeros() **** Step 1.b:6.b:1.b:4: MI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_12) = {1}, uargs(c_21) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1}, uargs(c_28) = {1,2} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] p(U11) = [1 0] x_1 + [0] [0 1] [0] p(U21) = [1 0] x_1 + [0] [0 1] [0] p(U31) = [1 0] x_1 + [0] [0 1] [0] p(U41) = [1 0] x_1 + [0 1] x_2 + [2] [0 1] [0 0] [0] p(U42) = [1 0] x_1 + [0] [0 1] [0] p(U51) = [1 0] x_1 + [0 1] x_2 + [0] [0 1] [0 0] [0] p(U52) = [1 0] x_1 + [0] [0 1] [0] p(U61) = [1 1] x_1 + [1 2] x_2 + [0 2] x_3 + [0] [0 1] [0 1] [0 1] [3] p(U62) = [1 0] x_1 + [1 2] x_2 + [0] [0 1] [0 1] [3] p(a__U11) = [1 0] x_1 + [0] [0 1] [0] p(a__U21) = [1 0] x_1 + [0] [0 1] [0] p(a__U31) = [1 0] x_1 + [0] [0 1] [0] p(a__U41) = [1 0] x_1 + [0 1] x_2 + [2] [0 1] [0 0] [0] p(a__U42) = [1 0] x_1 + [0] [0 1] [0] p(a__U51) = [1 0] x_1 + [0 1] x_2 + [0] [0 1] [0 0] [0] p(a__U52) = [1 0] x_1 + [0] [0 1] [0] p(a__U61) = [1 1] x_1 + [1 3] x_2 + [0 2] x_3 + [0] [0 1] [0 1] [0 1] [3] p(a__U62) = [1 0] x_1 + [1 3] x_2 + [0] [0 1] [0 1] [3] p(a__isNat) = [0 1] x_1 + [2] [0 0] [0] p(a__isNatIList) = [0 1] x_1 + [3] [0 0] [0] p(a__isNatList) = [0 1] x_1 + [2] [0 0] [0] p(a__length) = [1 2] x_1 + [0] [0 1] [2] p(a__zeros) = [0] [1] p(cons) = [1 0] x_1 + [1 2] x_2 + [0] [0 1] [0 1] [1] p(isNat) = [0 1] x_1 + [2] [0 0] [0] p(isNatIList) = [0 1] x_1 + [3] [0 0] [0] p(isNatList) = [0 1] x_1 + [2] [0 0] [0] p(length) = [1 2] x_1 + [0] [0 1] [2] p(mark) = [1 1] x_1 + [0] [0 1] [1] p(nil) = [0] [0] p(s) = [1 0] x_1 + [0] [0 1] [0] p(tt) = [2] [0] p(zeros) = [0] [0] p(a__U11#) = [1 0] x_1 + [1] [0 0] [0] p(a__U21#) = [0] [2] p(a__U31#) = [0 1] x_1 + [2] [0 0] [2] p(a__U41#) = [0 1] x_2 + [1] [0 0] [0] p(a__U42#) = [0] [0] p(a__U51#) = [0 1] x_2 + [1] [0 0] [0] p(a__U52#) = [0 0] x_1 + [2] [1 1] [0] p(a__U61#) = [2 3] x_2 + [0 1] x_3 + [1] [0 0] [0 0] [0] p(a__U62#) = [2 3] x_2 + [1] [0 0] [0] p(a__isNat#) = [0 1] x_1 + [0] [0 0] [0] p(a__isNatIList#) = [0 1] x_1 + [0] [0 0] [0] p(a__isNatList#) = [0 1] x_1 + [0] [0 0] [0] p(a__length#) = [2 1] x_1 + [0] [0 0] [0] p(a__zeros#) = [0] [2] p(mark#) = [2 0] x_1 + [1] [0 0] [0] p(c_1) = [0] [0] p(c_2) = [0] [1] p(c_3) = [2] [0] p(c_4) = [2] [2] p(c_5) = [0] [0] p(c_6) = [2] [2] p(c_7) = [0] [1] p(c_8) = [1] [0] p(c_9) = [2] [2] p(c_10) = [0] [1] p(c_11) = [1] [0] p(c_12) = [1 1] x_1 + [0] [0 0] [0] p(c_13) = [1] [2] p(c_14) = [2] [0] p(c_15) = [0] [0] p(c_16) = [2 1] x_1 + [2] [0 0] [0] p(c_17) = [0] [2] p(c_18) = [0 0] x_1 + [2 0] x_2 + [0] [0 2] [0 0] [0] p(c_19) = [1] [0] p(c_20) = [0] [2] p(c_21) = [1 0] x_1 + [2] [0 1] [0] p(c_22) = [1 1] x_1 + [0] [0 1] [0] p(c_23) = [1 0] x_1 + [0] [0 0] [0] p(c_24) = [2] [2] p(c_25) = [0] [0] p(c_26) = [1] [0] p(c_27) = [1] [0] p(c_28) = [1 0] x_1 + [1 0] x_2 + [0] [0 0] [0 1] [0] p(c_29) = [0] [0] p(c_30) = [2] [0] p(c_31) = [1 0] x_1 + [0] [2 1] [0] p(c_32) = [2] [1] p(c_33) = [1] [0] p(c_34) = [0] [1] p(c_35) = [2] [0] p(c_36) = [1 0] x_1 + [0] [0 1] [2] p(c_37) = [1] [0] p(c_38) = [0] [0] p(c_39) = [2 0] x_1 + [0 2] x_2 + [0] [0 0] [2 2] [2] p(c_40) = [0] [0] p(c_41) = [0 1] x_1 + [0 0] x_2 + [0] [2 2] [1 0] [1] p(c_42) = [0 1] x_1 + [1] [0 2] [1] p(c_43) = [0 0] x_2 + [0] [0 1] [0] p(c_44) = [0 2] x_1 + [0 2] x_2 + [0] [0 0] [0 0] [0] p(c_45) = [2] [0] p(c_46) = [0 0] x_1 + [1] [0 1] [1] p(c_47) = [1] [0] p(c_48) = [0 0] x_1 + [1] [2 0] [0] p(c_49) = [1 1] x_1 + [2 0] x_2 + [0] [2 1] [0 0] [2] p(c_50) = [1] [2] p(c_51) = [1 0] x_1 + [0] [1 0] [0] p(c_52) = [1] [0] p(c_53) = [0 2] x_1 + [0] [1 0] [1] Following rules are strictly oriented: a__U51#(tt(),V2) = [0 1] V2 + [1] [0 0] [0] > [0 1] V2 + [0] [0 0] [0] = c_12(a__isNatList#(V2)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [0 1] V2 + [1] [0 0] [0] >= [0 1] V2 + [0] [0 0] [0] = a__isNatIList#(V2) a__U61#(tt(),L,N) = [2 3] L + [0 1] N + [1] [0 0] [0 0] [0] >= [2 3] L + [1] [0 0] [0] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [2 3] L + [0 1] N + [1] [0 0] [0 0] [0] >= [0 1] N + [0] [0 0] [0] = a__isNat#(N) a__U62#(tt(),L) = [2 3] L + [1] [0 0] [0] >= [2 3] L + [1] [0 0] [0] = a__length#(mark(L)) a__U62#(tt(),L) = [2 3] L + [1] [0 0] [0] >= [2 0] L + [1] [0 0] [0] = mark#(L) a__isNat#(length(V1)) = [0 1] V1 + [2] [0 0] [0] >= [0 1] V1 + [2] [0 0] [0] = c_21(a__isNatList#(V1)) a__isNat#(s(V1)) = [0 1] V1 + [0] [0 0] [0] >= [0 1] V1 + [0] [0 0] [0] = c_22(a__isNat#(V1)) a__isNatIList#(V) = [0 1] V + [0] [0 0] [0] >= [0 1] V + [0] [0 0] [0] = c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) = [0 1] V1 + [0 1] V2 + [1] [0 0] [0 0] [0] >= [0 1] V2 + [1] [0 0] [0] = a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) = [0 1] V1 + [0 1] V2 + [1] [0 0] [0 0] [0] >= [0 1] V1 + [0] [0 0] [0] = a__isNat#(V1) a__isNatList#(cons(V1,V2)) = [0 1] V1 + [0 1] V2 + [1] [0 0] [0 0] [0] >= [0 1] V1 + [0 1] V2 + [1] [0 0] [0 0] [0] = c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) = [2 5] L + [2 1] N + [1] [0 0] [0 0] [0] >= [2 3] L + [0 1] N + [1] [0 0] [0 0] [0] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [2 5] L + [2 1] N + [1] [0 0] [0 0] [0] >= [0 1] L + [0] [0 0] [0] = a__isNatList#(L) mark#(U11(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(U21(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(U31(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(U41(X1,X2)) = [2 0] X1 + [0 2] X2 + [5] [0 0] [0 0] [0] >= [0 1] X2 + [1] [0 0] [0] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [2 0] X1 + [0 2] X2 + [5] [0 0] [0 0] [0] >= [2 0] X1 + [1] [0 0] [0] = mark#(X1) mark#(U42(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(U51(X1,X2)) = [2 0] X1 + [0 2] X2 + [1] [0 0] [0 0] [0] >= [0 1] X2 + [1] [0 0] [0] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [2 0] X1 + [0 2] X2 + [1] [0 0] [0 0] [0] >= [2 0] X1 + [1] [0 0] [0] = mark#(X1) mark#(U52(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(U61(X1,X2,X3)) = [2 2] X1 + [2 4] X2 + [0 4] X3 + [1] [0 0] [0 0] [0 0] [0] >= [2 3] X2 + [0 1] X3 + [1] [0 0] [0 0] [0] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [2 2] X1 + [2 4] X2 + [0 4] X3 + [1] [0 0] [0 0] [0 0] [0] >= [2 0] X1 + [1] [0 0] [0] = mark#(X1) mark#(U62(X1,X2)) = [2 0] X1 + [2 4] X2 + [1] [0 0] [0 0] [0] >= [2 3] X2 + [1] [0 0] [0] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [2 0] X1 + [2 4] X2 + [1] [0 0] [0 0] [0] >= [2 0] X1 + [1] [0 0] [0] = mark#(X1) mark#(cons(X1,X2)) = [2 0] X1 + [2 4] X2 + [1] [0 0] [0 0] [0] >= [2 0] X1 + [1] [0 0] [0] = mark#(X1) mark#(isNat(X)) = [0 2] X + [5] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = a__isNat#(X) mark#(isNatIList(X)) = [0 2] X + [7] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = a__isNatIList#(X) mark#(isNatList(X)) = [0 2] X + [5] [0 0] [0] >= [0 1] X + [0] [0 0] [0] = a__isNatList#(X) mark#(length(X)) = [2 4] X + [1] [0 0] [0] >= [2 3] X + [1] [0 0] [0] = a__length#(mark(X)) mark#(length(X)) = [2 4] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) mark#(s(X)) = [2 0] X + [1] [0 0] [0] >= [2 0] X + [1] [0 0] [0] = mark#(X) a__U11(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U11(X) a__U11(tt()) = [2] [0] >= [2] [0] = tt() a__U21(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U21(X) a__U21(tt()) = [2] [0] >= [2] [0] = tt() a__U31(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U31(X) a__U31(tt()) = [2] [0] >= [2] [0] = tt() a__U41(X1,X2) = [1 0] X1 + [0 1] X2 + [2] [0 1] [0 0] [0] >= [1 0] X1 + [0 1] X2 + [2] [0 1] [0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [0 1] V2 + [4] [0 0] [0] >= [0 1] V2 + [3] [0 0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U42(X) a__U42(tt()) = [2] [0] >= [2] [0] = tt() a__U51(X1,X2) = [1 0] X1 + [0 1] X2 + [0] [0 1] [0 0] [0] >= [1 0] X1 + [0 1] X2 + [0] [0 1] [0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0 1] V2 + [2] [0 0] [0] >= [0 1] V2 + [2] [0 0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0] X + [0] [0 1] [0] >= [1 0] X + [0] [0 1] [0] = U52(X) a__U52(tt()) = [2] [0] >= [2] [0] = tt() a__U61(X1,X2,X3) = [1 1] X1 + [1 3] X2 + [0 2] X3 + [0] [0 1] [0 1] [0 1] [3] >= [1 1] X1 + [1 2] X2 + [0 2] X3 + [0] [0 1] [0 1] [0 1] [3] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 3] L + [0 2] N + [2] [0 1] [0 1] [3] >= [1 3] L + [0 1] N + [2] [0 1] [0 0] [3] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [1 0] X1 + [1 3] X2 + [0] [0 1] [0 1] [3] >= [1 0] X1 + [1 2] X2 + [0] [0 1] [0 1] [3] = U62(X1,X2) a__U62(tt(),L) = [1 3] L + [2] [0 1] [3] >= [1 3] L + [2] [0 1] [3] = s(a__length(mark(L))) a__isNat(X) = [0 1] X + [2] [0 0] [0] >= [0 1] X + [2] [0 0] [0] = isNat(X) a__isNat(0()) = [2] [0] >= [2] [0] = tt() a__isNat(length(V1)) = [0 1] V1 + [4] [0 0] [0] >= [0 1] V1 + [2] [0 0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [0 1] V1 + [2] [0 0] [0] >= [0 1] V1 + [2] [0 0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [0 1] V + [3] [0 0] [0] >= [0 1] V + [2] [0 0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [0 1] X + [3] [0 0] [0] >= [0 1] X + [3] [0 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [0 1] V1 + [0 1] V2 + [4] [0 0] [0 0] [0] >= [0 1] V1 + [0 1] V2 + [4] [0 0] [0 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [3] [0] >= [2] [0] = tt() a__isNatList(X) = [0 1] X + [2] [0 0] [0] >= [0 1] X + [2] [0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0 1] V1 + [0 1] V2 + [3] [0 0] [0 0] [0] >= [0 1] V1 + [0 1] V2 + [2] [0 0] [0 0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [2] [0] >= [2] [0] = tt() a__length(X) = [1 2] X + [0] [0 1] [2] >= [1 2] X + [0] [0 1] [2] = length(X) a__length(cons(N,L)) = [1 4] L + [1 2] N + [2] [0 1] [0 1] [3] >= [1 4] L + [0 2] N + [2] [0 1] [0 1] [3] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [2] >= [0] [0] = 0() a__zeros() = [0] [1] >= [0] [1] = cons(0(),zeros()) a__zeros() = [0] [1] >= [0] [0] = zeros() mark(0()) = [0] [1] >= [0] [0] = 0() mark(U11(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = a__U11(mark(X)) mark(U21(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = a__U21(mark(X)) mark(U31(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = a__U31(mark(X)) mark(U41(X1,X2)) = [1 1] X1 + [0 1] X2 + [2] [0 1] [0 0] [1] >= [1 1] X1 + [0 1] X2 + [2] [0 1] [0 0] [1] = a__U41(mark(X1),X2) mark(U42(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = a__U42(mark(X)) mark(U51(X1,X2)) = [1 1] X1 + [0 1] X2 + [0] [0 1] [0 0] [1] >= [1 1] X1 + [0 1] X2 + [0] [0 1] [0 0] [1] = a__U51(mark(X1),X2) mark(U52(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [1 2] X1 + [1 3] X2 + [0 3] X3 + [3] [0 1] [0 1] [0 1] [4] >= [1 2] X1 + [1 3] X2 + [0 2] X3 + [1] [0 1] [0 1] [0 1] [4] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [1 1] X1 + [1 3] X2 + [3] [0 1] [0 1] [4] >= [1 1] X1 + [1 3] X2 + [0] [0 1] [0 1] [4] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 1] X1 + [1 3] X2 + [1] [0 1] [0 1] [2] >= [1 1] X1 + [1 2] X2 + [0] [0 1] [0 1] [2] = cons(mark(X1),X2) mark(isNat(X)) = [0 1] X + [2] [0 0] [1] >= [0 1] X + [2] [0 0] [0] = a__isNat(X) mark(isNatIList(X)) = [0 1] X + [3] [0 0] [1] >= [0 1] X + [3] [0 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0 1] X + [2] [0 0] [1] >= [0 1] X + [2] [0 0] [0] = a__isNatList(X) mark(length(X)) = [1 3] X + [2] [0 1] [3] >= [1 3] X + [2] [0 1] [3] = a__length(mark(X)) mark(nil()) = [0] [1] >= [0] [0] = nil() mark(s(X)) = [1 1] X + [0] [0 1] [1] >= [1 1] X + [0] [0 1] [1] = s(mark(X)) mark(tt()) = [2] [1] >= [2] [0] = tt() mark(zeros()) = [0] [1] >= [0] [1] = a__zeros() **** Step 1.b:6.b:1.b:5: MI. WORST_CASE(?,O(n^3)) + Considered Problem: - Strict DPs: a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: MI {miKind = Automaton Nothing, miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules} + Details: We apply a matrix interpretation of kind Automaton Nothing: The following argument positions are considered usable: uargs(c_12) = {1}, uargs(c_21) = {1}, uargs(c_22) = {1}, uargs(c_23) = {1}, uargs(c_28) = {1,2} Following symbols are considered usable: {a__U11,a__U21,a__U31,a__U41,a__U42,a__U51,a__U52,a__U61,a__U62,a__isNat,a__isNatIList,a__isNatList ,a__length,a__zeros,mark,a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52#,a__U61#,a__U62#,a__isNat# ,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} TcT has computed the following interpretation: p(0) = [0] [0] [0] p(U11) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U21) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U31) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U41) = [0 0 0] [1 0 0] [1] [0 1 0] x_1 + [1 1 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(U51) = [0 0 0] [0 0 1] [0] [0 1 0] x_1 + [1 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(U61) = [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] x_1 + [0 1 0] x_2 + [1 0 0] x_3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] p(U62) = [0 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 1 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(a__U11) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U21) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U31) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 1 0] [0] p(a__U41) = [0 0 0] [1 0 0] [1] [0 1 0] x_1 + [1 1 0] x_2 + [0] [0 1 0] [1 1 0] [0] p(a__U42) = [0 0 0] [1] [0 1 0] x_1 + [0] [0 1 0] [0] p(a__U51) = [0 0 0] [0 0 1] [0] [0 1 0] x_1 + [1 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(a__U52) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 0 0] [0] p(a__U61) = [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] x_1 + [0 1 0] x_2 + [1 0 0] x_3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] p(a__U62) = [0 0 0] [1 0 0] [1] [0 1 0] x_1 + [0 1 0] x_2 + [1] [0 0 0] [0 0 0] [0] p(a__isNat) = [1 0 0] [1] [1 0 0] x_1 + [0] [0 0 0] [0] p(a__isNatIList) = [1 0 0] [1] [1 1 0] x_1 + [0] [1 1 0] [0] p(a__isNatList) = [0 0 1] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(a__length) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [0] p(a__zeros) = [0] [0] [0] p(cons) = [1 0 0] [1 0 1] [0] [1 1 0] x_1 + [1 1 1] x_2 + [0] [0 0 0] [0 0 1] [0] p(isNat) = [1 0 0] [1] [1 0 0] x_1 + [0] [0 0 0] [0] p(isNatIList) = [1 0 0] [1] [1 1 0] x_1 + [0] [0 0 0] [0] p(isNatList) = [0 0 1] [0] [1 0 0] x_1 + [0] [0 0 0] [0] p(length) = [1 0 0] [0] [0 1 0] x_1 + [1] [0 0 0] [0] p(mark) = [1 0 0] [0] [0 1 0] x_1 + [0] [0 1 0] [0] p(nil) = [0] [1] [1] p(s) = [1 0 0] [1] [0 1 0] x_1 + [0] [0 0 0] [0] p(tt) = [1] [0] [0] p(zeros) = [0] [0] [0] p(a__U11#) = [0] [0] [0] p(a__U21#) = [0] [0] [0] p(a__U31#) = [0] [0] [0] p(a__U41#) = [1 0 0] [0] [1 1 0] x_2 + [0] [0 0 0] [1] p(a__U42#) = [0] [0] [0] p(a__U51#) = [1 0 0] [0] [1 0 0] x_2 + [0] [0 0 0] [0] p(a__U52#) = [0] [0] [0] p(a__U61#) = [0 1 0] [0 1 0] [1 0 0] [0] [1 0 0] x_1 + [0 1 0] x_2 + [1 0 0] x_3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] p(a__U62#) = [0 0 0] [0 1 0] [0] [0 1 0] x_1 + [0 1 0] x_2 + [1] [0 0 0] [0 0 0] [1] p(a__isNat#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(a__isNatIList#) = [1 0 0] [0] [1 1 0] x_1 + [0] [0 0 0] [1] p(a__isNatList#) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [1] p(a__length#) = [0 1 0] [0] [0 1 0] x_1 + [0] [0 0 0] [1] p(a__zeros#) = [0] [0] [0] p(mark#) = [0 1 0] [0] [0 1 0] x_1 + [1] [0 0 0] [1] p(c_1) = [0] [0] [0] p(c_2) = [0] [0] [0] p(c_3) = [0] [0] [0] p(c_4) = [0] [0] [0] p(c_5) = [0] [0] [0] p(c_6) = [0] [0] [0] p(c_7) = [0] [0] [0] p(c_8) = [0] [0] [0] p(c_9) = [0] [0] [0] p(c_10) = [0] [0] [0] p(c_11) = [0] [0] [0] p(c_12) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_13) = [0] [0] [0] p(c_14) = [0] [0] [0] p(c_15) = [0] [0] [0] p(c_16) = [0] [0] [0] p(c_17) = [0] [0] [0] p(c_18) = [0] [0] [0] p(c_19) = [0] [0] [0] p(c_20) = [0] [0] [0] p(c_21) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_22) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_23) = [1 0 0] [0] [0 0 0] x_1 + [0] [0 0 0] [0] p(c_24) = [0] [0] [0] p(c_25) = [0] [0] [0] p(c_26) = [0] [0] [0] p(c_27) = [0] [0] [0] p(c_28) = [1 0 0] [1 0 0] [0] [0 0 0] x_1 + [0 0 0] x_2 + [0] [0 0 0] [0 0 0] [0] p(c_29) = [0] [0] [0] p(c_30) = [0] [0] [0] p(c_31) = [0] [0] [0] p(c_32) = [0] [0] [0] p(c_33) = [0] [0] [0] p(c_34) = [0] [0] [0] p(c_35) = [0] [0] [0] p(c_36) = [0] [0] [0] p(c_37) = [0] [0] [0] p(c_38) = [0] [0] [0] p(c_39) = [0] [0] [0] p(c_40) = [0] [0] [0] p(c_41) = [0] [0] [0] p(c_42) = [0] [0] [0] p(c_43) = [0] [0] [0] p(c_44) = [0] [0] [0] p(c_45) = [0] [0] [0] p(c_46) = [0] [0] [0] p(c_47) = [0] [0] [0] p(c_48) = [0] [0] [0] p(c_49) = [0] [0] [0] p(c_50) = [0] [0] [0] p(c_51) = [0] [0] [0] p(c_52) = [0] [0] [0] p(c_53) = [0] [0] [0] Following rules are strictly oriented: a__isNat#(s(V1)) = [1 0 0] [1] [0 0 0] V1 + [0] [0 0 0] [1] > [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [0] = c_22(a__isNat#(V1)) Following rules are (at-least) weakly oriented: a__U41#(tt(),V2) = [1 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [1] >= [1 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [1] = a__isNatIList#(V2) a__U51#(tt(),V2) = [1 0 0] [0] [1 0 0] V2 + [0] [0 0 0] [0] >= [1 0 0] [0] [0 0 0] V2 + [0] [0 0 0] [0] = c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) = [0 1 0] [1 0 0] [0] [0 1 0] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0 0 0] [0] [0 1 0] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] = a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) = [0 1 0] [1 0 0] [0] [0 1 0] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] N + [0] [0 0 0] [1] = a__isNat#(N) a__U62#(tt(),L) = [0 1 0] [0] [0 1 0] L + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] L + [0] [0 0 0] [1] = a__length#(mark(L)) a__U62#(tt(),L) = [0 1 0] [0] [0 1 0] L + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] L + [1] [0 0 0] [1] = mark#(L) a__isNat#(length(V1)) = [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [0] = c_21(a__isNatList#(V1)) a__isNatIList#(V) = [1 0 0] [0] [1 1 0] V + [0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] V + [0] [0 0 0] [0] = c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) = [1 0 0] [1 0 1] [0] [2 1 0] V1 + [2 1 2] V2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [1 1 0] V2 + [0] [0 0 0] [1] = a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) = [1 0 0] [1 0 1] [0] [2 1 0] V1 + [2 1 2] V2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] V1 + [0] [0 0 0] [1] = a__isNat#(V1) a__isNatList#(cons(V1,V2)) = [1 0 0] [1 0 1] [0] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [1 0 0] [0] [0 0 0] V1 + [0 0 0] V2 + [0] [0 0 0] [0 0 0] [0] = c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) = [1 1 1] [1 1 0] [0] [1 1 1] L + [1 1 0] N + [0] [0 0 0] [0 0 0] [1] >= [1 1 0] [1 0 0] [0] [0 1 1] L + [1 0 0] N + [0] [0 0 0] [0 0 0] [1] = a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) = [1 1 1] [1 1 0] [0] [1 1 1] L + [1 1 0] N + [0] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] L + [0] [0 0 0] [1] = a__isNatList#(L) mark#(U11(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(U21(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(U31(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(U41(X1,X2)) = [0 1 0] [1 1 0] [0] [0 1 0] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [1 1 0] X2 + [0] [0 0 0] [1] = a__U41#(mark(X1),X2) mark#(U41(X1,X2)) = [0 1 0] [1 1 0] [0] [0 1 0] X1 + [1 1 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark#(X1) mark#(U42(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(U51(X1,X2)) = [0 1 0] [1 0 0] [0] [0 1 0] X1 + [1 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [1 0 0] [0] [1 0 0] X2 + [0] [0 0 0] [0] = a__U51#(mark(X1),X2) mark#(U51(X1,X2)) = [0 1 0] [1 0 0] [0] [0 1 0] X1 + [1 0 0] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark#(X1) mark#(U52(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(U61(X1,X2,X3)) = [1 1 0] [0 1 0] [1 0 0] [1] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [2] [0 0 0] [0 0 0] [0 0 0] [1] >= [0 1 0] [0 1 0] [1 0 0] [0] [1 0 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [0] [0 0 0] [0 0 0] [0 0 0] [1] = a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) = [1 1 0] [0 1 0] [1 0 0] [1] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [2] [0 0 0] [0 0 0] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark#(X1) mark#(U62(X1,X2)) = [0 1 0] [0 1 0] [1] [0 1 0] X1 + [0 1 0] X2 + [2] [0 0 0] [0 0 0] [1] >= [0 0 0] [0 1 0] [0] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [1] = a__U62#(mark(X1),X2) mark#(U62(X1,X2)) = [0 1 0] [0 1 0] [1] [0 1 0] X1 + [0 1 0] X2 + [2] [0 0 0] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark#(X1) mark#(cons(X1,X2)) = [1 1 0] [1 1 1] [0] [1 1 0] X1 + [1 1 1] X2 + [1] [0 0 0] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X1 + [1] [0 0 0] [1] = mark#(X1) mark#(isNat(X)) = [1 0 0] [0] [1 0 0] X + [1] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] = a__isNat#(X) mark#(isNatIList(X)) = [1 1 0] [0] [1 1 0] X + [1] [0 0 0] [1] >= [1 0 0] [0] [1 1 0] X + [0] [0 0 0] [1] = a__isNatIList#(X) mark#(isNatList(X)) = [1 0 0] [0] [1 0 0] X + [1] [0 0 0] [1] >= [1 0 0] [0] [0 0 0] X + [0] [0 0 0] [1] = a__isNatList#(X) mark#(length(X)) = [0 1 0] [1] [0 1 0] X + [2] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [0] [0 0 0] [1] = a__length#(mark(X)) mark#(length(X)) = [0 1 0] [1] [0 1 0] X + [2] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) mark#(s(X)) = [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] >= [0 1 0] [0] [0 1 0] X + [1] [0 0 0] [1] = mark#(X) a__U11(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U11(X) a__U11(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U21(X) = [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U21(X) a__U21(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U31(X) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U31(X) a__U31(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U41(X1,X2) = [0 0 0] [1 0 0] [1] [0 1 0] X1 + [1 1 0] X2 + [0] [0 1 0] [1 1 0] [0] >= [0 0 0] [1 0 0] [1] [0 1 0] X1 + [1 1 0] X2 + [0] [0 0 0] [0 0 0] [0] = U41(X1,X2) a__U41(tt(),V2) = [1 0 0] [1] [1 1 0] V2 + [0] [1 1 0] [0] >= [0 0 0] [1] [1 1 0] V2 + [0] [1 1 0] [0] = a__U42(a__isNatIList(V2)) a__U42(X) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = U42(X) a__U42(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U51(X1,X2) = [0 0 0] [0 0 1] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 1] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = U51(X1,X2) a__U51(tt(),V2) = [0 0 1] [0] [1 0 0] V2 + [0] [0 0 0] [0] >= [0 0 1] [0] [1 0 0] V2 + [0] [0 0 0] [0] = a__U52(a__isNatList(V2)) a__U52(X) = [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = U52(X) a__U52(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() a__U61(X1,X2,X3) = [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] >= [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] = U61(X1,X2,X3) a__U61(tt(),L,N) = [1 0 0] [0 0 0] [1] [0 1 0] L + [1 0 0] N + [2] [0 0 0] [0 0 0] [0] >= [1 0 0] [0 0 0] [1] [0 1 0] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [0] = a__U62(a__isNat(N),L) a__U62(X1,X2) = [0 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] >= [0 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = U62(X1,X2) a__U62(tt(),L) = [1 0 0] [1] [0 1 0] L + [1] [0 0 0] [0] >= [1 0 0] [1] [0 1 0] L + [1] [0 0 0] [0] = s(a__length(mark(L))) a__isNat(X) = [1 0 0] [1] [1 0 0] X + [0] [0 0 0] [0] >= [1 0 0] [1] [1 0 0] X + [0] [0 0 0] [0] = isNat(X) a__isNat(0()) = [1] [0] [0] >= [1] [0] [0] = tt() a__isNat(length(V1)) = [1 0 0] [1] [1 0 0] V1 + [0] [0 0 0] [0] >= [0 0 0] [1] [1 0 0] V1 + [0] [0 0 0] [0] = a__U11(a__isNatList(V1)) a__isNat(s(V1)) = [1 0 0] [2] [1 0 0] V1 + [1] [0 0 0] [0] >= [0 0 0] [1] [1 0 0] V1 + [0] [0 0 0] [0] = a__U21(a__isNat(V1)) a__isNatIList(V) = [1 0 0] [1] [1 1 0] V + [0] [1 1 0] [0] >= [0 0 0] [1] [1 0 0] V + [0] [1 0 0] [0] = a__U31(a__isNatList(V)) a__isNatIList(X) = [1 0 0] [1] [1 1 0] X + [0] [1 1 0] [0] >= [1 0 0] [1] [1 1 0] X + [0] [0 0 0] [0] = isNatIList(X) a__isNatIList(cons(V1,V2)) = [1 0 0] [1 0 1] [1] [2 1 0] V1 + [2 1 2] V2 + [0] [2 1 0] [2 1 2] [0] >= [0 0 0] [1 0 0] [1] [1 0 0] V1 + [1 1 0] V2 + [0] [1 0 0] [1 1 0] [0] = a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) = [1] [0] [0] >= [1] [0] [0] = tt() a__isNatList(X) = [0 0 1] [0] [1 0 0] X + [0] [0 0 0] [0] >= [0 0 1] [0] [1 0 0] X + [0] [0 0 0] [0] = isNatList(X) a__isNatList(cons(V1,V2)) = [0 0 0] [0 0 1] [0] [1 0 0] V1 + [1 0 1] V2 + [0] [0 0 0] [0 0 0] [0] >= [0 0 0] [0 0 1] [0] [1 0 0] V1 + [1 0 0] V2 + [0] [0 0 0] [0 0 0] [0] = a__U51(a__isNat(V1),V2) a__isNatList(nil()) = [1] [0] [0] >= [1] [0] [0] = tt() a__length(X) = [1 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] >= [1 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = length(X) a__length(cons(N,L)) = [1 0 1] [1 0 0] [0] [1 1 1] L + [1 1 0] N + [1] [0 0 0] [0 0 0] [0] >= [1 0 1] [0 0 0] [0] [1 1 1] L + [1 0 0] N + [1] [0 0 0] [0 0 0] [0] = a__U61(a__isNatList(L),L,N) a__length(nil()) = [0] [2] [0] >= [0] [0] [0] = 0() a__zeros() = [0] [0] [0] >= [0] [0] [0] = cons(0(),zeros()) a__zeros() = [0] [0] [0] >= [0] [0] [0] = zeros() mark(0()) = [0] [0] [0] >= [0] [0] [0] = 0() mark(U11(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = a__U11(mark(X)) mark(U21(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = a__U21(mark(X)) mark(U31(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] = a__U31(mark(X)) mark(U41(X1,X2)) = [0 0 0] [1 0 0] [1] [0 1 0] X1 + [1 1 0] X2 + [0] [0 1 0] [1 1 0] [0] >= [0 0 0] [1 0 0] [1] [0 1 0] X1 + [1 1 0] X2 + [0] [0 1 0] [1 1 0] [0] = a__U41(mark(X1),X2) mark(U42(X)) = [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [0 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] = a__U42(mark(X)) mark(U51(X1,X2)) = [0 0 0] [0 0 1] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 1 0] [1 0 0] [0] >= [0 0 0] [0 0 1] [0] [0 1 0] X1 + [1 0 0] X2 + [0] [0 0 0] [0 0 0] [0] = a__U51(mark(X1),X2) mark(U52(X)) = [1 0 0] [0] [0 1 0] X + [0] [0 1 0] [0] >= [1 0 0] [0] [0 1 0] X + [0] [0 0 0] [0] = a__U52(mark(X)) mark(U61(X1,X2,X3)) = [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [1] [1 1 0] [0 1 0] [1 0 0] [1] >= [1 0 0] [1 0 0] [0 0 0] [0] [1 1 0] X1 + [0 1 0] X2 + [1 0 0] X3 + [1] [0 0 0] [0 0 0] [0 0 0] [0] = a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) = [0 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 0] X2 + [1] [0 1 0] [0 1 0] [1] >= [0 0 0] [1 0 0] [1] [0 1 0] X1 + [0 1 0] X2 + [1] [0 0 0] [0 0 0] [0] = a__U62(mark(X1),X2) mark(cons(X1,X2)) = [1 0 0] [1 0 1] [0] [1 1 0] X1 + [1 1 1] X2 + [0] [1 1 0] [1 1 1] [0] >= [1 0 0] [1 0 1] [0] [1 1 0] X1 + [1 1 1] X2 + [0] [0 0 0] [0 0 1] [0] = cons(mark(X1),X2) mark(isNat(X)) = [1 0 0] [1] [1 0 0] X + [0] [1 0 0] [0] >= [1 0 0] [1] [1 0 0] X + [0] [0 0 0] [0] = a__isNat(X) mark(isNatIList(X)) = [1 0 0] [1] [1 1 0] X + [0] [1 1 0] [0] >= [1 0 0] [1] [1 1 0] X + [0] [1 1 0] [0] = a__isNatIList(X) mark(isNatList(X)) = [0 0 1] [0] [1 0 0] X + [0] [1 0 0] [0] >= [0 0 1] [0] [1 0 0] X + [0] [0 0 0] [0] = a__isNatList(X) mark(length(X)) = [1 0 0] [0] [0 1 0] X + [1] [0 1 0] [1] >= [1 0 0] [0] [0 1 0] X + [1] [0 0 0] [0] = a__length(mark(X)) mark(nil()) = [0] [1] [1] >= [0] [1] [1] = nil() mark(s(X)) = [1 0 0] [1] [0 1 0] X + [0] [0 1 0] [0] >= [1 0 0] [1] [0 1 0] X + [0] [0 0 0] [0] = s(mark(X)) mark(tt()) = [1] [0] [0] >= [1] [0] [0] = tt() mark(zeros()) = [0] [0] [0] >= [0] [0] [0] = a__zeros() **** Step 1.b:6.b:1.b:6: EmptyProcessor. WORST_CASE(?,O(1)) + Considered Problem: - Weak DPs: a__U41#(tt(),V2) -> a__isNatIList#(V2) a__U51#(tt(),V2) -> c_12(a__isNatList#(V2)) a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) a__U61#(tt(),L,N) -> a__isNat#(N) a__U62#(tt(),L) -> a__length#(mark(L)) a__U62#(tt(),L) -> mark#(L) a__isNat#(length(V1)) -> c_21(a__isNatList#(V1)) a__isNat#(s(V1)) -> c_22(a__isNat#(V1)) a__isNatIList#(V) -> c_23(a__isNatList#(V)) a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) a__isNatList#(cons(V1,V2)) -> c_28(a__U51#(a__isNat(V1),V2),a__isNat#(V1)) a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) a__length#(cons(N,L)) -> a__isNatList#(L) mark#(U11(X)) -> mark#(X) mark#(U21(X)) -> mark#(X) mark#(U31(X)) -> mark#(X) mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) mark#(U41(X1,X2)) -> mark#(X1) mark#(U42(X)) -> mark#(X) mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) mark#(U51(X1,X2)) -> mark#(X1) mark#(U52(X)) -> mark#(X) mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) mark#(U61(X1,X2,X3)) -> mark#(X1) mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) mark#(U62(X1,X2)) -> mark#(X1) mark#(cons(X1,X2)) -> mark#(X1) mark#(isNat(X)) -> a__isNat#(X) mark#(isNatIList(X)) -> a__isNatIList#(X) mark#(isNatList(X)) -> a__isNatList#(X) mark#(length(X)) -> a__length#(mark(X)) mark#(length(X)) -> mark#(X) mark#(s(X)) -> mark#(X) - Weak TRS: a__U11(X) -> U11(X) a__U11(tt()) -> tt() a__U21(X) -> U21(X) a__U21(tt()) -> tt() a__U31(X) -> U31(X) a__U31(tt()) -> tt() a__U41(X1,X2) -> U41(X1,X2) a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(X) -> U42(X) a__U42(tt()) -> tt() a__U51(X1,X2) -> U51(X1,X2) a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(X) -> U52(X) a__U52(tt()) -> tt() a__U61(X1,X2,X3) -> U61(X1,X2,X3) a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) a__U62(X1,X2) -> U62(X1,X2) a__U62(tt(),L) -> s(a__length(mark(L))) a__isNat(X) -> isNat(X) a__isNat(0()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(X) -> isNatIList(X) a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatIList(zeros()) -> tt() a__isNatList(X) -> isNatList(X) a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__length(X) -> length(X) a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) mark(U62(X1,X2)) -> a__U62(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(isNatIList(X)) -> a__isNatIList(X) mark(isNatList(X)) -> a__isNatList(X) mark(length(X)) -> a__length(mark(X)) mark(nil()) -> nil() mark(s(X)) -> s(mark(X)) mark(tt()) -> tt() mark(zeros()) -> a__zeros() - Signature: {a__U11/1,a__U21/1,a__U31/1,a__U41/2,a__U42/1,a__U51/2,a__U52/1,a__U61/3,a__U62/2,a__isNat/1,a__isNatIList/1 ,a__isNatList/1,a__length/1,a__zeros/0,mark/1,a__U11#/1,a__U21#/1,a__U31#/1,a__U41#/2,a__U42#/1,a__U51#/2 ,a__U52#/1,a__U61#/3,a__U62#/2,a__isNat#/1,a__isNatIList#/1,a__isNatList#/1,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/1,U21/1,U31/1,U41/2,U42/1,U51/2,U52/1,U61/3,U62/2,cons/2,isNat/1,isNatIList/1 ,isNatList/1,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/0,c_3/0,c_4/0,c_5/0,c_6/0,c_7/0,c_8/1,c_9/0,c_10/0 ,c_11/0,c_12/1,c_13/0,c_14/0,c_15/0,c_16/2,c_17/0,c_18/2,c_19/0,c_20/0,c_21/1,c_22/1,c_23/1,c_24/0,c_25/2 ,c_26/0,c_27/0,c_28/2,c_29/0,c_30/0,c_31/2,c_32/0,c_33/0,c_34/0,c_35/0,c_36/1,c_37/1,c_38/1,c_39/2,c_40/1 ,c_41/2,c_42/1,c_43/2,c_44/2,c_45/1,c_46/1,c_47/1,c_48/1,c_49/2,c_50/0,c_51/1,c_52/0,c_53/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U21#,a__U31#,a__U41#,a__U42#,a__U51#,a__U52# ,a__U61#,a__U62#,a__isNat#,a__isNatIList#,a__isNatList#,a__length#,a__zeros#,mark#} and constructors {0,U11 ,U21,U31,U41,U42,U51,U52,U61,U62,cons,isNat,isNatIList,isNatList,length,nil,s,tt,zeros} + Applied Processor: EmptyProcessor + Details: The problem is already closed. The intended complexity is O(1). WORST_CASE(Omega(n^1),O(n^6))