YES Input TRS: 1: a__zeros() -> cons(0(),zeros()) 2: a__U11(tt(),L) -> s(a__length(mark(L))) 3: a__and(tt(),X) -> mark(X) 4: a__isNat(0()) -> tt() 5: a__isNat(length(V1)) -> a__isNatList(V1) 6: a__isNat(s(V1)) -> a__isNat(V1) 7: a__isNatIList(V) -> a__isNatList(V) 8: a__isNatIList(zeros()) -> tt() 9: a__isNatIList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatIList(V2)) 10: a__isNatList(nil()) -> tt() 11: a__isNatList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatList(V2)) 12: a__length(nil()) -> 0() 13: a__length(cons(N,L)) -> a__U11(a__and(a__isNatList(L),isNat(N)),L) 14: mark(zeros()) -> a__zeros() 15: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) 16: mark(length(X)) -> a__length(mark(X)) 17: mark(and(X1,X2)) -> a__and(mark(X1),X2) 18: mark(isNat(X)) -> a__isNat(X) 19: mark(isNatList(X)) -> a__isNatList(X) 20: mark(isNatIList(X)) -> a__isNatIList(X) 21: mark(cons(X1,X2)) -> cons(mark(X1),X2) 22: mark(0()) -> 0() 23: mark(tt()) -> tt() 24: mark(s(X)) -> s(mark(X)) 25: mark(nil()) -> nil() 26: a__zeros() -> zeros() 27: a__U11(X1,X2) -> U11(X1,X2) 28: a__length(X) -> length(X) 29: a__and(X1,X2) -> and(X1,X2) 30: a__isNat(X) -> isNat(X) 31: a__isNatList(X) -> isNatList(X) 32: a__isNatIList(X) -> isNatIList(X) Number of strict rules: 32 Direct POLO(bPol) ... removes: 18 4 8 3 26 19 32 22 5 10 7 20 25 30 14 31 12 23 11 9 13 6 2 isNatList w: x1 + 1 U11 w: x1 + x2 + 1 s w: x1 + 1 a__isNatIList w: 2 * x1 + 23521 and w: x1 + x2 + 1 isNatIList w: 2 * x1 + 9 zeros w: 1 a__isNatList w: x1 + 23512 0 w: 3 nil w: 11 mark w: x1 + 23520 a__U11 w: x1 + x2 + 1 isNat w: x1 + 1 cons w: x1 + 2 * x2 + 23515 tt w: 23522 a__isNat w: x1 + 23520 a__and w: x1 + x2 + 1 length w: x1 + 1 a__zeros w: 23520 a__length w: x1 + 1 Number of strict rules: 9 Direct POLO(bPol) ... removes: 1 isNatList w: x1 + 1 U11 w: x1 + x2 + 38450 s w: x1 + 1 a__isNatIList w: 2 * x1 + 7 and w: x1 + x2 + 1 isNatIList w: 2 * x1 + 1 zeros w: 1 a__isNatList w: x1 + 3 0 w: 1 nil w: 6 mark w: x1 + 10 a__U11 w: x1 + x2 + 38450 isNat w: x1 + 1 cons w: x1 + 2 * x2 + 7 tt w: 9 a__isNat w: x1 + 8 a__and w: x1 + x2 + 1 length w: x1 + 38448 a__zeros w: 11 a__length w: x1 + 38448 Number of strict rules: 8 Direct POLO(bPol) ... failed. Uncurrying ... failed. Dependency Pairs: #1: #mark(s(X)) -> #mark(X) #2: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #3: #mark(and(X1,X2)) -> #mark(X1) #4: #mark(cons(X1,X2)) -> #mark(X1) #5: #mark(length(X)) -> #a__length(mark(X)) #6: #mark(length(X)) -> #mark(X) #7: #mark(U11(X1,X2)) -> #a__U11(mark(X1),X2) #8: #mark(U11(X1,X2)) -> #mark(X1) Number of SCCs: 1, DPs: 5 SCC { #1 #3 #4 #6 #8 } POLO(Sum)... succeeded. isNatList w: 0 U11 w: x1 + 1 s w: x1 + 1 a__isNatIList w: 0 and w: x1 + 1 isNatIList w: 0 #a__U11 w: 0 zeros w: 0 a__isNatList w: 0 #mark w: x1 0 w: 0 #a__and w: 0 nil w: 0 mark w: 0 a__U11 w: 0 #a__length w: 0 isNat w: 0 cons w: x1 + 1 tt w: 0 a__isNat w: 0 a__and w: 0 length w: x1 + 1 a__zeros w: 0 a__length w: 0 USABLE RULES: { } Removed DPs: #1 #3 #4 #6 #8 Number of SCCs: 0, DPs: 0