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