DEFINITION ptrans()
TYPE =
       PListnatPList
BODY =
FIXptrans{
         ptrans:PListnatPList
         :=λhds:PList
           .λi:nat
             .<λp:PList.PList>
               CASE hds OF
                 PNilPNil
               | PCons h d hds0
                     let j := trans hds0 i
                     in let q := ptrans hds0 i
                          in <λb:bool.PList>
                                 CASE blt j d OF
                                   truePCons h (minus d (S j)) q
                                 | falseq
         }