| Some definitions of interest. |
|
arrows | Def r- > L^k == n: . r n  ( G:({s:( n List)| ||s|| = k & ( x,y: ||s||. x < y  s[x] < s[y]) }  ||L||). c: ||L||, f:( L[c]  n). increasing(f;L[c]) & ( s: L[c] List. ||s|| = k  ( x,y: ||s||. x < y  s[x] < s[y])  G(map(f;s)) = c)) |
| | Thm* r: , k: , L: List. r- > L^k Prop |
|
length | Def ||as|| == Case of as; nil 0 ; a.as' ||as'||+1 (recursive) |
| | Thm* A:Type, l:A List. ||l||  |
| | Thm* ||nil||  |
|
nat | Def == {i: | 0 i } |
| | Thm* Type |
|
nat_plus | Def  == {i: | 0 < i } |
| | Thm*  Type |
|
select | Def l[i] == hd(nth_tl(i;l)) |
| | Thm* A:Type, l:A List, n: . 0 n  n < ||l||  l[n] A |
|
sum | Def sum(f(x) | x < k) == primrec(k;0; x,n. n+f(x)) |
| | Thm* n: , f:( n  ). sum(f(x) | x < n)  |