DEFINITION nf2_gen_beta()
TYPE =
       c:C
         .u:T
           .v:T
             .t:T
               .nf2 c (THead (Flat Appl) u (THead (Bind Abst) v t))
                 P:Prop.P
BODY =
        assume cC
        assume uT
        assume vT
        assume tT
          we must prove 
                nf2 c (THead (Flat Appl) u (THead (Bind Abst) v t))
                  P:Prop.P
          or equivalently 
                t2:T
                    .pr2 c (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
                      eq T (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
                  P:Prop.P
           suppose H
              t2:T
                .pr2 c (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
                  eq T (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
           assume PProp
             (H0
                (h1by (pr0_refl .) we proved pr0 u u
                (h2by (pr0_refl .) we proved pr0 t t
                by (pr0_beta . . . h1 . . h2)
                we proved 
                   pr0
                     THead (Flat Appl) u (THead (Bind Abst) v t)
                     THead (Bind Abbr) u t
                by (pr2_free . . . previous)
                we proved 
                   pr2
                     c
                     THead (Flat Appl) u (THead (Bind Abst) v t)
                     THead (Bind Abbr) u t
                by (H . previous)
                we proved 
                   eq
                     T
                     THead (Flat Appl) u (THead (Bind Abst) v t)
                     THead (Bind Abbr) u t
                we proceed by induction on the previous result to prove 
                   <λ:T.Prop>
                     CASE THead (Bind Abbr) u t OF
                       TSort False
                     | TLRef False
                     | THead k  <λ:K.Prop> CASE k OF Bind False | Flat True
                   case refl_equal : 
                      the thesis becomes 
                      <λ:T.Prop>
                        CASE THead (Flat Appl) u (THead (Bind Abst) v t) OF
                          TSort False
                        | TLRef False
                        | THead k  <λ:K.Prop> CASE k OF Bind False | Flat True
                         consider I
                         we proved True

                            <λ:T.Prop>
                              CASE THead (Flat Appl) u (THead (Bind Abst) v t) OF
                                TSort False
                              | TLRef False
                              | THead k  <λ:K.Prop> CASE k OF Bind False | Flat True

                   <λ:T.Prop>
                     CASE THead (Bind Abbr) u t OF
                       TSort False
                     | TLRef False
                     | THead k  <λ:K.Prop> CASE k OF Bind False | Flat True
             end of H0
             consider H0
             we proved 
                <λ:T.Prop>
                  CASE THead (Bind Abbr) u t OF
                    TSort False
                  | TLRef False
                  | THead k  <λ:K.Prop> CASE k OF Bind False | Flat True
             that is equivalent to False
             we proceed by induction on the previous result to prove P
             we proved P
          we proved 
             t2:T
                 .pr2 c (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
                   eq T (THead (Flat Appl) u (THead (Bind Abst) v t)) t2
               P:Prop.P
          that is equivalent to 
             nf2 c (THead (Flat Appl) u (THead (Bind Abst) v t))
               P:Prop.P
       we proved 
          c:C
            .u:T
              .v:T
                .t:T
                  .nf2 c (THead (Flat Appl) u (THead (Bind Abst) v t))
                    P:Prop.P