DEFINITION sc3_lift1()
TYPE =
       g:G
         .e:C.a:A.hds:PList.c:C.t:T.(sc3 g a e t)(drop1 hds c e)(sc3 g a c (lift1 hds t))
BODY =
        assume gG
        assume eC
        assume aA
        assume hdsPList
          we proceed by induction on hds to prove c:C.t:T.(sc3 g a e t)(drop1 hds c e)(sc3 g a c (lift1 hds t))
             case PNil : 
                the thesis becomes c:C.t:T.(sc3 g a e t)(drop1 PNil c e)(sc3 g a c (lift1 PNil t))
                    assume cC
                    assume tT
                    suppose Hsc3 g a e t
                    suppose H0drop1 PNil c e
                      (H_y
                         by (drop1_gen_pnil . . H0)
eq C c e
                      end of H_y
                      by (eq_ind_r . . . H . H_y)
                      we proved sc3 g a c t
                      that is equivalent to sc3 g a c (lift1 PNil t)
c:C.t:T.(sc3 g a e t)(drop1 PNil c e)(sc3 g a c (lift1 PNil t))
             case PCons : n:nat n0:nat p:PList 
                the thesis becomes c:C.t:T.H0:(sc3 g a e t).H1:(drop1 (PCons n n0 p) c e).(sc3 g a c (lift n n0 (lift1 p t)))
                (H) by induction hypothesis we know c:C.t:T.(sc3 g a e t)(drop1 p c e)(sc3 g a c (lift1 p t))
                    assume cC
                    assume tT
                    suppose H0sc3 g a e t
                    suppose H1drop1 (PCons n n0 p) c e
                      (H_x
                         by (drop1_gen_pcons . . . . . H1)
ex2 C λc2:C.drop n n0 c c2 λc2:C.drop1 p c2 e
                      end of H_x
                      (H2consider H_x
                      we proceed by induction on H2 to prove sc3 g a c (lift n n0 (lift1 p t))
                         case ex_intro2 : x:C H3:drop n n0 c x H4:drop1 p x e 
                            the thesis becomes sc3 g a c (lift n n0 (lift1 p t))
                               by (H . . H0 H4)
                               we proved sc3 g a x (lift1 p t)
                               by (sc3_lift . . . . previous . . . H3)
sc3 g a c (lift n n0 (lift1 p t))
                      we proved sc3 g a c (lift n n0 (lift1 p t))
                      that is equivalent to sc3 g a c (lift1 (PCons n n0 p) t)
c:C.t:T.H0:(sc3 g a e t).H1:(drop1 (PCons n n0 p) c e).(sc3 g a c (lift n n0 (lift1 p t)))
          we proved c:C.t:T.(sc3 g a e t)(drop1 hds c e)(sc3 g a c (lift1 hds t))
       we proved 
          g:G
            .e:C.a:A.hds:PList.c:C.t:T.(sc3 g a e t)(drop1 hds c e)(sc3 g a c (lift1 hds t))