MAYBE * Step 1: DependencyPairs MAYBE + Considered Problem: - Strict TRS: equal0(a,b) -> equal0[Ite](<(a,b),a,b) gcd(x,y) -> gcd[Ite](equal0(x,y),x,y) monus(S(x'),S(x)) -> monus(x',x) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() gcd[False][Ite](False(),x,y) -> gcd(y,monus(y,x)) gcd[False][Ite](True(),x,y) -> gcd(monus(x,y),y) gcd[Ite](False(),x,y) -> gcd[False][Ite](<(x,y),x,y) gcd[Ite](True(),x,y) -> x - Signature: { c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) Weak DPs <#(x,0()) -> c_4() <#(0(),S(y)) -> c_5() <#(S(x),S(y)) -> c_6(<#(x,y)) equal0[Ite]#(False(),a,b) -> c_7() equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) equal0[True][Ite]#(False(),a,b) -> c_9() equal0[True][Ite]#(True(),a,b) -> c_10() gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) gcd[Ite]#(True(),x,y) -> c_14() and mark the set of starting terms. * Step 2: UsableRules MAYBE + Considered Problem: - Strict DPs: equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: <#(x,0()) -> c_4() <#(0(),S(y)) -> c_5() <#(S(x),S(y)) -> c_6(<#(x,y)) equal0[Ite]#(False(),a,b) -> c_7() equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) equal0[True][Ite]#(False(),a,b) -> c_9() equal0[True][Ite]#(True(),a,b) -> c_10() gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) gcd[Ite]#(True(),x,y) -> c_14() - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() gcd(x,y) -> gcd[Ite](equal0(x,y),x,y) gcd[False][Ite](False(),x,y) -> gcd(y,monus(y,x)) gcd[False][Ite](True(),x,y) -> gcd(monus(x,y),y) gcd[Ite](False(),x,y) -> gcd[False][Ite](<(x,y),x,y) gcd[Ite](True(),x,y) -> x monus(S(x'),S(x)) -> monus(x',x) - Signature: { False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) <#(x,0()) -> c_4() <#(0(),S(y)) -> c_5() <#(S(x),S(y)) -> c_6(<#(x,y)) equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) equal0[Ite]#(False(),a,b) -> c_7() equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) equal0[True][Ite]#(False(),a,b) -> c_9() equal0[True][Ite]#(True(),a,b) -> c_10() gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) gcd[Ite]#(True(),x,y) -> c_14() monus#(S(x'),S(x)) -> c_3(monus#(x',x)) * Step 3: PredecessorEstimation MAYBE + Considered Problem: - Strict DPs: equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: <#(x,0()) -> c_4() <#(0(),S(y)) -> c_5() <#(S(x),S(y)) -> c_6(<#(x,y)) equal0[Ite]#(False(),a,b) -> c_7() equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) equal0[True][Ite]#(False(),a,b) -> c_9() equal0[True][Ite]#(True(),a,b) -> c_10() gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) gcd[Ite]#(True(),x,y) -> c_14() - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) 2: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) 3: monus#(S(x'),S(x)) -> c_3(monus#(x',x)) 4: <#(x,0()) -> c_4() 5: <#(0(),S(y)) -> c_5() 6: <#(S(x),S(y)) -> c_6(<#(x,y)) 7: equal0[Ite]#(False(),a,b) -> c_7() 8: equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) 9: equal0[True][Ite]#(False(),a,b) -> c_9() 10: equal0[True][Ite]#(True(),a,b) -> c_10() 11: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) 12: gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) 13: gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) 14: gcd[Ite]#(True(),x,y) -> c_14() * Step 4: RemoveWeakSuffixes MAYBE + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: <#(x,0()) -> c_4() <#(0(),S(y)) -> c_5() <#(S(x),S(y)) -> c_6(<#(x,y)) equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) equal0[Ite]#(False(),a,b) -> c_7() equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) equal0[True][Ite]#(False(),a,b) -> c_9() equal0[True][Ite]#(True(),a,b) -> c_10() gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) gcd[Ite]#(True(),x,y) -> c_14() - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) -->_1 gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)):13 -->_2 equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)):6 -->_1 gcd[Ite]#(True(),x,y) -> c_14():14 2:S:monus#(S(x'),S(x)) -> c_3(monus#(x',x)) -->_1 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 3:W:<#(x,0()) -> c_4() 4:W:<#(0(),S(y)) -> c_5() 5:W:<#(S(x),S(y)) -> c_6(<#(x,y)) -->_1 <#(S(x),S(y)) -> c_6(<#(x,y)):5 -->_1 <#(0(),S(y)) -> c_5():4 -->_1 <#(x,0()) -> c_4():3 6:W:equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) -->_1 equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)):8 -->_1 equal0[Ite]#(False(),a,b) -> c_7():7 -->_2 <#(S(x),S(y)) -> c_6(<#(x,y)):5 -->_2 <#(0(),S(y)) -> c_5():4 -->_2 <#(x,0()) -> c_4():3 7:W:equal0[Ite]#(False(),a,b) -> c_7() 8:W:equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) -->_1 equal0[True][Ite]#(True(),a,b) -> c_10():10 -->_1 equal0[True][Ite]#(False(),a,b) -> c_9():9 -->_2 <#(S(x),S(y)) -> c_6(<#(x,y)):5 -->_2 <#(0(),S(y)) -> c_5():4 -->_2 <#(x,0()) -> c_4():3 9:W:equal0[True][Ite]#(False(),a,b) -> c_9() 10:W:equal0[True][Ite]#(True(),a,b) -> c_10() 11:W:gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)):1 12:W:gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)):1 13:W:gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) -->_1 gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)):12 -->_1 gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)):11 -->_2 <#(S(x),S(y)) -> c_6(<#(x,y)):5 -->_2 <#(0(),S(y)) -> c_5():4 -->_2 <#(x,0()) -> c_4():3 14:W:gcd[Ite]#(True(),x,y) -> c_14() The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 14: gcd[Ite]#(True(),x,y) -> c_14() 6: equal0#(a,b) -> c_1(equal0[Ite]#(<(a,b),a,b),<#(a,b)) 7: equal0[Ite]#(False(),a,b) -> c_7() 8: equal0[Ite]#(True(),a,b) -> c_8(equal0[True][Ite]#(<(b,a),a,b),<#(b,a)) 9: equal0[True][Ite]#(False(),a,b) -> c_9() 10: equal0[True][Ite]#(True(),a,b) -> c_10() 5: <#(S(x),S(y)) -> c_6(<#(x,y)) 3: <#(x,0()) -> c_4() 4: <#(0(),S(y)) -> c_5() * Step 5: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)) -->_1 gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)):13 2:S:monus#(S(x'),S(x)) -> c_3(monus#(x',x)) -->_1 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 11:W:gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)):1 12:W:gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):2 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y),equal0#(x,y)):1 13:W:gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y),<#(x,y)) -->_1 gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)):12 -->_1 gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)):11 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) * Step 6: PredecessorEstimationCP MAYBE + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_3(monus#(x',x)) The strictly oriented rules are moved into the weak component. ** Step 6.a:1: NaturalMI WORST_CASE(?,O(n^1)) + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { [1] x' + [0] = c_3(monus#(x',x)) Following rules are (at-least) weakly oriented: gcd#(x,y) = [1] x + [14] y + [0] >= [1] x + [14] y + [0] = c_2(gcd[Ite]#(equal0(x,y),x,y)) gcd[False][Ite]#(False(),x,y) = [1] x + [14] y + [0] >= [12] y + [0] = c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) = [1] x + [14] y + [0] >= [1] x + [14] y + [0] = c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) = [1] x + [14] y + [0] >= [1] x + [14] y + [0] = c_13(gcd[False][Ite]#(<(x,y),x,y)) monus(S(x'),S(x)) = [0] >= [0] = monus(x',x) ** Step 6.a:2: Assumption WORST_CASE(?,O(1)) + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_2(gcd[Ite]#(equal0(x,y),x,y)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) monus#(S(x'),S(x)) -> c_3(monus#(x',x)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_2(gcd[Ite]#(equal0(x,y),x,y)) -->_1 gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)):4 2:W:gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):5 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)):1 3:W:gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) -->_2 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):5 -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)):1 4:W:gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) -->_1 gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)):3 -->_1 gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)):2 5:W:monus#(S(x'),S(x)) -> c_3(monus#(x',x)) -->_1 monus#(S(x'),S(x)) -> c_3(monus#(x',x)):5 The following weak DPs constitute a sub-graph of the DG that is closed under successors. The DPs are removed. 5: monus#(S(x'),S(x)) -> c_3(monus#(x',x)) ** Step 6.b:2: SimplifyRHS MAYBE + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: { c_2(gcd[Ite]#(equal0(x,y),x,y)) -->_1 gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)):4 2:W:gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)) -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)):1 3:W:gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)) -->_1 gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)):1 4:W:gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) -->_1 gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y),monus#(x,y)):3 -->_1 gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x)),monus#(y,x)):2 Due to missing edges in the depndency graph, the right-hand sides of following rules could be simplified: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x))) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y)) ** Step 6.b:3: Failure MAYBE + Considered Problem: - Strict DPs: gcd#(x,y) -> c_2(gcd[Ite]#(equal0(x,y),x,y)) - Weak DPs: gcd[False][Ite]#(False(),x,y) -> c_11(gcd#(y,monus(y,x))) gcd[False][Ite]#(True(),x,y) -> c_12(gcd#(monus(x,y),y)) gcd[Ite]#(False(),x,y) -> c_13(gcd[False][Ite]#(<(x,y),x,y)) - Weak TRS: <(x,0()) -> False() <(0(),S(y)) -> True() <(S(x),S(y)) -> <(x,y) equal0(a,b) -> equal0[Ite](<(a,b),a,b) equal0[Ite](False(),a,b) -> False() equal0[Ite](True(),a,b) -> equal0[True][Ite](<(b,a),a,b) equal0[True][Ite](False(),a,b) -> False() equal0[True][Ite](True(),a,b) -> True() monus(S(x'),S(x)) -> monus(x',x) - Signature: {