when lpp=list("prBoundary" "boundary") ?
I mean, what's the cellView~>prBoundary supposed to do?
The prBoundary is the place & route boundary that instances and shapes should be placed within. The automated Place & Route tools will operate within the confines of this boundary. In IC51x and earlier the prBoundary was a shape on a specific layer-purpose pair (e.g. "prBoundary" "boundary" or "prBoundary" "drawing").
cellView~>shapes~>lpp is something else entirely: in a cellview a shape exists on a specific layer-purpose pair, querying all the shapes of the cellview (cellView~>shapes) will obtain a list of all of the shape database objects, and further querying for the 'lpp' attribute will apply that query to each of the shapes (as long as you use the "~>" operator, not the "->" operator), so the compound query returns a list of the lpps, one for each shape. If you just want to see the lpps used in the cellview, do cellView~>lpps to obtain a list of the LP (layer-purpose) objects. The lpp query is not equivalent to the lpps query; the lpp attribute of a shape is a list of the layer and purpose, the lpps attribute of the cellview is a list of the LP db objects.
Hopefully this answers your questions?