Changes between Version 7 and Version 8 of ContractReduction


Ignore:
Timestamp:
07/01/14 22:47:34 (12 years ago)
Author:
siegel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ContractReduction

    v7 v8  
    99The following boolean expressions may be used as constituents in the boolean expression `e`:
    1010
    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)`
    1414 * holds iff any of the memory units reachable from `obj` (including the object pointed to by `obj` itself) is reachable from`p`
    1515* `$write(void * obj)`
    1616 * 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)`
    1818 * like above but true if any of the memory units in the reachable region specified by `obj` may be written to
    1919
     20
     21
     22I think the following can be done just using the ternary operator `?`:
    2023
    2124Conditional amples set: `[COND] $ample{EXPR1} : $ample(EXPR2)`