DEFINITION pr2_gen_abst()
TYPE =
       c:C
         .u1:T
           .t1:T
             .x:T
               .pr2 c (THead (Bind Abst) u1 t1) x
                 (ex3_2
                      T
                      T
                      λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
                      λu2:T.λ:T.pr2 c u1 u2
                      λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2))
BODY =
        assume cC
        assume u1T
        assume t1T
        assume xT
        suppose Hpr2 c (THead (Bind Abst) u1 t1) x
           assume yT
           suppose H0pr2 c y x
             we proceed by induction on H0 to prove 
                eq T y (THead (Bind Abst) u1 t1)
                  (ex3_2
                       T
                       T
                       λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
                       λu2:T.λ:T.pr2 c u1 u2
                       λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2))
                case pr2_free : c0:C t0:T t2:T H1:pr0 t0 t2 
                   the thesis becomes 
                   H2:eq T t0 (THead (Bind Abst) u1 t1)
                     .ex3_2
                       T
                       T
                       λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                       λu2:T.λ:T.pr2 c0 u1 u2
                       λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                      suppose H2eq T t0 (THead (Bind Abst) u1 t1)
                         (H3
                            we proceed by induction on H2 to prove pr0 (THead (Bind Abst) u1 t1) t2
                               case refl_equal : 
                                  the thesis becomes the hypothesis H1
pr0 (THead (Bind Abst) u1 t1) t2
                         end of H3
                         by (pr0_gen_abst . . . H3)
                         we proved ex3_2 T T λu2:T.λt2:T.eq T t2 (THead (Bind Abst) u2 t2) λu2:T.λ:T.pr0 u1 u2 λ:T.λt2:T.pr0 t1 t2
                         we proceed by induction on the previous result to prove 
                            ex3_2
                              T
                              T
                              λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                              λu2:T.λ:T.pr2 c0 u1 u2
                              λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                            case ex3_2_intro : x0:T x1:T H4:eq T t2 (THead (Bind Abst) x0 x1) H5:pr0 u1 x0 H6:pr0 t1 x1 
                               the thesis becomes 
                               ex3_2
                                 T
                                 T
                                 λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                                 λu2:T.λ:T.pr2 c0 u1 u2
                                 λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                                  (h1
                                     by (refl_equal . .)
eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) x0 x1)
                                  end of h1
                                  (h2by (pr2_free . . . H5) we proved pr2 c0 u1 x0
                                  (h3
                                      assume bB
                                      assume uT
                                        by (pr2_free . . . H6)
                                        we proved pr2 (CHead c0 (Bind b) u) t1 x1
b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 x1)
                                  end of h3
                                  by (ex3_2_intro . . . . . . . h1 h2 h3)
                                  we proved 
                                     ex3_2
                                       T
                                       T
                                       λu2:T.λt3:T.eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) u2 t3)
                                       λu2:T.λ:T.pr2 c0 u1 u2
                                       λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                                  by (eq_ind_r . . . previous . H4)

                                     ex3_2
                                       T
                                       T
                                       λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                                       λu2:T.λ:T.pr2 c0 u1 u2
                                       λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                         we proved 
                            ex3_2
                              T
                              T
                              λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                              λu2:T.λ:T.pr2 c0 u1 u2
                              λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)

                         H2:eq T t0 (THead (Bind Abst) u1 t1)
                           .ex3_2
                             T
                             T
                             λu2:T.λt3:T.eq T t2 (THead (Bind Abst) u2 t3)
                             λu2:T.λ:T.pr2 c0 u1 u2
                             λ:T.λt3:T.b:B.u:T.(pr2 (CHead c0 (Bind b) u) t1 t3)
                case pr2_delta : c0:C d:C u:T i:nat H1:getl i c0 (CHead d (Bind Abbr) u) t0:T t2:T H2:pr0 t0 t2 t:T H3:subst0 i u t2 t 
                   the thesis becomes 
                   H4:eq T t0 (THead (Bind Abst) u1 t1)
                     .ex3_2
                       T
                       T
                       λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                       λu2:T.λ:T.pr2 c0 u1 u2
                       λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                      suppose H4eq T t0 (THead (Bind Abst) u1 t1)
                         (H5
                            we proceed by induction on H4 to prove pr0 (THead (Bind Abst) u1 t1) t2
                               case refl_equal : 
                                  the thesis becomes the hypothesis H2
pr0 (THead (Bind Abst) u1 t1) t2
                         end of H5
                         by (pr0_gen_abst . . . H5)
                         we proved ex3_2 T T λu2:T.λt2:T.eq T t2 (THead (Bind Abst) u2 t2) λu2:T.λ:T.pr0 u1 u2 λ:T.λt2:T.pr0 t1 t2
                         we proceed by induction on the previous result to prove 
                            ex3_2
                              T
                              T
                              λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                              λu2:T.λ:T.pr2 c0 u1 u2
                              λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                            case ex3_2_intro : x0:T x1:T H6:eq T t2 (THead (Bind Abst) x0 x1) H7:pr0 u1 x0 H8:pr0 t1 x1 
                               the thesis becomes 
                               ex3_2
                                 T
                                 T
                                 λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                 λu2:T.λ:T.pr2 c0 u1 u2
                                 λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                  (H9
                                     we proceed by induction on H6 to prove subst0 i u (THead (Bind Abst) x0 x1) t
                                        case refl_equal : 
                                           the thesis becomes the hypothesis H3
subst0 i u (THead (Bind Abst) x0 x1) t
                                  end of H9
                                  by (subst0_gen_head . . . . . . H9)
                                  we proved 
                                     or3
                                       ex2 T λu2:T.eq T t (THead (Bind Abst) u2 x1) λu2:T.subst0 i u x0 u2
                                       ex2 T λt2:T.eq T t (THead (Bind Abst) x0 t2) λt2:T.subst0 (s (Bind Abst) i) u x1 t2
                                       ex3_2
                                         T
                                         T
                                         λu2:T.λt2:T.eq T t (THead (Bind Abst) u2 t2)
                                         λu2:T.λ:T.subst0 i u x0 u2
                                         λ:T.λt2:T.subst0 (s (Bind Abst) i) u x1 t2
                                  we proceed by induction on the previous result to prove 
                                     ex3_2
                                       T
                                       T
                                       λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                       λu2:T.λ:T.pr2 c0 u1 u2
                                       λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                     case or3_intro0 : H10:ex2 T λu2:T.eq T t (THead (Bind Abst) u2 x1) λu2:T.subst0 i u x0 u2 
                                        the thesis becomes 
                                        ex3_2
                                          T
                                          T
                                          λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                          λu2:T.λ:T.pr2 c0 u1 u2
                                          λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                           we proceed by induction on H10 to prove 
                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                              case ex_intro2 : x2:T H11:eq T t (THead (Bind Abst) x2 x1) H12:subst0 i u x0 x2 
                                                 the thesis becomes 
                                                 ex3_2
                                                   T
                                                   T
                                                   λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                   λu2:T.λ:T.pr2 c0 u1 u2
                                                   λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)
                                                    (h1
                                                       by (refl_equal . .)
eq T (THead (Bind Abst) x2 x1) (THead (Bind Abst) x2 x1)
                                                    end of h1
                                                    (h2
                                                       by (pr2_delta . . . . H1 . . H7 . H12)
pr2 c0 u1 x2
                                                    end of h2
                                                    (h3
                                                        assume bB
                                                        assume u0T
                                                          by (pr2_free . . . H8)
                                                          we proved pr2 (CHead c0 (Bind b) u0) t1 x1
b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 x1)
                                                    end of h3
                                                    by (ex3_2_intro . . . . . . . h1 h2 h3)
                                                    we proved 
                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt3:T.eq T (THead (Bind Abst) x2 x1) (THead (Bind Abst) u2 t3)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                                    by (eq_ind_r . . . previous . H11)

                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)

                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                     case or3_intro1 : H10:ex2 T λt3:T.eq T t (THead (Bind Abst) x0 t3) λt3:T.subst0 (s (Bind Abst) i) u x1 t3 
                                        the thesis becomes 
                                        ex3_2
                                          T
                                          T
                                          λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                          λu2:T.λ:T.pr2 c0 u1 u2
                                          λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                           we proceed by induction on H10 to prove 
                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                              case ex_intro2 : x2:T H11:eq T t (THead (Bind Abst) x0 x2) H12:subst0 (s (Bind Abst) i) u x1 x2 
                                                 the thesis becomes 
                                                 ex3_2
                                                   T
                                                   T
                                                   λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                   λu2:T.λ:T.pr2 c0 u1 u2
                                                   λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)
                                                    (h1
                                                       by (refl_equal . .)
eq T (THead (Bind Abst) x0 x2) (THead (Bind Abst) x0 x2)
                                                    end of h1
                                                    (h2by (pr2_free . . . H7) we proved pr2 c0 u1 x0
                                                    (h3
                                                        assume bB
                                                        assume u0T
                                                          (h1
                                                             consider H1
                                                             we proved getl i c0 (CHead d (Bind Abbr) u)
                                                             that is equivalent to getl (r (Bind b) i) c0 (CHead d (Bind Abbr) u)
                                                             by (getl_head . . . . previous .)
getl (S i) (CHead c0 (Bind b) u0) (CHead d (Bind Abbr) u)
                                                          end of h1
                                                          (h2
                                                             consider H12
                                                             we proved subst0 (s (Bind Abst) i) u x1 x2
subst0 (S i) u x1 x2
                                                          end of h2
                                                          by (pr2_delta . . . . h1 . . H8 . h2)
                                                          we proved pr2 (CHead c0 (Bind b) u0) t1 x2
b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 x2)
                                                    end of h3
                                                    by (ex3_2_intro . . . . . . . h1 h2 h3)
                                                    we proved 
                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt3:T.eq T (THead (Bind Abst) x0 x2) (THead (Bind Abst) u2 t3)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                                    by (eq_ind_r . . . previous . H11)

                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)

                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                     case or3_intro2 : H10:ex3_2 T T λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3) λu2:T.λ:T.subst0 i u x0 u2 λ:T.λt3:T.subst0 (s (Bind Abst) i) u x1 t3 
                                        the thesis becomes 
                                        ex3_2
                                          T
                                          T
                                          λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                          λu2:T.λ:T.pr2 c0 u1 u2
                                          λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                           we proceed by induction on H10 to prove 
                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                              case ex3_2_intro : x2:T x3:T H11:eq T t (THead (Bind Abst) x2 x3) H12:subst0 i u x0 x2 H13:subst0 (s (Bind Abst) i) u x1 x3 
                                                 the thesis becomes 
                                                 ex3_2
                                                   T
                                                   T
                                                   λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                   λu2:T.λ:T.pr2 c0 u1 u2
                                                   λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)
                                                    (h1
                                                       by (refl_equal . .)
eq T (THead (Bind Abst) x2 x3) (THead (Bind Abst) x2 x3)
                                                    end of h1
                                                    (h2
                                                       by (pr2_delta . . . . H1 . . H7 . H12)
pr2 c0 u1 x2
                                                    end of h2
                                                    (h3
                                                        assume bB
                                                        assume u0T
                                                          (h1
                                                             consider H1
                                                             we proved getl i c0 (CHead d (Bind Abbr) u)
                                                             that is equivalent to getl (r (Bind b) i) c0 (CHead d (Bind Abbr) u)
                                                             by (getl_head . . . . previous .)
getl (S i) (CHead c0 (Bind b) u0) (CHead d (Bind Abbr) u)
                                                          end of h1
                                                          (h2
                                                             consider H13
                                                             we proved subst0 (s (Bind Abst) i) u x1 x3
subst0 (S i) u x1 x3
                                                          end of h2
                                                          by (pr2_delta . . . . h1 . . H8 . h2)
                                                          we proved pr2 (CHead c0 (Bind b) u0) t1 x3
b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 x3)
                                                    end of h3
                                                    by (ex3_2_intro . . . . . . . h1 h2 h3)
                                                    we proved 
                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt3:T.eq T (THead (Bind Abst) x2 x3) (THead (Bind Abst) u2 t3)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                                                    by (eq_ind_r . . . previous . H11)

                                                       ex3_2
                                                         T
                                                         T
                                                         λu2:T.λt4:T.eq T t (THead (Bind Abst) u2 t4)
                                                         λu2:T.λ:T.pr2 c0 u1 u2
                                                         λ:T.λt4:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t4)

                                              ex3_2
                                                T
                                                T
                                                λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                                λu2:T.λ:T.pr2 c0 u1 u2
                                                λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)

                                     ex3_2
                                       T
                                       T
                                       λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                                       λu2:T.λ:T.pr2 c0 u1 u2
                                       λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
                         we proved 
                            ex3_2
                              T
                              T
                              λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                              λu2:T.λ:T.pr2 c0 u1 u2
                              λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)

                         H4:eq T t0 (THead (Bind Abst) u1 t1)
                           .ex3_2
                             T
                             T
                             λu2:T.λt3:T.eq T t (THead (Bind Abst) u2 t3)
                             λu2:T.λ:T.pr2 c0 u1 u2
                             λ:T.λt3:T.b:B.u0:T.(pr2 (CHead c0 (Bind b) u0) t1 t3)
             we proved 
                eq T y (THead (Bind Abst) u1 t1)
                  (ex3_2
                       T
                       T
                       λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
                       λu2:T.λ:T.pr2 c u1 u2
                       λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2))
          we proved 
             y:T
               .pr2 c y x
                 (eq T y (THead (Bind Abst) u1 t1)
                      (ex3_2
                           T
                           T
                           λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
                           λu2:T.λ:T.pr2 c u1 u2
                           λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2)))
          by (insert_eq . . . . previous H)
          we proved 
             ex3_2
               T
               T
               λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
               λu2:T.λ:T.pr2 c u1 u2
               λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2)
       we proved 
          c:C
            .u1:T
              .t1:T
                .x:T
                  .pr2 c (THead (Bind Abst) u1 t1) x
                    (ex3_2
                         T
                         T
                         λu2:T.λt2:T.eq T x (THead (Bind Abst) u2 t2)
                         λu2:T.λ:T.pr2 c u1 u2
                         λ:T.λt2:T.b:B.u:T.(pr2 (CHead c (Bind b) u) t1 t2))