DEFINITION dnf_dec()
TYPE =
       w:T
         .t:T
           .d:nat
             .ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
BODY =
        assume wT
        assume tT
        assume dnat
          (H_x
             by (dnf_dec2 . .)

                or
                  w:T.(ex T λv:T.subst0 d w t (lift (S O) d v))
                  ex T λv:T.eq T t (lift (S O) d v)
          end of H_x
          (Hconsider H_x
          we proceed by induction on H to prove ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
             case or_introl : H0:w0:T.(ex T λv:T.subst0 d w0 t (lift (S O) d v)) 
                the thesis becomes ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                   (H_x0
                      by (H0 .)
ex T λv:T.subst0 d w t (lift (S O) d v)
                   end of H_x0
                   (H1consider H_x0
                   we proceed by induction on H1 to prove ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                      case ex_intro : x:T H2:subst0 d w t (lift (S O) d x) 
                         the thesis becomes ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                            by (or_introl . . H2)
                            we proved or (subst0 d w t (lift (S O) d x)) (eq T t (lift (S O) d x))
                            by (ex_intro . . . previous)
ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
             case or_intror : H0:ex T λv:T.eq T t (lift (S O) d v) 
                the thesis becomes ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                   we proceed by induction on H0 to prove ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                      case ex_intro : x:T H1:eq T t (lift (S O) d x) 
                         the thesis becomes ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
                            by (refl_equal . .)
                            we proved eq T (lift (S O) d x) (lift (S O) d x)
                            by (or_intror . . previous)
                            we proved 
                               or
                                 subst0 d w (lift (S O) d x) (lift (S O) d x)
                                 eq T (lift (S O) d x) (lift (S O) d x)
                            by (ex_intro . . . previous)
                            we proved 
                               ex
                                 T
                                 λv:T
                                   .or
                                     subst0 d w (lift (S O) d x) (lift (S O) d v)
                                     eq T (lift (S O) d x) (lift (S O) d v)
                            by (eq_ind_r . . . previous . H1)
ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
          we proved ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))
       we proved 
          w:T
            .t:T
              .d:nat
                .ex T λv:T.or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v))