DEFINITION csubst1_getl_lt()
TYPE =
       i:nat
         .n:nat
           .lt n i
             c1:C
                  .c2:C.v:T.(csubst1 i v c1 c2)e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c2 e2)
BODY =
        assume inat
        assume nnat
        suppose Hlt n i
        assume c1C
        assume c2C
        assume vT
        suppose H0csubst1 i v c1 c2
          we proceed by induction on H0 to prove e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c2 e2)
             case csubst1_refl : 
                the thesis becomes e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c1 e2)
                    assume e1C
                    suppose H1getl n c1 e1
                      (h1
                         by (csubst1_refl . . .)
                         we proved csubst1 (S (minus i (S n))) v e1 e1
                         by (ex_intro2 . . . . previous H1)
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c1 e2
                      end of h1
                      (h2
                         by (minus_x_Sy . . H)
eq nat (minus i n) (S (minus i (S n)))
                      end of h2
                      by (eq_ind_r . . . h1 . h2)
                      we proved ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c1 e2
e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c1 e2)
             case csubst1_sing : c3:C H1:csubst0 i v c1 c3 
                the thesis becomes e1:C.H2:(getl n c1 e1).(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c3 e2)
                    assume e1C
                    suppose H2getl n c1 e1
                      (h1
                         (H3
                            by (csubst0_getl_lt . . H . . . H1 . H2)

                               or4
                                 getl n c3 e1
                                 ex3_4
                                   B
                                   C
                                   T
                                   T
                                   λb:B.λe0:C.λu:T.λ:T.eq C e1 (CHead e0 (Bind b) u)
                                   λb:B.λe0:C.λ:T.λw:T.getl n c3 (CHead e0 (Bind b) w)
                                   λ:B.λ:C.λu:T.λw:T.subst0 (minus i (S n)) v u w
                                 ex3_4
                                   B
                                   C
                                   C
                                   T
                                   λb:B.λe1:C.λ:C.λu:T.eq C e1 (CHead e1 (Bind b) u)
                                   λb:B.λ:C.λe2:C.λu:T.getl n c3 (CHead e2 (Bind b) u)
                                   λ:B.λe1:C.λe2:C.λ:T.csubst0 (minus i (S n)) v e1 e2
                                 ex4_5
                                   B
                                   C
                                   C
                                   T
                                   T
                                   λb:B.λe1:C.λ:C.λu:T.λ:T.eq C e1 (CHead e1 (Bind b) u)
                                   λb:B.λ:C.λe2:C.λ:T.λw:T.getl n c3 (CHead e2 (Bind b) w)
                                   λ:B.λ:C.λ:C.λu:T.λw:T.subst0 (minus i (S n)) v u w
                                   λ:B.λe1:C.λe2:C.λ:T.λ:T.csubst0 (minus i (S n)) v e1 e2
                         end of H3
                         we proceed by induction on H3 to prove ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                            case or4_intro0 : H4:getl n c3 e1 
                               the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                  by (csubst1_refl . . .)
                                  we proved csubst1 (S (minus i (S n))) v e1 e1
                                  by (ex_intro2 . . . . previous H4)
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                            case or4_intro1 : H4:ex3_4 B C T T λb:B.λe0:C.λu:T.λ:T.eq C e1 (CHead e0 (Bind b) u) λb:B.λe0:C.λ:T.λw:T.getl n c3 (CHead e0 (Bind b) w) λ:B.λ:C.λu:T.λw:T.subst0 (minus i (S n)) v u w 
                               the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                  we proceed by induction on H4 to prove ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                     case ex3_4_intro : x0:B x1:C x2:T x3:T H5:eq C e1 (CHead x1 (Bind x0) x2) H6:getl n c3 (CHead x1 (Bind x0) x3) H7:subst0 (minus i (S n)) v x2 x3 
                                        the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                           by (csubst0_snd_bind . . . . . H7 .)
                                           we proved csubst0 (S (minus i (S n))) v (CHead x1 (Bind x0) x2) (CHead x1 (Bind x0) x3)
                                           by (csubst1_sing . . . . previous)
                                           we proved csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x2) (CHead x1 (Bind x0) x3)
                                           by (ex_intro2 . . . . previous H6)
                                           we proved ex2 C λe2:C.csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x2) e2 λe2:C.getl n c3 e2
                                           by (eq_ind_r . . . previous . H5)
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                            case or4_intro2 : H4:ex3_4 B C C T λb:B.λe2:C.λ:C.λu:T.eq C e1 (CHead e2 (Bind b) u) λb:B.λ:C.λe3:C.λu:T.getl n c3 (CHead e3 (Bind b) u) λ:B.λe2:C.λe3:C.λ:T.csubst0 (minus i (S n)) v e2 e3 
                               the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                  we proceed by induction on H4 to prove ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                     case ex3_4_intro : x0:B x1:C x2:C x3:T H5:eq C e1 (CHead x1 (Bind x0) x3) H6:getl n c3 (CHead x2 (Bind x0) x3) H7:csubst0 (minus i (S n)) v x1 x2 
                                        the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                           by (csubst0_fst_bind . . . . . H7 .)
                                           we proved csubst0 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) (CHead x2 (Bind x0) x3)
                                           by (csubst1_sing . . . . previous)
                                           we proved csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) (CHead x2 (Bind x0) x3)
                                           by (ex_intro2 . . . . previous H6)
                                           we proved ex2 C λe2:C.csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) e2 λe2:C.getl n c3 e2
                                           by (eq_ind_r . . . previous . H5)
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                            case or4_intro3 : H4:ex4_5 B C C T T λb:B.λe2:C.λ:C.λu:T.λ:T.eq C e1 (CHead e2 (Bind b) u) λb:B.λ:C.λe3:C.λ:T.λw:T.getl n c3 (CHead e3 (Bind b) w) λ:B.λ:C.λ:C.λu:T.λw:T.subst0 (minus i (S n)) v u w λ:B.λe2:C.λe3:C.λ:T.λ:T.csubst0 (minus i (S n)) v e2 e3 
                               the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                  we proceed by induction on H4 to prove ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                     case ex4_5_intro : x0:B x1:C x2:C x3:T x4:T H5:eq C e1 (CHead x1 (Bind x0) x3) H6:getl n c3 (CHead x2 (Bind x0) x4) H7:subst0 (minus i (S n)) v x3 x4 H8:csubst0 (minus i (S n)) v x1 x2 
                                        the thesis becomes ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                                           by (csubst0_both_bind . . . . . H7 . . H8)
                                           we proved csubst0 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) (CHead x2 (Bind x0) x4)
                                           by (csubst1_sing . . . . previous)
                                           we proved csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) (CHead x2 (Bind x0) x4)
                                           by (ex_intro2 . . . . previous H6)
                                           we proved ex2 C λe2:C.csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) e2 λe2:C.getl n c3 e2
                                           by (eq_ind_r . . . previous . H5)
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
ex2 C λe2:C.csubst1 (S (minus i (S n))) v e1 e2 λe2:C.getl n c3 e2
                      end of h1
                      (h2
                         by (minus_x_Sy . . H)
eq nat (minus i n) (S (minus i (S n)))
                      end of h2
                      by (eq_ind_r . . . h1 . h2)
                      we proved ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c3 e2
e1:C.H2:(getl n c1 e1).(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c3 e2)
          we proved e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c2 e2)
       we proved 
          i:nat
            .n:nat
              .lt n i
                c1:C
                     .c2:C.v:T.(csubst1 i v c1 c2)e1:C.(getl n c1 e1)(ex2 C λe2:C.csubst1 (minus i n) v e1 e2 λe2:C.getl n c2 e2)