YES Input TRS: 1: a__zeros() -> cons(0(),zeros()) 2: a__U11(tt()) -> tt() 3: a__U21(tt()) -> tt() 4: a__U31(tt()) -> tt() 5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) 6: a__U42(tt()) -> tt() 7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) 8: a__U52(tt()) -> tt() 9: a__U61(tt(),L,N) -> a__U62(a__isNat(N),L) 10: a__U62(tt(),L) -> s(a__length(mark(L))) 11: a__isNat(0()) -> tt() 12: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) 13: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) 14: a__isNatIList(V) -> a__U31(a__isNatList(V)) 15: a__isNatIList(zeros()) -> tt() 16: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) 17: a__isNatList(nil()) -> tt() 18: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) 19: a__length(nil()) -> 0() 20: a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,N) 21: mark(zeros()) -> a__zeros() 22: mark(U11(X)) -> a__U11(mark(X)) 23: mark(U21(X)) -> a__U21(mark(X)) 24: mark(U31(X)) -> a__U31(mark(X)) 25: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) 26: mark(U42(X)) -> a__U42(mark(X)) 27: mark(isNatIList(X)) -> a__isNatIList(X) 28: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) 29: mark(U52(X)) -> a__U52(mark(X)) 30: mark(isNatList(X)) -> a__isNatList(X) 31: mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) 32: mark(U62(X1,X2)) -> a__U62(mark(X1),X2) 33: mark(isNat(X)) -> a__isNat(X) 34: mark(length(X)) -> a__length(mark(X)) 35: mark(cons(X1,X2)) -> cons(mark(X1),X2) 36: mark(0()) -> 0() 37: mark(tt()) -> tt() 38: mark(s(X)) -> s(mark(X)) 39: mark(nil()) -> nil() 40: a__zeros() -> zeros() 41: a__U11(X) -> U11(X) 42: a__U21(X) -> U21(X) 43: a__U31(X) -> U31(X) 44: a__U41(X1,X2) -> U41(X1,X2) 45: a__U42(X) -> U42(X) 46: a__isNatIList(X) -> isNatIList(X) 47: a__U51(X1,X2) -> U51(X1,X2) 48: a__U52(X) -> U52(X) 49: a__isNatList(X) -> isNatList(X) 50: a__U61(X1,X2,X3) -> U61(X1,X2,X3) 51: a__U62(X1,X2) -> U62(X1,X2) 52: a__isNat(X) -> isNat(X) 53: a__length(X) -> length(X) Number of strict rules: 53 Direct POLO(bPol) ... removes: 4 15 19 17 14 12 2 U21 w: x1 isNatList w: x1 + 22115 U11 w: 2 * x1 + 26929 s w: x1 a__isNatIList w: x1 + 43769 U42 w: x1 a__U62 w: x1 + 2 * x2 + 14137 isNatIList w: x1 + 43769 zeros w: 0 a__U31 w: x1 + 1 a__U51 w: x1 + 2 * x2 a__isNatList w: x1 + 22115 a__U41 w: x1 + x2 + 21654 0 w: 0 a__U21 w: x1 nil w: 1105 U62 w: x1 + 2 * x2 + 14137 mark w: x1 a__U11 w: 2 * x1 + 26929 a__U42 w: x1 a__U52 w: x1 isNat w: 2 * x1 + 22115 U52 w: x1 U61 w: x1 + 2 * x2 + 2 * x3 + 14137 U31 w: x1 + 1 cons w: 2 * x1 + 2 * x2 a__U61 w: x1 + 2 * x2 + 2 * x3 + 14137 tt w: 22115 a__isNat w: 2 * x1 + 22115 U51 w: x1 + 2 * x2 length w: 2 * x1 + 36252 U41 w: x1 + x2 + 21654 a__zeros w: 0 a__length w: 2 * x1 + 36252 Number of strict rules: 46 Direct POLO(bPol) ... removes: 18 1 16 21 36 27 33 10 39 7 20 49 52 30 9 40 37 46 U21 w: x1 isNatList w: x1 + 1 U11 w: x1 + 1 s w: x1 a__isNatIList w: 2 * x1 + 13199 U42 w: x1 a__U62 w: x1 + x2 + 9088 isNatIList w: 2 * x1 + 1 zeros w: 1 a__U31 w: x1 + 13195 a__U51 w: x1 + 2 * x2 + 1 a__isNatList w: x1 + 4 a__U41 w: x1 + 2 * x2 + 4106 0 w: 9088 a__U21 w: x1 nil w: 9089 U62 w: x1 + x2 + 9088 mark w: x1 + 18178 a__U11 w: x1 + 1 a__U42 w: x1 a__U52 w: x1 isNat w: x1 + 1 U52 w: x1 U61 w: x1 + x2 + x3 + 1 U31 w: x1 + 13195 cons w: x1 + 2 * x2 + 4 a__U61 w: x1 + x2 + x3 + 1 tt w: 9093 a__isNat w: x1 + 5 U51 w: x1 + 2 * x2 + 1 length w: x1 + 2 U41 w: x1 + 2 * x2 + 4106 a__zeros w: 9095 a__length w: x1 + 2 Number of strict rules: 28 Direct POLO(bPol) ... removes: 5 11 U21 w: x1 isNatList w: x1 + 1 U11 w: x1 + 8941 s w: x1 a__isNatIList w: 2 * x1 + 4108 U42 w: x1 a__U62 w: x1 + x2 + 8945 isNatIList w: 2 * x1 + 4108 zeros w: 1 a__U31 w: x1 + 1 a__U51 w: x1 + 2 * x2 + 1 a__isNatList w: x1 + 1 a__U41 w: x1 + 2 * x2 + 4106 0 w: 3 a__U21 w: x1 nil w: 22143 U62 w: x1 + x2 + 8945 mark w: x1 + 7 a__U11 w: x1 + 8941 a__U42 w: x1 a__U52 w: x1 isNat w: x1 + 1 U52 w: x1 U61 w: x1 + x2 + x3 + 8943 U31 w: x1 + 1 cons w: x1 + 2 * x2 + 3 a__U61 w: x1 + x2 + x3 + 8943 tt w: 3 a__isNat w: x1 + 1 U51 w: x1 + 2 * x2 + 1 length w: x1 + 8941 U41 w: x1 + 2 * x2 + 4106 a__zeros w: 8 a__length w: x1 + 8941 Number of strict rules: 26 Direct POLO(bPol) ... removes: 3 U21 w: x1 + 1 isNatList w: x1 + 2 U11 w: x1 + 2 s w: x1 + 1 a__isNatIList w: 2 * x1 + 3 U42 w: x1 a__U62 w: x1 + x2 + 4 isNatIList w: 2 * x1 + 2 zeros w: 1 a__U31 w: x1 + 1 a__U51 w: x1 + 2 * x2 + 1 a__isNatList w: x1 + 2 a__U41 w: x1 + 2 * x2 + 2 0 w: 3 a__U21 w: x1 + 1 nil w: 4594 U62 w: x1 + x2 + 4 mark w: x1 + 5 a__U11 w: x1 + 2 a__U42 w: x1 a__U52 w: x1 isNat w: x1 + 2 U52 w: x1 U61 w: x1 + x2 + x3 + 1 U31 w: x1 + 1 cons w: x1 + 2 * x2 + 1 a__U61 w: x1 + x2 + x3 + 1 tt w: 5 a__isNat w: x1 + 2 U51 w: x1 + 2 * x2 + 1 length w: x1 + 3 U41 w: x1 + 2 * x2 + 2 a__zeros w: 6 a__length w: x1 + 3 Number of strict rules: 25 Direct POLO(bPol) ... removes: 8 13 6 U21 w: x1 + 1 isNatList w: x1 + 13702 U11 w: x1 + 1427 s w: x1 + 2 a__isNatIList w: 2 * x1 + 15914 U42 w: x1 + 1 a__U62 w: x1 + x2 + 3048 isNatIList w: 2 * x1 + 15914 zeros w: 1 a__U31 w: x1 + 1 a__U51 w: x1 + 2 * x2 + 2205 a__isNatList w: x1 + 15911 a__U41 w: x1 + 2 * x2 + 1 0 w: 2207 a__U21 w: x1 + 1 nil w: 3 U62 w: x1 + x2 + 3048 mark w: x1 + 2209 a__U11 w: x1 + 1427 a__U42 w: x1 + 1 a__U52 w: x1 + 1 isNat w: x1 + 11498 U52 w: x1 + 1 U61 w: x1 + x2 + x3 + 841 U31 w: x1 + 1 cons w: x1 + 2 * x2 + 1 a__U61 w: x1 + x2 + x3 + 841 tt w: 15914 a__isNat w: x1 + 13707 U51 w: x1 + 2 * x2 + 2205 length w: x1 + 16751 U41 w: x1 + 2 * x2 + 1 a__zeros w: 2210 a__length w: x1 + 16751 Number of strict rules: 22 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #mark(U52(X)) -> #a__U52(mark(X)) #2: #mark(U52(X)) -> #mark(X) #3: #mark(cons(X1,X2)) -> #mark(X1) #4: #mark(s(X)) -> #mark(X) #5: #mark(U31(X)) -> #a__U31(mark(X)) #6: #mark(U31(X)) -> #mark(X) #7: #mark(U21(X)) -> #a__U21(mark(X)) #8: #mark(U21(X)) -> #mark(X) #9: #mark(U61(X1,X2,X3)) -> #a__U61(mark(X1),X2,X3) #10: #mark(U61(X1,X2,X3)) -> #mark(X1) #11: #mark(U41(X1,X2)) -> #a__U41(mark(X1),X2) #12: #mark(U41(X1,X2)) -> #mark(X1) #13: #mark(U51(X1,X2)) -> #a__U51(mark(X1),X2) #14: #mark(U51(X1,X2)) -> #mark(X1) #15: #mark(U11(X)) -> #a__U11(mark(X)) #16: #mark(U11(X)) -> #mark(X) #17: #mark(length(X)) -> #a__length(mark(X)) #18: #mark(length(X)) -> #mark(X) #19: #mark(U62(X1,X2)) -> #a__U62(mark(X1),X2) #20: #mark(U62(X1,X2)) -> #mark(X1) #21: #mark(U42(X)) -> #a__U42(mark(X)) #22: #mark(U42(X)) -> #mark(X) Number of SCCs: 1, DPs: 12 SCC { #2..4 #6 #8 #10 #12 #14 #16 #18 #20 #22 } POLO(Sum)... succeeded. U21 w: x1 + 1 isNatList w: 0 U11 w: x1 + 1 s w: x1 + 1 #a__U31 w: 0 a__isNatIList w: 0 U42 w: x1 + 1 a__U62 w: 0 isNatIList w: 0 #a__U51 w: 0 #a__U11 w: 0 zeros w: 0 a__U31 w: 0 a__U51 w: 0 a__isNatList w: 0 #a__U62 w: 0 #a__U42 w: 0 a__U41 w: 0 #a__U21 w: 0 #a__U61 w: 0 #mark w: x1 0 w: 0 a__U21 w: 0 nil w: 0 U62 w: x1 + 1 #a__U52 w: 0 mark w: 0 a__U11 w: 0 a__U42 w: 0 a__U52 w: 0 #a__length w: 0 isNat w: 0 U52 w: x1 + 1 U61 w: x1 + 1 U31 w: x1 + 1 cons w: x1 + 1 a__U61 w: 0 #a__U41 w: 0 tt w: 0 a__isNat w: 0 U51 w: x1 + 1 length w: x1 + 1 U41 w: x1 + 1 a__zeros w: 0 a__length w: 0 USABLE RULES: { } Removed DPs: #2..4 #6 #8 #10 #12 #14 #16 #18 #20 #22 Number of SCCs: 0, DPs: 0