DSIC

Model Checking for the Concurrent Constraint Paradigm

Alicia Villanueva



UPV
dx



Formal verification of temporal properties is necessary in many real applications. We can find in the literature many case studies which show us how formal verification techniques allowed scientists to find errors in systems that were thought to be correct.

Model checking is an automatic formal verification technique that, given a model of a system and a temporal formula determines if the model satisfies the formula. The main drawback of model checking is the state explosion problem.

In this thesis we consider the Concurrent Constraint (cc) paradigm to specify reactive and hybrid systems. Then, we provide the necessary formalism to verify such kind of systems. In particular, we handle three of the extended languages defined from the cc paradigm: the tcc, tccp and hcc languages. The first two languages have a discrete notion of time allowing the programmer to model reactive systems. The last one introduces a continuous notion of time which allows us to model hybrid systems.

It is well known that an appropriate denotational semantics allows us to perform very interesting analysis over languages in a simple way. In that sense, in this thesis we show that although both denotational and operational semantics were given when tcc was defined, they do not always coincide. We define a fully abstract denotational semantics (w.r.t. the operational semantics) for the tcc model. We also describe an application of our new semantics to the analysis of the expressivity power of the new construct introduced in tcc to model the timeout or preemption behaviors. We show that the new construct makes the tcc language a more powerful language than the cc model.

The main result of this thesis is the definition of a model checking algorithm for tccp programs. The idea is to exploit the good features of the cc paradigm to solve the state explosion problem of model checking. We take advantage of the constraint notion in order to redefine the three phases of the model checking technique. First of all we use constraints to define what a state is in the model of the system.  A state of the model can be seen as a conjunction of constraints.  This means that a state of our model represents a set of states of a classical Kripke Structure.

Furthermore, constraints are directly used in the logic that we consider, thus it is not necessary to transform our model into a Kripke Structure. For classical temporal logics, this transformation would be necessary since they could not handle our model directly. Note that we have only partial information while classical logics need full information about values of variables.

We also define a method to verify hcc programs. We show that the hcc language allows the programmer to specify hybrid systems in general and linear hybrid systems in particular. The key idea in this case is also to take advantage of the nature of the cc paradigm. The approach presented in this thesis is the first attempt to apply the model checking technique to the hcc language.

PDF PostScript BibTex
Last Update: July 2007