Input TRS: 1: active(zeros()) -> mark(cons(0(),zeros())) 2: active(and(tt(),X)) -> mark(X) 3: active(length(nil())) -> mark(0()) 4: active(length(cons(N,L))) -> mark(s(length(L))) 5: active(cons(X1,X2)) -> cons(active(X1),X2) 6: active(and(X1,X2)) -> and(active(X1),X2) 7: active(length(X)) -> length(active(X)) 8: active(s(X)) -> s(active(X)) 9: cons(mark(X1),X2) -> mark(cons(X1,X2)) 10: and(mark(X1),X2) -> mark(and(X1,X2)) 11: length(mark(X)) -> mark(length(X)) 12: s(mark(X)) -> mark(s(X)) 13: proper(zeros()) -> ok(zeros()) 14: proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) 15: proper(0()) -> ok(0()) 16: proper(and(X1,X2)) -> and(proper(X1),proper(X2)) 17: proper(tt()) -> ok(tt()) 18: proper(length(X)) -> length(proper(X)) 19: proper(nil()) -> ok(nil()) 20: proper(s(X)) -> s(proper(X)) 21: cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) 22: and(ok(X1),ok(X2)) -> ok(and(X1,X2)) 23: length(ok(X)) -> ok(length(X)) 24: s(ok(X)) -> ok(s(X)) 25: top(mark(X)) -> top(proper(X)) 26: top(ok(X)) -> top(active(X)) Number of strict rules: 26 Direct Order(PosReal,>,Poly) ... removes: 3 2 s(x1) weight: x1 top(x1) weight: x1 and(x1,x2) weight: (/ 1 8) + 2 * x1 + x2 zeros() weight: 0 proper(x1) weight: x1 ok(x1) weight: x1 0() weight: 0 nil() weight: 0 mark(x1) weight: x1 active(x1) weight: x1 cons(x1,x2) weight: x1 + 2 * x2 tt() weight: 0 length(x1) weight: (/ 1 8) + x1 Number of strict rules: 24 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #active(and(X1,X2)) -> #and(active(X1),X2) #2: #active(and(X1,X2)) -> #active(X1) #3: #cons(mark(X1),X2) -> #cons(X1,X2) #4: #length(mark(X)) -> #length(X) #5: #s(ok(X)) -> #s(X) #6: #length(ok(X)) -> #length(X) #7: #s(mark(X)) -> #s(X) #8: #proper(cons(X1,X2)) -> #cons(proper(X1),proper(X2)) #9: #proper(cons(X1,X2)) -> #proper(X1) #10: #proper(cons(X1,X2)) -> #proper(X2) #11: #top(mark(X)) -> #top(proper(X)) #12: #top(mark(X)) -> #proper(X) #13: #proper(s(X)) -> #s(proper(X)) #14: #proper(s(X)) -> #proper(X) #15: #active(length(X)) -> #length(active(X)) #16: #active(length(X)) -> #active(X) #17: #and(mark(X1),X2) -> #and(X1,X2) #18: #active(cons(X1,X2)) -> #cons(active(X1),X2) #19: #active(cons(X1,X2)) -> #active(X1) #20: #and(ok(X1),ok(X2)) -> #and(X1,X2) #21: #top(ok(X)) -> #top(active(X)) #22: #top(ok(X)) -> #active(X) #23: #cons(ok(X1),ok(X2)) -> #cons(X1,X2) #24: #proper(and(X1,X2)) -> #and(proper(X1),proper(X2)) #25: #proper(and(X1,X2)) -> #proper(X1) #26: #proper(and(X1,X2)) -> #proper(X2) #27: #active(zeros()) -> #cons(0(),zeros()) #28: #active(s(X)) -> #s(active(X)) #29: #active(s(X)) -> #active(X) #30: #active(length(cons(N,L))) -> #s(length(L)) #31: #active(length(cons(N,L))) -> #length(L) #32: #proper(length(X)) -> #length(proper(X)) #33: #proper(length(X)) -> #proper(X) Number of SCCs: 7, DPs: 20, edges: 72 SCC { #4 #6 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 top(x1) weight: 0 and(x1,x2) weight: 0 #top(x1) weight: 0 zeros() weight: 0 proper(x1) weight: 0 ok(x1) weight: (/ 1 2) + x1 0() weight: 0 #s(x1) weight: 0 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 #proper(x1) weight: 0 active(x1) weight: 0 cons(x1,x2) weight: 0 #active(x1) weight: 0 tt() weight: 0 length(x1) weight: 0 #length(x1) weight: x1 #and(x1,x2) weight: 0 Usable rules: { } Removed DPs: #4 #6 Number of SCCs: 6, DPs: 18, edges: 68 SCC { #5 #7 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #cons(x1,x2) weight: 0 s(x1) weight: 0 top(x1) weight: 0 and(x1,x2) weight: 0 #top(x1) weight: 0 zeros() weight: 0 proper(x1) weight: 0 ok(x1) weight: (/ 1 2) + x1 0() weight: 0 #s(x1) weight: x1 nil() weight: 0 mark(x1) weight: (/ 1 2) + x1 #proper(x1) weight: 0 active(x1) weight: 0 cons(x1,x2) weight: 0 #active(x1) weight: 0 tt() weight: 0 length(x1) weight: 0 #length(x1) weight: 0 #and(x1,x2) weight: 0 Usable rules: { } Removed DPs: #5 #7 Number of SCCs: 5, DPs: 16, edges: 64 SCC { #11 #21 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)... Order(PosReal,>,Sum-Sum; NegReal,≥,Sum)... Order(PosReal,>,MaxSum-Sum; NegReal,≥,Sum)... failed. Removing edges: failed. Finding a loop... failed. MAYBE