MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) top(free(x)) -> top(check(new(x))) - Signature: {check/1,new/1,old/1,top/1} / {free/1,serve/0} - Obligation: innermost runtime complexity wrt. defined symbols {check,new,old,top} and constructors {free,serve} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) new#(serve()) -> c_6() old#(free(x)) -> c_7(old#(x)) old#(serve()) -> c_8() top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) new#(serve()) -> c_6() old#(free(x)) -> c_7(old#(x)) old#(serve()) -> c_8() top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) - Weak TRS: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) top(free(x)) -> top(check(new(x))) - Signature: {check/1,new/1,old/1,top/1,check#/1,new#/1,old#/1,top#/1} / {free/1,serve/0,c_1/1,c_2/2,c_3/1,c_4/2,c_5/1 ,c_6/0,c_7/1,c_8/0,c_9/3} - Obligation: innermost runtime complexity wrt. defined symbols {check#,new#,old#,top#} and constructors {free,serve} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) new#(serve()) -> c_6() old#(free(x)) -> c_7(old#(x)) old#(serve()) -> c_8() top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) new#(serve()) -> c_6() old#(free(x)) -> c_7(old#(x)) old#(serve()) -> c_8() top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) - Weak TRS: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) - Signature: {check/1,new/1,old/1,top/1,check#/1,new#/1,old#/1,top#/1} / {free/1,serve/0,c_1/1,c_2/2,c_3/1,c_4/2,c_5/1 ,c_6/0,c_7/1,c_8/0,c_9/3} - Obligation: innermost runtime complexity wrt. defined symbols {check#,new#,old#,top#} and constructors {free,serve} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {6,8} by application of Pre({6,8}) = {2,3,4,5,7,9}. Here rules are labelled as follows: 1: check#(free(x)) -> c_1(check#(x)) 2: check#(new(x)) -> c_2(new#(check(x)),check#(x)) 3: check#(old(x)) -> c_3(old#(x)) 4: check#(old(x)) -> c_4(old#(check(x)),check#(x)) 5: new#(free(x)) -> c_5(new#(x)) 6: new#(serve()) -> c_6() 7: old#(free(x)) -> c_7(old#(x)) 8: old#(serve()) -> c_8() 9: top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) old#(free(x)) -> c_7(old#(x)) top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) - Weak DPs: new#(serve()) -> c_6() old#(serve()) -> c_8() - Weak TRS: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) - Signature: {check/1,new/1,old/1,top/1,check#/1,new#/1,old#/1,top#/1} / {free/1,serve/0,c_1/1,c_2/2,c_3/1,c_4/2,c_5/1 ,c_6/0,c_7/1,c_8/0,c_9/3} - Obligation: innermost runtime complexity wrt. defined symbols {check#,new#,old#,top#} and constructors {free,serve} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:check#(free(x)) -> c_1(check#(x)) -->_1 check#(old(x)) -> c_4(old#(check(x)),check#(x)):4 -->_1 check#(old(x)) -> c_3(old#(x)):3 -->_1 check#(new(x)) -> c_2(new#(check(x)),check#(x)):2 -->_1 check#(free(x)) -> c_1(check#(x)):1 2:S:check#(new(x)) -> c_2(new#(check(x)),check#(x)) -->_1 new#(free(x)) -> c_5(new#(x)):5 -->_2 check#(old(x)) -> c_4(old#(check(x)),check#(x)):4 -->_2 check#(old(x)) -> c_3(old#(x)):3 -->_1 new#(serve()) -> c_6():8 -->_2 check#(new(x)) -> c_2(new#(check(x)),check#(x)):2 -->_2 check#(free(x)) -> c_1(check#(x)):1 3:S:check#(old(x)) -> c_3(old#(x)) -->_1 old#(free(x)) -> c_7(old#(x)):6 -->_1 old#(serve()) -> c_8():9 4:S:check#(old(x)) -> c_4(old#(check(x)),check#(x)) -->_1 old#(free(x)) -> c_7(old#(x)):6 -->_1 old#(serve()) -> c_8():9 -->_2 check#(old(x)) -> c_4(old#(check(x)),check#(x)):4 -->_2 check#(old(x)) -> c_3(old#(x)):3 -->_2 check#(new(x)) -> c_2(new#(check(x)),check#(x)):2 -->_2 check#(free(x)) -> c_1(check#(x)):1 5:S:new#(free(x)) -> c_5(new#(x)) -->_1 new#(serve()) -> c_6():8 -->_1 new#(free(x)) -> c_5(new#(x)):5 6:S:old#(free(x)) -> c_7(old#(x)) -->_1 old#(serve()) -> c_8():9 -->_1 old#(free(x)) -> c_7(old#(x)):6 7:S:top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) -->_3 new#(serve()) -> c_6():8 -->_1 top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)):7 -->_3 new#(free(x)) -> c_5(new#(x)):5 -->_2 check#(old(x)) -> c_4(old#(check(x)),check#(x)):4 -->_2 check#(old(x)) -> c_3(old#(x)):3 -->_2 check#(new(x)) -> c_2(new#(check(x)),check#(x)):2 -->_2 check#(free(x)) -> c_1(check#(x)):1 8:W:new#(serve()) -> c_6() 9:W:old#(serve()) -> c_8() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 8: new#(serve()) -> c_6() 9: old#(serve()) -> c_8() * Step 5: Failure MAYBE + Considered Problem: - Strict DPs: check#(free(x)) -> c_1(check#(x)) check#(new(x)) -> c_2(new#(check(x)),check#(x)) check#(old(x)) -> c_3(old#(x)) check#(old(x)) -> c_4(old#(check(x)),check#(x)) new#(free(x)) -> c_5(new#(x)) old#(free(x)) -> c_7(old#(x)) top#(free(x)) -> c_9(top#(check(new(x))),check#(new(x)),new#(x)) - Weak TRS: check(free(x)) -> free(check(x)) check(new(x)) -> new(check(x)) check(old(x)) -> old(x) check(old(x)) -> old(check(x)) new(free(x)) -> free(new(x)) new(serve()) -> free(serve()) old(free(x)) -> free(old(x)) old(serve()) -> free(serve()) - Signature: {check/1,new/1,old/1,top/1,check#/1,new#/1,old#/1,top#/1} / {free/1,serve/0,c_1/1,c_2/2,c_3/1,c_4/2,c_5/1 ,c_6/0,c_7/1,c_8/0,c_9/3} - Obligation: innermost runtime complexity wrt. defined symbols {check#,new#,old#,top#} and constructors {free,serve} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE