A Transformation Strategy for Verifying Logic Programs on Infinite Lists

We consider an extension of the class of logic programs, called !-programs, that can be used to define predicates over infinite lists. The ω-programs allow us to specify properties of the infinite behaviour of reactive systems and, in general, properties of infinite sequences of events. The semantics of ω-programs is an extension of the perfect model semantics. We present a general methodology based on an extension of the unfold/fold transformation rules which can be used for verifying properties of ω-programs. Then we propose a strategy for the mechanical application of those rules and we demonstrate the power of that strategy by proving some properties of ω-regular languages and Buchi automata.

[1]  Alberto Pettorossi,et al.  Transformations of logic programs on infinite lists , 2010, Theory and Practice of Logic Programming.

[2]  Gopal Gupta,et al.  Coinductive Logic Programming with Negation , 2009, LOPSTR.

[3]  Sandro Etalle,et al.  Transformations of CCP programs , 2001, TOPL.

[4]  Stephan Merz,et al.  Model Checking , 2000 .

[5]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[6]  Hirohisa Seki On Inductive and Coinductive Proofs via Unfold/Fold Transformations , 2009, LOPSTR.

[7]  中川 裕志,et al.  UNFOLD/FOLD TRANSFORMATION OF STRATIFIED PROGRAMS , 1989 .

[8]  Hisao Tamaki,et al.  Unfold/Fold Transformation of Logic Programs , 1984, ICLP.

[9]  Alberto Pettorossi,et al.  Transformation Rules for Locally Stratified Constraint Logic Programs , 2004, Program Development in Computational Logic.

[10]  Kazunori Ueda,et al.  Transformation Rules for GHC Programs , 1988, FGCS.

[11]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[12]  Alberto Pettorossi,et al.  Unfolding - Definition - Folding, in this Order, for Avaoiding Unnecessary Variables in Logic Programs , 1991, PLILP.

[13]  Giorgio Delzanno,et al.  Constraint-based deductive model checking , 2001, International Journal on Software Tools for Technology Transfer.

[14]  Gopal Gupta,et al.  Coinductive Logic Programming and Its Applications , 2007, ICLP.

[15]  Ulf Nilsson,et al.  Constraint Logic Programming for Local and Symbolic Model-Checking , 2000, Computational Logic.

[16]  Andrew E. Santosa,et al.  A CLP proof method for timed automata , 2004, 25th IEEE International Real-Time Systems Symposium.

[17]  Laurent Fribourg,et al.  A Decompositional Approach for Computing Least Fixed-Points of Datalog Programs with Z-Counters , 2004, Constraints.

[18]  autoepistemic Zogic Logic programming and negation : a survey , 2001 .

[19]  Alberto Pettorossi,et al.  Deciding Full Branching Time Logic by Program Transformation , 2009, LOPSTR.

[20]  Thierry Massart,et al.  Infinite State Model Checking by Abstract Interpretation and Program Specialisation , 1999, LOPSTR.

[21]  Alberto Pettorossi,et al.  Perfect Model Checking via Unfold/Fold Transformations , 2000, Computational Logic.

[22]  C. R. Ramakrishnan,et al.  Beyond Tamaki-Sato Style Unfold/Fold Transformations for Normal Logic Programs , 1999, ASIAN.

[23]  Martín Abadi,et al.  Temporal Logic Programming , 1989, J. Symb. Comput..

[24]  Wolfgang Thomas,et al.  Automata on Infinite Objects , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[25]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.