CSC 2108 : Automated Verification
Assignment 3
Due: December 3, class time
You are to specify and verify the behavior of the controller system
from Assignment 1, Part II
using Concurrency Workbench (CWB). Recall that the ES arrow is for
turning right (otherwise, cars are not allowed to turn right if East
light is Red). You should create a CCS specification that
describes the behavior of the system in terms of two parallel agents. One
agent accepts requests (sensor information) from the environment and forwards them to the second
agent. The second agent services requests (i.e., changes the lights
and arrows). Below is the requirements specification of the system.
- Input
- Inputs to the system consist of sensor information. Assume that
all sensors are "latched", i.e., once triggered, sensors remain "on" until the
controller specifically resets them.
- Output
- The output of the system should be the observable actions of the
controller - colors of the three lights and two arrows.
- Required Behavior (1)
- Use the CWB model checker to prove the properties of the controller:
that lights change colors in the appropriate manner, that each
request (tripped sensor) will eventually be serviced, etc. Use
properties of Assignment 1. You may want to use macros, as shown in
the CWB journal paper. Additionally, consider the LTL properties
of Assignment 2 that you could not express in CTL. Can these be
expressed using Mu-calculus?
- Required Behavior (2)
- Create a CCS specification that describes the
set of action-sequences you expect your traffic-controller system to have
(e.g., trip sensor, get green light); this
specification should only consist of one agent. Use the CWB to verify that your
controller specification and this specification of action-sequences are
observationally equivalent.
- Presentation
- Please turn in your models, properties you were able to verify,
sequences of required behavior and results of all verification.
You may want to use Unix command script to capture output of
CWB during the interactive session. Make sure that your models
are adequately commented and contain names of members of your group.
Also, make sure that you insert English comments explaining the meaning
of your properties. Finally, answer the following questions:
- How does CWB rate in comparison with SMV and SPIN? Is the language
more or less intuitive than that of SMV and SPIN?
- Is verification faster?
- Did you find Mu-Calculus more expressive in the case of the simple
controller than CTL and/or LTL? If so, give the property and explain
what problems you would encounter with CTL and LTL, trying to express it.
- Include other comments rating your experience with CWB. What, in
your opinion, CWB is BAD for?
Please send me a copy of your CWB model and properties.