Ribbon Proofs for Separation Logic

  • John Wickerson
  • Mike Dodds
  • Matthew Parkinson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7792)


We present ribbon proofs, a diagrammatic system for proving program correctness based on separation logic. Ribbon proofs emphasise the structure of a proof, so are intelligible and pedagogical. Because they contain less redundancy than proof outlines, and allow each proof step to be checked locally, they may be more scalable. Where proof outlines are cumbersome to modify, ribbon proofs can be visually manoeuvred to yield proofs of variant programs. This paper introduces the ribbon proof system, proves its soundness and completeness, and outlines a prototype tool for validating the diagrams in Isabelle.


  1. 1.
    Ashcroft, E.A.: Program verification tableaus. Technical Report CS-76-01, University of Waterloo (1976)Google Scholar
  2. 2.
    Bean, J.: Ribbon Proofs - A Proof System for the Logic of Bunched Implications. PhD thesis, Queen Mary University of London (2006)Google Scholar
  3. 3.
    Bornat, R., Calcagno, C., O’Hearn, P.W., Parkinson, M.J.: Permission accounting in separation logic. In: POPL 2005. ACM Press (2005)Google Scholar
  4. 4.
    Bornat, R., Calcagno, C., Yang, H.: Variables as resource in separation logic. In: MFPS XXI. ENTCS, vol. 155 (2006)Google Scholar
  5. 5.
    Bornat, R., Dodds, M.: Abducing barriers for Power and ARM. Draft (2012)Google Scholar
  6. 6.
    Chlipala, A.: Mostly-automated verification of low-level programs in computational separation logic. In: PLDI 2011. ACM Press (2011)Google Scholar
  7. 7.
    Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: Compositional reasoning for concurrent programs. In: POPL 2013. ACM Press (2013)Google Scholar
  8. 8.
    Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M.J., Vafeiadis, V.: Concurrent Abstract Predicates. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 504–528. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  9. 9.
    Dodds, M., Feng, X., Parkinson, M., Vafeiadis, V.: Deny-Guarantee Reasoning. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 363–377. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  10. 10.
    Feng, X.: Local rely-guarantee reasoning. In: POPL 2009. ACM Press (2009)Google Scholar
  11. 11.
    Feng, X., Ferreira, R., Shao, Z.: On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 173–188. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  12. 12.
    Fitch, F.B.: Symbolic Logic: An Introduction. Ronald Press Co. (1952)Google Scholar
  13. 13.
    Girard, J.-Y.: Linear logic. Theor. Comput. Sci. 50 (1987)Google Scholar
  14. 14.
    Gotsman, A., Berdine, J., Cook, B., Rinetzky, N., Sagiv, M.: Local Reasoning for Storable Locks and Threads. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 19–37. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  15. 15.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10) (1969)Google Scholar
  16. 16.
    Hoare, C.A.R.: Proof of a program: Find. Communications of the ACM 14(1) (1971)Google Scholar
  17. 17.
    Hur, C.-K., Dreyer, D., Vafeiadis, V.: Separation logic in the presence of garbage collection. In: LICS 2011. IEEE Computer Society (2011)Google Scholar
  18. 18.
    Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL 2001. ACM Press (2001)Google Scholar
  19. 19.
    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
  20. 20.
    Jacobs, B., Smans, J., Piessens, F.: Verification of Unloadable Modules. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 402–416. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  21. 21.
    Joyal, A., Street, R., Verity, D.: Traced monoidal categories. Math. Proc. of the Cambridge Philosophical Society 119(3) (1996)Google Scholar
  22. 22.
    Milner, R.: The Space and Motion of Communicating Agents. Cambridge University Press (2009)Google Scholar
  23. 23.
    O’Hearn, P.W.: Resources, concurrency and local reasoning. Theor. Comput. Sci. 375(1-3) (2007)Google Scholar
  24. 24.
    O’Hearn, P.W., Pym, D.J.: The logic of bunched implications. B. Symb. Log. 5(2) (1999)Google Scholar
  25. 25.
    Owicki, S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Informatica 6 (1976)Google Scholar
  26. 26.
    Raza, M., Calcagno, C., Gardner, P.: Automatic Parallelization with Separation Logic. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 348–362. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  27. 27.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS 2002. IEEE Computer Society (2002)Google Scholar
  28. 28.
    Schneider, F.B.: On Concurrent Programming, ch. 4. Springer (1997)Google Scholar
  29. 29.
    Selinger, P.: A survey of graphical languages for monoidal categories. In: New Structures for Physics, vol. 813, ch. 4. Springer (2011)Google Scholar
  30. 30.
    Urbas, M., Jamnik, M.: Diabelli: A Heterogeneous Proof System. In: Gramlich, B., Miller, D., Sattler, U. (eds.) IJCAR 2012. LNCS, vol. 7364, pp. 559–566. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  31. 31.
    Vafeiadis, V., Parkinson, M.: A Marriage of Rely/Guarantee and Separation Logic. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR 2007. LNCS, vol. 4703, pp. 256–271. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  32. 32.
    Wenzel, M.: Asynchronous proof processing with Isabelle/Scala and Isabelle/jEdit. In: UITP 2010. ENTCS, vol. 285 (2012)Google Scholar
  33. 33.
    Wickerson, J.: Concurrent Verification for Sequential Programs. PhD thesis, University of Cambridge (2013)Google Scholar
  34. 34.
    Wu, C., Zhang, X., Urban, C.: A Formalisation of the Myhill-Nerode Theorem Based on Regular Expressions (Proof Pearl). In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 341–356. Springer, Heidelberg (2011)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • John Wickerson
    • 1
  • Mike Dodds
    • 2
  • Matthew Parkinson
    • 3
  1. 1.Technische Universität BerlinGermany
  2. 2.University of YorkUnited Kingdom
  3. 3.Microsoft Research CambridgeUnited Kingdom

Personalised recommendations