Type Soundness and Race Freedom for Mezzo

  • Thibaut Balabonski
  • François Pottier
  • Jonathan Protzenko
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8475)


The programming language Mezzo is equipped with a rich type system that controls aliasing and access to mutable memory. We incorporate shared-memory concurrency into Mezzo and present a modular formalization of its core type system, in the form of a concurrent λ-calculus, which we extend with references and locks. We prove that well-typed programs do not go wrong and are data-race free. Our definitions and proofs are machine-checked.


Aliasing Berdine 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ahmed, A., Fluet, M., Morrisett, G.: L 3: A linear language with locations. Fundamenta Informaticæ 77(4), 397–449 (2007)MATHMathSciNetGoogle Scholar
  2. 2.
    Balabonski, T., Pottier, F.: A Coq formalization of Mezzo (December 2013), http://gallium.inria.fr/~fpottier/mezzo/mezzo-coq.tar.gz
  3. 3.
    Buisse, A., Birkedal, L., Støvring, K.: A step-indexed Kripke model of separation logic for storable locks. Electronic Notes in Theoretical Computer Science 276, 121–143 (2011)CrossRefGoogle Scholar
  4. 4.
    Charguéraud, A., Pottier, F.: Functional translation of a calculus of capabilities. In: International Conference on Functional Programming (ICFP), pp. 213–224 (2008)Google Scholar
  5. 5.
    Chlipala, A.: Certified Programming and Dependent Types. MIT Press (2013)Google Scholar
  6. 6.
    Delaware, B., Oliveira, B.C.D.S., Schrijvers, T.: Meta-theory à La Carte. In: Principles of Programming Languages (POPL), pp. 207–218 (2013)Google Scholar
  7. 7.
    Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M.J., Yang, H.: Views: compositional reasoning for concurrent programs. In: Principles of Programming Languages (POPL), pp. 287–300 (2013)Google Scholar
  8. 8.
    Gotsman, A., Berdine, J., Cook, B., Rinetzky, N., Sagiv, M.: Local reasoning for storable locks and threads. Tech. Rep. MSR-TR-2007-39, Microsoft Research (2007)Google Scholar
  9. 9.
    Mosses, P.D.: Modular structural operational semantics. Journal of Logic and Algebraic Programming 60, 195–228 (2004)CrossRefMathSciNetGoogle Scholar
  10. 10.
    O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoretical Computer Science 375(1-3), 271–307 (2007)CrossRefMATHMathSciNetGoogle Scholar
  11. 11.
    Pottier, F.: Syntactic soundness proof of a type-and-capability system with hidden state. Journal of Functional Programming 23(1), 38–144 (2013)CrossRefMATHMathSciNetGoogle Scholar
  12. 12.
    Pottier, F., Protzenko, J.: Programming with permissions in Mezzo. In: International Conference on Functional Programming (ICFP), pp. 173–184 (2013)Google Scholar
  13. 13.
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Logic in Computer Science (LICS), pp. 55–74 (2002)Google Scholar
  14. 14.
    Turon, A., Dreyer, D., Birkedal, L.: Unifying refinement and Hoare-style reasoning in a logic for higher-order concurrency. In: International Conference on Functional Programming (ICFP), pp. 377–390 (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Thibaut Balabonski
    • 1
  • François Pottier
    • 1
  • Jonathan Protzenko
    • 1
  1. 1.INRIA Paris-RocquencourtFrance

Personalised recommendations