DEFINITION le_or_lt()
TYPE =
       n:nat.m:nat.(or (le n m) (lt m n))
BODY =
        assume nnat
        assume mnat
          (h1
             assume n0nat
                by (le_O_n .)
                we proved le O n0
                by (or_introl . . previous)
                we proved or (le O n0) (lt n0 O)
n0:nat.(or (le O n0) (lt n0 O))
          end of h1
          (h2
             assume n0nat
                by (lt_O_Sn .)
                we proved lt O (S n0)
                by (lt_le_S . . previous)
                we proved le (S O) (S n0)
                that is equivalent to lt O (S n0)
                by (or_intror . . previous)
                we proved or (le (S n0) O) (lt O (S n0))
n0:nat.(or (le (S n0) O) (lt O (S n0)))
          end of h2
          (h3
              assume n0nat
              assume m0nat
              suppose Hor (le n0 m0) (lt m0 n0)
                we proceed by induction on H to prove or (le (S n0) (S m0)) (lt (S m0) (S n0))
                   case or_introl : H0:le n0 m0 
                      the thesis becomes or (le (S n0) (S m0)) (lt (S m0) (S n0))
                         by (le_n_S . . H0)
                         we proved le (S n0) (S m0)
                         by (or_introl . . previous)
or (le (S n0) (S m0)) (lt (S m0) (S n0))
                   case or_intror : H0:lt m0 n0 
                      the thesis becomes or (le (S n0) (S m0)) (lt (S m0) (S n0))
                         consider H0
                         we proved lt m0 n0
                         that is equivalent to le (S m0) n0
                         by (le_n_S . . previous)
                         we proved le (S (S m0)) (S n0)
                         that is equivalent to lt (S m0) (S n0)
                         by (or_intror . . previous)
or (le (S n0) (S m0)) (lt (S m0) (S n0))
                we proved or (le (S n0) (S m0)) (lt (S m0) (S n0))

                n0:nat
                  .m0:nat.(or (le n0 m0) (lt m0 n0))(or (le (S n0) (S m0)) (lt (S m0) (S n0)))
          end of h3
          by (nat_double_ind . h1 h2 h3 . .)
          we proved or (le n m) (lt m n)
       we proved n:nat.m:nat.(or (le n m) (lt m n))