| Some definitions of interest. |
|
hel | Def el == n: . l:'a List. if n= 0 then hd(l) else el(n-1,tl(l)) fi
Def (recursive) |
| | Thm* 'a:S. el (hnum  hlist('a)  'a) |
|
hhd | Def hd == l:'a List. if null(l) then arb('a) else head(l) fi |
| | Thm* 'a:S. hd (hlist('a)  'a) |
|
bif | Def bif(b; bx.x(bx); by.y(by)) == if b x(*) else y( x.x) fi |
| | Thm* A:Type, b: , x:(b A), y:(( b) A). bif(b; bx.x(bx); by.y(by)) A |
|
eq_int | Def i= j == if i=j true ; false fi |
| | Thm* i,j: . (i= j)  |
|
hlist | Def hlist('a) == 'a List |
| | Thm* 'a:S. hlist('a) S |
|
nat | Def == {i: | 0 i } |
| | Thm* Type |
| | Thm* S |
|
not | Def A == A  False |
| | Thm* A:Prop. ( A) Prop |
|
stype | Def S == {T:Type| x:T. True } |
| | Thm* S Type{2} |
|
tl | Def tl(l) == Case of l; nil nil ; h.t t |
| | Thm* A:Type, l:A List. tl(l) A List |