Problem: U11(tt()) -> s(length(L)) U31(tt()) -> cons(N) and(tt()) -> X zeros() -> cons(0()) U21(tt()) -> nil() isNat() -> tt() isNat() -> isNatList() isNat() -> isNat() isNatIList() -> isNatList() isNatIList() -> tt() isNatIList() -> and(isNat()) isNatList() -> tt() isNatList() -> and(isNat()) length(nil()) -> 0() length(cons(N)) -> U11(and(isNatList())) take(0(),IL) -> U21(isNatIList()) take(s(M),cons(N)) -> U31(and(isNatIList())) Proof: Fresh Variable Processor: loop length: 1 terms: U11(tt()) context: s(length([])) substitution: L -> U11(tt()) Qed