MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: a__U11(X1,X2) -> U11(X1,X2) a__U11(tt(),L) -> a__U12(tt(),L) a__U12(X1,X2) -> U12(X1,X2) a__U12(tt(),L) -> s(a__length(mark(L))) a__length(X) -> length(X) a__length(cons(N,L)) -> a__U11(tt(),L) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) 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/2,a__U12/2,a__length/1,a__zeros/0,mark/1} / {0/0,U11/2,U12/2,cons/2,length/1,nil/0,s/1,tt/0,zeros/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11,a__U12,a__length,a__zeros ,mark} and constructors {0,U11,U12,cons,length,nil,s,tt,zeros} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs a__U11#(X1,X2) -> c_1() a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) a__U12#(X1,X2) -> c_3() a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) a__length#(X) -> c_5() a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) a__length#(nil()) -> c_7() a__zeros#() -> c_8() a__zeros#() -> c_9() mark#(0()) -> c_10() mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_13(mark#(X1)) mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) mark#(nil()) -> c_15() mark#(s(X)) -> c_16(mark#(X)) mark#(tt()) -> c_17() mark#(zeros()) -> c_18(a__zeros#()) Weak DPs and mark the set of starting terms. * Step 2: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: a__U11#(X1,X2) -> c_1() a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) a__U12#(X1,X2) -> c_3() a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) a__length#(X) -> c_5() a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) a__length#(nil()) -> c_7() a__zeros#() -> c_8() a__zeros#() -> c_9() mark#(0()) -> c_10() mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_13(mark#(X1)) mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) mark#(nil()) -> c_15() mark#(s(X)) -> c_16(mark#(X)) mark#(tt()) -> c_17() mark#(zeros()) -> c_18(a__zeros#()) - Weak TRS: a__U11(X1,X2) -> U11(X1,X2) a__U11(tt(),L) -> a__U12(tt(),L) a__U12(X1,X2) -> U12(X1,X2) a__U12(tt(),L) -> s(a__length(mark(L))) a__length(X) -> length(X) a__length(cons(N,L)) -> a__U11(tt(),L) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) 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/2,a__U12/2,a__length/1,a__zeros/0,mark/1,a__U11#/2,a__U12#/2,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/2,U12/2,cons/2,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/1,c_3/0,c_4/2,c_5/0,c_6/1 ,c_7/0,c_8/0,c_9/0,c_10/0,c_11/2,c_12/2,c_13/1,c_14/2,c_15/0,c_16/1,c_17/0,c_18/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U12#,a__length#,a__zeros# ,mark#} and constructors {0,U11,U12,cons,length,nil,s,tt,zeros} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,3,5,7,8,9,10,15,17} by application of Pre({1,3,5,7,8,9,10,15,17}) = {2,4,6,11,12,13,14,16,18}. Here rules are labelled as follows: 1: a__U11#(X1,X2) -> c_1() 2: a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) 3: a__U12#(X1,X2) -> c_3() 4: a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) 5: a__length#(X) -> c_5() 6: a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) 7: a__length#(nil()) -> c_7() 8: a__zeros#() -> c_8() 9: a__zeros#() -> c_9() 10: mark#(0()) -> c_10() 11: mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) 12: mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) 13: mark#(cons(X1,X2)) -> c_13(mark#(X1)) 14: mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) 15: mark#(nil()) -> c_15() 16: mark#(s(X)) -> c_16(mark#(X)) 17: mark#(tt()) -> c_17() 18: mark#(zeros()) -> c_18(a__zeros#()) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_13(mark#(X1)) mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_16(mark#(X)) mark#(zeros()) -> c_18(a__zeros#()) - Weak DPs: a__U11#(X1,X2) -> c_1() a__U12#(X1,X2) -> c_3() a__length#(X) -> c_5() a__length#(nil()) -> c_7() a__zeros#() -> c_8() a__zeros#() -> c_9() mark#(0()) -> c_10() mark#(nil()) -> c_15() mark#(tt()) -> c_17() - Weak TRS: a__U11(X1,X2) -> U11(X1,X2) a__U11(tt(),L) -> a__U12(tt(),L) a__U12(X1,X2) -> U12(X1,X2) a__U12(tt(),L) -> s(a__length(mark(L))) a__length(X) -> length(X) a__length(cons(N,L)) -> a__U11(tt(),L) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) 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/2,a__U12/2,a__length/1,a__zeros/0,mark/1,a__U11#/2,a__U12#/2,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/2,U12/2,cons/2,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/1,c_3/0,c_4/2,c_5/0,c_6/1 ,c_7/0,c_8/0,c_9/0,c_10/0,c_11/2,c_12/2,c_13/1,c_14/2,c_15/0,c_16/1,c_17/0,c_18/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U12#,a__length#,a__zeros# ,mark#} and constructors {0,U11,U12,cons,length,nil,s,tt,zeros} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {9} by application of Pre({9}) = {2,4,5,6,7,8}. Here rules are labelled as follows: 1: a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) 2: a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) 3: a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) 4: mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) 5: mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) 6: mark#(cons(X1,X2)) -> c_13(mark#(X1)) 7: mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) 8: mark#(s(X)) -> c_16(mark#(X)) 9: mark#(zeros()) -> c_18(a__zeros#()) 10: a__U11#(X1,X2) -> c_1() 11: a__U12#(X1,X2) -> c_3() 12: a__length#(X) -> c_5() 13: a__length#(nil()) -> c_7() 14: a__zeros#() -> c_8() 15: a__zeros#() -> c_9() 16: mark#(0()) -> c_10() 17: mark#(nil()) -> c_15() 18: mark#(tt()) -> c_17() * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_13(mark#(X1)) mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_16(mark#(X)) - Weak DPs: a__U11#(X1,X2) -> c_1() a__U12#(X1,X2) -> c_3() a__length#(X) -> c_5() a__length#(nil()) -> c_7() a__zeros#() -> c_8() a__zeros#() -> c_9() mark#(0()) -> c_10() mark#(nil()) -> c_15() mark#(tt()) -> c_17() mark#(zeros()) -> c_18(a__zeros#()) - Weak TRS: a__U11(X1,X2) -> U11(X1,X2) a__U11(tt(),L) -> a__U12(tt(),L) a__U12(X1,X2) -> U12(X1,X2) a__U12(tt(),L) -> s(a__length(mark(L))) a__length(X) -> length(X) a__length(cons(N,L)) -> a__U11(tt(),L) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) 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/2,a__U12/2,a__length/1,a__zeros/0,mark/1,a__U11#/2,a__U12#/2,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/2,U12/2,cons/2,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/1,c_3/0,c_4/2,c_5/0,c_6/1 ,c_7/0,c_8/0,c_9/0,c_10/0,c_11/2,c_12/2,c_13/1,c_14/2,c_15/0,c_16/1,c_17/0,c_18/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U12#,a__length#,a__zeros# ,mark#} and constructors {0,U11,U12,cons,length,nil,s,tt,zeros} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) -->_1 a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)):2 -->_1 a__U12#(X1,X2) -> c_3():10 2:S:a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) -->_2 mark#(zeros()) -> c_18(a__zeros#()):18 -->_2 mark#(s(X)) -> c_16(mark#(X)):8 -->_2 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_2 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_2 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_2 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 -->_1 a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)):3 -->_2 mark#(tt()) -> c_17():17 -->_2 mark#(nil()) -> c_15():16 -->_2 mark#(0()) -> c_10():15 -->_1 a__length#(nil()) -> c_7():12 -->_1 a__length#(X) -> c_5():11 3:S:a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) -->_1 a__U11#(X1,X2) -> c_1():9 -->_1 a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)):1 4:S:mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) -->_2 mark#(zeros()) -> c_18(a__zeros#()):18 -->_2 mark#(s(X)) -> c_16(mark#(X)):8 -->_2 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_2 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_2 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_2 mark#(tt()) -> c_17():17 -->_2 mark#(nil()) -> c_15():16 -->_2 mark#(0()) -> c_10():15 -->_1 a__U11#(X1,X2) -> c_1():9 -->_2 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 -->_1 a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)):1 5:S:mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) -->_2 mark#(zeros()) -> c_18(a__zeros#()):18 -->_2 mark#(s(X)) -> c_16(mark#(X)):8 -->_2 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_2 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_2 mark#(tt()) -> c_17():17 -->_2 mark#(nil()) -> c_15():16 -->_2 mark#(0()) -> c_10():15 -->_1 a__U12#(X1,X2) -> c_3():10 -->_2 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_2 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 -->_1 a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)):2 6:S:mark#(cons(X1,X2)) -> c_13(mark#(X1)) -->_1 mark#(zeros()) -> c_18(a__zeros#()):18 -->_1 mark#(s(X)) -> c_16(mark#(X)):8 -->_1 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_1 mark#(tt()) -> c_17():17 -->_1 mark#(nil()) -> c_15():16 -->_1 mark#(0()) -> c_10():15 -->_1 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_1 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_1 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 7:S:mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) -->_2 mark#(zeros()) -> c_18(a__zeros#()):18 -->_2 mark#(s(X)) -> c_16(mark#(X)):8 -->_2 mark#(tt()) -> c_17():17 -->_2 mark#(nil()) -> c_15():16 -->_2 mark#(0()) -> c_10():15 -->_1 a__length#(nil()) -> c_7():12 -->_1 a__length#(X) -> c_5():11 -->_2 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_2 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_2 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_2 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 -->_1 a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)):3 8:S:mark#(s(X)) -> c_16(mark#(X)) -->_1 mark#(zeros()) -> c_18(a__zeros#()):18 -->_1 mark#(tt()) -> c_17():17 -->_1 mark#(nil()) -> c_15():16 -->_1 mark#(0()) -> c_10():15 -->_1 mark#(s(X)) -> c_16(mark#(X)):8 -->_1 mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)):7 -->_1 mark#(cons(X1,X2)) -> c_13(mark#(X1)):6 -->_1 mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)):5 -->_1 mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)):4 9:W:a__U11#(X1,X2) -> c_1() 10:W:a__U12#(X1,X2) -> c_3() 11:W:a__length#(X) -> c_5() 12:W:a__length#(nil()) -> c_7() 13:W:a__zeros#() -> c_8() 14:W:a__zeros#() -> c_9() 15:W:mark#(0()) -> c_10() 16:W:mark#(nil()) -> c_15() 17:W:mark#(tt()) -> c_17() 18:W:mark#(zeros()) -> c_18(a__zeros#()) -->_1 a__zeros#() -> c_9():14 -->_1 a__zeros#() -> c_8():13 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 9: a__U11#(X1,X2) -> c_1() 10: a__U12#(X1,X2) -> c_3() 11: a__length#(X) -> c_5() 12: a__length#(nil()) -> c_7() 15: mark#(0()) -> c_10() 16: mark#(nil()) -> c_15() 17: mark#(tt()) -> c_17() 18: mark#(zeros()) -> c_18(a__zeros#()) 13: a__zeros#() -> c_8() 14: a__zeros#() -> c_9() * Step 5: Failure MAYBE + Considered Problem: - Strict DPs: a__U11#(tt(),L) -> c_2(a__U12#(tt(),L)) a__U12#(tt(),L) -> c_4(a__length#(mark(L)),mark#(L)) a__length#(cons(N,L)) -> c_6(a__U11#(tt(),L)) mark#(U11(X1,X2)) -> c_11(a__U11#(mark(X1),X2),mark#(X1)) mark#(U12(X1,X2)) -> c_12(a__U12#(mark(X1),X2),mark#(X1)) mark#(cons(X1,X2)) -> c_13(mark#(X1)) mark#(length(X)) -> c_14(a__length#(mark(X)),mark#(X)) mark#(s(X)) -> c_16(mark#(X)) - Weak TRS: a__U11(X1,X2) -> U11(X1,X2) a__U11(tt(),L) -> a__U12(tt(),L) a__U12(X1,X2) -> U12(X1,X2) a__U12(tt(),L) -> s(a__length(mark(L))) a__length(X) -> length(X) a__length(cons(N,L)) -> a__U11(tt(),L) a__length(nil()) -> 0() a__zeros() -> cons(0(),zeros()) a__zeros() -> zeros() mark(0()) -> 0() mark(U11(X1,X2)) -> a__U11(mark(X1),X2) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(cons(X1,X2)) -> cons(mark(X1),X2) 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/2,a__U12/2,a__length/1,a__zeros/0,mark/1,a__U11#/2,a__U12#/2,a__length#/1,a__zeros#/0 ,mark#/1} / {0/0,U11/2,U12/2,cons/2,length/1,nil/0,s/1,tt/0,zeros/0,c_1/0,c_2/1,c_3/0,c_4/2,c_5/0,c_6/1 ,c_7/0,c_8/0,c_9/0,c_10/0,c_11/2,c_12/2,c_13/1,c_14/2,c_15/0,c_16/1,c_17/0,c_18/1} - Obligation: innermost runtime complexity wrt. defined symbols {a__U11#,a__U12#,a__length#,a__zeros# ,mark#} and constructors {0,U11,U12,cons,length,nil,s,tt,zeros} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE