Co-inductive axiomatization of a synchronous language

  • David Nowak
  • Jean -René Beauvais
  • Jean -Pierre Talpin
Refereed Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1479)


Over the last decade, the increasing demand for the validation of safety critical systems lead to the development of domain-specific programming languages (e.g. synchronous languages) and automatic verification tools (e.g. model checkers). Conventionally, the verification of a reactive system is implemented by specifying a discrete model of the system (i.e. a finite-state machine) and then checking this model against temporal properties (e.g. using an automata-based tool). We investigate the use of a theorem prover, Coq, for the specification of infinite state systems and for the verification of co-inductive properties.


Model Check Proof Assistant Safety Critical System Signal Program Large Relation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bruno Barras and al. The Coq Proof Assistant Reference Manual. Technical report, INRIA, 1996.Google Scholar
  2. 2.
    Saddek Bensalem, Paul Caspi, and Catherine Parent-Vigouroux. Handling dataflow programs in PVS. Research report (draft), Verimag, May 1996.Google Scholar
  3. 3.
    Albert Benveniste, Paul Le Guernic, and Christian Jacquemot. Synchronous programming with events and relations: the Signal language and its semantics. Science of Computer Programming, 16:103–149, 1991.zbMATHMathSciNetCrossRefGoogle Scholar
  4. 4.
    G. Berry. The Constructive Semantics of Pure Esterel. Book in preparation, current version 2.0, Scholar
  5. 5.
    Gerard Berry and Georges Gonthier. The Esterel synchronous programming language: design, semantics, implementation. Science of Computer Programming, 19:87–152, 1992.zbMATHCrossRefGoogle Scholar
  6. 6.
    C. Cornes and D. Terrasse. Inverting inductive predicates in Coq. In BRA Workshop on Types for Proofs and Programs (TYPES'95), volume 1158 of LNCS, 1996.Google Scholar
  7. 7.
    Thierry Gautier, Paul Le Guernic, and FranÇois Dupont. Signal v4: manuel de référence (version préliminaire). Publication interne 832, IRISA, June 1994.Google Scholar
  8. 8.
    Thierry Gautier, Paul Le Guernic, and Olivier Maffeis. For a New Real-Time Methodology. Research report, INRIA, 1994.Google Scholar
  9. 9.
    Eduardo Giménez. An Application of Co-Inductive Types in Coq: Verification of the Alternating Bit Protocol. In Proceedings of the 1995 Workshop on Types for Proofs and Programs, number 1158 in LNCS, pages 135–152. Springer Verlag, 1995.Google Scholar
  10. 10.
    Eduardo Giménez. Types Co-Inductifs et Vérification de Systèmes Réactifs dans Coq. In Proceedings of the Journées du GDR Programmation, Grenoble, 1995.Google Scholar
  11. 11.
    Eduardo Giménez. Un Calcul de Constructions Infinies et son Application à la Vérification des Systèmes Communicants. PhD thesis, Laboratoire de l'Informatique du Parallélisme, Ecole Normale Supérieure de Lyon, December 1996.Google Scholar
  12. 12.
    Andrew D. Gordon. The Formal Definition of a Synchronous Hardware-Description Language in Higher Order Logic. In Proceedings of the International Conference on Computer Design, pages 531–534. IEEE Computer Society Press, October 1992.Google Scholar
  13. 13.
    Andrew D. Gordon. A Mechanised Definition of Silage in HOL. Research report 287, University of Cambridge Computer Laboratory, February 1993.Google Scholar
  14. 14.
    N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proc. of the IEEE, 79(9):1305–1320, September 1991.CrossRefGoogle Scholar
  15. 15.
    Michel Le Borgne, Hervé Marchand, Eric Rutten, and Mazen Samaan. Formal Verification of Signal Programs: Application to a Power Transformer Station Controller. In Proc. of the 5th Int. Conf. on Algebraic Methodology and Software Technology (AMAST'96), number 1101 in LNCS, pages 270–285, July 1997.Google Scholar
  16. 16.
    Xavier Leroy. The Objective Caml system, release 1.07. Documentation and users's manual, INRIA, December 1997.Google Scholar
  17. 17.
    F. Maraninchi. The Argos language: Graphical Representation of Automata and Description of Reactive Systems. In IEEE Workshop on Visual Languages, oct 1991.Google Scholar
  18. 18.
    Robin Milner and Mads Tofte. Co-induction in relational semantics. Theoretical Computer Science, 87(1):209–220, 16 September 1991.zbMATHMathSciNetCrossRefGoogle Scholar
  19. 19.
    David Nowak. Coq code, IRISA, 1997.Google Scholar
  20. 20.
    David Nowak, Jean-Pierre Talpin, Thierry Gautier, and Paul Le Guernic. An ML-Like Module System for the Synchronous Language Signal. In Proceedings of European Conference on Parallel Processing (Euro-Par'97), number 1300 in LNCS, pages 1244–1253. Springer Verlag, August 1997.Google Scholar
  21. 21.
    Christine Paulin-Mohring. Circuits as streams in Coq: Verification of a sequential multiplier. In S. Berardi and M. Coppo, editors, Types for Proofs and Programs, TYPES'95, volume 1158 of Lecture Notes in Computer Science, 1996.Google Scholar
  22. 22.
    K. V. S. Prasad. A calculus of broadcasting systems. Science of Computer Programming, 25(2–3):285–327, December 1995.MathSciNetCrossRefGoogle Scholar
  23. 23.
    B. Werner. Une Théorie des Constructions Inductives. PhD thesis, Université Paris VII, Mai. 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • David Nowak
    • 1
  • Jean -René Beauvais
    • 1
  • Jean -Pierre Talpin
    • 1
  1. 1.IRISA (INRIA Rennes & CNRS)Rennes CédexFrance

Personalised recommendations