In this homework, you will specify and verify some properties of the traffic light example.

Specification

Defining sets of states

Note that via the stateset directive, you can create named sets of states, as described in the Ticc input grammar. You can do it in two ways:

Note that stateset declarations must follow the declaration of the variables to which they refer.

Once this is done, you can construct mdds corresponding to these statesets as follows:

You can also parse sets of states directly using parse_stateset. You can get the set of initial states of a module via get_initial. See ticc.mli for more information.

Combining sets of states

You can form boolean combinations of sets of states using the functions set_and set_or set_impl set_not, and you can test for emptiness via set_is_empty set_is_nonempty set_equal set_is_subset. Again, see ticc.mli.

Evaluating CTL formulas

You can evaluate CTL formulas via the following functions (remember: F is used in place of <> and G is used in place of [] as alternative notation):

Specification

Given the above tools, you now have all the instruments to specify, and verify, properties of your traffic light example. Specify, and verify, the following properties. Properties denoted with {*} must hold; properties not denoted by {*} may or may not hold for your implementation, and you need to say if they do. Let's focus on properties not involving turn signals.

CMPE 278 2007 HW 5 (last edited 2007-11-29 08:44:19 by LucaDeAlfaro)