A compositional axiomatisation of safety and liveness properties for statecharts

Statecharts is a behavioral specification language proposed for specifying large real-time, event driven, reactive systems. It is a graphical language based on state-transition diagrams for finite state machines extended with many features like hierarchy, concurrency, broadcast communication and time-out. By generating external events symbolically, Statecharts can be executed, thereby turning it into a programming language for real-time concurrency (as well as enabling rapid prototyping). As such it is amenable to compositional program verification. We supply Statecharts with a compositional proof system for both safety and liveness properties which we prove to be sound and (relatively) complete. Especially, we focus on extending compositional techniques for proving safety properties to liveness, without immediately adopting temporal logic, since that formalism, elegant as it is, introduces some difficulties with a compositional treatment of sequentiality and looping.

[1]  R. Gerth,et al.  Modeling Statecharts Behaviour in a Fully Abstract Way , 1988, CAAP.

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[4]  Amir Pnueli,et al.  Now you may compose temporal logic specifications , 1984, STOC '84.

[5]  Willem P. de Roever,et al.  Compositional Semantics for Real-Time Distributed Computing , 1985, Inf. Comput..

[6]  J. W. de Bakker,et al.  Mathematical theory of program correctness , 1980, Prentice-Hall international series in computer science.

[7]  Doron Drusinsky,et al.  On the Power of Cooperative Concurrency , 1988, Concurrency.

[8]  Albert Benveniste,et al.  Real-time,synchronous,data-flow programming: the language "SIGNAL" and its mathematical semantics , 1986 .

[9]  Amir Pnueli,et al.  On the Formal Semantics of Statecharts (Extended Abstract) , 1987, LICS.

[10]  Nicolas Halbwachs,et al.  Outline of a Real Time Data Flow Language , 1985, RTSS.

[11]  Willem P. de Roever,et al.  Compositionality and Concurrent Networks: Soundness and Completeness of a Proofsystem , 1985, ICALP.

[12]  K. Mani Chandy,et al.  Proofs of Networks of Processes , 1981, IEEE Transactions on Software Engineering.

[13]  Job Zwiers,et al.  Compositionality, Concurrency and Partial Correctness , 1989, Lecture Notes in Computer Science.

[14]  David Harel,et al.  First-Order Dynamic Logic , 1979, Lecture Notes in Computer Science.

[15]  Willem P. de Roever,et al.  Predicates are predicate transformers: a unified compositional theory for concurrency , 1989, PODC '89.

[16]  Leslie Lamport,et al.  What Good is Temporal Logic? , 1983, IFIP Congress.

[17]  Jennifer Widom,et al.  A Temporal-Logic Based Compositional Proof System for Real-Time Message Passing , 1989, PARLE.

[18]  Arthur J. Bernstein,et al.  Proving real-time properties of programs with temporal logic , 1981, SOSP.

[19]  Jozef Hooman,et al.  A Compositional Proof Theory for Real-Time Distributed Message Passing , 1987, PARLE.

[20]  David Harel,et al.  On visual formalisms , 1988, CACM.

[21]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.