DEFINITION papp_ss()
TYPE =
       is1:PList.is2:PList.(eq PList (papp (Ss is1) (Ss is2)) (Ss (papp is1 is2)))
BODY =
       assume is1PList
          we proceed by induction on is1 to prove is2:PList.(eq PList (papp (Ss is1) (Ss is2)) (Ss (papp is1 is2)))
             case PNil : 
                the thesis becomes is2:PList.(eq PList (papp (Ss PNil) (Ss is2)) (Ss (papp PNil is2)))
                   assume is2PList
                      by (refl_equal . .)
                      we proved eq PList (Ss is2) (Ss is2)
                      that is equivalent to eq PList (papp (Ss PNil) (Ss is2)) (Ss (papp PNil is2))
is2:PList.(eq PList (papp (Ss PNil) (Ss is2)) (Ss (papp PNil is2)))
             case PCons : n:nat n0:nat p:PList 
                the thesis becomes 
                is2:PList
                  .eq
                    PList
                    PCons n (S n0) (papp (Ss p) (Ss is2))
                    PCons n (S n0) (Ss (papp p is2))
                (H) by induction hypothesis we know is2:PList.(eq PList (papp (Ss p) (Ss is2)) (Ss (papp p is2)))
                   assume is2PList
                      (h1
                         by (refl_equal . .)

                            eq
                              PList
                              PCons n (S n0) (Ss (papp p is2))
                              PCons n (S n0) (Ss (papp p is2))
                      end of h1
                      (h2
                         by (H .)
eq PList (papp (Ss p) (Ss is2)) (Ss (papp p is2))
                      end of h2
                      by (eq_ind_r . . . h1 . h2)
                      we proved 
                         eq
                           PList
                           PCons n (S n0) (papp (Ss p) (Ss is2))
                           PCons n (S n0) (Ss (papp p is2))
                      that is equivalent to 
                         eq
                           PList
                           papp (Ss (PCons n n0 p)) (Ss is2)
                           Ss (papp (PCons n n0 p) is2)

                      is2:PList
                        .eq
                          PList
                          PCons n (S n0) (papp (Ss p) (Ss is2))
                          PCons n (S n0) (Ss (papp p is2))
          we proved is2:PList.(eq PList (papp (Ss is1) (Ss is2)) (Ss (papp is1 is2)))
       we proved is1:PList.is2:PList.(eq PList (papp (Ss is1) (Ss is2)) (Ss (papp is1 is2)))