Embedding imperative synchronous languages in interactive theorem provers

We present a new way to define the semantics of imperative synchronous languages by means of separating the control and the data flow. The control flow is defined by predicates that describe entering conditions, conditions for internal moves, and termination conditions. The data flow is based on the extraction of guarded commands. This definition principle can be applied to any imperative synchronous language like Esterel or some statechart variants. Following this definition principle, we have embedded our language Quartz (an Esterel variant) in the interactive theorem prover HOL. We use this embedding for formal verification (both interactive theorem proving and symbolic model checking), program analysis, reasoning about the language at a meta-level and verified code generation (formal synthesis).

[1]  T. Melham Automating recursive type definitions in higher order logic , 1989 .

[2]  Klaus Schneider,et al.  Introducing Mutual Exclusion in Esterel , 1999, Ershov Memorial Conference.

[3]  Edmund M. Clarke,et al.  Symbolic Model Checking with Partitioned Transistion Relations , 1991, VLSI.

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

[5]  Klaus Schneider,et al.  A HOL Conversion for Translating Linear Time Temporal Logic to omega-Automata , 1999, TPHOLs.

[6]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[7]  Kathi Fisler,et al.  Integrating design and verification environments through a logic supporting hardware diagrams , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[8]  Thomas F. Melham A Package For Inductive Relation Definitions In HOL , 1991, 1991., International Workshop on the HOL Theorem Proving System and Its Applications.

[9]  Gérard Berry,et al.  The foundations of Esterel , 2000, Proof, Language, and Interaction.

[10]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[11]  Gérard Berry,et al.  The constructive semantics of pure esterel , 1996 .

[12]  Ch. Andre,et al.  Synccharts: A visual representation of reactive behaviors , 1995 .

[13]  K. Mani Chandy Parallel program design , 1989 .

[14]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[15]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[16]  Mathai Joseph,et al.  The Mine Pump Control Program in Esterel , 1997 .

[17]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[18]  K. Schneider,et al.  A HOL Conversion for Translating Linear Time Temporal Logic to ω-Automata ? , 1999 .

[19]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[20]  Michael Baldamus,et al.  Extending Esterel by Asynchronous Concurrency1 , 1999 .

[21]  Ramayya Kumar,et al.  Formal Synthesis in Circuit Design - A Classification and Survey , 1996, FMCAD.

[22]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[23]  Olivier Coudert,et al.  New ideas on symbolic manipulations of finite state machines , 1990, Proceedings., 1990 IEEE International Conference on Computer Design: VLSI in Computers and Processors.