|  | Some definitions of interest. | 
|  | 
| assert | Def  b == if b  True else False fi | 
 | |  | Thm*  b:  . b  Prop | 
|  | 
| search | Def search(k;P) == primrec(k;0;  i,j. if 0<  j  j ; P(i)  i+1 else 0 fi) | 
 | |  | Thm*  k:  , P:(  k    ). search(k;P)    (k+1) | 
|  | 
| swap | Def swap(L;i;j) == (L o (i, j)) | 
 | |  | Thm*  T:Type, L:T List, i,j:  ||L||. swap(L;i;j)  T List | 
|  | 
| eq_int | Def i=  j == if i=j  true  ; false  fi | 
 | |  | Thm*  i,j:  . (i=  j)    | 
|  | 
| iff | Def P   Q == (P   Q) & (P   Q) | 
 | |  | Thm*  A,B:Prop. (A   B)  Prop | 
|  | 
| int_seg | Def {i..j  } == {k:  | i  k < j } | 
 | |  | Thm*  m,n:  . {m..n  }  Type | 
|  | 
| length | Def ||as|| == Case of as; nil  0 ; a.as'  ||as'||+1  (recursive) | 
 | |  | Thm*  A:Type, l:A List. ||l||    | 
 | |  | Thm* ||nil||    | 
|  | 
| let | Def let x = a in b(x) == (  x.b(x))(a) | 
 | |  | Thm*  A,B:Type, a:A, b:(A   B). let x = a in b(x)  B | 
|  | 
| nat | Def  == {i:  | 0  i } | 
 | |  | Thm*    Type | 
|  | 
| not | Def  A == A   False | 
 | |  | Thm*  A:Prop. (  A)  Prop | 
|  | 
| null | Def null(as) == Case of as; nil  true  ; a.as'  false  | 
 | |  | Thm*  T:Type, as:T List. null(as)    | 
 | |  | Thm* null(nil)    |