DEFINITION trans()
TYPE =
       PListnatnat
BODY =
FIXtrans{
         trans:PListnatnat
         :=λhds:PList
           .λi:nat
             .<λp:PList.nat>
               CASE hds OF
                 PNili
               | PCons h d hds0
                     let j := trans hds0 i
                     in <λb:bool.nat> CASE blt j d OF truej | falseplus j h
         }