| firstn | 
 Def firstn(n;as)
 == Case of as; nil   nil ; a.as'   if 0 <  n  a.firstn(n-1;as') else nil fi
 (recursive)
 Thm*  A:Type, as:A*, n: . firstn(n;as)   A* 
 | 
| ge | 
 Def i j == j i
Thm*  i,j: . i j   Prop 
 | 
| hd | 
 Def hd(l) == Case of l; nil   "?" ; h.t   h
 Thm*  A:Type, l:A*. ||l|| 1    hd(l)   A 
 | 
| int_iseg | 
 Def {i...j} == {k: | i k  &  k j }
Thm*  i,j: . {i...j}   Type 
 | 
| length | 
 Def ||as|| == Case of as; nil   0 ; a.as'   ||as'||+1  (recursive)
 Thm*  A:Type, l:A*. ||l||    
 
 Thm* ||nil||     
 | 
| nth_tl | 
 Def nth_tl(n;as) == if n  0  as else nth_tl(n-1;tl(as)) fi  (recursive)
 Thm*  A:Type, as:A*, i: . nth_tl(i;as)   A* 
 | 
| le_int | 
 Def i  j ==   j <  i
Thm*  i,j: . i  j     
 | 
| lt_int | 
 Def i <  j == if i < j  true  ; false  fi
Thm*  i,j: . i <  j     
 | 
| le | 
 Def A B ==  B < A
Thm*  i,j: . i j   Prop 
 | 
| tl | 
 Def tl(l) == Case of l; nil   nil ; h.t   t
 Thm*  A:Type, l:A*. tl(l)   A* 
 | 
| not | 
 Def  A == A    False
Thm*  A:Prop. ( A)   Prop 
 | 
| bnot | 
 Def   b == if b  false  else true  fi
Thm*  b: .   b     
 |