DEFINITION csubc_drop1_conf_rev()
TYPE =
       g:G
         .hds:PList
           .c2:C.e2:C.(drop1 hds c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 hds c1 e1 λc1:C.csubc g c1 c2)
BODY =
        assume gG
        assume hdsPList
          we proceed by induction on hds to prove c2:C.e2:C.(drop1 hds c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 hds c1 e1 λc1:C.csubc g c1 c2)
             case PNil : 
                the thesis becomes c2:C.e2:C.(drop1 PNil c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 PNil c1 e1 λc1:C.csubc g c1 c2)
                    assume c2C
                    assume e2C
                    suppose Hdrop1 PNil c2 e2
                    assume e1C
                    suppose H0csubc g e1 e2
                      (H_y
                         by (drop1_gen_pnil . . H)
eq C c2 e2
                      end of H_y
                      (H1
                         by (eq_ind_r . . . H0 . H_y)
csubc g e1 c2
                      end of H1
                      by (drop1_nil .)
                      we proved drop1 PNil e1 e1
                      by (ex_intro2 . . . . previous H1)
                      we proved ex2 C λc1:C.drop1 PNil c1 e1 λc1:C.csubc g c1 c2
c2:C.e2:C.(drop1 PNil c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 PNil c1 e1 λc1:C.csubc g c1 c2)
             case PCons : n:nat n0:nat p:PList 
                the thesis becomes c2:C.e2:C.H0:(drop1 (PCons n n0 p) c2 e2).e1:C.H1:(csubc g e1 e2).(ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2)
                (H) by induction hypothesis we know c2:C.e2:C.(drop1 p c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 p c1 e1 λc1:C.csubc g c1 c2)
                    assume c2C
                    assume e2C
                    suppose H0drop1 (PCons n n0 p) c2 e2
                    assume e1C
                    suppose H1csubc g e1 e2
                      (H_x
                         by (drop1_gen_pcons . . . . . H0)
ex2 C λc2:C.drop n n0 c2 c2 λc2:C.drop1 p c2 e2
                      end of H_x
                      (H2consider H_x
                      we proceed by induction on H2 to prove ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                         case ex_intro2 : x:C H3:drop n n0 c2 x H4:drop1 p x e2 
                            the thesis becomes ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                               (H_x0
                                  by (H . . H4 . H1)
ex2 C λc1:C.drop1 p c1 e1 λc1:C.csubc g c1 x
                               end of H_x0
                               (H5consider H_x0
                               we proceed by induction on H5 to prove ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                                  case ex_intro2 : x0:C H6:drop1 p x0 e1 H7:csubc g x0 x 
                                     the thesis becomes ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                                        (H_x1
                                           by (csubc_drop_conf_rev . . . . . H3 . H7)
ex2 C λc1:C.drop n n0 c1 x0 λc1:C.csubc g c1 c2
                                        end of H_x1
                                        (H8consider H_x1
                                        we proceed by induction on H8 to prove ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                                           case ex_intro2 : x1:C H9:drop n n0 x1 x0 H10:csubc g x1 c2 
                                              the thesis becomes ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                                                 by (drop1_cons . . . . H9 . . H6)
                                                 we proved drop1 (PCons n n0 p) x1 e1
                                                 by (ex_intro2 . . . . previous H10)
ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
                      we proved ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2
c2:C.e2:C.H0:(drop1 (PCons n n0 p) c2 e2).e1:C.H1:(csubc g e1 e2).(ex2 C λc1:C.drop1 (PCons n n0 p) c1 e1 λc1:C.csubc g c1 c2)
          we proved c2:C.e2:C.(drop1 hds c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 hds c1 e1 λc1:C.csubc g c1 c2)
       we proved 
          g:G
            .hds:PList
              .c2:C.e2:C.(drop1 hds c2 e2)e1:C.(csubc g e1 e2)(ex2 C λc1:C.drop1 hds c1 e1 λc1:C.csubc g c1 c2)