YES Input TRS: 1: active(fst(0(),Z)) -> mark(nil()) 2: active(fst(s(X),cons(Y,Z))) -> mark(cons(Y,fst(X,Z))) 3: active(from(X)) -> mark(cons(X,from(s(X)))) 4: active(add(0(),X)) -> mark(X) 5: active(add(s(X),Y)) -> mark(s(add(X,Y))) 6: active(len(nil())) -> mark(0()) 7: active(len(cons(X,Z))) -> mark(s(len(Z))) 8: active(cons(X1,X2)) -> cons(active(X1),X2) 9: active(fst(X1,X2)) -> fst(active(X1),X2) 10: active(fst(X1,X2)) -> fst(X1,active(X2)) 11: active(from(X)) -> from(active(X)) 12: active(add(X1,X2)) -> add(active(X1),X2) 13: active(add(X1,X2)) -> add(X1,active(X2)) 14: active(len(X)) -> len(active(X)) 15: cons(mark(X1),X2) -> mark(cons(X1,X2)) 16: fst(mark(X1),X2) -> mark(fst(X1,X2)) 17: fst(X1,mark(X2)) -> mark(fst(X1,X2)) 18: from(mark(X)) -> mark(from(X)) 19: add(mark(X1),X2) -> mark(add(X1,X2)) 20: add(X1,mark(X2)) -> mark(add(X1,X2)) 21: len(mark(X)) -> mark(len(X)) 22: proper(0()) -> ok(0()) 23: proper(s(X)) -> s(proper(X)) 24: proper(nil()) -> ok(nil()) 25: proper(cons(X1,X2)) -> cons(proper(X1),proper(X2)) 26: proper(fst(X1,X2)) -> fst(proper(X1),proper(X2)) 27: proper(from(X)) -> from(proper(X)) 28: proper(add(X1,X2)) -> add(proper(X1),proper(X2)) 29: proper(len(X)) -> len(proper(X)) 30: s(ok(X)) -> ok(s(X)) 31: cons(ok(X1),ok(X2)) -> ok(cons(X1,X2)) 32: fst(ok(X1),ok(X2)) -> ok(fst(X1,X2)) 33: from(ok(X)) -> ok(from(X)) 34: add(ok(X1),ok(X2)) -> ok(add(X1,X2)) 35: len(ok(X)) -> ok(len(X)) 36: top(mark(X)) -> top(proper(X)) 37: top(ok(X)) -> top(active(X)) Number of strict rules: 37 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #active(fst(s(X),cons(Y,Z))) -> #cons(Y,fst(X,Z)) #2: #active(fst(s(X),cons(Y,Z))) -> #fst(X,Z) #3: #proper(len(X)) -> #len(proper(X)) #4: #proper(len(X)) -> #proper(X) #5: #len(ok(X)) -> #len(X) #6: #top(ok(X)) -> #top(active(X)) #7: #top(ok(X)) -> #active(X) #8: #active(add(X1,X2)) -> #add(X1,active(X2)) #9: #active(add(X1,X2)) -> #active(X2) #10: #active(fst(X1,X2)) -> #fst(active(X1),X2) #11: #active(fst(X1,X2)) -> #active(X1) #12: #active(from(X)) -> #from(active(X)) #13: #active(from(X)) -> #active(X) #14: #proper(s(X)) -> #s(proper(X)) #15: #proper(s(X)) -> #proper(X) #16: #active(add(X1,X2)) -> #add(active(X1),X2) #17: #active(add(X1,X2)) -> #active(X1) #18: #cons(ok(X1),ok(X2)) -> #cons(X1,X2) #19: #active(len(X)) -> #len(active(X)) #20: #active(len(X)) -> #active(X) #21: #s(ok(X)) -> #s(X) #22: #proper(cons(X1,X2)) -> #cons(proper(X1),proper(X2)) #23: #proper(cons(X1,X2)) -> #proper(X1) #24: #proper(cons(X1,X2)) -> #proper(X2) #25: #add(X1,mark(X2)) -> #add(X1,X2) #26: #active(len(cons(X,Z))) -> #s(len(Z)) #27: #active(len(cons(X,Z))) -> #len(Z) #28: #active(fst(X1,X2)) -> #fst(X1,active(X2)) #29: #active(fst(X1,X2)) -> #active(X2) #30: #from(ok(X)) -> #from(X) #31: #active(add(s(X),Y)) -> #s(add(X,Y)) #32: #active(add(s(X),Y)) -> #add(X,Y) #33: #proper(add(X1,X2)) -> #add(proper(X1),proper(X2)) #34: #proper(add(X1,X2)) -> #proper(X1) #35: #proper(add(X1,X2)) -> #proper(X2) #36: #add(ok(X1),ok(X2)) -> #add(X1,X2) #37: #proper(from(X)) -> #from(proper(X)) #38: #proper(from(X)) -> #proper(X) #39: #fst(X1,mark(X2)) -> #fst(X1,X2) #40: #fst(ok(X1),ok(X2)) -> #fst(X1,X2) #41: #add(mark(X1),X2) -> #add(X1,X2) #42: #proper(fst(X1,X2)) -> #fst(proper(X1),proper(X2)) #43: #proper(fst(X1,X2)) -> #proper(X1) #44: #proper(fst(X1,X2)) -> #proper(X2) #45: #top(mark(X)) -> #top(proper(X)) #46: #top(mark(X)) -> #proper(X) #47: #len(mark(X)) -> #len(X) #48: #fst(mark(X1),X2) -> #fst(X1,X2) #49: #active(from(X)) -> #cons(X,from(s(X))) #50: #active(from(X)) -> #from(s(X)) #51: #active(from(X)) -> #s(X) #52: #active(cons(X1,X2)) -> #cons(active(X1),X2) #53: #active(cons(X1,X2)) -> #active(X1) #54: #cons(mark(X1),X2) -> #cons(X1,X2) #55: #from(mark(X)) -> #from(X) Number of SCCs: 9, DPs: 31 SCC { #21 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: 0 top w: 0 fst w: 0 #top w: 0 #fst w: 0 proper w: 0 ok w: x1 + 1 0 w: 0 from w: 0 #s w: x1 nil w: 0 mark w: 0 #proper w: 0 #from w: 0 active w: 0 cons w: 0 #active w: 0 #add w: 0 add w: 0 len w: 0 USABLE RULES: { } Removed DPs: #21 Number of SCCs: 8, DPs: 30 SCC { #5 #47 } POLO(Sum)... succeeded. #len w: x1 #cons w: 0 s w: 0 top w: 0 fst w: 0 #top w: 0 #fst w: 0 proper w: 0 ok w: x1 + 1 0 w: 0 from w: 0 #s w: 0 nil w: 0 mark w: x1 + 1 #proper w: 0 #from w: 0 active w: 0 cons w: 0 #active w: 0 #add w: 0 add w: 0 len w: 0 USABLE RULES: { } Removed DPs: #5 #47 Number of SCCs: 7, DPs: 28 SCC { #30 #55 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: 0 top w: 0 fst w: 0 #top w: 0 #fst w: 0 proper w: 0 ok w: x1 + 1 0 w: 0 from w: 0 #s w: 0 nil w: 0 mark w: x1 + 1 #proper w: 0 #from w: x1 active w: 0 cons w: 0 #active w: 0 #add w: 0 add w: 0 len w: 0 USABLE RULES: { } Removed DPs: #30 #55 Number of SCCs: 6, DPs: 26 SCC { #6 #45 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: 1 top w: 0 fst w: x1 + x2 + 1 #top w: x1 #fst w: 0 proper w: x1 ok w: x1 0 w: 1 from w: x1 + 13507 #s w: 0 nil w: 1 mark w: x1 + 1 #proper w: 0 #from w: 0 active w: x1 cons w: x1 + 13506 #active w: 0 #add w: 0 add w: x1 + x2 + 1 len w: x1 + 15900 USABLE RULES: { 1..35 } Removed DPs: #45 Number of SCCs: 6, DPs: 25 SCC { #6 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 15047 top w: 0 fst w: x1 + 1 #top w: x1 #fst w: 0 proper w: x1 + 56098 ok w: x1 + 56098 0 w: 3578 from w: x1 + 1 #s w: 0 nil w: 17525 mark w: x1 #proper w: 0 #from w: 0 active w: x1 + 37350 cons w: x2 + 22303 #active w: 0 #add w: 0 add w: x2 + 1 len w: x1 + 1 USABLE RULES: { 1..35 } Removed DPs: #6 Number of SCCs: 5, DPs: 24 SCC { #18 #54 } POLO(Sum)... succeeded. #len w: 0 #cons w: x1 + x2 s w: x1 + 1 top w: 0 fst w: x1 + 1 #top w: x1 #fst w: 0 proper w: x1 + 56098 ok w: x1 + 1 0 w: 1 from w: x1 + 27791 #s w: 0 nil w: 4 mark w: x1 #proper w: 0 #from w: 0 active w: x1 + 2 cons w: x2 + 1 #active w: 0 #add w: 0 add w: x2 + 1 len w: x1 + 1 USABLE RULES: { 1..35 } Removed DPs: #18 Number of SCCs: 5, DPs: 23 SCC { #54 } POLO(Sum)... succeeded. #len w: 0 #cons w: x1 s w: x1 + 1 top w: 0 fst w: x1 + 1 #top w: 0 #fst w: 0 proper w: x1 + 1 ok w: x1 + 2 0 w: 1 from w: x1 + 49293 #s w: 0 nil w: 3 mark w: x1 + 3020 #proper w: 0 #from w: 0 active w: x1 + 3021 cons w: x1 + 2 #active w: 0 #add w: 0 add w: x1 + x2 + 10732 len w: 1 USABLE RULES: { 1 3..6 15 19 20 30 31 34 } Removed DPs: #54 Number of SCCs: 4, DPs: 22 SCC { #39 #40 #48 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 1 top w: 0 fst w: x1 + 1 #top w: 0 #fst w: x1 + x2 proper w: x1 + 1 ok w: x1 + 2 0 w: 1 from w: x1 + 1 #s w: 0 nil w: 1 mark w: x1 + 1 #proper w: 0 #from w: 0 active w: x1 + 2 cons w: x1 + 1 #active w: 0 #add w: 0 add w: x1 + x2 + 1 len w: 1 USABLE RULES: { 1 3..6 15 19 20 30 31 34 } Removed DPs: #39 #40 #48 Number of SCCs: 3, DPs: 19 SCC { #25 #36 #41 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 1 top w: 0 fst w: x1 + 31820 #top w: 0 #fst w: 0 proper w: x1 + 1 ok w: x1 + 2 0 w: 1 from w: x1 + 25306 #s w: 0 nil w: 20258 mark w: x1 + 1 #proper w: 0 #from w: 0 active w: x1 + 2 cons w: x1 + 1 #active w: 0 #add w: x2 add w: x1 + x2 + 1 len w: 1 USABLE RULES: { 1 3..6 15 19 20 30 31 34 } Removed DPs: #25 #36 Number of SCCs: 3, DPs: 17 SCC { #41 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 1 top w: 0 fst w: x1 + 1 #top w: 0 #fst w: 0 proper w: x1 + 1 ok w: x1 + 2 0 w: 1 from w: x1 + 1 #s w: 0 nil w: 1 mark w: x1 + 1 #proper w: 0 #from w: 0 active w: x1 + 2 cons w: x1 + 2 #active w: 0 #add w: x1 add w: x1 + x2 + 61002 len w: 35945 USABLE RULES: { 1 3..6 15 19 20 30 31 34 } Removed DPs: #41 Number of SCCs: 2, DPs: 16 SCC { #9 #11 #13 #17 #20 #29 #53 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 1 top w: 0 fst w: x1 + x2 + 1 #top w: 0 #fst w: 0 proper w: x1 ok w: x1 + 1 0 w: 48715 from w: x1 + 1 #s w: 0 nil w: 19839 mark w: 17026 #proper w: 0 #from w: 0 active w: x1 + 42154 cons w: x1 + 24498 #active w: x1 #add w: 0 add w: x1 + x2 + 9335 len w: x1 + 1 USABLE RULES: { 1 3..6 15 19 20 30 31 34 } Removed DPs: #9 #11 #13 #17 #20 #29 #53 Number of SCCs: 1, DPs: 9 SCC { #4 #15 #23 #24 #34 #35 #38 #43 #44 } POLO(Sum)... succeeded. #len w: 0 #cons w: 0 s w: x1 + 1 top w: 0 fst w: x1 + x2 + 1 #top w: 0 #fst w: 0 proper w: x1 ok w: x1 + 1 0 w: 1 from w: x1 + 12490 #s w: 0 nil w: 1 mark w: 1 #proper w: x1 #from w: 0 active w: x1 + 1 cons w: x1 + x2 + 1 #active w: 0 #add w: 0 add w: x1 + x2 + 1 len w: x1 + 1 USABLE RULES: { 1 3..6 15 18..20 30 31 33 34 } Removed DPs: #4 #15 #23 #24 #34 #35 #38 #43 #44 Number of SCCs: 0, DPs: 0