DEFINITION drop1_trans()
TYPE =
       is1:PList.c1:C.c0:C.(drop1 is1 c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp is1 is2) c1 c2)
BODY =
       assume is1PList
          we proceed by induction on is1 to prove c1:C.c0:C.(drop1 is1 c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp is1 is2) c1 c2)
             case PNil : 
                the thesis becomes c1:C.c0:C.(drop1 PNil c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp PNil is2) c1 c2)
                    assume c1C
                    assume c0C
                    suppose Hdrop1 PNil c1 c0
                    assume is2PList
                    assume c2C
                    suppose H0drop1 is2 c0 c2
                      (H_y
                         by (drop1_gen_pnil . . H)
eq C c1 c0
                      end of H_y
                      (H1
                         by (eq_ind_r . . . H0 . H_y)
drop1 is2 c1 c2
                      end of H1
                      consider H1
                      we proved drop1 is2 c1 c2
                      that is equivalent to drop1 (papp PNil is2) c1 c2
c1:C.c0:C.(drop1 PNil c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp PNil is2) c1 c2)
             case PCons : n:nat n0:nat p:PList 
                the thesis becomes c1:C.c0:C.H0:(drop1 (PCons n n0 p) c1 c0).is2:PList.c2:C.H1:(drop1 is2 c0 c2).(drop1 (PCons n n0 (papp p is2)) c1 c2)
                (H) by induction hypothesis we know c1:C.c0:C.(drop1 p c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp p is2) c1 c2)
                    assume c1C
                    assume c0C
                    suppose H0drop1 (PCons n n0 p) c1 c0
                    assume is2PList
                    assume c2C
                    suppose H1drop1 is2 c0 c2
                      (H_x
                         by (drop1_gen_pcons . . . . . H0)
ex2 C λc2:C.drop n n0 c1 c2 λc2:C.drop1 p c2 c0
                      end of H_x
                      (H2consider H_x
                      we proceed by induction on H2 to prove drop1 (PCons n n0 (papp p is2)) c1 c2
                         case ex_intro2 : x:C H3:drop n n0 c1 x H4:drop1 p x c0 
                            the thesis becomes drop1 (PCons n n0 (papp p is2)) c1 c2
                               by (H . . H4 . . H1)
                               we proved drop1 (papp p is2) x c2
                               by (drop1_cons . . . . H3 . . previous)
drop1 (PCons n n0 (papp p is2)) c1 c2
                      we proved drop1 (PCons n n0 (papp p is2)) c1 c2
                      that is equivalent to drop1 (papp (PCons n n0 p) is2) c1 c2
c1:C.c0:C.H0:(drop1 (PCons n n0 p) c1 c0).is2:PList.c2:C.H1:(drop1 is2 c0 c2).(drop1 (PCons n n0 (papp p is2)) c1 c2)
          we proved c1:C.c0:C.(drop1 is1 c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp is1 is2) c1 c2)
       we proved is1:PList.c1:C.c0:C.(drop1 is1 c1 c0)is2:PList.c2:C.(drop1 is2 c0 c2)(drop1 (papp is1 is2) c1 c2)