### Give proper semantics to nested marks in programs.

Suppose that marks appear in order L1, L2, L3 in a program. Previously, x@L2@L1@L3 would end up with the value of x at mark L1 (the latest mark encountered by WP, that is, the earliest mark in the program). Now, x@L2@L1@L3 will end up with the value of x at mark L2 (the innermost mark in the expression). From a WP point of view, the sequence was x@L2@L1@L3 -> x@L2@L1@now (L3) -> x@L2@L1 (unref) -> x@now@L1 (L2) -> x@now@L1 (unref) -> x@now@now (L1) -> x_L1 (unref). Now the sequence of substitution is x@L2@L1@L3 -> x@L2@L1@now (L3) -> x@L2@L1 (unref) -> x@now@L1 (L2) -> x_L2 (unref).

Showing

Please register or sign in to comment