DEFINITION lift_gen_flat()
TYPE =
       f:F
         .u:T
           .t:T
             .x:T
               .h:nat
                 .d:nat
                   .eq T (THead (Flat f) u t) (lift h d x)
                     (ex3_2
                          T
                          T
                          λy:T.λz:T.eq T x (THead (Flat f) y z)
                          λy:T.λ:T.eq T u (lift h d y)
                          λ:T.λz:T.eq T t (lift h d z))
BODY =
        assume fF
        assume uT
        assume tT
        assume xT
        assume hnat
        assume dnat
        suppose Heq T (THead (Flat f) u t) (lift h d x)
          (H_x
             by (lift_gen_head . . . . . . H)

                ex3_2
                  T
                  T
                  λy:T.λz:T.eq T x (THead (Flat f) y z)
                  λy:T.λ:T.eq T u (lift h d y)
                  λ:T.λz:T.eq T t (lift h (s (Flat f) d) z)
          end of H_x
          (H0consider H_x
          consider H0
          we proved 
             ex3_2
               T
               T
               λy:T.λz:T.eq T x (THead (Flat f) y z)
               λy:T.λ:T.eq T u (lift h d y)
               λ:T.λz:T.eq T t (lift h (s (Flat f) d) z)
          that is equivalent to 
             ex3_2
               T
               T
               λy:T.λz:T.eq T x (THead (Flat f) y z)
               λy:T.λ:T.eq T u (lift h d y)
               λ:T.λz:T.eq T t (lift h d z)
          we proceed by induction on the previous result to prove 
             ex3_2
               T
               T
               λy:T.λz:T.eq T x (THead (Flat f) y z)
               λy:T.λ:T.eq T u (lift h d y)
               λ:T.λz:T.eq T t (lift h d z)
             case ex3_2_intro : x0:T x1:T H1:eq T x (THead (Flat f) x0 x1) H2:eq T u (lift h d x0) H3:eq T t (lift h d x1) 
                the thesis becomes 
                ex3_2
                  T
                  T
                  λy:T.λz:T.eq T x (THead (Flat f) y z)
                  λy:T.λ:T.eq T u (lift h d y)
                  λ:T.λz:T.eq T t (lift h d z)
                   (h1
                      by (refl_equal . .)
eq T (THead (Flat f) x0 x1) (THead (Flat f) x0 x1)
                   end of h1
                   (h2
                      by (refl_equal . .)
eq T (lift h d x0) (lift h d x0)
                   end of h2
                   (h3
                      by (refl_equal . .)
eq T (lift h d x1) (lift h d x1)
                   end of h3
                   by (ex3_2_intro . . . . . . . h1 h2 h3)
                   we proved 
                      ex3_2
                        T
                        T
                        λy:T.λz:T.eq T (THead (Flat f) x0 x1) (THead (Flat f) y z)
                        λy:T.λ:T.eq T (lift h d x0) (lift h d y)
                        λ:T.λz:T.eq T (lift h d x1) (lift h d z)
                   by (eq_ind_r . . . previous . H2)
                   we proved 
                      ex3_2
                        T
                        T
                        λy:T.λz:T.eq T (THead (Flat f) x0 x1) (THead (Flat f) y z)
                        λy:T.λ:T.eq T u (lift h d y)
                        λ:T.λz:T.eq T (lift h d x1) (lift h d z)
                   by (eq_ind_r . . . previous . H3)
                   we proved 
                      ex3_2
                        T
                        T
                        λy:T.λz:T.eq T (THead (Flat f) x0 x1) (THead (Flat f) y z)
                        λy:T.λ:T.eq T u (lift h d y)
                        λ:T.λz:T.eq T t (lift h d z)
                   by (eq_ind_r . . . previous . H1)

                      ex3_2
                        T
                        T
                        λy:T.λz:T.eq T x (THead (Flat f) y z)
                        λy:T.λ:T.eq T u (lift h d y)
                        λ:T.λz:T.eq T t (lift h d z)
          we proved 
             ex3_2
               T
               T
               λy:T.λz:T.eq T x (THead (Flat f) y z)
               λy:T.λ:T.eq T u (lift h d y)
               λ:T.λz:T.eq T t (lift h d z)
       we proved 
          f:F
            .u:T
              .t:T
                .x:T
                  .h:nat
                    .d:nat
                      .eq T (THead (Flat f) u t) (lift h d x)
                        (ex3_2
                             T
                             T
                             λy:T.λz:T.eq T x (THead (Flat f) y z)
                             λy:T.λ:T.eq T u (lift h d y)
                             λ:T.λz:T.eq T t (lift h d z))