Input TRS: 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_2(true(),x,y,edge(u,v,i),h) -> true() 13: if_reach_2(false(),x,y,edge(u,v,i),h) -> or(reach(x,y,i,h),reach(v,y,union(i,h),empty())) 14: if_reach_1(false(),x,y,edge(u,v,i),h) -> reach(x,y,i,edge(u,v,h)) Number of strict rules: 14 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #or(reach(x,y,i,h),reach(v,y,union(i,h),empty())) #2: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #reach(x,y,i,h) #3: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #reach(v,y,union(i,h),empty()) #4: #if_reach_2(false(),x,y,edge(u,v,i),h) -> #union(i,h) #5: #if_reach_1(true(),x,y,edge(u,v,i),h) -> #if_reach_2(eq(y,v),x,y,edge(u,v,i),h) #6: #if_reach_1(true(),x,y,edge(u,v,i),h) -> #eq(y,v) #7: #if_reach_1(false(),x,y,edge(u,v,i),h) -> #reach(x,y,i,edge(u,v,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: #eq(s(x),s(y)) -> #eq(x,y) Number of SCCs: 3, DPs: 7, edges: 9 SCC { #11 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) + x1 #if_reach_1(x1,x2,x3,x4,x5) weight: 0 edge(x1,x2,x3) weight: 0 #if_reach_2(x1,x2,x3,x4,x5) weight: 0 eq(x1,x2) weight: 0 false() weight: 0 reach(x1,x2,x3,x4) weight: 0 if_reach_2(x1,x2,x3,x4,x5) weight: 0 true() weight: 0 #reach(x1,x2,x3,x4) weight: 0 #eq(x1,x2) weight: x2 0() weight: 0 union(x1,x2) weight: 0 or(x1,x2) weight: 0 empty() weight: 0 if_reach_1(x1,x2,x3,x4,x5) weight: 0 #or(x1,x2) weight: 0 #union(x1,x2) weight: 0 Usable rules: { } Removed DPs: #11 Number of SCCs: 2, DPs: 6, edges: 8 SCC { #10 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 2) #if_reach_1(x1,x2,x3,x4,x5) weight: 0 edge(x1,x2,x3) weight: (/ 1 2) + x3 #if_reach_2(x1,x2,x3,x4,x5) weight: 0 eq(x1,x2) weight: 0 false() weight: 0 reach(x1,x2,x3,x4) weight: 0 if_reach_2(x1,x2,x3,x4,x5) weight: 0 true() weight: 0 #reach(x1,x2,x3,x4) weight: 0 #eq(x1,x2) weight: 0 0() weight: 0 union(x1,x2) weight: 0 or(x1,x2) weight: 0 empty() weight: 0 if_reach_1(x1,x2,x3,x4,x5) weight: 0 #or(x1,x2) weight: 0 #union(x1,x2) weight: x1 Usable rules: { } Removed DPs: #10 Number of SCCs: 1, DPs: 5, edges: 7 SCC { #2 #3 #5 #7 #8 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 4) #if_reach_1(x1,x2,x3,x4,x5) weight: (/ 1 4) + x4 + x5 edge(x1,x2,x3) weight: (/ 3 4) + x1 + x2 + x3 #if_reach_2(x1,x2,x3,x4,x5) weight: x4 + x5 eq(x1,x2) weight: (/ 1 4) + x1 false() weight: 0 reach(x1,x2,x3,x4) weight: 0 if_reach_2(x1,x2,x3,x4,x5) weight: 0 true() weight: 0 #reach(x1,x2,x3,x4) weight: (/ 1 4) + x3 + x4 #eq(x1,x2) weight: 0 0() weight: 0 union(x1,x2) weight: (/ 1 4) + x1 + x2 or(x1,x2) weight: 0 empty() weight: 0 if_reach_1(x1,x2,x3,x4,x5) weight: 0 #or(x1,x2) weight: 0 #union(x1,x2) weight: 0 Usable rules: { 7 8 } Removed DPs: #2 #3 #5 Number of SCCs: 1, DPs: 2, edges: 2 SCC { #7 #8 } Removing DPs: Order(PosReal,>,Sum)... succeeded. s(x1) weight: (/ 1 4) #if_reach_1(x1,x2,x3,x4,x5) weight: (/ 1 4) + x4 edge(x1,x2,x3) weight: (/ 1 2) + x1 + x2 + x3 #if_reach_2(x1,x2,x3,x4,x5) weight: 0 eq(x1,x2) weight: (/ 1 4) false() weight: 0 reach(x1,x2,x3,x4) weight: 0 if_reach_2(x1,x2,x3,x4,x5) weight: 0 true() weight: 0 #reach(x1,x2,x3,x4) weight: (/ 1 2) + x3 #eq(x1,x2) weight: 0 0() weight: 0 union(x1,x2) weight: (/ 1 4) + x1 + x2 or(x1,x2) weight: 0 empty() weight: 0 if_reach_1(x1,x2,x3,x4,x5) weight: 0 #or(x1,x2) weight: 0 #union(x1,x2) weight: 0 Usable rules: { } Removed DPs: #7 #8 Number of SCCs: 0, DPs: 0, edges: 0 YES