MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() 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(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate,head,incr,nats,odds,pairs ,tail} and constructors {0,cons,n__incr,n__nats,n__odds,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#(activate(X)),activate#(X)) activate#(n__nats()) -> c_3(nats#()) activate#(n__odds()) -> c_4(odds#()) head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() incr#(cons(X,XS)) -> c_7(activate#(XS)) nats#() -> c_8() nats#() -> c_9() odds#() -> c_10(incr#(pairs()),pairs#()) odds#() -> c_11() pairs#() -> c_12() tail#(cons(X,XS)) -> c_13(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#(activate(X)),activate#(X)) activate#(n__nats()) -> c_3(nats#()) activate#(n__odds()) -> c_4(odds#()) head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() incr#(cons(X,XS)) -> c_7(activate#(XS)) nats#() -> c_8() nats#() -> c_9() odds#() -> c_10(incr#(pairs()),pairs#()) odds#() -> c_11() pairs#() -> c_12() tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() 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(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/2,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__odds())) activate#(X) -> c_1() activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__nats()) -> c_3(nats#()) activate#(n__odds()) -> c_4(odds#()) head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() incr#(cons(X,XS)) -> c_7(activate#(XS)) nats#() -> c_8() nats#() -> c_9() odds#() -> c_10(incr#(pairs()),pairs#()) odds#() -> c_11() pairs#() -> c_12() tail#(cons(X,XS)) -> c_13(activate#(XS)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: activate#(X) -> c_1() activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__nats()) -> c_3(nats#()) activate#(n__odds()) -> c_4(odds#()) head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() incr#(cons(X,XS)) -> c_7(activate#(XS)) nats#() -> c_8() nats#() -> c_9() odds#() -> c_10(incr#(pairs()),pairs#()) odds#() -> c_11() pairs#() -> c_12() tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/2,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,5,6,8,9,11,12} by application of Pre({1,5,6,8,9,11,12}) = {2,3,4,7,10,13}. Here rules are labelled as follows: 1: activate#(X) -> c_1() 2: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) 3: activate#(n__nats()) -> c_3(nats#()) 4: activate#(n__odds()) -> c_4(odds#()) 5: head#(cons(X,XS)) -> c_5() 6: incr#(X) -> c_6() 7: incr#(cons(X,XS)) -> c_7(activate#(XS)) 8: nats#() -> c_8() 9: nats#() -> c_9() 10: odds#() -> c_10(incr#(pairs()),pairs#()) 11: odds#() -> c_11() 12: pairs#() -> c_12() 13: tail#(cons(X,XS)) -> c_13(activate#(XS)) * Step 4: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__nats()) -> c_3(nats#()) activate#(n__odds()) -> c_4(odds#()) incr#(cons(X,XS)) -> c_7(activate#(XS)) odds#() -> c_10(incr#(pairs()),pairs#()) tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak DPs: activate#(X) -> c_1() head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() nats#() -> c_8() nats#() -> c_9() odds#() -> c_11() pairs#() -> c_12() - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/2,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {2} by application of Pre({2}) = {1,4,6}. Here rules are labelled as follows: 1: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) 2: activate#(n__nats()) -> c_3(nats#()) 3: activate#(n__odds()) -> c_4(odds#()) 4: incr#(cons(X,XS)) -> c_7(activate#(XS)) 5: odds#() -> c_10(incr#(pairs()),pairs#()) 6: tail#(cons(X,XS)) -> c_13(activate#(XS)) 7: activate#(X) -> c_1() 8: head#(cons(X,XS)) -> c_5() 9: incr#(X) -> c_6() 10: nats#() -> c_8() 11: nats#() -> c_9() 12: odds#() -> c_11() 13: pairs#() -> c_12() * Step 5: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__odds()) -> c_4(odds#()) incr#(cons(X,XS)) -> c_7(activate#(XS)) odds#() -> c_10(incr#(pairs()),pairs#()) tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak DPs: activate#(X) -> c_1() activate#(n__nats()) -> c_3(nats#()) head#(cons(X,XS)) -> c_5() incr#(X) -> c_6() nats#() -> c_8() nats#() -> c_9() odds#() -> c_11() pairs#() -> c_12() - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/2,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) -->_2 activate#(n__nats()) -> c_3(nats#()):7 -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 -->_2 activate#(n__odds()) -> c_4(odds#()):2 -->_1 incr#(X) -> c_6():9 -->_2 activate#(X) -> c_1():6 -->_2 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 2:S:activate#(n__odds()) -> c_4(odds#()) -->_1 odds#() -> c_10(incr#(pairs()),pairs#()):4 -->_1 odds#() -> c_11():12 3:S:incr#(cons(X,XS)) -> c_7(activate#(XS)) -->_1 activate#(n__nats()) -> c_3(nats#()):7 -->_1 activate#(X) -> c_1():6 -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 4:S:odds#() -> c_10(incr#(pairs()),pairs#()) -->_2 pairs#() -> c_12():13 -->_1 incr#(X) -> c_6():9 -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 5:S:tail#(cons(X,XS)) -> c_13(activate#(XS)) -->_1 activate#(n__nats()) -> c_3(nats#()):7 -->_1 activate#(X) -> c_1():6 -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 6:W:activate#(X) -> c_1() 7:W:activate#(n__nats()) -> c_3(nats#()) -->_1 nats#() -> c_9():11 -->_1 nats#() -> c_8():10 8:W:head#(cons(X,XS)) -> c_5() 9:W:incr#(X) -> c_6() 10:W:nats#() -> c_8() 11:W:nats#() -> c_9() 12:W:odds#() -> c_11() 13:W:pairs#() -> c_12() 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_5() 12: odds#() -> c_11() 9: incr#(X) -> c_6() 13: pairs#() -> c_12() 6: activate#(X) -> c_1() 7: activate#(n__nats()) -> c_3(nats#()) 10: nats#() -> c_8() 11: nats#() -> c_9() * Step 6: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__odds()) -> c_4(odds#()) incr#(cons(X,XS)) -> c_7(activate#(XS)) odds#() -> c_10(incr#(pairs()),pairs#()) tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/2,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 -->_2 activate#(n__odds()) -> c_4(odds#()):2 -->_2 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 2:S:activate#(n__odds()) -> c_4(odds#()) -->_1 odds#() -> c_10(incr#(pairs()),pairs#()):4 3:S:incr#(cons(X,XS)) -> c_7(activate#(XS)) -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 4:S:odds#() -> c_10(incr#(pairs()),pairs#()) -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 5:S:tail#(cons(X,XS)) -> c_13(activate#(XS)) -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: odds#() -> c_10(incr#(pairs())) * Step 7: RemoveHeads MAYBE + Considered Problem: - Strict DPs: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__odds()) -> c_4(odds#()) incr#(cons(X,XS)) -> c_7(activate#(XS)) odds#() -> c_10(incr#(pairs())) tail#(cons(X,XS)) -> c_13(activate#(XS)) - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: RemoveHeads + Details: Consider the dependency graph 1:S:activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 -->_2 activate#(n__odds()) -> c_4(odds#()):2 -->_2 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 2:S:activate#(n__odds()) -> c_4(odds#()) -->_1 odds#() -> c_10(incr#(pairs())):4 3:S:incr#(cons(X,XS)) -> c_7(activate#(XS)) -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)):1 4:S:odds#() -> c_10(incr#(pairs())) -->_1 incr#(cons(X,XS)) -> c_7(activate#(XS)):3 5:S:tail#(cons(X,XS)) -> c_13(activate#(XS)) -->_1 activate#(n__odds()) -> c_4(odds#()):2 -->_1 activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(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). [(5,tail#(cons(X,XS)) -> c_13(activate#(XS)))] * Step 8: Failure MAYBE + Considered Problem: - Strict DPs: activate#(n__incr(X)) -> c_2(incr#(activate(X)),activate#(X)) activate#(n__odds()) -> c_4(odds#()) incr#(cons(X,XS)) -> c_7(activate#(XS)) odds#() -> c_10(incr#(pairs())) - Weak TRS: activate(X) -> X activate(n__incr(X)) -> incr(activate(X)) activate(n__nats()) -> nats() activate(n__odds()) -> odds() incr(X) -> n__incr(X) incr(cons(X,XS)) -> cons(s(X),n__incr(activate(XS))) nats() -> cons(0(),n__incr(n__nats())) nats() -> n__nats() odds() -> incr(pairs()) odds() -> n__odds() pairs() -> cons(0(),n__incr(n__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,n__nats/0,n__odds/0,s/1,c_1/0,c_2/2,c_3/1,c_4/1,c_5/0,c_6/0,c_7/1,c_8/0 ,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1} - Obligation: innermost runtime complexity wrt. defined symbols {activate#,head#,incr#,nats#,odds#,pairs# ,tail#} and constructors {0,cons,n__incr,n__nats,n__odds,s} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE