Changes between Version 25 and Version 26 of ContractReduction


Ignore:
Timestamp:
12/07/15 11:52:43 (10 years ago)
Author:
zmanchun
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ContractReduction

    v25 v26  
    11== Contract Reduction Language  ==
    22
    3 == ACSL function contract grammar with CIVL-C extension (in bold) ==
     3== ACSL function contract grammar with CIVL-C extension (starting with `$`) ==
    44{{{
    55function-contract ::= requires-clause∗ terminates-clause? decreases-clause?
    6                       simple-clause∗ named-behavior∗ completeness-clause∗
     6                      simple-clause∗  named-behavior∗ completeness-clause∗
    77requires-clause ::= requires pred ;
    88terminates-clause ::= terminates pred ;
     
    1010simple-clause ::= assigns-clause | ensures-clause
    1111                | allocation-clause | abrupt-clause-fn
     12                | depends-clause
    1213assigns-clause ::= assigns locations ;
    13 locations ::= location (, location) ∗ | \nothing |` $everything
     14locations ::= location (, location) ∗ | \nothing | $everything
    1415location ::= tset
    1516ensures-clause ::= ensures pred ;
     17depends-clause := $depends event (, event)*;
    1618named-behavior ::= behavior id : behavior-body
    1719behavior-body ::= assumes-clause∗ requires-clause∗ simple-clause∗
     
    7072where `event` is a memory event represented as a boolean expression.   For each process `p`, the `event ` can be evaluated in the context of `p`.   If `event ` evaluates to `true`, then `p` must be included in an ample set containing a call to this function.
    7173
    72 The expression `e` hence defines a predicate d(s,p), where s ranges over states, and p over procs.   The requirement is the following:
     74The expression `event ` hence defines a predicate d(s,p), where s ranges over states, and p over procs.   The requirement is the following:
    7375
    7476Let s be any state and p a proc such that a function call for this function is enabled in p.  Then in any execution departing from s, no transition dependent on the execution of this function call can occur without a transition from p or a proc q satisfying d(s,q) occurring first.