DEFINITION lifts_tapp()
TYPE =
       h:nat
         .d:nat
           .v:T
             .vs:TList
               .eq
                 TList
                 lifts h d (TApp vs v)
                 TApp (lifts h d vs) (lift h d v)
BODY =
        assume hnat
        assume dnat
        assume vT
        assume vsTList
          we proceed by induction on vs to prove 
             eq
               TList
               lifts h d (TApp vs v)
               TApp (lifts h d vs) (lift h d v)
             case TNil : 
                the thesis becomes 
                eq
                  TList
                  lifts h d (TApp TNil v)
                  TApp (lifts h d TNil) (lift h d v)
                   by (refl_equal . .)
                   we proved eq TList (TCons (lift h d v) TNil) (TCons (lift h d v) TNil)

                      eq
                        TList
                        lifts h d (TApp TNil v)
                        TApp (lifts h d TNil) (lift h d v)
             case TCons : t:T t0:TList 
                the thesis becomes 
                eq
                  TList
                  lifts h d (TApp (TCons t t0) v)
                  TApp (lifts h d (TCons t t0)) (lift h d v)
                (H) by induction hypothesis we know 
                   eq TList (lifts h d (TApp t0 v)) (TApp (lifts h d t0) (lift h d v))
                   by (refl_equal . .)
                   we proved 
                      eq
                        TList
                        TCons (lift h d t) (TApp (lifts h d t0) (lift h d v))
                        TCons (lift h d t) (TApp (lifts h d t0) (lift h d v))
                   by (eq_ind_r . . . previous . H)
                   we proved 
                      eq
                        TList
                        TCons (lift h d t) (lifts h d (TApp t0 v))
                        TCons (lift h d t) (TApp (lifts h d t0) (lift h d v))

                      eq
                        TList
                        lifts h d (TApp (TCons t t0) v)
                        TApp (lifts h d (TCons t t0)) (lift h d v)
          we proved 
             eq
               TList
               lifts h d (TApp vs v)
               TApp (lifts h d vs) (lift h d v)
       we proved 
          h:nat
            .d:nat
              .v:T
                .vs:TList
                  .eq
                    TList
                    lifts h d (TApp vs v)
                    TApp (lifts h d vs) (lift h d v)