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