| Who Cites for hdtl? |
|
for_hdtl | Def ForHdTl{A,f,k} h::t as. g(h;t) == reduce(f;k;mapcons( h,t. g(h;t);as)) |
| | Thm* A,B,C:Type, f:(B C C), k:C, as:A List, g:(A (A List) B).
Thm* (ForHdTl{A,f,k} h::t as. g(h,t)) C |
|
mapcons | Def mapcons(f;as) == Case of as; nil nil ; a.as' f(a,as').mapcons(f;as')
Def (recursive) |
| | Thm* A,B:Type, f:(A (A List) B), l:A List. mapcons(f;l) B 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 |