Thm* Q:((T List) Prop).
Thm* Q(nil)
Thm* 
Thm* ( x:T. Q([x]))
Thm* 
Thm* ( ys,ys':T List. Q(ys)  Q(ys')  Q(ys @ ys'))  ( zs:T List. Q(zs)) | [list_append_ind] |
Thm* A,B:Type, f:(A B). mapc(f) (A List) (B List) | [mapc_wf] |
Thm* n: , as:A List(n). ||as|| = n | [list_n_properties] |
Thm* n: , f:( n T), i: n. (f{ n})[i] = f(i) | [select_listify_id] |
Thm* as:T List. ( i: ||as||. as[i]){ ||as||} = as | [listify_select_id] |
Thm* m,n: , f:({m..n } T). n<m ||f{m..n }|| = n-m | [listify_length] |
Thm* T:Type, m,n: , f:({m..n } T). f{m..n } T List | [listify_wf] |
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 | [for_hdtl_wf] |
Thm* A,B:Type, f:(A (A List) B), l:A List. mapcons(f;l) B List | [mapcons_wf] |
Thm* A,B:Type, f:(A B B), k:B, as:A List. reduce(f;k;as) B | [reduce_wf] |
Thm* f:(A B), as:A List, n: ||as||. map(f;as)[n] = f(as[n]) | [map_select] |
Thm* a:T, as:T List, i: . 0<i  i ||as||  (a.as)\[i] = a.as\[i-1] | [reject_cons_tl] |
Thm* a:T, as:T List, i: . i 0  (a.as)\[i] = as | [reject_cons_hd] |
Thm* A:Type, l:A List, n: . l\[n] A List | [reject_wf] |
Thm* as:T List, n:{0...||as||}, i: n. firstn(n;as)[i] = as[i] | [select_firstn] |
Thm* as:T List, n:{0...||as||}, i: (||as||-n). nth_tl(n;as)[i] = as[(i+n)] | [select_nth_tl] |
Thm* as:A List, n: (||as||-1). tl(as)[n] = as[(n+1)] | [select_tl] |
Thm* as,bs:T List, i: ||as||. (as @ bs)[i] = as[i] | [select_append_front] |
Thm* as,bs:T List, i:{||as||..(||as||+||bs||) }. (as @ bs)[i] = bs[(i-||as||)] | [select_append_back] |
Thm* a:T, as:T List, i: . 0<i  i ||as||  (a.as)[i] = as[(i-1)] | [select_cons_tl] |
Thm* a:T, as:T List, i: . i 0  (a.as)[i] = a | [select_cons_hd] |
Thm* A:Type, l:A List, n: . 0 n  n<||l||  l[n] A | [select_wf] |
Thm* a,b:A, as,bs:A List. a.as = b.bs  a = b | [eq_cons_imp_eq_hds] |
Thm* a,b:A, as,bs:A List. a.as = b.bs  as = bs | [eq_cons_imp_eq_tls] |
Thm* as:T List, i:{0...||as||}, j:{i...||as||}. ||as[i..j ]|| = j-i | [length_segment] |
Thm* as:A List, n:{0...||as||}. ||firstn(n;as)|| = n | [length_firstn] |
Thm* A:Type, as:A List, n: . firstn(n;as) A List | [firstn_wf] |
Thm* as,bs:T List. rev(as @ bs) = (rev(bs) @ rev(as)) | [reverse_append] |
Thm* T:Type, as:T List. rev(as) T List | [reverse_wf] |
Thm* as:A List, n:{0...||as||}. ||nth_tl(n;as)|| = ||as||-n | [length_nth_tl] |
Thm* A:Type, as:A List, i: . nth_tl(i;as) A List | [nth_tl_wf] |
Thm* l:A List. ||l|| 1  ||tl(l)|| = ||l||-1 | [length_tl] |
Thm* A:Type, l:A List. tl(l) A List | [tl_wf] |
Thm* A:Type, l:A List. ||l|| 1  hd(l) A | [hd_wf] |
Thm* as:A List. map(Id;as) = as | [map_id] |
Thm* f:(A B), as,as':A List. map(f;as @ as') = (map(f;as) @ map(f;as')) | [map_append] |
Thm* f:(A B), g:(B C), as:A List. map(g;map(f;as)) = map(g o f;as) | [map_map] |
Thm* f:(A B), as:A List. ||map(f;as)|| = ||as|| | [map_length] |
Thm* A,B:Type, f:(A B), l:A List. map(f;l) B List | [map_wf] |
Thm* as:A List. as = nil  ||as|| = 0 | [length_of_null_list] |
Thm* as:A List. as = nil  ||as|| 1 | [length_of_not_nil] |
Thm* as,bs:T List. ||as @ bs|| = ||as||+||bs|| | [length_append] |
Thm* l:A List. l = nil  ||l|| 1 | [pos_length] |
Thm* l:A List. ||l|| 0 | [non_neg_length] |
Thm* a:A, as:A List. ||a.as|| = ||as||+1 | [length_cons] |
Thm* A:Type, l:A List. ||l||  | [length_wf1] |
Thm* as:T List. (as @ nil) = as | [append_back_nil] |
Thm* as,bs,cs:T List. ((as @ bs) @ cs) = (as @ (bs @ cs)) | [append_assoc] |
Thm* T:Type, as,bs:T List. (as @ bs) T List | [append_wf] |
Thm* as:T List. null(as)  as = nil | [assert_of_null] |
Thm* T:Type, as:T List. null(as)  | [null_wf] |
Thm* h:T, t:T List. h.t = nil | [cons_neq_nil] |