| biject | 
 Def Bij(A; B; f) == Inj(A; B; f)  &  Surj(A; B; f)
 Thm*  A,B:Type, f:(A  B). Bij(A; B; f)   Prop 
 | 
| one_one_corr | 
 Def A ~ B ==  f:(A  B), g:(B  A). InvFuns(A; B; f; g)
Thm*  A,B:Type. (A ~ B)   Prop 
 | 
| inv_funs | 
 Def InvFuns(A; B; f; g) == g o f = Id  &  f o g = Id
 Thm*  A,B:Type, f:(A  B), g:(B  A). InvFuns(A; B; f; g)   Prop 
 | 
| compose | 
 Def (f o g)(x) == f(g(x))
 Thm*  A,B,C:Type, f:(B  C), g:(A  B). f o g   A  C 
 | 
| exp | 
 Def (base power) == if power= 0  1 else base (base power-1) fi  (recursive)
 Thm*  n,k: . (n k)    
 
 Thm*  n,k: . (n k)     
 | 
| int_seg | 
 Def {i..j } == {k: | i   k  <  j }
Thm*  m,n: . {m..n }   Type 
 | 
| nat | 
 Def   == {i: | 0 i }
Thm*     Type 
 | 
| tidentity | 
 Def Id == Id
 Thm*  A:Type. Id   A  A 
 | 
| surject | 
 Def Surj(A; B; f) ==  b:B.  a:A. f(a) = b
Thm*  A,B:Type, f:(A  B). Surj(A; B; f)   Prop 
 | 
| inject | 
 Def Inj(A; B; f) ==  a1,a2:A. f(a1) = f(a2)   B    a1 = a2
Thm*  A,B:Type, f:(A  B). Inj(A; B; f)   Prop 
 | 
| eq_int | 
 Def i= j == if i=j  true  ; false  fi
Thm*  i,j: . i= j     
 | 
| lelt | 
 Def i   j  <  k == i j  &  j < k
 | 
| le | 
 Def A B ==  B < A
Thm*  i,j: . i j   Prop 
 | 
| identity | 
 Def Id(x) == x
 Thm*  A:Type. Id   A  A 
 | 
| not | 
 Def  A == A    False
Thm*  A:Prop. ( A)   Prop 
 |