A tool for symbolic program verification and abstraction

  • Susanne Graf
  • Claire Loiseaux
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 697)


We give the description of a verification tool taking boolean programs of guarded commands as input; internal representation of programs are sets of Binary Decision Diagrams (BDD) (one for each guarded command). It allows to construct an abstract program of the same form obtained using an abstraction relation given by a boolean expression on “concrete”' and “abstract” variables. The tool allows the verification of CTL formulas on programs. We illustrate its possibilities on an example.


  1. [BB88]
    T. Bolognesi and E. Briuksma. Introduction to the ISO specification language Lotos. ISDN, 14(1):25–29, 1988.Google Scholar
  2. [BBG*93]
    A. Bouajjani, S. Bensalem, S. Graf, C. Loiseaux, and J. Sifakis. Property Preserving Abstractions for the Verification of Concurrent Systems. Research Report Spectre C-40, LGI/IMAG, Grenoble, 1993. submitted to Formal Methods in System Design.Google Scholar
  3. [BBLS92]
    A. Bouajjani, S. Bensalem, C. Loiseaux, and J. Sifakis. Property preserving simulations. In CAV'92, Montréal, To appear in LNCS, 1992.Google Scholar
  4. [BD92]
    A. Bouali and R. DeSimone. Symbolic bisimulation minimisation. In CAV92, To appear in LNCS, 1992.Google Scholar
  5. [BFH90]
    A. Bouajjani, J.C. Fernandez, and N. Halbwachs. Minimal model generation. In CAV'90, LNCS 531, 1990.Google Scholar
  6. [Bry86]
    R. E. Bryant. Graph based algorithms for boolean function manipulation. IEEE Trans. on Computation, 35(8), 1986.Google Scholar
  7. [CC77]
    P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. POPL, 1977.Google Scholar
  8. [CES83]
    E.M. Clarke, E.A. Emerson, and E. Sistla. Automatic verification of finite state concurrent systems using temporal logic specification: a practical approach. ACM TOPLAS, 8(2):244–263, 1986.Google Scholar
  9. [CGL91]
    E.M. Clarke, O. Grumberg, and D.E. Long. Model checking and abstraction. In Symposium on Principles of Programming Languages (POPL), ACM, 1991.Google Scholar
  10. [CM88]
    K. M. Chandy and J. Misra. Parallel Program Design. Addison-Wesley, Massachusetts, 1988.Google Scholar
  11. [EFJ90]
    P. Ernberg, L. Fredlund, and B. Jonsson. Specification and Validation of a Simple Overtaking Protocol using LOTOS. Technical Report T90006, SICS, Sweden, 1990.Google Scholar
  12. [EFT91]
    R. Enders, T. Filkorn, and D. Taubner. Generating BDDs for symbolic model checking in CCS. In CAV'91, Aalborg, LNCS 575, 1991.Google Scholar
  13. [Fer90]
    J.C. Fernandez. An implementation of an efficient algorithm for bisimulation equivalence. Science of Computer Programming, 13(2–3), 1990.Google Scholar
  14. [GL92]
    S. Graf and C. Loiseaux. Program Verification usinq compositional Abstraction. FASE/TAPSOFT 93.Google Scholar
  15. [GS90]
    H. Garavel and J. Sifakis. Compilation and verification of Lotos specifications. In Symposium on Protocol Specification, Testing and Verification (Ottawa), IFIP, North Holland, Amsterdam, 1990.Google Scholar
  16. [Hoa84]
    C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, 1984.Google Scholar
  17. [KK86]
    J. Katzenelson and B. Kurshan. S/R: A Language for Specifying Protocols and other Coordinating Processes. In 5th Ann. Int'l Phoenix Conf. Comput. Commun., 1986.Google Scholar
  18. [Koz83]
    D. Kozen. Results on the propositional μ-calculus. In Theoretical Computer Science, North-Holland, 1983.Google Scholar
  19. [Kur89]
    R.P. Kurshan. Analysis of discrete event coordination. In REX Workshop on Stepwise Refinement of Distributed Systems, Mook, LNCS 430, 1989.Google Scholar
  20. [Lam91]
    L. Lamport. The Temporal Logic of Actions. Technical Report 79, DEC, Systems Research Center, 1991.Google Scholar
  21. [Mil71]
    R. Milner. An algebraic definition of simulation between programs. In Proc. Second Int. Joint Conf. on Artificial Intelligence, BCS, 1971.Google Scholar
  22. [Mil80]
    R. Milner. A calculus of communication systems. In LNCS 92, Springer Verlag, 1980.Google Scholar
  23. [Mil83]
    R. Milner. A calculus for Synchrony and Asynchrony. TCS, 25, 1983.Google Scholar
  24. [Pnu86]
    A. Pnueli. Application of temporal logic to specification and verification of reactive systems: a survey of current trends. In Current trends in Concurrency, Nordwijkerhout, LNCS 224, 1986.Google Scholar
  25. [Rat92]
    Ch. Ratel. Définition et réalisation d'un outil de vérification formelle de programmes LUSTRE: Le système LESAR. Thesis, Université J. Fourier, Grenoble, 1992.Google Scholar
  26. [RRSV87]
    J.L. Richier, C. Rodriguez, J. Sifakis, and J. Voiron. Verification in XESAR of the sliding window protocol. Int. Symp. Protocol Spec. Testing and Validation, 1987.Google Scholar
  27. [Sif83]
    J. Sifakis. Property preserving homomorphisms of transition systems. In 4th Workshop on Logics of Programs, Pittsburgh, LNCS 164, 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Susanne Graf
    • 1
  • Claire Loiseaux
    • 1
  1. 1.VERIMAGGrenoble

Personalised recommendations