CSC 2124 S : Automated Verification

Assignment 2

Due: Tues. March 4, classtime

You are to specify and verify the behavior of a 2-floor elevator system using the Concurrency Workbench (CW). You should create a CCS specification that describes the behavior of the system in terms of two parallel agents. One agent accepts requests from the environment and forwards them to the second agent. The second agent services requests (i.e., moves the elevator up and down, opens and closes doors, etc.). Below is the requirements specification of the system.

Input
There are two inputs to the system. One input is a request for the elevator to ``go'' to floor 1 and open (and close) its doors. The second input is a request for the elevator to ``go'' to floor 2 and open (and close) its doors. You may assume that the environment contains an input interface that transforms user requests (i.e., button presses) into single requests (i.e., latched requests) that are input to the system.

Output
The output of the system should be the observable actions of the elevator. At the least, the set visible actions should indicate that the elevator does indeed move up and down and that the elevator opens and closes its doors.

Required Behavior (1)
Use the CW model checker to prove that all requests received from the environment are eventually serviced and that the elevator does not move when its doors are open. You may want to use macros, as shown in the CW journal paper, to express CTL formulas.

Required Behavior (2)
Create a CCS specification that describes the set of action-sequences you expect your elevator system to perform; this specification should only consist of one agent. Use the CW to verify that your elevator specification and this specification of action-sequences are observationally equivalent.

Presentation You may work in groups of 1, 2, or 3, though the optimal group size is 2.

You must complete the project before class time on March 4th because we will discuss the assignment in class. In one of your group's accounts, leave both a working copy of the CCS specifications and a file of all the tex2html_wrap_inline19 -calculus formulae you attempted to verify. Bring to class (to hand in) one hardcopy of your group's CCS specifications and list of tex2html_wrap_inline19 -calculus formulae. Please indicate on your assignment the members of your group, the account in which your group's assignment resides, and the names of the files composing your assignment.

It would again be nice to hear presentations of your models. If you are interested in presenting, let me know. I am looking for a 10-15-minute presentation.

People who are not taking the course for credit are also encouraged to participate in the assignment. The goal of this course is to gain practical experience with specification and verification tools, and you can achieve this goal only by doing the assignments.