DEFINITION lt_x_pred_y()
TYPE =
       x:nat.y:nat.(lt x (pred y))(lt (S x) y)
BODY =
        assume xnat
        assume ynat
          we proceed by induction on y to prove (lt x (pred y))(lt (S x) y)
             case O : 
                the thesis becomes (lt x (pred O))(lt (S x) O)
                   we must prove (lt x (pred O))(lt (S x) O)
                   or equivalently (lt x O)(lt (S x) O)
                   suppose Hlt x O
                      by (lt_x_O . H .)
                      we proved lt (S x) O
                   we proved (lt x O)(lt (S x) O)
(lt x (pred O))(lt (S x) O)
             case S : n:nat 
                the thesis becomes (lt x (pred (S n)))(lt (S x) (S n))
                () by induction hypothesis we know (lt x (pred n))(lt (S x) n)
                   we must prove (lt x (pred (S n)))(lt (S x) (S n))
                   or equivalently (lt x n)(lt (S x) (S n))
                   suppose H0lt x n
                      consider H0
                      we proved lt x n
                      that is equivalent to le (S x) n
                      by (le_n_S . . previous)
                      we proved le (S (S x)) (S n)
                      by (le_n_S . . previous)
                      we proved le (S (S (S x))) (S (S n))
                      by (le_S_n . . previous)
                      we proved le (S (S x)) (S n)
                      that is equivalent to lt (S x) (S n)
                   we proved (lt x n)(lt (S x) (S n))
(lt x (pred (S n)))(lt (S x) (S n))
          we proved (lt x (pred y))(lt (S x) y)
       we proved x:nat.y:nat.(lt x (pred y))(lt (S x) y)