CoLoSL: Concurrent Local Subjective Logic

  • Azalea RaadEmail author
  • Jules Villard
  • Philippa Gardner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9032)


A key difficulty in verifying shared-memory concurrent programs is reasoning compositionally about each thread in isolation. Existing verification techniques for fine-grained concurrency typically require reasoning about either the entire shared state or disjoint parts of the shared state, impeding compositionality. This paper introduces the program logic CoLoSL, where each thread is verified with respect to its subjective view of the global shared state. This subjective view describes only that part of the state accessed by the thread. Subjective views may arbitrarily overlap with each other, and expand and contract depending on the resource required by the thread. This flexibility gives rise to small specifications and, hence, more compositional reasoning for concurrent programs. We demonstrate our reasoning on a range of examples, including a concurrent computation of a spanning tree of a graph.


Logical State Concurrent Program Shared State Shared Region Subjective View 
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.
    Bornat, R., Calcagno, C., Yang, H.: Variables as resource in separation logic. ENTCS 155 (2006)Google Scholar
  2. 2.
    Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: LICS (2007)Google Scholar
  3. 3.
    da Rocha Pinto, P., Dinsdale-Young, T., Gardner, P.: TaDA: A logic for time and data abstraction. In: Jones, R. (ed.) ECOOP 2014. LNCS, vol. 8586, pp. 207–231. Springer, Heidelberg (2014)Google Scholar
  4. 4.
    Dijkstra, E.: A belated proof of self-stabilization. Distributed Computing 1(1) (1986)Google Scholar
  5. 5.
    Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Commun. ACM 17(11) (1974)Google Scholar
  6. 6.
    Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: compositional reasoning for oncurrent programs. In: POPL (2013)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    Dockins, R., Hobor, A., Appel, A.W.: A fresh look at separation algebras and share accounting. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 161–177. Springer, Heidelberg (2009)Google 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)Google Scholar
  10. 10.
    Feng, X.: Local rely-guarantee reasoning. In: POPL. ACM (2009)Google Scholar
  11. 11.
    Gardner, P., Maffeis, S., Smith, G.D.: Towards a program logic for JavaScript. In: POPL. ACM (2012)Google Scholar
  12. 12.
    Gardner, P., Maffeis, S., Smith, G.D.: Towards a program logic for JavaScript. In: POPL. ACM (2012)Google Scholar
  13. 13.
    Gardner, P., Raad, A., Wheelhouse, M., Wright, A.: Abstract local reasoning for concurrent libraries: mind the gap. In: MFPS (2014)Google Scholar
  14. 14.
    Hobor, A., Villard, J.: The ramifications of sharing in data structures. In: POPL (2013)Google Scholar
  15. 15.
    Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: POPL (2001)Google Scholar
  16. 16.
    Jones, C.B.: Specification and design of (parallel) programs. In: IFIP Cong (1983)Google Scholar
  17. 17.
    Nanevski, A., Ley-Wild, R., Sergey, I., Delbianco, G.A.: Communicating state transition systems for fine-grained concurrent resources. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 290–310. Springer, Heidelberg (2014)Google Scholar
  18. 18.
    O’Hearn, P.W.: Resources, concurrency, and local reasoning. TCS 375(1-3) (2007)Google Scholar
  19. 19.
    O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, p. 1. Springer, Heidelberg (2001)Google Scholar
  20. 20.
    Raad, A., Villard, J., Gardner, P.: CoLoSL: Concurrent Local Subjective Logic (2014),
  21. 21.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS. IEEE Computer Society (2002)Google Scholar
  22. 22.
    Reynolds, J.C.: A short course on separation logic (2003),
  23. 23.
    Svendsen, K., Birkedal, L.: Impredicative concurrent abstract predicates. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 149–168. Springer, Heidelberg (2014)Google Scholar
  24. 24.
    Svendsen, K., Birkedal, L., Parkinson, M.: Modular reasoning about separation of concurrent data structures. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 169–188. Springer, Heidelberg (2013)Google Scholar
  25. 25.
    Turon, A., Dreyer, D., Birkedal, L.: Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency. SIGPLAN Not 9 (2013)Google Scholar
  26. 26.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.Imperial CollegeLondonUK

Personalised recommendations