|   | Who Cites filter? | 
 | 
| filter | Def filter(P;l) == reduce( a,v. if P(a)  [a / v] else v fi;nil;l) | 
 | |   | Thm*  T:Type, P:(T   ), l:T List. filter(P;l)   T List | 
 | 
| reduce | Def reduce(f;k;as) == Case of as; nil   k ; a.as'   f(a,reduce(f;k;as'))
 Def (recursive) | 
 | |   | Thm*  A,B:Type, f:(A  B  B), k:B, as:A List. reduce(f;k;as)   B |