Input TRS: 1: active(first(0(),X)) -> mark(nil()) 2: active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z))) 3: active(from(X)) -> mark(cons(X,from(s(X)))) 4: mark(first(X1,X2)) -> active(first(mark(X1),mark(X2))) 5: mark(0()) -> active(0()) 6: mark(nil()) -> active(nil()) 7: mark(s(X)) -> active(s(mark(X))) 8: mark(cons(X1,X2)) -> active(cons(mark(X1),X2)) 9: mark(from(X)) -> active(from(mark(X))) 10: first(mark(X1),X2) -> first(X1,X2) 11: first(X1,mark(X2)) -> first(X1,X2) 12: first(active(X1),X2) -> first(X1,X2) 13: first(X1,active(X2)) -> first(X1,X2) 14: s(mark(X)) -> s(X) 15: s(active(X)) -> s(X) 16: cons(mark(X1),X2) -> cons(X1,X2) 17: cons(X1,mark(X2)) -> cons(X1,X2) 18: cons(active(X1),X2) -> cons(X1,X2) 19: cons(X1,active(X2)) -> cons(X1,X2) 20: from(mark(X)) -> from(X) 21: from(active(X)) -> from(X) Number of strict rules: 21 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #active(first(s(X),cons(Y,Z))) -> #mark(cons(Y,first(X,Z))) #2: #active(first(s(X),cons(Y,Z))) -> #cons(Y,first(X,Z)) #3: #active(first(s(X),cons(Y,Z))) -> #first(X,Z) #4: #mark(nil()) -> #active(nil()) #5: #first(X1,active(X2)) -> #first(X1,X2) #6: #mark(from(X)) -> #active(from(mark(X))) #7: #mark(from(X)) -> #from(mark(X)) #8: #mark(from(X)) -> #mark(X) #9: #first(X1,mark(X2)) -> #first(X1,X2) #10: #first(active(X1),X2) -> #first(X1,X2) #11: #s(mark(X)) -> #s(X) #12: #from(mark(X)) -> #from(X) #13: #mark(s(X)) -> #active(s(mark(X))) #14: #mark(s(X)) -> #s(mark(X)) #15: #mark(s(X)) -> #mark(X) #16: #first(mark(X1),X2) -> #first(X1,X2) #17: #mark(0()) -> #active(0()) #18: #cons(X1,mark(X2)) -> #cons(X1,X2) #19: #cons(X1,active(X2)) -> #cons(X1,X2) #20: #from(active(X)) -> #from(X) #21: #cons(mark(X1),X2) -> #cons(X1,X2) #22: #active(from(X)) -> #mark(cons(X,from(s(X)))) #23: #active(from(X)) -> #cons(X,from(s(X))) #24: #active(from(X)) -> #from(s(X)) #25: #active(from(X)) -> #s(X) #26: #active(first(0(),X)) -> #mark(nil()) #27: #mark(cons(X1,X2)) -> #active(cons(mark(X1),X2)) #28: #mark(cons(X1,X2)) -> #cons(mark(X1),X2) #29: #mark(cons(X1,X2)) -> #mark(X1) #30: #s(active(X)) -> #s(X) #31: #mark(first(X1,X2)) -> #active(first(mark(X1),mark(X2))) #32: #mark(first(X1,X2)) -> #first(mark(X1),mark(X2)) #33: #mark(first(X1,X2)) -> #mark(X1) #34: #mark(first(X1,X2)) -> #mark(X2) #35: #cons(active(X1),X2) -> #cons(X1,X2) Number of SCCs: 5, DPs: 21, edges: 79 SCC { #12 #20 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: 0 #first(x1,x2) weight: 0 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: x1 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #12 #20 Number of SCCs: 4, DPs: 19, edges: 75 SCC { #11 #30 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: x1 #first(x1,x2) weight: 0 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: 0 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #11 #30 Number of SCCs: 3, DPs: 17, edges: 71 SCC { #18 #19 #21 #35 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: x2 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: 0 #first(x1,x2) weight: 0 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: 0 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #18 #19 Number of SCCs: 3, DPs: 15, edges: 59 SCC { #21 #35 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: x1 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: 0 #first(x1,x2) weight: 0 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: 0 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #21 #35 Number of SCCs: 2, DPs: 13, edges: 55 SCC { #5 #9 #10 #16 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: 0 #first(x1,x2) weight: x2 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: 0 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #5 #9 Number of SCCs: 3, DPs: 11, edges: 43 SCC { #10 #16 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 from(x1) weight: 0 #s(x1) weight: 0 #first(x1,x2) weight: x1 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 first(x1,x2) weight: 0 #from(x1) weight: 0 active(x1) weight: (/ 1 2) + x1 cons(x1,x2) weight: 0 #active(x1) weight: 0 Usable rules: { } Removed DPs: #10 #16 Number of SCCs: 2, DPs: 9, edges: 39 SCC { #1 #6 #8 #15 #22 #29 #31 #33 #34 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: (/ 1 4) + x1 #mark(x1) weight: (/ 1 4) + x1 0() weight: 0 from(x1) weight: (/ 70711 4) + x1 #s(x1) weight: 0 #first(x1,x2) weight: 0 nil() weight: 0 mark(x1) weight: x1 first(x1,x2) weight: (/ 1 4) + x1 + x2 #from(x1) weight: 0 active(x1) weight: x1 cons(x1,x2) weight: (/ 70709 4) + x1 #active(x1) weight: x1 Usable rules: { 1..21 } Removed DPs: #1 #6 #8 #15 #22 #29 #31 #33 #34 Number of SCCs: 2, DPs: 0, edges: 0 YES