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