Performing causality analysis by bounded model checking

Synchronous systems can immediately react to the inputs of their environment which may lead to so-called causality cycles between actions and their trigger conditions. Systems with causality cycles may not be consistent or may become nondeterministic. For this reason, compilers for synchronous languages usually employ special analyses to guarantee a predictable runtime behavior of the considered programs. In this paper, we show how causality analysis can be formulated as a model checking problem, so that all of the sophisticated algorithms originally developed for model checking can now also be used for causality analysis. To this end, we model the dasiaemicro steppsila behavior of synchronous programs in terms of a transition relation that can be directly used for symbolic model checking. Moreover, we show that the obtained model checking problems can be even decided by bounded model-checking problems so that modern SAT-solvers can be used to efficiently solve the causality problem.

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

[2]  Ellen Sentovich,et al.  Quick conservative causality analysis , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[3]  Tobias Schüle,et al.  A Verified Compiler for Synchronous Programs with Local Declarations , 2006, SLAP@ETAPS.

[4]  Edward A. Lee,et al.  A causality interface for deadlock analysis in dataflow , 2006, EMSOFT '06.

[5]  Klaus Schneider,et al.  The Synchronous Programming Language Quartz , 2009 .

[6]  Randal E. Bryant,et al.  Formal Verification of Digital Circuits Using Symbolic Ternary System Models , 1990, CAV.

[7]  D. Huffman COMBINATIONAL CIRCUITS WITH FEEDBACK , 1971 .

[8]  Albert Benveniste,et al.  The synchronous approach to reactive and real-time systems , 1991 .

[9]  Tobias Schüle,et al.  Maximal causality analysis , 2005, Fifth International Conference on Application of Concurrency to System Design (ACSD'05).

[10]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[11]  William H. Kautz,et al.  The Necessity of Closed Circuit Loops in Minimal Combinational Circuits , 1970, IEEE Transactions on Computers.

[12]  Frédéric Boussinot,et al.  SugarCubes Implementation of Causality , 1998 .

[13]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[14]  Thomas R. Shiple,et al.  Constructive analysis of cyclic circuits , 1996, Proceedings ED&TC European Design and Test Conference.

[15]  Stephen A. Edwards,et al.  The Synchronous Languages Twelve Years Later , 1997 .

[16]  Ronald L. Rivest The Necessity of Feedback in Minimal Monotone Combinational Circuits , 1977, IEEE Transactions on Computers.

[17]  Leon Stok,et al.  False loops through resource sharing , 1992, ICCAD '92.

[18]  Tobias Schüle,et al.  Causality analysis of synchronous programs with delayed actions , 2004, CASES '04.

[19]  Klaus Schneider,et al.  Improving Constructiveness in Code Generators , 2005 .

[20]  Nicolas Halbwachs,et al.  Synchronous Programming of Reactive Systems , 1992, CAV.