Changes between Version 7 and Version 8 of ContractReduction
- Timestamp:
- 07/01/14 22:47:34 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ContractReduction
v7 v8 9 9 The following boolean expressions may be used as constituents in the boolean expression `e`: 10 10 11 * `$ reach(void * obj)`12 * holds iff the memory unit pointed to by `obj` is reachable from `p`. This means there is a path from the variables on the call stack of `p` to the memory unit, following array elements, struct members, and pointer dereferences .13 * `$ reach_rec(void * obj)`11 * `$access(void * obj)` 12 * holds iff the memory unit pointed to by `obj` is reachable from `p`. This means there is a path from the variables on the call stack of `p` to the memory unit, following array elements, struct members, and pointer dereferences, pointer arithmetic. 13 * `$accessRegion(void * obj)` 14 14 * holds iff any of the memory units reachable from `obj` (including the object pointed to by `obj` itself) is reachable from`p` 15 15 * `$write(void * obj)` 16 16 * holds iff the memory unit pointed to by `obj` is not only reachable from `p` but if it is possible that `p` (or a process spawned by `p`) could write to that memory unit at some point now or in the future. 17 * `$write _rec(void * obj)`17 * `$writeRegion(void * obj)` 18 18 * like above but true if any of the memory units in the reachable region specified by `obj` may be written to 19 19 20 21 22 I think the following can be done just using the ternary operator `?`: 20 23 21 24 Conditional amples set: `[COND] $ample{EXPR1} : $ample(EXPR2)`
