MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: a__diff(X,Y) -> a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) a__diff(X1,X2) -> diff(X1,X2) a__if(X1,X2,X3) -> if(X1,X2,X3) a__if(false(),X,Y) -> mark(Y) a__if(true(),X,Y) -> mark(X) a__leq(X1,X2) -> leq(X1,X2) a__leq(0(),Y) -> true() a__leq(s(X),0()) -> false() a__leq(s(X),s(Y)) -> a__leq(mark(X),mark(Y)) a__p(X) -> p(X) a__p(0()) -> 0() a__p(s(X)) -> mark(X) mark(0()) -> 0() mark(diff(X1,X2)) -> a__diff(mark(X1),mark(X2)) mark(false()) -> false() mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) mark(leq(X1,X2)) -> a__leq(mark(X1),mark(X2)) mark(p(X)) -> a__p(mark(X)) mark(s(X)) -> s(mark(X)) mark(true()) -> true() - Signature: {a__diff/2,a__if/3,a__leq/2,a__p/1,mark/1} / {0/0,diff/2,false/0,if/3,leq/2,p/1,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__diff,a__if,a__leq,a__p,mark} and constructors {0,diff ,false,if,leq,p,s,true} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) a__diff#(X1,X2) -> c_2() a__if#(X1,X2,X3) -> c_3() a__if#(false(),X,Y) -> c_4(mark#(Y)) a__if#(true(),X,Y) -> c_5(mark#(X)) a__leq#(X1,X2) -> c_6() a__leq#(0(),Y) -> c_7() a__leq#(s(X),0()) -> c_8() a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__p#(X) -> c_10() a__p#(0()) -> c_11() a__p#(s(X)) -> c_12(mark#(X)) mark#(0()) -> c_13() mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(false()) -> c_15() mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) mark#(s(X)) -> c_19(mark#(X)) mark#(true()) -> c_20() Weak DPs and mark the set of starting terms. * Step 2: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) a__diff#(X1,X2) -> c_2() a__if#(X1,X2,X3) -> c_3() a__if#(false(),X,Y) -> c_4(mark#(Y)) a__if#(true(),X,Y) -> c_5(mark#(X)) a__leq#(X1,X2) -> c_6() a__leq#(0(),Y) -> c_7() a__leq#(s(X),0()) -> c_8() a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__p#(X) -> c_10() a__p#(0()) -> c_11() a__p#(s(X)) -> c_12(mark#(X)) mark#(0()) -> c_13() mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(false()) -> c_15() mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) mark#(s(X)) -> c_19(mark#(X)) mark#(true()) -> c_20() - Weak TRS: a__diff(X,Y) -> a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) a__diff(X1,X2) -> diff(X1,X2) a__if(X1,X2,X3) -> if(X1,X2,X3) a__if(false(),X,Y) -> mark(Y) a__if(true(),X,Y) -> mark(X) a__leq(X1,X2) -> leq(X1,X2) a__leq(0(),Y) -> true() a__leq(s(X),0()) -> false() a__leq(s(X),s(Y)) -> a__leq(mark(X),mark(Y)) a__p(X) -> p(X) a__p(0()) -> 0() a__p(s(X)) -> mark(X) mark(0()) -> 0() mark(diff(X1,X2)) -> a__diff(mark(X1),mark(X2)) mark(false()) -> false() mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) mark(leq(X1,X2)) -> a__leq(mark(X1),mark(X2)) mark(p(X)) -> a__p(mark(X)) mark(s(X)) -> s(mark(X)) mark(true()) -> true() - Signature: {a__diff/2,a__if/3,a__leq/2,a__p/1,mark/1,a__diff#/2,a__if#/3,a__leq#/2,a__p#/1,mark#/1} / {0/0,diff/2 ,false/0,if/3,leq/2,p/1,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/1,c_5/1,c_6/0,c_7/0,c_8/0,c_9/3,c_10/0,c_11/0 ,c_12/1,c_13/0,c_14/3,c_15/0,c_16/2,c_17/3,c_18/2,c_19/1,c_20/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__diff#,a__if#,a__leq#,a__p#,mark#} and constructors {0 ,diff,false,if,leq,p,s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {2,3,6,7,8,10,11,13,15,20} by application of Pre({2,3,6,7,8,10,11,13,15,20}) = {1,4,5,9,12,14,16,17,18,19}. Here rules are labelled as follows: 1: a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) 2: a__diff#(X1,X2) -> c_2() 3: a__if#(X1,X2,X3) -> c_3() 4: a__if#(false(),X,Y) -> c_4(mark#(Y)) 5: a__if#(true(),X,Y) -> c_5(mark#(X)) 6: a__leq#(X1,X2) -> c_6() 7: a__leq#(0(),Y) -> c_7() 8: a__leq#(s(X),0()) -> c_8() 9: a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) 10: a__p#(X) -> c_10() 11: a__p#(0()) -> c_11() 12: a__p#(s(X)) -> c_12(mark#(X)) 13: mark#(0()) -> c_13() 14: mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) 15: mark#(false()) -> c_15() 16: mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) 17: mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) 18: mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) 19: mark#(s(X)) -> c_19(mark#(X)) 20: mark#(true()) -> c_20() * Step 3: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) a__if#(false(),X,Y) -> c_4(mark#(Y)) a__if#(true(),X,Y) -> c_5(mark#(X)) a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__p#(s(X)) -> c_12(mark#(X)) mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) mark#(s(X)) -> c_19(mark#(X)) - Weak DPs: a__diff#(X1,X2) -> c_2() a__if#(X1,X2,X3) -> c_3() a__leq#(X1,X2) -> c_6() a__leq#(0(),Y) -> c_7() a__leq#(s(X),0()) -> c_8() a__p#(X) -> c_10() a__p#(0()) -> c_11() mark#(0()) -> c_13() mark#(false()) -> c_15() mark#(true()) -> c_20() - Weak TRS: a__diff(X,Y) -> a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) a__diff(X1,X2) -> diff(X1,X2) a__if(X1,X2,X3) -> if(X1,X2,X3) a__if(false(),X,Y) -> mark(Y) a__if(true(),X,Y) -> mark(X) a__leq(X1,X2) -> leq(X1,X2) a__leq(0(),Y) -> true() a__leq(s(X),0()) -> false() a__leq(s(X),s(Y)) -> a__leq(mark(X),mark(Y)) a__p(X) -> p(X) a__p(0()) -> 0() a__p(s(X)) -> mark(X) mark(0()) -> 0() mark(diff(X1,X2)) -> a__diff(mark(X1),mark(X2)) mark(false()) -> false() mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) mark(leq(X1,X2)) -> a__leq(mark(X1),mark(X2)) mark(p(X)) -> a__p(mark(X)) mark(s(X)) -> s(mark(X)) mark(true()) -> true() - Signature: {a__diff/2,a__if/3,a__leq/2,a__p/1,mark/1,a__diff#/2,a__if#/3,a__leq#/2,a__p#/1,mark#/1} / {0/0,diff/2 ,false/0,if/3,leq/2,p/1,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/1,c_5/1,c_6/0,c_7/0,c_8/0,c_9/3,c_10/0,c_11/0 ,c_12/1,c_13/0,c_14/3,c_15/0,c_16/2,c_17/3,c_18/2,c_19/1,c_20/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__diff#,a__if#,a__leq#,a__p#,mark#} and constructors {0 ,diff,false,if,leq,p,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) -->_4 mark#(s(X)) -> c_19(mark#(X)):10 -->_3 mark#(s(X)) -> c_19(mark#(X)):10 -->_4 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_3 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_4 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_3 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_4 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_3 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_4 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_3 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_2 a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)):4 -->_1 a__if#(true(),X,Y) -> c_5(mark#(X)):3 -->_1 a__if#(false(),X,Y) -> c_4(mark#(Y)):2 -->_4 mark#(true()) -> c_20():20 -->_3 mark#(true()) -> c_20():20 -->_4 mark#(false()) -> c_15():19 -->_3 mark#(false()) -> c_15():19 -->_4 mark#(0()) -> c_13():18 -->_3 mark#(0()) -> c_13():18 -->_2 a__leq#(s(X),0()) -> c_8():15 -->_2 a__leq#(0(),Y) -> c_7():14 -->_2 a__leq#(X1,X2) -> c_6():13 -->_1 a__if#(X1,X2,X3) -> c_3():12 2:S:a__if#(false(),X,Y) -> c_4(mark#(Y)) -->_1 mark#(s(X)) -> c_19(mark#(X)):10 -->_1 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_1 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_1 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_1 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 mark#(true()) -> c_20():20 -->_1 mark#(false()) -> c_15():19 -->_1 mark#(0()) -> c_13():18 3:S:a__if#(true(),X,Y) -> c_5(mark#(X)) -->_1 mark#(s(X)) -> c_19(mark#(X)):10 -->_1 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_1 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_1 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_1 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 mark#(true()) -> c_20():20 -->_1 mark#(false()) -> c_15():19 -->_1 mark#(0()) -> c_13():18 4:S:a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) -->_3 mark#(s(X)) -> c_19(mark#(X)):10 -->_2 mark#(s(X)) -> c_19(mark#(X)):10 -->_3 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_2 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_3 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_2 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_3 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_2 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_3 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_2 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_3 mark#(true()) -> c_20():20 -->_2 mark#(true()) -> c_20():20 -->_3 mark#(false()) -> c_15():19 -->_2 mark#(false()) -> c_15():19 -->_3 mark#(0()) -> c_13():18 -->_2 mark#(0()) -> c_13():18 -->_1 a__leq#(s(X),0()) -> c_8():15 -->_1 a__leq#(0(),Y) -> c_7():14 -->_1 a__leq#(X1,X2) -> c_6():13 -->_1 a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)):4 5:S:a__p#(s(X)) -> c_12(mark#(X)) -->_1 mark#(s(X)) -> c_19(mark#(X)):10 -->_1 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_1 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_1 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_1 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 mark#(true()) -> c_20():20 -->_1 mark#(false()) -> c_15():19 -->_1 mark#(0()) -> c_13():18 6:S:mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(s(X)) -> c_19(mark#(X)):10 -->_2 mark#(s(X)) -> c_19(mark#(X)):10 -->_3 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_2 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_3 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_2 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_3 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_2 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_3 mark#(true()) -> c_20():20 -->_2 mark#(true()) -> c_20():20 -->_3 mark#(false()) -> c_15():19 -->_2 mark#(false()) -> c_15():19 -->_3 mark#(0()) -> c_13():18 -->_2 mark#(0()) -> c_13():18 -->_1 a__diff#(X1,X2) -> c_2():11 -->_3 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_2 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)):1 7:S:mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) -->_2 mark#(s(X)) -> c_19(mark#(X)):10 -->_2 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_2 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_2 mark#(true()) -> c_20():20 -->_2 mark#(false()) -> c_15():19 -->_2 mark#(0()) -> c_13():18 -->_1 a__if#(X1,X2,X3) -> c_3():12 -->_2 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_2 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 a__if#(true(),X,Y) -> c_5(mark#(X)):3 -->_1 a__if#(false(),X,Y) -> c_4(mark#(Y)):2 8:S:mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) -->_3 mark#(s(X)) -> c_19(mark#(X)):10 -->_2 mark#(s(X)) -> c_19(mark#(X)):10 -->_3 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_2 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_3 mark#(true()) -> c_20():20 -->_2 mark#(true()) -> c_20():20 -->_3 mark#(false()) -> c_15():19 -->_2 mark#(false()) -> c_15():19 -->_3 mark#(0()) -> c_13():18 -->_2 mark#(0()) -> c_13():18 -->_1 a__leq#(s(X),0()) -> c_8():15 -->_1 a__leq#(0(),Y) -> c_7():14 -->_1 a__leq#(X1,X2) -> c_6():13 -->_3 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_2 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_3 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_2 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_3 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_2 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)):4 9:S:mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) -->_2 mark#(s(X)) -> c_19(mark#(X)):10 -->_2 mark#(true()) -> c_20():20 -->_2 mark#(false()) -> c_15():19 -->_2 mark#(0()) -> c_13():18 -->_1 a__p#(0()) -> c_11():17 -->_1 a__p#(X) -> c_10():16 -->_2 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_2 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_2 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_2 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 -->_1 a__p#(s(X)) -> c_12(mark#(X)):5 10:S:mark#(s(X)) -> c_19(mark#(X)) -->_1 mark#(true()) -> c_20():20 -->_1 mark#(false()) -> c_15():19 -->_1 mark#(0()) -> c_13():18 -->_1 mark#(s(X)) -> c_19(mark#(X)):10 -->_1 mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)):9 -->_1 mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):8 -->_1 mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)):7 -->_1 mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)):6 11:W:a__diff#(X1,X2) -> c_2() 12:W:a__if#(X1,X2,X3) -> c_3() 13:W:a__leq#(X1,X2) -> c_6() 14:W:a__leq#(0(),Y) -> c_7() 15:W:a__leq#(s(X),0()) -> c_8() 16:W:a__p#(X) -> c_10() 17:W:a__p#(0()) -> c_11() 18:W:mark#(0()) -> c_13() 19:W:mark#(false()) -> c_15() 20:W:mark#(true()) -> c_20() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 11: a__diff#(X1,X2) -> c_2() 12: a__if#(X1,X2,X3) -> c_3() 13: a__leq#(X1,X2) -> c_6() 14: a__leq#(0(),Y) -> c_7() 15: a__leq#(s(X),0()) -> c_8() 16: a__p#(X) -> c_10() 17: a__p#(0()) -> c_11() 18: mark#(0()) -> c_13() 19: mark#(false()) -> c_15() 20: mark#(true()) -> c_20() * Step 4: Failure MAYBE + Considered Problem: - Strict DPs: a__diff#(X,Y) -> c_1(a__if#(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) ,a__leq#(mark(X),mark(Y)) ,mark#(X) ,mark#(Y)) a__if#(false(),X,Y) -> c_4(mark#(Y)) a__if#(true(),X,Y) -> c_5(mark#(X)) a__leq#(s(X),s(Y)) -> c_9(a__leq#(mark(X),mark(Y)),mark#(X),mark#(Y)) a__p#(s(X)) -> c_12(mark#(X)) mark#(diff(X1,X2)) -> c_14(a__diff#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(if(X1,X2,X3)) -> c_16(a__if#(mark(X1),X2,X3),mark#(X1)) mark#(leq(X1,X2)) -> c_17(a__leq#(mark(X1),mark(X2)),mark#(X1),mark#(X2)) mark#(p(X)) -> c_18(a__p#(mark(X)),mark#(X)) mark#(s(X)) -> c_19(mark#(X)) - Weak TRS: a__diff(X,Y) -> a__if(a__leq(mark(X),mark(Y)),0(),s(diff(p(X),Y))) a__diff(X1,X2) -> diff(X1,X2) a__if(X1,X2,X3) -> if(X1,X2,X3) a__if(false(),X,Y) -> mark(Y) a__if(true(),X,Y) -> mark(X) a__leq(X1,X2) -> leq(X1,X2) a__leq(0(),Y) -> true() a__leq(s(X),0()) -> false() a__leq(s(X),s(Y)) -> a__leq(mark(X),mark(Y)) a__p(X) -> p(X) a__p(0()) -> 0() a__p(s(X)) -> mark(X) mark(0()) -> 0() mark(diff(X1,X2)) -> a__diff(mark(X1),mark(X2)) mark(false()) -> false() mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) mark(leq(X1,X2)) -> a__leq(mark(X1),mark(X2)) mark(p(X)) -> a__p(mark(X)) mark(s(X)) -> s(mark(X)) mark(true()) -> true() - Signature: {a__diff/2,a__if/3,a__leq/2,a__p/1,mark/1,a__diff#/2,a__if#/3,a__leq#/2,a__p#/1,mark#/1} / {0/0,diff/2 ,false/0,if/3,leq/2,p/1,s/1,true/0,c_1/4,c_2/0,c_3/0,c_4/1,c_5/1,c_6/0,c_7/0,c_8/0,c_9/3,c_10/0,c_11/0 ,c_12/1,c_13/0,c_14/3,c_15/0,c_16/2,c_17/3,c_18/2,c_19/1,c_20/0} - Obligation: innermost runtime complexity wrt. defined symbols {a__diff#,a__if#,a__leq#,a__p#,mark#} and constructors {0 ,diff,false,if,leq,p,s,true} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE