DEFINITION arity_gen_appls()
TYPE =
       g:G
         .c:C
           .t:T
             .vs:TList
               .a2:A
                 .arity g c (THeads (Flat Appl) vs t) a2
                   ex A λa:A.arity g c t a
BODY =
        assume gG
        assume cC
        assume tT
        assume vsTList
          we proceed by induction on vs to prove 
             a2:A
               .arity g c (THeads (Flat Appl) vs t) a2
                 ex A λa:A.arity g c t a
             case TNil : 
                the thesis becomes 
                a2:A
                  .arity g c (THeads (Flat ApplTNil t) a2
                    ex A λa:A.arity g c t a
                   assume a2A
                      we must prove 
                            arity g c (THeads (Flat ApplTNil t) a2
                              ex A λa:A.arity g c t a
                      or equivalently (arity g c t a2)(ex A λa:A.arity g c t a)
                      suppose Harity g c t a2
                         by (ex_intro . . . H)
                         we proved ex A λa:A.arity g c t a
                      we proved (arity g c t a2)(ex A λa:A.arity g c t a)
                      that is equivalent to 
                         arity g c (THeads (Flat ApplTNil t) a2
                           ex A λa:A.arity g c t a

                      a2:A
                        .arity g c (THeads (Flat ApplTNil t) a2
                          ex A λa:A.arity g c t a
             case TCons : t0:T t1:TList 
                the thesis becomes 
                a2:A
                  .arity g c (THeads (Flat Appl) (TCons t0 t1) t) a2
                    ex A λa:A.arity g c t a
                (H) by induction hypothesis we know 
                   a2:A
                     .arity g c (THeads (Flat Appl) t1 t) a2
                       ex A λa:A.arity g c t a
                   assume a2A
                      we must prove 
                            arity g c (THeads (Flat Appl) (TCons t0 t1) t) a2
                              ex A λa:A.arity g c t a
                      or equivalently 
                            arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a2
                              ex A λa:A.arity g c t a
                      suppose H0arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a2
                         (H1
                            by (arity_gen_appl . . . . . H0)

                               ex2 A λa1:A.arity g c t0 a1 λa1:A.arity g c (THeads (Flat Appl) t1 t) (AHead a1 a2)
                         end of H1
                         we proceed by induction on H1 to prove ex A λa:A.arity g c t a
                            case ex_intro2 : x:A :arity g c t0 x H3:arity g c (THeads (Flat Appl) t1 t) (AHead x a2) 
                               the thesis becomes ex A λa:A.arity g c t a
                                  (H_x
                                     by (H . H3)
ex A λa:A.arity g c t a
                                  end of H_x
                                  (H4consider H_x
                                  we proceed by induction on H4 to prove ex A λa:A.arity g c t a
                                     case ex_intro : x0:A H5:arity g c t x0 
                                        the thesis becomes ex A λa:A.arity g c t a
                                           by (ex_intro . . . H5)
ex A λa:A.arity g c t a
ex A λa:A.arity g c t a
                         we proved ex A λa:A.arity g c t a
                      we proved 
                         arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a2
                           ex A λa:A.arity g c t a
                      that is equivalent to 
                         arity g c (THeads (Flat Appl) (TCons t0 t1) t) a2
                           ex A λa:A.arity g c t a

                      a2:A
                        .arity g c (THeads (Flat Appl) (TCons t0 t1) t) a2
                          ex A λa:A.arity g c t a
          we proved 
             a2:A
               .arity g c (THeads (Flat Appl) vs t) a2
                 ex A λa:A.arity g c t a
       we proved 
          g:G
            .c:C
              .t:T
                .vs:TList
                  .a2:A
                    .arity g c (THeads (Flat Appl) vs t) a2
                      ex A λa:A.arity g c t a