Model Checking

You can find the source code and executables for Ed Clarke's original model checker here

use machine login.cs.unc.edu to access and run mcb

~stotts/public_html/COMP723-s15/Mcheck/MCBsrc

First look at how to run the model checker "mcb" and how it operates using the two-process model show as an example in Clarke's paper:
./mcb paper.fsm

   this will run the model checker on the two process model from 
   the Clarke paper

syntax:

AG(C1 | T1 | N1).   expect true

AF(C1).   expect false from state 0 (which the model checker 
                                     does by default)

EF(C1 & C2).  expect false... both processes cant have the resource
                              at the same time

Now let's use a larger model, a version of this floor control protocol. This Pnet is a colored net, shown as an example of an expressive modeling notation. For our purposes we will simplify the net we analyze by reverting to a form of vanilla, traditional Pnet with only black tokens.

./mcb meet.fsm.good

   then when it asks for fairness constraints give "."  and return
   After that type in temporal logic assertions about the model.
   End the line/assertion with a "." to complete the syntax.

   This will run the model checker on a model made from the moderated 
   meeting floor control protocol shown in  this Pnet.  

   This is the model generated from the Pnet.

   Try these CTL formulae





Your Assignment

Using this fill in 4,5,6, and 7 at the bottom with CTL formulae, and their English explanations, for three properties of this net that you would like to check. Make them interesting... non-trivial. For each formula you create, show the output from the model checker.