MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: intlookup(e,p) -> intlookup(lookup(e,p),p) lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x run(e,p) -> intlookup(e,p) - Signature: {intlookup/2,lookup/2,run/2} / {Cons/2,Nil/0} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup,lookup,run} and constructors {Cons,Nil} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) lookup#(Nil(),Cons(x,xs)) -> c_3() run#(e,p) -> c_4(intlookup#(e,p)) Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) lookup#(Nil(),Cons(x,xs)) -> c_3() run#(e,p) -> c_4(intlookup#(e,p)) - Weak TRS: intlookup(e,p) -> intlookup(lookup(e,p),p) lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x run(e,p) -> intlookup(e,p) - Signature: {intlookup/2,lookup/2,run/2,intlookup#/2,lookup#/2,run#/2} / {Cons/2,Nil/0,c_1/2,c_2/1,c_3/0,c_4/1} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup#,lookup#,run#} and constructors {Cons,Nil} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) lookup#(Nil(),Cons(x,xs)) -> c_3() run#(e,p) -> c_4(intlookup#(e,p)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) lookup#(Nil(),Cons(x,xs)) -> c_3() run#(e,p) -> c_4(intlookup#(e,p)) - Weak TRS: lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x - Signature: {intlookup/2,lookup/2,run/2,intlookup#/2,lookup#/2,run#/2} / {Cons/2,Nil/0,c_1/2,c_2/1,c_3/0,c_4/1} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup#,lookup#,run#} and constructors {Cons,Nil} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {3} by application of Pre({3}) = {1,2}. Here rules are labelled as follows: 1: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) 2: lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) 3: lookup#(Nil(),Cons(x,xs)) -> c_3() 4: run#(e,p) -> c_4(intlookup#(e,p)) * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) run#(e,p) -> c_4(intlookup#(e,p)) - Weak DPs: lookup#(Nil(),Cons(x,xs)) -> c_3() - Weak TRS: lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x - Signature: {intlookup/2,lookup/2,run/2,intlookup#/2,lookup#/2,run#/2} / {Cons/2,Nil/0,c_1/2,c_2/1,c_3/0,c_4/1} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup#,lookup#,run#} and constructors {Cons,Nil} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) -->_2 lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)):2 -->_2 lookup#(Nil(),Cons(x,xs)) -> c_3():4 -->_1 intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)):1 2:S:lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) -->_1 lookup#(Nil(),Cons(x,xs)) -> c_3():4 -->_1 lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)):2 3:S:run#(e,p) -> c_4(intlookup#(e,p)) -->_1 intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)):1 4:W:lookup#(Nil(),Cons(x,xs)) -> c_3() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 4: lookup#(Nil(),Cons(x,xs)) -> c_3() * Step 5: RemoveHeads MAYBE + Considered Problem: - Strict DPs: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) run#(e,p) -> c_4(intlookup#(e,p)) - Weak TRS: lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x - Signature: {intlookup/2,lookup/2,run/2,intlookup#/2,lookup#/2,run#/2} / {Cons/2,Nil/0,c_1/2,c_2/1,c_3/0,c_4/1} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup#,lookup#,run#} and constructors {Cons,Nil} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) -->_2 lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)):2 -->_1 intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)):1 2:S:lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) -->_1 lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)):2 3:S:run#(e,p) -> c_4(intlookup#(e,p)) -->_1 intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)):1 Following roots of the dependency graph are removed, as the considered set of starting terms is closed under reduction with respect to these rules (modulo compound contexts). [(3,run#(e,p) -> c_4(intlookup#(e,p)))] * Step 6: Failure MAYBE + Considered Problem: - Strict DPs: intlookup#(e,p) -> c_1(intlookup#(lookup(e,p),p),lookup#(e,p)) lookup#(Cons(x',xs'),Cons(x,xs)) -> c_2(lookup#(xs',xs)) - Weak TRS: lookup(Cons(x',xs'),Cons(x,xs)) -> lookup(xs',xs) lookup(Nil(),Cons(x,xs)) -> x - Signature: {intlookup/2,lookup/2,run/2,intlookup#/2,lookup#/2,run#/2} / {Cons/2,Nil/0,c_1/2,c_2/1,c_3/0,c_4/1} - Obligation: innermost runtime complexity wrt. defined symbols {intlookup#,lookup#,run#} and constructors {Cons,Nil} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE