skip to main content

Connectivity graphs: a method for proving deadlock freedom based on separation logic

Published:12 January 2022Publication History
Skip Abstract Section

Abstract

We introduce the notion of a connectivity graph—an abstract representation of the topology of concurrently interacting entities, which allows us to encapsulate generic principles of reasoning about deadlock freedom. Connectivity graphs are parametric in their vertices (representing entities like threads and channels) and their edges (representing references between entities) with labels (representing interaction protocols). We prove deadlock and memory leak freedom in the style of progress and preservation and use separation logic as a meta theoretic tool to treat connectivity graph edges and labels substructurally. To prove preservation locally, we distill generic separation logic rules for local graph transformations that preserve acyclicity of the connectivity graph. To prove global progress locally, we introduce a waiting induction principle for acyclic connectivity graphs. We mechanize our results in Coq, and instantiate our method with a higher-order binary session-typed language to obtain the first mechanized proof of deadlock and leak freedom.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

We introduce the notion of a connectivity graph—an abstract representation of the topology of concurrently interacting entities, which allows us to encapsulate generic principles of reasoning about deadlock freedom.

References

  1. Arnon Avron. 1991. Hypersequents, Logical Consequence and Intermediate Logics for Concurrency. Annals of Mathematics and Artificial Intelligence, 4 (1991), 225–248. https://doi.org/10.1007/BF01531058 Google ScholarGoogle ScholarCross RefCross Ref
  2. Stephanie Balzer and Frank Pfenning. 2017. Manifest Sharing with Session Types. PACMPL, 1, ICFP (2017), 37:1–37:29. https://doi.org/10.1145/3110281 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Stephanie Balzer, Frank Pfenning, and Bernardo Toninho. 2018. A Universal Session Type for Untyped Asynchronous Communication. In CONCUR (LIPIcs, Vol. 118). 30:1–30:18. https://doi.org/10.4230/LIPIcs.CONCUR.2018.30 Google ScholarGoogle Scholar
  4. Stephanie Balzer, Bernardo Toninho, and Frank Pfenning. 2019. Manifest Deadlock-Freedom for Shared Session Types. In ESOP (LNCS, Vol. 11423). 611–639. https://doi.org/10.1007/978-3-030-17184-1_22 Google ScholarGoogle Scholar
  5. Nick Benton. 1994. A Mixed Linear and Non-Linear Logic: Proofs, Terms and Models (Extended Abstract). In CSL (LNCS). 121–135. https://doi.org/10.1007/BFb0022251 Google ScholarGoogle ScholarCross RefCross Ref
  6. Lorenzo Bettini, Mario Coppo, Loris D’Antoni, Marco De Luca, Mariangiola Dezani-Ciancaglini, and Nobuko Yoshida. 2008. Global Progress in Dynamically Interleaved Multiparty Sessions. In CONCUR (LNCS, Vol. 5201). 418–433. https://doi.org/10.1007/978-3-540-85361-9_33 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Luís Caires, Jorge A. Pérez, Frank Pfenning, and Bernardo Toninho. 2013. Behavioral Polymorphism and Parametricity in Session-Based Communication. In ESOP. 330–349. https://doi.org/10.1007/978-3-642-37036-6_19 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Luís Caires and Frank Pfenning. 2010. Session Types as Intuitionistic Linear Propositions. In CONCUR (LNCS, Vol. 6269). 222–236. https://doi.org/10.1007/978-3-642-15375-4_16 Google ScholarGoogle Scholar
  9. Marco Carbone and Søren Debois. 2010. A Graphical Approach to Progress for Structured Communication in Web Services. In ICE (EPTCS, Vol. 38). 13–27. https://doi.org/10.4204/EPTCS.38.4 Google ScholarGoogle Scholar
  10. David Castro-Perez, Francisco Ferreira, Lorenzo Gheri, and Nobuko Yoshida. 2021. Zooid: A DSL for Certified Multiparty Computation: From Mechanised Metatheory to Certified Multiparty Processes. In PLDI. 237–251. https://doi.org/10.1145/3453483.3454041 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Castro-Perez, Francisco Ferreira, and Nobuko Yoshida. 2020. EMTST: Engineering the Meta-theory of Session Types. In TACAS (2) (LNCS, Vol. 12079). 278–285. https://doi.org/10.1007/978-3-030-45237-7_17 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Kaustuv Chaudhuri, Leonardo Lima, and Giselle Reis. 2019. Formalized Meta-Theory of Sequent Calculi for Linear Logics. Theoretical Computer Science, 781 (2019), 24–38. https://doi.org/10.1016/j.tcs.2019.02.023 Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ruofei Chen and Stephanie Balzer. 2020. Ferrite: A Judgmental Embedding of Session Types in Rust. CoRR, abs/2009.13619 (2020), arxiv:2009.13619. arxiv:2009.13619Google ScholarGoogle Scholar
  14. Luca Ciccone and Luca Padovani. 2020. A Dependently Typed Linear π -Calculus in Agda. In PPDP. 8:1–8:14. https://doi.org/10.1145/3414080.3414109 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Mario Coppo, Mariangiola Dezani-Ciancaglini, Nobuko Yoshida, and Luca Padovani. 2016. Global Progress for Dynamically Interleaved Multiparty Sessions. MSCS, 26, 2 (2016), 238–302. https://doi.org/10.1017/S0960129514000188 Google ScholarGoogle ScholarCross RefCross Ref
  16. The Coq-std++ Team. 2021. An extended “standard library” for Coq. Available online at https://gitlab.mpi-sws.org/iris/stdppGoogle ScholarGoogle Scholar
  17. The Coq Team. 2021. The Coq Proof Assistant. https://doi.org/10.5281/zenodo.4501022 Google ScholarGoogle ScholarCross RefCross Ref
  18. Florin Craciun, Tibor Kiss, and Andreea Costea. 2015. Towards a Session Logic for Communication Protocols. In ICECCS. 140–149. https://doi.org/10.1109/ICECCS.2015.33 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Luís Cruz-Filipe, Fabrizio Montesi, and Marco Peressotti. 2021. Certifying Choreography Compilation. In ICTAC (LNCS, Vol. 12819). 115–133. https://doi.org/10.1007/978-3-030-85315-0_8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Luís Cruz-Filipe, Fabrizio Montesi, and Marco Peressotti. 2021. Formalising a Turing-Complete Choreographic Language in Coq. In ITP (LIPIcs, Vol. 193). 15:1–15:18. https://doi.org/10.4230/LIPIcs.ITP.2021.15 Google ScholarGoogle ScholarCross RefCross Ref
  21. Ornela Dardha and Simon J. Gay. 2018. A New Linear Logic for Deadlock-Free Session-Typed Processes. In FOSSACS (LNCS, Vol. 10803). 91–109. https://doi.org/10.1007/978-3-319-89366-2_5 Google ScholarGoogle Scholar
  22. Ankush Das, Jan Hoffmann, and Frank Pfenning. 2018. Work Analysis with Resource-Aware Session Types. In LICS. 305–314. https://doi.org/10.1145/3209108.3209146 Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Farzaneh Derakhshan, Stephanie Balzer, and Limin Jia. 2021. Session Logical Relations for Noninterference. In LICS. 1–14. https://doi.org/10.1109/LICS52264.2021.9470654 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mariangiola Dezani-Ciancaglini, Dimitris Mostrous, Nobuko Yoshida, and Sophia Drossopoulou. 2006. Session Types for Object-Oriented Languages. In ESOP (LNCS, Vol. 4067). 328–352. https://doi.org/10.1007/11785477_20 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Simon Fowler, Wen Kokke, Ornela Dardha, Sam Lindley, and J. Garrett Morris. 2021. Separating Sessions Smoothly. CoRR, abs/2105.08996 (2021), arxiv:2105.08996. arxiv:2105.08996Google ScholarGoogle Scholar
  26. Simon Fowler, Sam Lindley, J. Garrett Morris, and Sára Decova. 2019. Exceptional Asynchronous Session Types: Session Types Without Tiers. PACMPL, 3, POPL (2019), 28:1–28:29. https://doi.org/10.1145/3290341 Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Adrian Francalanza, Julian Rathke, and Vladimiro Sassone. 2011. Permission-Based Separation Logic for Message-Passing Concurrency. LMCS, 7, 3 (2011), https://doi.org/10.2168/LMCS-7(3:7)2011 Google ScholarGoogle ScholarCross RefCross Ref
  28. Simon J. Gay, Peter Thiemann, and Vasco T. Vasconcelos. 2020. Duality of Session Types: The Final Cut. In PLACES (EPTCS, Vol. 314). 23–33. https://doi.org/10.4204/EPTCS.314.3 Google ScholarGoogle Scholar
  29. Simon J. Gay and Vasco Thudichum Vasconcelos. 2010. Linear Type Theory for Asynchronous Session Types. JFP, 20, 1 (2010), 19–50. https://doi.org/10.1017/S0956796809990268 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Matthew A. Goto, Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, and James Riely. 2016. An Extensible Approach to Session Polymorphism. MSCS, 26, 3 (2016), 465–509. https://doi.org/10.1017/S0960129514000231 Google ScholarGoogle ScholarCross RefCross Ref
  31. Jafar Hamin and Bart Jacobs. 2018. Deadlock-Free Monitors. In ESOP (LNCS, Vol. 10801). 415–441. https://doi.org/10.1007/978-3-319-89884-1_15 Google ScholarGoogle Scholar
  32. Robert Harper. 2016. Practical Foundations for Programming Languages (2nd ed.). Cambridge University Press. isbn:1107150302 https://doi.org/10.5555/3002812Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Jonas Kastberg Hinrichsen, Jesper Bengtson, and Robbert Krebbers. 2020. Actris: Session-Type Based Reasoning in Separation Logic. PACMPL, 4, POPL (2020), Article 6, Dec., 30 pages. https://doi.org/10.1145/3371074 Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Jonas Kastberg Hinrichsen, Jesper Bengtson, and Robbert Krebbers. 2021. Actris 2.0: Asynchronous Session-Type Based Reasoning in Separation Logic. arxiv:2010.15030v1 Manuscript.Google ScholarGoogle Scholar
  35. Jonas Kastberg Hinrichsen, Daniël Louwrink, Robbert Krebbers, and Jesper Bengtson. 2021. Machine-checked semantic session typing. In CPP. 178–198. https://doi.org/10.1145/3437992.3439914 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Kohei Honda. 1993. Types for Dyadic Interaction. In CONCUR (LNCS, Vol. 715). 509–523. https://doi.org/10.1007/3-540-57208-2_35 Google ScholarGoogle Scholar
  37. Kohei Honda, Vasco Thudichum Vasconcelos, and Makoto Kubo. 1998. Language Primitives and Type Discipline for Structured Communication-Based Programming. In ESOP (LNCS, Vol. 1381). 122–138. https://doi.org/10.1007/BFb0053567 Google ScholarGoogle Scholar
  38. Kohei Honda, Nobuko Yoshida, and Marco Carbone. 2008. Multiparty Asynchronous Session Types. In POPL. 273–284. https://doi.org/10.1145/1328438.1328472 Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Atsushi Igarashi and Naoki Kobayashi. 1997. Type-Based Analysis of Communication for Concurrent Programming Languages. In SAS (LNCS, Vol. 1302). 187–201. https://doi.org/10.1007/BFb0032742 Google ScholarGoogle Scholar
  40. Atsushi Igarashi and Naoki Kobayashi. 2001. A Generic Type System for the Pi-calculus. In POPL. 128–141. https://doi.org/10.1145/360204.360215 Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Atsushi Igarashi and Naoki Kobayashi. 2004. A Generic Type System for the Pi-calculus. Theoretical Computer Science, 311, 1-3 (2004), 121–163. https://doi.org/10.1016/S0304-3975(03)00325-6 Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Atsushi Igarashi, Peter Thiemann, Vasco T. Vasconcelos, and Philip Wadler. 2017. Gradual session types. PACMPL, 1, ICFP (2017), 38:1–38:28. https://doi.org/10.1145/3110282 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Keigo Imai, Nobuko Yoshida, and Shoji Yuen. 2019. Session-Ocaml: A Session-Based Library with Polarities and Lenses. Science of Computer Programming, 172 (2019), 135–159. https://doi.org/10.1016/j.scico.2018.08.005 Google ScholarGoogle ScholarCross RefCross Ref
  44. Keigo Imai, Shoji Yuen, and Kiyoshi Agusa. 2010. Session Type Inference in Haskell. In PLACES (EPTCS, Vol. 69). 74–91. https://doi.org/10.4204/EPTCS.69.6 Google ScholarGoogle ScholarCross RefCross Ref
  45. Jules Jacobs, Stephanie Balzer, and Robbert Krebbers. 2021. Appendix and Coq mechanization of “Connectivity Graphs: A Method for Proving Deadlock Freedom Based on Separation Logic”. The most recent version is at https://github.com/julesjacobs/cgraphsGoogle ScholarGoogle Scholar
  46. Thomas Bracht Laumann Jespersen, Philip Munksgaard, and Ken Friis Larsen. 2015. Session Types for Rust. In WGP. 13–22. https://doi.org/10.1145/2808098.2808100 Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Ralf Jung, Jacques-Henri Jourdan, Robbert Krebbers, and Derek Dreyer. 2018. RustBelt: Securing the Foundations of the Rust Programming Language. PACMPL, 2, POPL (2018), 66:1–66:34. https://doi.org/10.1145/3158154 Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Ralf Jung, Robbert Krebbers, Jacques-Henri Jourdan, Ales Bizjak, Lars Birkedal, and Derek Dreyer. 2018. Iris From the Ground Up: A Modular Foundation for Higher-Order Concurrent Separation Logic. JFP, 28 (2018), e20. https://doi.org/10.1017/S0956796818000151 Google ScholarGoogle Scholar
  49. Ralf Jung, David Swasey, Filip Sieczkowski, Kasper Svendsen, Aaron Turon, Lars Birkedal, and Derek Dreyer. 2015. Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning. In POPL. 637–650. https://doi.org/10.1145/2676726.2676980 Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Ioannis T. Kassios and Eleftherios Kritikos. 2013. A Discipline for Program Verification Based on Backpointers and Its Use in Observational Disjointness. In ESOP (LNCS, Vol. 7792). 149–168. https://doi.org/10.1007/978-3-642-37036-6_10 Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Alex C. Keizer, Henning Basold, and Jorge A. Pérez. 2021. Session Coalgebras: A Coalgebraic View on Session Types and Communication Protocols. In ESOP (LNCS, Vol. 12648). 375–403. https://doi.org/10.1007/978-3-030-72019-3_14 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Naoki Kobayashi. 1997. A Partially Deadlock-Free Typed Process Calculus. In LICS. 128–139. https://doi.org/10.1109/LICS.1997.614941 Google ScholarGoogle ScholarCross RefCross Ref
  53. Naoki Kobayashi. 2002. A Type System for Lock-Free Processes. I&C, 177, 2 (2002), 122–159. https://doi.org/10.1006/inco.2002.3171 Google ScholarGoogle Scholar
  54. Naoki Kobayashi. 2006. A New Type System for Deadlock-Free Processes. In CONCUR (LNCS, Vol. 4137). 233–247. https://doi.org/10.1007/11817949_16 Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Naoki Kobayashi, Benjamin C. Pierce, and David N. Turner. 1999. Linearity and the pi-calculus. TOPLAS, 21, 5 (1999), 914–947. https://doi.org/10.1145/330249.330251 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Naoki Kobayashi, Shin Saito, and Eijiro Sumii. 2000. An Implicitly-Typed Deadlock-Free Process Calculus. In CONCUR (LNCS, Vol. 1877). 489–503. https://doi.org/10.1007/3-540-44618-4_35 Google ScholarGoogle Scholar
  57. Wen Kokke. 2019. Rusty Variation: Deadlock-free Sessions with Failure in Rust. In ICE (EPTCS, Vol. 304). 48–60. https://doi.org/10.4204/EPTCS.304.4 Google ScholarGoogle ScholarCross RefCross Ref
  58. Wen Kokke, Fabrizio Montesi, and Marco Peressotti. 2019. Better Late Than Never: a Fully-Abstract Semantics for Classical Processes. PACMPL, 3, POPL (2019), 24:1–24:29. https://doi.org/10.1145/3290337 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung, Joseph Tassarotti, Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, and Derek Dreyer. 2018. MoSeL: A General, Extensible Modal Framework for Interactive Proofs in Separation Logic. PACMPL, 2, ICFP (2018), 77:1–77:30. https://doi.org/10.1145/3236772 Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Robbert Krebbers, Amin Timany, and Lars Birkedal. 2017. Interactive Proofs in Higher-Order Concurrent Separation Logic. In POPL. 205–217. https://doi.org/10.1145/3009837.3009855 Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Duy-Khanh Le, Wei-Ngan Chin, and Yong Meng Teo. 2013. An Expressive Framework for Verifying Deadlock Freedom. In ATVA (LNCS, Vol. 8172). 287–302. https://doi.org/10.1007/978-3-319-02444-8_21 Google ScholarGoogle ScholarCross RefCross Ref
  62. Sam Lindley and J. Garrett Morris. 2015. A Semantics for Propositions as Sessions. In ESOP (LNCS, Vol. 9032). 560–584. https://doi.org/10.1007/978-3-662-46669-8_23 Google ScholarGoogle Scholar
  63. Sam Lindley and J. Garrett Morris. 2016. Embedding Session Types in Haskell. In Haskell Symposium. 133–145. https://doi.org/10.1145/2976002.2976018 Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. Sam Lindley and J. Garrett Morris. 2016. Talking Bananas: Structural Recursion For Session Types. In ICFP. 434–447. https://doi.org/10.1145/2951913.2951921 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Sam Lindley and J. Garrett Morris. 2017. Lightweight Functional Session Types. In Behavioural Types: from Theory to Tools.Google ScholarGoogle Scholar
  66. Étienne Lozes and Jules Villard. 2012. Shared Contract-Obedient Endpoints. In ICE (EPTCS, Vol. 104). 17–31. https://doi.org/10.4204/EPTCS.104.3 Google ScholarGoogle ScholarCross RefCross Ref
  67. Fabrizio Montesi. 2021. Introduction to Choreographies. Accepted for publication by Cambridge University Press.Google ScholarGoogle Scholar
  68. Fabrizio Montesi and Marco Peressotti. 2018. Classical Transitions. CoRR, abs/1803.01049 (2018), arxiv:1803.01049. arxiv:1803.01049Google ScholarGoogle Scholar
  69. Peter W. O’Hearn and David J. Pym. 1999. The Logic Of Bunched Implications. Bulletin of Symbolic Logic, 5, 2 (1999), 215–244. https://doi.org/10.2307/421090 Google ScholarGoogle ScholarCross RefCross Ref
  70. Peter W. O’Hearn, John C. Reynolds, and Hongseok Yang. 2001. Local Reasoning about Programs that Alter Data Structures. In CSL (LNCS, Vol. 2142). 1–19. https://doi.org/10.1007/3-540-44802-0_1 Google ScholarGoogle ScholarCross RefCross Ref
  71. Wytse Oortwijn, Stefan Blom, and Marieke Huisman. 2016. Future-based Static Analysis of Message Passing Programs. In PLACES (EPTCS, Vol. 211). 65–72. https://doi.org/10.4204/EPTCS.211.7 Google ScholarGoogle ScholarCross RefCross Ref
  72. Luca Padovani. 2017. A Simple Library Implementation of Binary Sessions. JFP, 27 (2017), e4. https://doi.org/10.1017/S0956796816000289 Google ScholarGoogle ScholarCross RefCross Ref
  73. Jorge A. Pérez, Luís Caires, Frank Pfenning, and Bernardo Toninho. 2014. Linear Logical Relations and Observational Equivalences for Session-Based Concurrency. I&C, 239 (2014), 254–302. https://doi.org/10.1016/j.ic.2014.08.001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Frank Pfenning and Dennis Griffith. 2015. Polarized Substructural Session Types. In FoSSaCS (LNCS, Vol. 9034). 3–22. https://doi.org/10.1007/978-3-662-46678-0_1 Google ScholarGoogle ScholarCross RefCross Ref
  75. Benjamin C. Pierce. 2002. Types and Programming Languages (1st ed.). The MIT Press. isbn:0262162091 https://doi.org/10.5555/509043Google ScholarGoogle Scholar
  76. Riccardo Pucella and Jesse A. Tov. 2008. Haskell Session Types with (Almost) No Class. In Haskell Symposium. 25–36. https://doi.org/10.1145/1411286.1411290 Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Zesen Qian, G. A. Kavvos, and Lars Birkedal. 2021. Client-Server Sessions in Linear Logic. PACMPL, 5, ICFP (2021), 1–31. https://doi.org/10.1145/3473567 Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Jason Reed. 2009. A Hybrid Logical Framework. Ph.D. Dissertation. Carnegie Mellon University.Google ScholarGoogle Scholar
  79. Jason Reed. 2009. A Judgmental Deconstruction of Modal Logic. http://www.cs.cmu.edu/~jcreed/papers/jdml.pdf Unpublished manuscript.Google ScholarGoogle Scholar
  80. Pedro Rocha and Luís Caires. 2021. Propositions-as-Types and Shared State. NOVA LINCS.Google ScholarGoogle Scholar
  81. Arjen Rouvoet, Robbert Krebbers, and Eelco Visser. 2021. Intrinsically Typed Compilation With Nameless Labels. PACMPL, 5, POPL (2021), 1–28. https://doi.org/10.1145/3434303 Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Arjen Rouvoet, Casper Bach Poulsen, Robbert Krebbers, and Eelco Visser. 2020. Intrinsically-Typed Definitional Interpreters for Linear, Session-Typed Languages. In CPP. 284–298. https://doi.org/10.1145/3372885.3373818 Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Alceste Scalas and Nobuko Yoshida. 2016. Lightweight Session Programming in Scala. In ECOOP (LIPIcs, 56). 21:1–21:28. https://doi.org/10.4230/LIPIcs.ECOOP.2016.21 Google ScholarGoogle ScholarCross RefCross Ref
  84. Matthieu Sozeau. 2009. A New Look at Generalized Rewriting in Type Theory. JFR, 2, 1 (2009), 41–62. https://doi.org/10.6092/issn.1972-5787/1574 Google ScholarGoogle ScholarCross RefCross Ref
  85. Joseph Tassarotti, Ralf Jung, and Robert Harper. 2017. A Higher-Order Logic for Concurrent Termination-Preserving Refinement. In ESOP (LNCS, Vol. 10201). 909–936. https://doi.org/10.1007/978-3-662-54434-1_34 Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Peter Thiemann. 2019. Intrinsically-Typed Mechanized Semantics for Session Types. In PPDP. 19:1–19:15. https://doi.org/10.1145/3354166.3354184 Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. Bernardo Toninho. 2015. A Logical Foundation for Session-Based Concurrent Computation. Ph.D. Dissertation. Carnegie Mellon University and New University of Lisbon.Google ScholarGoogle Scholar
  88. Bernardo Toninho, Luís Caires, and Frank Pfenning. 2013. Higher-Order Processes, Functions, and Sessions: A Monadic Integration. In ESOP (LNCS, Vol. 7792). 350–369. https://doi.org/10.1007/978-3-642-37036-6_20 Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Vasco T. Vasconcelos. 2012. Fundamentals of Session Types. I&C, 217 (2012), 52–70. https://doi.org/10.1016/j.ic.2012.05.002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Philip Wadler. 2012. Propositions as Sessions. In ICFP. 273–286. https://doi.org/10.1145/2364527.2364568 Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Andrew K. Wright and Matthias Felleisen. 1994. A Syntactic Approach to Type Soundness. I&C, 115, 1 (1994), 38–94. https://doi.org/10.1006/inco.1994.1093 Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. Dan Zhang, Dragan Bosnacki, Mark van den Brand, Cornelis Huizing, Bart Jacobs, Ruurd Kuiper, and Anton Wijs. 2016. Verifying Atomicity Preservation and Deadlock Freedom of a Generic Shared Variable Mechanism Used in Model-To-Code Transformations. In MODELSWARD (CCIS, Vol. 692). 249–273. https://doi.org/10.1007/978-3-319-66302-9_13 Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Connectivity graphs: a method for proving deadlock freedom based on separation logic

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!