NO Problem 1: (VAR v_NonEmpty:S L:S N:S X:S) (RULES U11(tt) -> U12(isNatList) U12(tt) -> tt U21(tt) -> U22(isNat) U22(tt) -> tt U31(tt) -> U32(isNatList) U32(tt) -> tt U41(tt) -> U42(isNat) U42(tt) -> U43(isNatIList) U43(tt) -> tt U51(tt) -> U52(isNat) U52(tt) -> U53(isNatList) U53(tt) -> tt U61(tt) -> s(length(L:S)) and(tt) -> X:S isNat -> U11(isNatIListKind) isNat -> U21(isNatKind) isNat -> tt isNatIList -> U31(isNatIListKind) isNatIList -> U41(and(isNatKind)) isNatIList -> tt isNatIListKind -> and(isNatKind) isNatIListKind -> tt isNatKind -> isNatIListKind isNatKind -> isNatKind isNatKind -> tt isNatList -> U51(and(isNatKind)) isNatList -> tt length(cons(N:S)) -> U61(and(and(isNatList))) length(nil) -> 0 zeros -> cons(0) ) Problem 1: Extra Variables Processor: -> Rules: U11(tt) -> U12(isNatList) U12(tt) -> tt U21(tt) -> U22(isNat) U22(tt) -> tt U31(tt) -> U32(isNatList) U32(tt) -> tt U41(tt) -> U42(isNat) U42(tt) -> U43(isNatIList) U43(tt) -> tt U51(tt) -> U52(isNat) U52(tt) -> U53(isNatList) U53(tt) -> tt U61(tt) -> s(length(L:S)) and(tt) -> X:S isNat -> U11(isNatIListKind) isNat -> U21(isNatKind) isNat -> tt isNatIList -> U31(isNatIListKind) isNatIList -> U41(and(isNatKind)) isNatIList -> tt isNatIListKind -> and(isNatKind) isNatIListKind -> tt isNatKind -> isNatIListKind isNatKind -> isNatKind isNatKind -> tt isNatList -> U51(and(isNatKind)) isNatList -> tt length(cons(N:S)) -> U61(and(and(isNatList))) length(nil) -> 0 zeros -> cons(0) -> The system has extra variables. The problem is infinite.