Thm* as:T1 List, bs:T2 List. ||as|| = ||bs|| ![](FONT/eq.png) unzip(zip(as;bs)) = <as,bs> | [unzip_zip] |
Thm* as:T1 List, bs:T2 List. ||as|| = ||bs|| ![](FONT/eq.png) ||zip(as;bs)|| = ||as|| ![](FONT/int.png) | [length_zip] |
Thm* as:T1 List, bs:T2 List, i: .
Thm* i<||zip(as;bs)|| ![](FONT/eq.png) zip(as;bs)[i] = <as[i],bs[i]> | [select_zip] |
Thm* as:T1 List, bs:T2 List. ||zip(as;bs)|| ||as|| & ||zip(as;bs)|| ||bs|| | [zip_length] |
Thm* l1,l2:T List. l1 l2 ![](FONT/eq.png) ||l1|| ||l2|| | [iseg_length] |
Thm* l1,l2:T List. l1 l2 ![](FONT/if_big.png) ||l1|| ||l2|| & ( i: . i<||l1|| ![](FONT/eq.png) l1[i] = l2[i]) | [iseg_select] |
Thm* L1,L2:T List. L1 L2 ![](FONT/if_big.png) ( n: (||L2||+1). L1 = firstn(n;L2)) | [firstn_is_iseg] |
Thm* l:A List . ||l|| 1 | [listp_properties] |
Thm* L:T List, i,j: ||L||. i<j ![](FONT/eq.png) [L[i]; L[j]] L | [sublist_pair] |
Thm* L1,L2:T List. L1 L2 ![](FONT/eq.png) ||L1|| = ||L2|| ![](FONT/eq.png) L1 = L2 | [proper_sublist_length] |
Thm* L1,L2:T List. L1 L2 ![](FONT/eq.png) ||L1|| ||L2|| | [length_sublist] |
Thm* L:T List, i: ||L||. (L[i] L) | [select_member] |
Thm* as:T List, x:T. 0<||as|| ![](FONT/eq.png) (x tl(as)) ![](FONT/eq.png) (x as) | [member_tl] |
Thm* n: , f:( n![](FONT/dash.png) T). ||mklist(n;f)|| = n ![](FONT/int.png) | [mklist_length] |
Thm* z:T List. ||z|| = 2 ![](FONT/eq.png) z = [z[0]; z[1]] | [list_2_decomp] |
Thm* f:(A![](FONT/dash.png) B), as:A List. ||map(f;as)|| = ||as|| ![](FONT/nat.png) | [map_length_nat] |
Thm* L:T List. 0<||L|| ![](FONT/eq.png) ( x:T, L':T List. L = (L' @ [x])) | [list_decomp_reverse] |
Thm* a:T List, f,g:(T![](FONT/dash.png) T').
Thm* ( i: . i<||a|| ![](FONT/eq.png) f(a[i]) = g(a[i])) ![](FONT/eq.png) map(f;a) = map(g;a) | [map_equal] |
Thm* a,b:T List. ||a|| = ||b|| ![](FONT/eq.png) ( i: . i<||a|| ![](FONT/eq.png) a[i] = b[i]) ![](FONT/eq.png) a = b | [list_extensionality] |
Thm* m: , L:T List. m<||L|| ![](FONT/eq.png) (nth_tl(m;L) ~ [L[m] / nth_tl(1+m;L)]) | [nth_tl_decomp] |
Thm* L:T List. 0<||L|| ![](FONT/eq.png) (L ~ [hd(L) / tl(L)]) | [list_decomp] |
Thm* l:T List. ||l|| = 0 ![](FONT/if_big.png) l = nil | [length_zero] |
Thm* L:T List. L = nil ![](FONT/eq.png) 0<||L|| | [non_nil_length] |
Thm* L:T List, P:( ||L||![](FONT/dash.png) Prop).
Thm* ( x: ||L||. Dec(P(x)))
Thm* ![](FONT/eq.png)
Thm* ( i,j: ||L||. P(i) ![](FONT/eq.png) i<j ![](FONT/eq.png) P(j))
Thm* ![](FONT/eq.png)
Thm* ( L_1,L_2:T List. L = (L_1 @ L_2) & ( i: ||L||. P(i) ![](FONT/if_big.png) ||L_1|| i)) | [append_split2] |
Thm* L:T List, n:{0...||L||}. (firstn(n;L) @ nth_tl(n;L)) = L | [append_firstn_lastn] |
Def no_repeats(T;l) == i,j: . i<||l|| ![](FONT/eq.png) j<||l|| ![](FONT/eq.png) i = j ![](FONT/eq.png) l[i] = l[j] T | [no_repeats] |
Def A List == {l:(A List)| (0< ||l||) } | [listp] |
Def L1 L2
Def == f:( ||L1||![](FONT/dash.png) ![](FONT/then_med.png) ||L2||).
Def == increasing(f;||L1||) & ( j: ||L1||. L1[j] = L2[(f(j))] T) | [sublist] |
Def last(L) == L[(||L||-1)] | [last] |
Def (x l) == i: . i<||l|| & x = l[i] T | [l_member] |