Skip to main content

ModuRes: A Coq Library for Modular Reasoning About Concurrent Higher-Order Imperative Programming Languages

  • Conference paper
  • First Online:
Interactive Theorem Proving (ITP 2015)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9236))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Available at http://cs.au.dk/~birke/modures/tutorial.

  2. 2.

    Although in the case of subset types an extra condition is required to make sure the subset is complete.

  3. 3.

    Since the category of COFEs itself is cartesian closed it is indeed enriched over itself, and hence it is a special case of the general approach provided by the library.

  4. 4.

    For the actual application to modeling ML-style reference types, the functions should not only be non-expansive, but also monotone wrt. a suitable extension ordering on the worlds. The ModuRes library includes support for such, but we omit that here.

References

  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/

  5. Bengtson, J., Jensen, J.B., Birkedal, L.: Charge! - a framework for higher-order separation logic in Coq. In: Beringer, L., Felty, A. (eds.) ITP 2012. LNCS, vol. 7406, pp. 315–331. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  6. Benton, N., Kennedy, A., Varming, C.: Some domain theory and denotational semantics in Coq. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 115–130. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  7. Biering, B., Birkedal, L., Torp-Smith, N.: BI hyperdoctrines and higher-order separation logic. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 233–247. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  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 

  10. Birkedal, L., Støvring, K., Thamsborg, J.: The category-theoretic solution of recursive metric-space equations. Theor. Comput. Sci. 411(47), 4102–4122 (2010)

    Article  MATH  Google Scholar 

  11. Birkedal, L., Støvring, K., Thamsborg, J.: Realizability semantics of parametric polymorphism, general references, and recursive types. In: de Alfaro, L. (ed.) FOSSACS 2009. LNCS, vol. 5504, pp. 456–470. Springer, Heidelberg (2009)

    Chapter  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 

  15. 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)

    Chapter  Google Scholar 

  16. Di Gianantonio, P., Miculan, M.: A unifying approach to recursive and co-recursive definitions. In: Geuvers, H., Wiedijk, F. (eds.) TYPES 2002. LNCS, vol. 2646, pp. 148–161. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  17. Hobor, A., Dockins, R., Appel, A.: A theory of indirection via approximation. In: POPL (2010)

    Google Scholar 

  18. Huffman, B.: A purely definitional universal domain. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 260–275. Springer, Heidelberg (2009)

    Chapter  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 

  22. Pottier, F.: Syntactic soundness proof of a type-and-capability system with hidden state. JFP 23(1), 38–144 (2013)

    MATH  MathSciNet  Google Scholar 

  23. Sozeau, M., Oury, N.: First-class type classes. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 278–293. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  24. Spitters, B., van der Weegen, E.: Type classes for mathematics in type theory. Math. Struct. Comput. Sci. 21(4), 795–825 (2011)

    Article  MATH  Google Scholar 

  25. Svendsen, K., Birkedal, L.: Impredicative concurrent abstract predicates. In: Shao, Z. (ed.) ESOP 2014 (ETAPS). LNCS, vol. 8410, pp. 149–168. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

Download references

Acknowledgements

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).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Filip Sieczkowski .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Sieczkowski, F., Bizjak, A., Birkedal, L. (2015). ModuRes: A Coq Library for Modular Reasoning About Concurrent Higher-Order Imperative Programming Languages. In: Urban, C., Zhang, X. (eds) Interactive Theorem Proving. ITP 2015. Lecture Notes in Computer Science(), vol 9236. Springer, Cham. https://doi.org/10.1007/978-3-319-22102-1_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-22102-1_25

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-22101-4

  • Online ISBN: 978-3-319-22102-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics