YES Input TRS: AC symbols: or C symbols: eq 1: eq(0(),0()) -> true() 2: eq(0(),s(x)) -> false() 3: eq(s(x),0()) -> false() 4: eq(s(x),s(y)) -> eq(x,y) 5: or(true(),y) -> true() 6: or(false(),y) -> y 7: union(empty(),h) -> h 8: union(edge(x,y,i),h) -> edge(x,y,union(i,h)) 9: reach(x,y,empty(),h) -> false() 10: reach(x,y,edge(u,v,i),h) -> if_reach_1(eq(x,u),x,y,edge(u,v,i),h) 11: if_reach_1(true(),x,y,edge(u,v,i),h) -> if_reach_2(eq(y,v),x,y,edge(u,v,i),h) 12: if_reach_1(false(),x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) 13: if_reach_2(true(),x,y,edge(u,v,i),h) -> true() 14: if_reach_2(false(),x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty())) Number of strict rules: 14 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #if_reach_1(true(),x,y,edge(u,v,i),h) -> #if_reach_2(eq(y,v),x,y,edge(u,v,i),h) #2: #if_reach_1(true(),x,y,edge(u,v,i),h) -> #eq(y,v) #3: #if_reach_1(false(),x,y,edge(u,v,i),h) -> #reach(x,y,i,edge(u,v,h)) #4: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #or(reach(x,y,i,h),reach(v,y,union(i,h),empty())) #5: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #reach(x,y,i,h) #6: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #reach(v,y,union(i,h),empty()) #7: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #union(i,h) #8: #reach(x,y,edge(u,v,i),h) -> #if_reach_1(eq(x,u),x,y,edge(u,v,i),h) #9: #reach(x,y,edge(u,v,i),h) -> #eq(x,u) #10: #union(edge(x,y,i),h) -> #union(i,h) #11: #or(x,or(y,z)) ->= #or(or(x,y),z) #12: #or(x,or(y,z)) ->= #or(x,y) #13: #eq(s(x),s(y)) -> #eq(x,y) Number of SCCs: 4, DPs: 9 SCC { #13 } POLO(Sum)... succeeded. s w: x1 + 1 #if_reach_1 w: 0 edge w: 0 #if_reach_2 w: 0 eq w: 0 false w: 0 reach w: 0 if_reach_2 w: 0 true w: 0 #reach w: 0 #eq w: x1 + x2 0 w: 0 union w: 0 or w: 0 empty w: 0 if_reach_1 w: 0 #or w: 0 #union w: 0 USABLE RULES: { } Removed DPs: #13 Number of SCCs: 3, DPs: 8 SCC { #10 } POLO(Sum)... succeeded. s w: 1 #if_reach_1 w: 0 edge w: x3 + 1 #if_reach_2 w: 0 eq w: 0 false w: 0 reach w: 0 if_reach_2 w: 0 true w: 0 #reach w: 0 #eq w: 0 0 w: 0 union w: 0 or w: 0 empty w: 0 if_reach_1 w: 0 #or w: 0 #union w: x1 USABLE RULES: { } Removed DPs: #10 Number of SCCs: 2, DPs: 7 SCC { #11 #12 } only weak rules. Number of SCCs: 1, DPs: 5 SCC { #1 #3 #5 #6 #8 } POLO(Sum)... succeeded. s w: 1 #if_reach_1 w: x2 + x3 + x4 + x5 + 2 edge w: x2 + x3 + 20656 #if_reach_2 w: x2 + x3 + x4 + x5 + 1 eq w: 1 false w: 2 reach w: 0 if_reach_2 w: 0 true w: 2 #reach w: x1 + x2 + x3 + x4 + 2 #eq w: 0 0 w: 1 union w: x1 + x2 + 1 or w: 0 empty w: 20653 if_reach_1 w: 0 #or w: 0 #union w: 0 USABLE RULES: { 7 8 } Removed DPs: #1 #5 #6 Number of SCCs: 1, DPs: 2 SCC { #3 #8 } POLO(Sum)... succeeded. s w: 1 #if_reach_1 w: x1 + x2 + x4 edge w: x2 + x3 + 2 #if_reach_2 w: 1 eq w: 1 false w: 1 reach w: 0 if_reach_2 w: 0 true w: 1 #reach w: x1 + x3 + 2 #eq w: 0 0 w: 1 union w: x1 + x2 + 33954 or w: 0 empty w: 20653 if_reach_1 w: 0 #or w: 0 #union w: 0 USABLE RULES: { 1..4 7 8 } Removed DPs: #3 #8 Number of SCCs: 0, DPs: 0 Next Dependency Pairs: #14: #or(or(false(),y),_1) -> #or(y,_1) #15: #or(or(true(),y),_1) -> #or(true(),_1) #16: #or(x,or(y,z)) ->= #or(or(x,y),z) #17: #or(x,or(y,z)) ->= #or(x,y) Number of SCCs: 1, DPs: 4 SCC { #14..17 } POLO(Sum)... succeeded. s w: 1 #if_reach_1 w: x1 edge w: x2 + x3 + 1 #if_reach_2 w: 1 eq w: 1 false w: 1 reach w: 0 if_reach_2 w: 0 true w: 1 #reach w: x3 + 2 #eq w: 0 0 w: 1 union w: x1 + x2 + 1 or w: x1 + x2 + 1 empty w: 20653 if_reach_1 w: 0 #or w: x1 + x2 #union w: 0 USABLE RULES: { 1..8 15 } Removed DPs: #14 #15 #17 Number of SCCs: 1, DPs: 1 SCC { #16 } only weak rules. Number of SCCs: 0, DPs: 0