DEFINITION lifts1_flat()
TYPE =
       f:F
         .hds:PList
           .t:T
             .ts:TList
               .eq
                 T
                 lift1 hds (THeads (Flat f) ts t)
                 THeads (Flat f) (lifts1 hds ts) (lift1 hds t)
BODY =
        assume fF
        assume hdsPList
        assume tT
        assume tsTList
          we proceed by induction on ts to prove 
             eq
               T
               lift1 hds (THeads (Flat f) ts t)
               THeads (Flat f) (lifts1 hds ts) (lift1 hds t)
             case TNil : 
                the thesis becomes 
                eq
                  T
                  lift1 hds (THeads (Flat f) TNil t)
                  THeads (Flat f) (lifts1 hds TNil) (lift1 hds t)
                   by (refl_equal . .)
                   we proved eq T (lift1 hds t) (lift1 hds t)

                      eq
                        T
                        lift1 hds (THeads (Flat f) TNil t)
                        THeads (Flat f) (lifts1 hds TNil) (lift1 hds t)
             case TCons : t0:T t1:TList 
                the thesis becomes 
                eq
                  T
                  lift1 hds (THeads (Flat f) (TCons t0 t1) t)
                  THeads (Flat f) (lifts1 hds (TCons t0 t1)) (lift1 hds t)
                (H) by induction hypothesis we know 
                   eq
                     T
                     lift1 hds (THeads (Flat f) t1 t)
                     THeads (Flat f) (lifts1 hds t1) (lift1 hds t)
                   (h1
                      by (refl_equal . .)
                      we proved 
                         eq
                           T
                           THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1) (lift1 hds t))
                           THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1) (lift1 hds t))
                      by (eq_ind_r . . . previous . H)

                         eq
                           T
                           THead (Flat f) (lift1 hds t0) (lift1 hds (THeads (Flat f) t1 t))
                           THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1) (lift1 hds t))
                   end of h1
                   (h2
                      by (lift1_flat . . . .)

                         eq
                           T
                           lift1 hds (THead (Flat f) t0 (THeads (Flat f) t1 t))
                           THead (Flat f) (lift1 hds t0) (lift1 hds (THeads (Flat f) t1 t))
                   end of h2
                   by (eq_ind_r . . . h1 . h2)
                   we proved 
                      eq
                        T
                        lift1 hds (THead (Flat f) t0 (THeads (Flat f) t1 t))
                        THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1) (lift1 hds t))

                      eq
                        T
                        lift1 hds (THeads (Flat f) (TCons t0 t1) t)
                        THeads (Flat f) (lifts1 hds (TCons t0 t1)) (lift1 hds t)
          we proved 
             eq
               T
               lift1 hds (THeads (Flat f) ts t)
               THeads (Flat f) (lifts1 hds ts) (lift1 hds t)
       we proved 
          f:F
            .hds:PList
              .t:T
                .ts:TList
                  .eq
                    T
                    lift1 hds (THeads (Flat f) ts t)
                    THeads (Flat f) (lifts1 hds ts) (lift1 hds t)