DEFINITION nf2_abst()
TYPE =
       c:C
         .u:T
           .nf2 c u
             b:B
                  .v:T
                    .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
BODY =
        assume cC
        assume uT
          we must prove 
                nf2 c u
                  b:B
                       .v:T
                         .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
          or equivalently 
                t2:T.(pr2 c u t2)(eq T u t2)
                  b:B
                       .v:T
                         .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
           suppose Ht2:T.(pr2 c u t2)(eq T u t2)
           assume bB
           assume vT
           assume tT
             we must prove (nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
             or equivalently 
                   t2:T.(pr2 (CHead c (Bind b) v) t t2)(eq T t t2)
                     nf2 c (THead (Bind Abst) u t)
             suppose H0t2:T.(pr2 (CHead c (Bind b) v) t t2)(eq T t t2)
                we must prove nf2 c (THead (Bind Abst) u t)
                or equivalently 
                      t2:T
                        .pr2 c (THead (Bind Abst) u t) t2
                          eq T (THead (Bind Abst) u t) t2
                 assume t2T
                 suppose H1pr2 c (THead (Bind Abst) u t) t2
                   (H2
                      by (pr2_gen_abst . . . . H1)

                         ex3_2
                           T
                           T
                           λu2:T.λt2:T.eq T t2 (THead (Bind Abst) u2 t2)
                           λu2:T.λ:T.pr2 c u u2
                           λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t t2)
                   end of H2
                   we proceed by induction on H2 to prove eq T (THead (Bind Abst) u t) t2
                      case ex3_2_intro : x0:T x1:T H3:eq T t2 (THead (Bind Abst) x0 x1) H4:pr2 c u x0 H5:b0:B.u0:T.(pr2 (CHead c (Bind b0) u0) t x1) 
                         the thesis becomes eq T (THead (Bind Abst) u t) t2
                            (h1
                               by (refl_equal . .)
eq K (Bind Abst) (Bind Abst)
                            end of h1
                            (h2by (H . H4) we proved eq T u x0
                            (h3
                               by (H5 . .)
                               we proved pr2 (CHead c (Bind b) v) t x1
                               by (H0 . previous)
eq T t x1
                            end of h3
                            by (f_equal3 . . . . . . . . . . . h1 h2 h3)
                            we proved eq T (THead (Bind Abst) u t) (THead (Bind Abst) x0 x1)
                            by (eq_ind_r . . . previous . H3)
eq T (THead (Bind Abst) u t) t2
                   we proved eq T (THead (Bind Abst) u t) t2
                we proved 
                   t2:T
                     .pr2 c (THead (Bind Abst) u t) t2
                       eq T (THead (Bind Abst) u t) t2
                that is equivalent to nf2 c (THead (Bind Abst) u t)
             we proved 
                t2:T.(pr2 (CHead c (Bind b) v) t t2)(eq T t t2)
                  nf2 c (THead (Bind Abst) u t)
             that is equivalent to (nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
          we proved 
             t2:T.(pr2 c u t2)(eq T u t2)
               b:B
                    .v:T
                      .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
          that is equivalent to 
             nf2 c u
               b:B
                    .v:T
                      .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))
       we proved 
          c:C
            .u:T
              .nf2 c u
                b:B
                     .v:T
                       .t:T.(nf2 (CHead c (Bind b) v) t)(nf2 c (THead (Bind Abst) u t))