Visual Tools for Temporal Reasoning G. Kutty, L.K. Dillon, L.E. Moser, P.M. Melliar-Smith, and Y.S. Ramakrishna
What is GIL? GIL = Graphical Interval Logic A way of specifying the behavior of concurrent systems A visual, temporal logic GIL Editor and toolkit System designers use it to create graphical specifications of concurrent system behavior Verify properties of those systems from the specs Generate models that satisfy the spec
Temporal Logic Used to describe systems that change with time But people seem to prefer diagrams: Timing diagrams State-transition diagrams Flow charts Data flow diagrams Etc.
Other diagrams Pro: Support intuition Con: Can’t be used in formal reasoning about the correctness and consistency of the specifications
Other representations Harel’s State Charts Milner’s CCS: IDCCS Manna and Pneuli’s notation Tecton
GIL models computation as a linear sequence of states user constructs time intervals expresses properties that apply to those intervals interval operator: limits scope of properties to that time interval vertical dimension -> composition intervals can be nested
Running example Two concurrent processes that request exclusive use of a shared resource
Example 1 sig1 = process 1 signals for exclusive access to the shared resource sig2 = process 2 signals for exclusive access to the shared resource “not” : indicates that sig1 and sig2 are false [ ] the interval symbol left justification means that the conditions hold at the start of the interval
Example 2 turn1 = process 1 has priority turn2 = process 2 has priority indentation indicates that the formula holds at every state in the interval indicates that if process 1 has priority then process 2 does not, and vice versa
Example 2 [ - includes endpoint -) excludes endpoint
Example 3 cs1 = process 1 has exclusive permission to use the resource if the process with higher priority requests the resource it must be granted permission to access the resource before it cancels the request
Example 3 : the search operator; locates the next state at which the formula associated with the arrowhead is true searches forward until turn1 and sig1 both hold the interval includes the left endpoint, but excludes the right endpoint interval ends when sig1 becomes false
Example 3 diamond shape means that cs1 holds at some state within the interval indentation of formula to the right within the outer interval indicates that it holds over the outer interval (it is an invariant property) if search fails, then interval formula is “vacuously true”
Example 4 if process 1 has access to the resource, it will eventually release the resource when it does, turn2 is set to true, so the other process then has higher priority double-headed arrow: strong search; asserts that the search operator does not fail, provided prior searches do not fail right end of inner interval coincides with outer interval; arrow without formula indicates search to end of context
Example 5 if process 1 claims the resource and process 2 does not, then process 1 is permitted to enter the critical section
Example 6 if process 1 issues sig1 but later cancels sig1 before gaining access to the resource (it can do so when process 2 has priority and also wants access to the resource), it will reissue sig1 at a later time guarantees that process 1 will keep issuing sig1 until it eventually gains access to the resource
Example 6 states in the formula are positioned so that states that correspond to the same points in time are aligned vertically
Intervals initial property: holds at the first state of the interval shown invariant property: holds at every state in the interval eventuality property: holds at some state within the interval
Intervals a recurring property
An interval formula left endpoint: the earliest state at which l-req holds right endpoint: the earliest state at which r-req holds formula asserts that local-req holds in the interval from the left endpoint up to but not including the right endpoint
coming soon (tomorrow) searches operators specifying properties …