MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() cond1(true(),x,y) -> cond2(gr(y,0()),x,y) cond2(false(),x,y) -> cond1(and(eq(x,y),gr(x,0())),x,y) cond2(true(),x,y) -> cond2(gr(y,0()),p(x),p(y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1} / {0/0,false/0,s/1,true/0} - Obligation: innermost runtime complexity wrt. defined symbols {and,cond1,cond2,eq,gr,p} and constructors {0,false,s ,true} + Applied Processor: DependencyPairs {dpKind_ = DT} + Details: We add the following dependency tuples: Strict DPs and#(x,false()) -> c_1() and#(false(),x) -> c_2() and#(true(),true()) -> c_3() cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(0(),0()) -> c_7() eq#(0(),s(x)) -> c_8() eq#(s(x),0()) -> c_9() eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(0(),x) -> c_11() gr#(s(x),0()) -> c_12() gr#(s(x),s(y)) -> c_13(gr#(x,y)) p#(0()) -> c_14() p#(s(x)) -> c_15() Weak DPs and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: and#(x,false()) -> c_1() and#(false(),x) -> c_2() and#(true(),true()) -> c_3() cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(0(),0()) -> c_7() eq#(0(),s(x)) -> c_8() eq#(s(x),0()) -> c_9() eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(0(),x) -> c_11() gr#(s(x),0()) -> c_12() gr#(s(x),s(y)) -> c_13(gr#(x,y)) p#(0()) -> c_14() p#(s(x)) -> c_15() - Weak TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() cond1(true(),x,y) -> cond2(gr(y,0()),x,y) cond2(false(),x,y) -> cond1(and(eq(x,y),gr(x,0())),x,y) cond2(true(),x,y) -> cond2(gr(y,0()),p(x),p(y)) eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() gr(s(x),s(y)) -> gr(x,y) p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1,and#/2,cond1#/3,cond2#/3,eq#/2,gr#/2,p#/1} / {0/0,false/0,s/1,true/0 ,c_1/0,c_2/0,c_3/0,c_4/2,c_5/4,c_6/4,c_7/0,c_8/0,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1,c_14/0,c_15/0} - Obligation: innermost runtime complexity wrt. defined symbols {and#,cond1#,cond2#,eq#,gr#,p#} and constructors {0,false ,s,true} + Applied Processor: UsableRules + Details: We replace rewrite rules by usable rules: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() p(0()) -> 0() p(s(x)) -> x and#(x,false()) -> c_1() and#(false(),x) -> c_2() and#(true(),true()) -> c_3() cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(0(),0()) -> c_7() eq#(0(),s(x)) -> c_8() eq#(s(x),0()) -> c_9() eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(0(),x) -> c_11() gr#(s(x),0()) -> c_12() gr#(s(x),s(y)) -> c_13(gr#(x,y)) p#(0()) -> c_14() p#(s(x)) -> c_15() * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: and#(x,false()) -> c_1() and#(false(),x) -> c_2() and#(true(),true()) -> c_3() cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(0(),0()) -> c_7() eq#(0(),s(x)) -> c_8() eq#(s(x),0()) -> c_9() eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(0(),x) -> c_11() gr#(s(x),0()) -> c_12() gr#(s(x),s(y)) -> c_13(gr#(x,y)) p#(0()) -> c_14() p#(s(x)) -> c_15() - Weak TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1,and#/2,cond1#/3,cond2#/3,eq#/2,gr#/2,p#/1} / {0/0,false/0,s/1,true/0 ,c_1/0,c_2/0,c_3/0,c_4/2,c_5/4,c_6/4,c_7/0,c_8/0,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1,c_14/0,c_15/0} - Obligation: innermost runtime complexity wrt. defined symbols {and#,cond1#,cond2#,eq#,gr#,p#} and constructors {0,false ,s,true} + Applied Processor: PredecessorEstimation {onSelection = all simple predecessor estimation selector} + Details: We estimate the number of application of {1,2,3,7,8,9,11,12,14,15} by application of Pre({1,2,3,7,8,9,11,12,14,15}) = {4,5,6,10,13}. Here rules are labelled as follows: 1: and#(x,false()) -> c_1() 2: and#(false(),x) -> c_2() 3: and#(true(),true()) -> c_3() 4: cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) 5: cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())) 6: cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) 7: eq#(0(),0()) -> c_7() 8: eq#(0(),s(x)) -> c_8() 9: eq#(s(x),0()) -> c_9() 10: eq#(s(x),s(y)) -> c_10(eq#(x,y)) 11: gr#(0(),x) -> c_11() 12: gr#(s(x),0()) -> c_12() 13: gr#(s(x),s(y)) -> c_13(gr#(x,y)) 14: p#(0()) -> c_14() 15: p#(s(x)) -> c_15() * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(s(x),s(y)) -> c_13(gr#(x,y)) - Weak DPs: and#(x,false()) -> c_1() and#(false(),x) -> c_2() and#(true(),true()) -> c_3() eq#(0(),0()) -> c_7() eq#(0(),s(x)) -> c_8() eq#(s(x),0()) -> c_9() gr#(0(),x) -> c_11() gr#(s(x),0()) -> c_12() p#(0()) -> c_14() p#(s(x)) -> c_15() - Weak TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1,and#/2,cond1#/3,cond2#/3,eq#/2,gr#/2,p#/1} / {0/0,false/0,s/1,true/0 ,c_1/0,c_2/0,c_3/0,c_4/2,c_5/4,c_6/4,c_7/0,c_8/0,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1,c_14/0,c_15/0} - Obligation: innermost runtime complexity wrt. defined symbols {and#,cond1#,cond2#,eq#,gr#,p#} and constructors {0,false ,s,true} + Applied Processor: RemoveWeakSuffixes + Details: Consider the dependency graph 1:S:cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) -->_1 cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)):3 -->_1 cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())):2 -->_2 gr#(s(x),0()) -> c_12():13 -->_2 gr#(0(),x) -> c_11():12 2:S:cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())) -->_3 eq#(s(x),s(y)) -> c_10(eq#(x,y)):4 -->_4 gr#(s(x),0()) -> c_12():13 -->_4 gr#(0(),x) -> c_11():12 -->_3 eq#(s(x),0()) -> c_9():11 -->_3 eq#(0(),s(x)) -> c_8():10 -->_3 eq#(0(),0()) -> c_7():9 -->_2 and#(true(),true()) -> c_3():8 -->_2 and#(false(),x) -> c_2():7 -->_2 and#(x,false()) -> c_1():6 -->_1 cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())):1 3:S:cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) -->_4 p#(s(x)) -> c_15():15 -->_3 p#(s(x)) -> c_15():15 -->_4 p#(0()) -> c_14():14 -->_3 p#(0()) -> c_14():14 -->_2 gr#(s(x),0()) -> c_12():13 -->_2 gr#(0(),x) -> c_11():12 -->_1 cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)):3 -->_1 cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())):2 4:S:eq#(s(x),s(y)) -> c_10(eq#(x,y)) -->_1 eq#(s(x),0()) -> c_9():11 -->_1 eq#(0(),s(x)) -> c_8():10 -->_1 eq#(0(),0()) -> c_7():9 -->_1 eq#(s(x),s(y)) -> c_10(eq#(x,y)):4 5:S:gr#(s(x),s(y)) -> c_13(gr#(x,y)) -->_1 gr#(s(x),0()) -> c_12():13 -->_1 gr#(0(),x) -> c_11():12 -->_1 gr#(s(x),s(y)) -> c_13(gr#(x,y)):5 6:W:and#(x,false()) -> c_1() 7:W:and#(false(),x) -> c_2() 8:W:and#(true(),true()) -> c_3() 9:W:eq#(0(),0()) -> c_7() 10:W:eq#(0(),s(x)) -> c_8() 11:W:eq#(s(x),0()) -> c_9() 12:W:gr#(0(),x) -> c_11() 13:W:gr#(s(x),0()) -> c_12() 14:W:p#(0()) -> c_14() 15:W:p#(s(x)) -> c_15() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 6: and#(x,false()) -> c_1() 7: and#(false(),x) -> c_2() 8: and#(true(),true()) -> c_3() 9: eq#(0(),0()) -> c_7() 10: eq#(0(),s(x)) -> c_8() 11: eq#(s(x),0()) -> c_9() 12: gr#(0(),x) -> c_11() 13: gr#(s(x),0()) -> c_12() 14: p#(0()) -> c_14() 15: p#(s(x)) -> c_15() * Step 5: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),and#(eq(x,y),gr(x,0())),eq#(x,y),gr#(x,0())) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(s(x),s(y)) -> c_13(gr#(x,y)) - Weak TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1,and#/2,cond1#/3,cond2#/3,eq#/2,gr#/2,p#/1} / {0/0,false/0,s/1,true/0 ,c_1/0,c_2/0,c_3/0,c_4/2,c_5/4,c_6/4,c_7/0,c_8/0,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1,c_14/0,c_15/0} - Obligation: innermost runtime complexity wrt. defined symbols {and#,cond1#,cond2#,eq#,gr#,p#} and constructors {0,false ,s,true} + Applied Processor: SimplifyRHS + Details: Consider the dependency graph 1:S:cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())) -->_1 cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)):3 -->_1 cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())):2 2:S:cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())) -->_3 eq#(s(x),s(y)) -> c_10(eq#(x,y)):4 -->_1 cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y),gr#(y,0())):1 3:S:cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)) -->_1 cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y)),gr#(y,0()),p#(x),p#(y)):3 -->_1 cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y) ,and#(eq(x,y),gr(x,0())) ,eq#(x,y) ,gr#(x,0())):2 4:S:eq#(s(x),s(y)) -> c_10(eq#(x,y)) -->_1 eq#(s(x),s(y)) -> c_10(eq#(x,y)):4 5:S:gr#(s(x),s(y)) -> c_13(gr#(x,y)) -->_1 gr#(s(x),s(y)) -> c_13(gr#(x,y)):5 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y)) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),eq#(x,y)) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y))) * Step 6: Failure MAYBE + Considered Problem: - Strict DPs: cond1#(true(),x,y) -> c_4(cond2#(gr(y,0()),x,y)) cond2#(false(),x,y) -> c_5(cond1#(and(eq(x,y),gr(x,0())),x,y),eq#(x,y)) cond2#(true(),x,y) -> c_6(cond2#(gr(y,0()),p(x),p(y))) eq#(s(x),s(y)) -> c_10(eq#(x,y)) gr#(s(x),s(y)) -> c_13(gr#(x,y)) - Weak TRS: and(x,false()) -> false() and(false(),x) -> false() and(true(),true()) -> true() eq(0(),0()) -> true() eq(0(),s(x)) -> false() eq(s(x),0()) -> false() eq(s(x),s(y)) -> eq(x,y) gr(0(),x) -> false() gr(s(x),0()) -> true() p(0()) -> 0() p(s(x)) -> x - Signature: {and/2,cond1/3,cond2/3,eq/2,gr/2,p/1,and#/2,cond1#/3,cond2#/3,eq#/2,gr#/2,p#/1} / {0/0,false/0,s/1,true/0 ,c_1/0,c_2/0,c_3/0,c_4/1,c_5/2,c_6/1,c_7/0,c_8/0,c_9/0,c_10/1,c_11/0,c_12/0,c_13/1,c_14/0,c_15/0} - Obligation: innermost runtime complexity wrt. defined symbols {and#,cond1#,cond2#,eq#,gr#,p#} and constructors {0,false ,s,true} + Applied Processor: EmptyProcessor + Details: The problem is still open. MAYBE