NO 0.08/0.18 NO 0.08/0.18 0.08/0.18 Problem: 0.08/0.18 uTake2(tt()) -> cons(N) 0.08/0.18 uLength(tt()) -> s(length(L)) 0.08/0.18 and(tt(),T) -> T 0.08/0.18 isNatIList() -> isNatList() 0.08/0.18 isNat() -> tt() 0.08/0.18 isNat() -> isNat() 0.08/0.18 isNat() -> isNatList() 0.08/0.18 isNatIList() -> tt() 0.08/0.18 isNatIList() -> and(isNat(),isNatIList()) 0.08/0.18 isNatList() -> tt() 0.08/0.18 isNatList() -> and(isNat(),isNatList()) 0.08/0.18 isNatList() -> and(isNat(),isNatIList()) 0.08/0.18 zeros() -> cons(0()) 0.08/0.18 take(0(),IL) -> uTake1(isNatIList()) 0.08/0.18 uTake1(tt()) -> nil() 0.08/0.18 take(s(M),cons(N)) -> uTake2(and(isNat(),and(isNat(),isNatIList()))) 0.08/0.18 length(cons(N)) -> uLength(and(isNat(),isNatList())) 0.08/0.18 0.08/0.18 Proof: 0.08/0.18 Fresh Variable Processor: 0.08/0.18 loop length: 1 0.08/0.18 terms: 0.08/0.18 uTake2(tt()) 0.08/0.18 context: cons([]) 0.08/0.18 substitution: 0.08/0.18 N -> uTake2(tt()) 0.08/0.18 Qed 0.08/0.19 EOF