Sound, Modular and Compositional Verification of the Input/Output Behavior of Programs

  • Willem Penninckx
  • Bart Jacobs
  • Frank Piessens
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9032)


We present a sound verification approach for verifying input/output properties of programs. Our approach supports defining high-level I/O actions on top of low-level ones (compositionality), defining input/output actions without taking into account which other actions exist (modularity), and other features. As the key ingredient, we developed a separation logic over Petri nets. We also show how with the same specification style we can elegantly modularly verify “I/O-like” code that uses the Template Pattern. We have implemented our approach in the VeriFast verifier and applied it to a number of challenging examples.


Turing Machine Program Variable Template Method Proof Rule Separation Logic 
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.


  1. 1.
    Beuster, G., Henrich, N., Wagner, M.: Real world verification – Experiences from the Verisoft email client. In: Sutcliffe, G., Schmidt, R., Schulz, S. (eds.) Proceedings of the FLoC 2006 Workshop on Empirically Successful Computerized Reasoning (ESCoR 2006). CEUR Workshop Proceedings, vol. 192, pp. 112–125. (August 2006)Google Scholar
  2. 2.
    Bogaerts, B., Jansen, J., Bruynooghe, M., De Cat, B., Vennekens, J., Denecker, M.: Simulating dynamic systems using linear time calculus theories. Theory and Practice of Logic Programming 14, 477–492 (2014)CrossRefzbMATHMathSciNetGoogle Scholar
  3. 3.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Logic of Programs, Workshop, London, UK, pp. 52–71. Springer (1981)Google Scholar
  4. 4.
    Clarke, E.M., Klieber, W., Nováček, M., Zuliani, P.: Model checking and the state explosion problem. In: Meyer, B., Nordio, M. (eds.) LASER 2011. LNCS, vol. 7682, pp. 1–30. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  5. 5.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1995)Google Scholar
  6. 6.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)CrossRefzbMATHGoogle Scholar
  7. 7.
    Jacobs, B., Smans, J., Philippaerts, P., Vogels, F., Penninckx, W., Piessens, F.: VeriFast: A powerful, sound, predictable, fast verifier for C and Java. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 41–55. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  8. 8.
    Kristensen, L.M., Christensen, S., Jensen, K.: The practitioner’s guide to coloured Petri nets. International Journal on Software Tools for Technology Transfer 2, 98–132 (1998)CrossRefzbMATHGoogle Scholar
  9. 9.
    Nakata, K., Uustalu, T.: A Hoare logic for the coinductive trace-based big-step semantics of While. In: Gordon, A.D. (ed.) ESOP 2010. LNCS, vol. 6012, pp. 488–506. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  10. 10.
    Parkinson, M., Bierman, G.: Separation logic and abstraction. In: Proceedings of the 32nd Symposium on Principles of Programming Languages, pp. 247–258. ACM (2005)Google Scholar
  11. 11.
    Queille, J.-P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 337–351. Springer, Heidelberg (1982)CrossRefGoogle Scholar
  12. 12.
    John, C.: Reynolds. Separation logic: A logic for shared mutable data structures. In: Proceedings of the 17th Symposium on Logic in Computer Science, pp. 55–74. IEEE, Washington (2002)Google Scholar
  13. 13.
    Wisnesky, R., Malecha, G., Morrisett, G.: Certified web services in Ynot. In: 5th International Workshop on Automated Specification and Verification of Web Systems (July 2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Willem Penninckx
    • 1
  • Bart Jacobs
    • 1
  • Frank Piessens
    • 1
  1. 1.iMinds-DistriNetKU LeuvenLeuvenBelgium

Personalised recommendations