MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: a__from(X) -> cons(mark(X),from(s(X))) a__from(X) -> from(X) a__minus(X,0()) -> 0() a__minus(X1,X2) -> minus(X1,X2) a__minus(s(X),s(Y)) -> a__minus(mark(X),mark(Y)) a__quot(X1,X2) -> quot(X1,X2) a__quot(0(),s(Y)) -> 0() a__quot(s(X),s(Y)) -> s(a__quot(a__minus(mark(X),mark(Y)),s(mark(Y)))) a__sel(X1,X2) -> sel(X1,X2) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) a__zWquot(X1,X2) -> zWquot(X1,X2) a__zWquot(XS,nil()) -> nil() a__zWquot(cons(X,XS),cons(Y,YS)) -> cons(a__quot(mark(X),mark(Y)),zWquot(XS,YS)) a__zWquot(nil(),XS) -> nil() mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(from(X)) -> a__from(mark(X)) mark(minus(X1,X2)) -> a__minus(mark(X1),mark(X2)) mark(nil()) -> nil() mark(quot(X1,X2)) -> a__quot(mark(X1),mark(X2)) mark(s(X)) -> s(mark(X)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(zWquot(X1,X2)) -> a__zWquot(mark(X1),mark(X2)) - Signature: {a__from/1,a__minus/2,a__quot/2,a__sel/2,a__zWquot/2,mark/1} / {0/0,cons/2,from/1,minus/2,nil/0,quot/2,s/1 ,sel/2,zWquot/2} - Obligation: innermost runtime complexity wrt. defined symbols {a__from,a__minus,a__quot,a__sel,a__zWquot ,mark} and constructors {0,cons,from,minus,nil,quot,s,sel,zWquot} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs a__from#(X) -> c_1(mark#(X)) a__from#(X) -> c_2() a__minus#(X,0()) -> c_3() a__minus#(X1,X2) -> c_4() a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__quot#(X1,X2) -> c_6() a__quot#(0(),s(Y)) -> c_7() a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) a__sel#(X1,X2) -> c_9() a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) a__zWquot#(X1,X2) -> c_12() a__zWquot#(XS,nil()) -> c_13() a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__zWquot#(nil(),XS) -> c_15() mark#(0()) -> c_16() mark#(cons(X1,X2)) -> c_17(mark#(X1)) mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(nil()) -> c_20() mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(s(X)) -> c_22(mark#(X)) mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) Weak DPs and mark the set of starting terms. * Step 2: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: a__from#(X) -> c_1(mark#(X)) a__from#(X) -> c_2() a__minus#(X,0()) -> c_3() a__minus#(X1,X2) -> c_4() a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__quot#(X1,X2) -> c_6() a__quot#(0(),s(Y)) -> c_7() a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) a__sel#(X1,X2) -> c_9() a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) a__zWquot#(X1,X2) -> c_12() a__zWquot#(XS,nil()) -> c_13() a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__zWquot#(nil(),XS) -> c_15() mark#(0()) -> c_16() mark#(cons(X1,X2)) -> c_17(mark#(X1)) mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(nil()) -> c_20() mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(s(X)) -> c_22(mark#(X)) mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) - Weak TRS: a__from(X) -> cons(mark(X),from(s(X))) a__from(X) -> from(X) a__minus(X,0()) -> 0() a__minus(X1,X2) -> minus(X1,X2) a__minus(s(X),s(Y)) -> a__minus(mark(X),mark(Y)) a__quot(X1,X2) -> quot(X1,X2) a__quot(0(),s(Y)) -> 0() a__quot(s(X),s(Y)) -> s(a__quot(a__minus(mark(X),mark(Y)),s(mark(Y)))) a__sel(X1,X2) -> sel(X1,X2) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) a__zWquot(X1,X2) -> zWquot(X1,X2) a__zWquot(XS,nil()) -> nil() a__zWquot(cons(X,XS),cons(Y,YS)) -> cons(a__quot(mark(X),mark(Y)),zWquot(XS,YS)) a__zWquot(nil(),XS) -> nil() mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(from(X)) -> a__from(mark(X)) mark(minus(X1,X2)) -> a__minus(mark(X1),mark(X2)) mark(nil()) -> nil() mark(quot(X1,X2)) -> a__quot(mark(X1),mark(X2)) mark(s(X)) -> s(mark(X)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(zWquot(X1,X2)) -> a__zWquot(mark(X1),mark(X2)) - Signature: {a__from/1,a__minus/2,a__quot/2,a__sel/2,a__zWquot/2,mark/1,a__from#/1,a__minus#/2,a__quot#/2,a__sel#/2 ,a__zWquot#/2,mark#/1} / {0/0,cons/2,from/1,minus/2,nil/0,quot/2,s/1,sel/2,zWquot/2,c_1/1,c_2/0,c_3/0,c_4/0 ,c_5/3,c_6/0,c_7/0,c_8/5,c_9/0,c_10/1,c_11/3,c_12/0,c_13/0,c_14/3,c_15/0,c_16/0,c_17/1,c_18/2,c_19/3,c_20/0 ,c_21/3,c_22/1,c_23/3,c_24/3} - Obligation: innermost runtime complexity wrt. defined symbols {a__from#,a__minus#,a__quot#,a__sel#,a__zWquot# ,mark#} and constructors {0,cons,from,minus,nil,quot,s,sel,zWquot} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {2,3,4,6,7,9,12,13,15,16,20} by application of Pre({2,3,4,6,7,9,12,13,15,16,20}) = {1,5,8,10,11,14,17,18,19,21,22,23,24}. Here rules are labelled as follows: 1: a__from#(X) -> c_1(mark#(X)) 2: a__from#(X) -> c_2() 3: a__minus#(X,0()) -> c_3() 4: a__minus#(X1,X2) -> c_4() 5: a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) 6: a__quot#(X1,X2) -> c_6() 7: a__quot#(0(),s(Y)) -> c_7() 8: a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) 9: a__sel#(X1,X2) -> c_9() 10: a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) 11: a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) 12: a__zWquot#(X1,X2) -> c_12() 13: a__zWquot#(XS,nil()) -> c_13() 14: a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) 15: a__zWquot#(nil(),XS) -> c_15() 16: mark#(0()) -> c_16() 17: mark#(cons(X1,X2)) -> c_17(mark#(X1)) 18: mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) 19: mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) 20: mark#(nil()) -> c_20() 21: mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) 22: mark#(s(X)) -> c_22(mark#(X)) 23: mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) 24: mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) * Step 3: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: a__from#(X) -> c_1(mark#(X)) a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) mark#(cons(X1,X2)) -> c_17(mark#(X1)) mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(s(X)) -> c_22(mark#(X)) mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) - Weak DPs: a__from#(X) -> c_2() a__minus#(X,0()) -> c_3() a__minus#(X1,X2) -> c_4() a__quot#(X1,X2) -> c_6() a__quot#(0(),s(Y)) -> c_7() a__sel#(X1,X2) -> c_9() a__zWquot#(X1,X2) -> c_12() a__zWquot#(XS,nil()) -> c_13() a__zWquot#(nil(),XS) -> c_15() mark#(0()) -> c_16() mark#(nil()) -> c_20() - Weak TRS: a__from(X) -> cons(mark(X),from(s(X))) a__from(X) -> from(X) a__minus(X,0()) -> 0() a__minus(X1,X2) -> minus(X1,X2) a__minus(s(X),s(Y)) -> a__minus(mark(X),mark(Y)) a__quot(X1,X2) -> quot(X1,X2) a__quot(0(),s(Y)) -> 0() a__quot(s(X),s(Y)) -> s(a__quot(a__minus(mark(X),mark(Y)),s(mark(Y)))) a__sel(X1,X2) -> sel(X1,X2) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) a__zWquot(X1,X2) -> zWquot(X1,X2) a__zWquot(XS,nil()) -> nil() a__zWquot(cons(X,XS),cons(Y,YS)) -> cons(a__quot(mark(X),mark(Y)),zWquot(XS,YS)) a__zWquot(nil(),XS) -> nil() mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(from(X)) -> a__from(mark(X)) mark(minus(X1,X2)) -> a__minus(mark(X1),mark(X2)) mark(nil()) -> nil() mark(quot(X1,X2)) -> a__quot(mark(X1),mark(X2)) mark(s(X)) -> s(mark(X)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(zWquot(X1,X2)) -> a__zWquot(mark(X1),mark(X2)) - Signature: {a__from/1,a__minus/2,a__quot/2,a__sel/2,a__zWquot/2,mark/1,a__from#/1,a__minus#/2,a__quot#/2,a__sel#/2 ,a__zWquot#/2,mark#/1} / {0/0,cons/2,from/1,minus/2,nil/0,quot/2,s/1,sel/2,zWquot/2,c_1/1,c_2/0,c_3/0,c_4/0 ,c_5/3,c_6/0,c_7/0,c_8/5,c_9/0,c_10/1,c_11/3,c_12/0,c_13/0,c_14/3,c_15/0,c_16/0,c_17/1,c_18/2,c_19/3,c_20/0 ,c_21/3,c_22/1,c_23/3,c_24/3} - Obligation: innermost runtime complexity wrt. defined symbols {a__from#,a__minus#,a__quot#,a__sel#,a__zWquot# ,mark#} and constructors {0,cons,from,minus,nil,quot,s,sel,zWquot} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:a__from#(X) -> c_1(mark#(X)) -->_1 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_1 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_1 mark#(s(X)) -> c_22(mark#(X)):11 -->_1 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_1 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_1 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_1 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 mark#(nil()) -> c_20():24 -->_1 mark#(0()) -> c_16():23 2:S:a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__minus#(X1,X2) -> c_4():16 -->_1 a__minus#(X,0()) -> c_3():15 -->_1 a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)):2 3:S:a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) -->_5 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_4 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_5 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_4 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_5 mark#(s(X)) -> c_22(mark#(X)):11 -->_4 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_5 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_4 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_5 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_4 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_5 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_4 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_5 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_4 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_5 mark#(nil()) -> c_20():24 -->_4 mark#(nil()) -> c_20():24 -->_3 mark#(nil()) -> c_20():24 -->_5 mark#(0()) -> c_16():23 -->_4 mark#(0()) -> c_16():23 -->_3 mark#(0()) -> c_16():23 -->_1 a__quot#(0(),s(Y)) -> c_7():18 -->_1 a__quot#(X1,X2) -> c_6():17 -->_2 a__minus#(X1,X2) -> c_4():16 -->_2 a__minus#(X,0()) -> c_3():15 -->_1 a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)):3 -->_2 a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)):2 4:S:a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) -->_1 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_1 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_1 mark#(s(X)) -> c_22(mark#(X)):11 -->_1 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_1 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_1 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_1 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 mark#(nil()) -> c_20():24 -->_1 mark#(0()) -> c_16():23 5:S:a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__sel#(X1,X2) -> c_9():19 -->_1 a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)):5 -->_1 a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)):4 6:S:a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__quot#(0(),s(Y)) -> c_7():18 -->_1 a__quot#(X1,X2) -> c_6():17 -->_1 a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)):3 7:S:mark#(cons(X1,X2)) -> c_17(mark#(X1)) -->_1 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_1 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_1 mark#(s(X)) -> c_22(mark#(X)):11 -->_1 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_1 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_1 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_1 mark#(nil()) -> c_20():24 -->_1 mark#(0()) -> c_16():23 -->_1 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 8:S:mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(nil()) -> c_20():24 -->_2 mark#(0()) -> c_16():23 -->_1 a__from#(X) -> c_2():14 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 a__from#(X) -> c_1(mark#(X)):1 9:S:mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__minus#(X1,X2) -> c_4():16 -->_1 a__minus#(X,0()) -> c_3():15 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)):2 10:S:mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__quot#(0(),s(Y)) -> c_7():18 -->_1 a__quot#(X1,X2) -> c_6():17 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)):3 11:S:mark#(s(X)) -> c_22(mark#(X)) -->_1 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_1 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_1 mark#(nil()) -> c_20():24 -->_1 mark#(0()) -> c_16():23 -->_1 mark#(s(X)) -> c_22(mark#(X)):11 -->_1 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_1 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_1 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_1 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 12:S:mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__sel#(X1,X2) -> c_9():19 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)):5 -->_1 a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)):4 13:S:mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(nil()) -> c_20():24 -->_2 mark#(nil()) -> c_20():24 -->_3 mark#(0()) -> c_16():23 -->_2 mark#(0()) -> c_16():23 -->_1 a__zWquot#(nil(),XS) -> c_15():22 -->_1 a__zWquot#(XS,nil()) -> c_13():21 -->_1 a__zWquot#(X1,X2) -> c_12():20 -->_3 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_2 mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):13 -->_3 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_2 mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):12 -->_3 mark#(s(X)) -> c_22(mark#(X)):11 -->_2 mark#(s(X)) -> c_22(mark#(X)):11 -->_3 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_2 mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):10 -->_3 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_2 mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):9 -->_3 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_2 mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)):8 -->_3 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_2 mark#(cons(X1,X2)) -> c_17(mark#(X1)):7 -->_1 a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)):6 14:W:a__from#(X) -> c_2() 15:W:a__minus#(X,0()) -> c_3() 16:W:a__minus#(X1,X2) -> c_4() 17:W:a__quot#(X1,X2) -> c_6() 18:W:a__quot#(0(),s(Y)) -> c_7() 19:W:a__sel#(X1,X2) -> c_9() 20:W:a__zWquot#(X1,X2) -> c_12() 21:W:a__zWquot#(XS,nil()) -> c_13() 22:W:a__zWquot#(nil(),XS) -> c_15() 23:W:mark#(0()) -> c_16() 24:W:mark#(nil()) -> c_20() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 14: a__from#(X) -> c_2() 15: a__minus#(X,0()) -> c_3() 16: a__minus#(X1,X2) -> c_4() 17: a__quot#(X1,X2) -> c_6() 18: a__quot#(0(),s(Y)) -> c_7() 19: a__sel#(X1,X2) -> c_9() 20: a__zWquot#(X1,X2) -> c_12() 21: a__zWquot#(XS,nil()) -> c_13() 22: a__zWquot#(nil(),XS) -> c_15() 23: mark#(0()) -> c_16() 24: mark#(nil()) -> c_20() * Step 4: Failure MAYBE + Considered Problem: - Strict DPs: a__from#(X) -> c_1(mark#(X)) a__minus#(s(X),s(Y)) -> c_5(a__minus#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__quot#(s(X),s(Y)) -> c_8(a__quot#(a__minus(mark(X),mark(Y)),s(mark(Y))) ,a__minus#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y) ,mark#(Y)) a__sel#(0(),cons(X,XS)) -> c_10(mark#(X)) a__sel#(s(N),cons(X,XS)) -> c_11(a__sel#(mark(N),mark(XS)),mark#(N),mark#(XS)) a__zWquot#(cons(X,XS),cons(Y,YS)) -> c_14(a__quot#(mark(X),mark(Y)),mark#(X),mark#(Y)) mark#(cons(X1,X2)) -> c_17(mark#(X1)) mark#(from(X)) -> c_18(a__from#(mark(X)),mark#(X)) mark#(minus(X1,X2)) -> c_19(a__minus#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(quot(X1,X2)) -> c_21(a__quot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(s(X)) -> c_22(mark#(X)) mark#(sel(X1,X2)) -> c_23(a__sel#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(zWquot(X1,X2)) -> c_24(a__zWquot#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) - Weak TRS: a__from(X) -> cons(mark(X),from(s(X))) a__from(X) -> from(X) a__minus(X,0()) -> 0() a__minus(X1,X2) -> minus(X1,X2) a__minus(s(X),s(Y)) -> a__minus(mark(X),mark(Y)) a__quot(X1,X2) -> quot(X1,X2) a__quot(0(),s(Y)) -> 0() a__quot(s(X),s(Y)) -> s(a__quot(a__minus(mark(X),mark(Y)),s(mark(Y)))) a__sel(X1,X2) -> sel(X1,X2) a__sel(0(),cons(X,XS)) -> mark(X) a__sel(s(N),cons(X,XS)) -> a__sel(mark(N),mark(XS)) a__zWquot(X1,X2) -> zWquot(X1,X2) a__zWquot(XS,nil()) -> nil() a__zWquot(cons(X,XS),cons(Y,YS)) -> cons(a__quot(mark(X),mark(Y)),zWquot(XS,YS)) a__zWquot(nil(),XS) -> nil() mark(0()) -> 0() mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(from(X)) -> a__from(mark(X)) mark(minus(X1,X2)) -> a__minus(mark(X1),mark(X2)) mark(nil()) -> nil() mark(quot(X1,X2)) -> a__quot(mark(X1),mark(X2)) mark(s(X)) -> s(mark(X)) mark(sel(X1,X2)) -> a__sel(mark(X1),mark(X2)) mark(zWquot(X1,X2)) -> a__zWquot(mark(X1),mark(X2)) - Signature: {a__from/1,a__minus/2,a__quot/2,a__sel/2,a__zWquot/2,mark/1,a__from#/1,a__minus#/2,a__quot#/2,a__sel#/2 ,a__zWquot#/2,mark#/1} / {0/0,cons/2,from/1,minus/2,nil/0,quot/2,s/1,sel/2,zWquot/2,c_1/1,c_2/0,c_3/0,c_4/0 ,c_5/3,c_6/0,c_7/0,c_8/5,c_9/0,c_10/1,c_11/3,c_12/0,c_13/0,c_14/3,c_15/0,c_16/0,c_17/1,c_18/2,c_19/3,c_20/0 ,c_21/3,c_22/1,c_23/3,c_24/3} - Obligation: innermost runtime complexity wrt. defined symbols {a__from#,a__minus#,a__quot#,a__sel#,a__zWquot# ,mark#} and constructors {0,cons,from,minus,nil,quot,s,sel,zWquot} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE