ModuRes: A Coq Library for Modular Reasoning About Concurrent Higher-Order Imperative Programming Languages
It is well-known that it is challenging to build semantic models of type systems or logics for reasoning about concurrent higher-order imperative programming languages. One of the key challenges is that such semantic models often involve constructing solutions to certain kinds of recursive domain equations, which in practice has been a barrier to formalization efforts. Here we present the ModuRes Coq library, which provides an easy way to solve such equations. We show how the library can be used to construct models of type systems and logics for reasoning about concurrent higher-order imperative programming languages.
The formalization of the general solution of the recursive domain equation is inspired by an earlier, unpublished development by Varming and Birkedal. While both the proof engineering methods used and the scope of the ModuRes library differ significantly from this earlier effort, some of the setup is borrowed from that. Yannick Zakowski was the first user of the library, providing important feedback, as well as a formalization of the example used in Sect. 3. We thank the anonymous reviewers for their comments.
This research was supported in part by the ModuRes Sapere Aude Advanced Grant from The Danish Council for Independent Research for the Natural Sciences (FNU).
- 1.Ahmed, A.: Semantics of Types for Mutable State. Ph.D. thesis, Princeton University (2004)Google Scholar
- 2.Ahmed, A., Appel, A.W., Virga, R.: A stratified semantics of general references embeddable in higher-order logic. In: LICS (2002)Google Scholar
- 3.Appel, A., Melliès, P.-A., Richards, C., Vouillon, J.: A very modal model of a modern, major, general type system. In: POPL (2007)Google Scholar
- 4.Appel, A.W., Dockins, R., Hobor, A.: (2009). http://vst.cs.princeton.edu/msl/
- 8.Birkedal, L., Bizjak, A.: A taste of categorical logic - tutorial notes (2014). http://cs.au.dk/~birke/modures/tutorial/categorical-logic-tutorial-notes.pdf
- 9.Birkedal, L., Reus, B., Schwinghammer, J., Støvring, K., Thamsborg, J., Yang, H.: Step-indexed kripke models over recursive worlds. In: POPL (2011)Google Scholar
- 12.Brotherston, J., Villard, J.: Parametric completeness for separation theories. In: POPL (2014)Google Scholar
- 13.Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: LICS (2007)Google Scholar
- 14.Chlipala, A.: The bedrock structured programming system: combining generative metaprogramming and hoare logic in an extensible program verifier. In: ICFP (2013)Google Scholar
- 17.Hobor, A., Dockins, R., Appel, A.: A theory of indirection via approximation. In: POPL (2010)Google Scholar
- 19.Jensen, J.B.: Enabling Concise and Modular Specifications in Separation Logic. Ph.D. thesis, IT University of Copenhagen (2014)Google Scholar
- 20.Jung, R., Swasey, D., Sieczkowski, F., Svendsen, K., Turon, A., Birkedal, L., Dreyer, D.: Iris: monoids and invariants as an orthogonal basis for concurrent reasoning. In: POPL (2015)Google Scholar
- 21.Malecha, G., Bengtson, J.: Rtac – a reflective tactic language for Coq (2015) (Submitted for publication)Google Scholar