Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3358499.3361221acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Modal assertions for actor correctness

Published: 22 October 2019 Publication History
  • Get Citation Alerts
  • Abstract

    The actor model is a well-established way to approach to modularly designing and implementing concurrent and/or distributed systems, seeing increasing adoption in industry. But deductive verification tailored to actor programs remains underexplored; general concurrent logics could be used, but the logics are complex and full of features to reason about behaviors the actor model strives to avoid.
    We explore a relatively lightweight approach of extending a system for proving sequential program correctness with means to prove safety properties of actor programs (currently, assuming no faults). We borrow ideas from hybrid logic, a modal logic for stating assertions are true at a particular point in a model (in this case, a particular actor’s local state). To make such assertions useful, we stabilize them using rely-guarantee-style reasoning over local actor states, and only permit sending stable versions of these assertions to other actors. By carefully restricting the formation of assertions that a proposition is true at a certain actor, we avoid the need for actors to handle each others’ rely-guarantee relations explicitly. Finally, we argue that the approach requires only modest adjustments beyond applying traditional sequential techniques to actors with immutable messages, by implementing most of the logic as a Dafny library.

    References

    [1]
    Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Peter H Schmitt, and Mattias Ulbrich. 2016. Deductive Software Verification–The KeY Book. Springer.
    [2]
    Mehdi Bagherzadeh and Hridesh Rajan. 2015. Panini: A Concurrent Programming Model for Solving Pervasive and Oblivious Interference. In MODULARITY 2015.
    [3]
    Mehdi Bagherzadeh and Hridesh Rajan. 2017. Order Types: Static Reasoning About Message Races in Asynchronous Message Passing Concurrency. In AGERE.
    [4]
    Bernhard Beckert and Daniel Bruns. 2013. Dynamic logic with trace semantics. In International Conference on Automated Deduction.
    [5]
    Brandon Bennett, Anthony G Cohn, Frank Wolter, and Michael Zakharyaschev. 2002. Multi-dimensional modal logic as a framework for spatio-temporal reasoning. Applied Intelligence 17, 3 (2002), 239–251.
    [6]
    Patrick Blackburn and Jerry Seligman. 1995. Hybrid languages. Journal of Logic, Language and Information 4, 3 (1995), 251–272.
    [7]
    Torben Braüner. 2010. Hybrid logic and its proof-theory. Springer.
    [8]
    Sylvan Clebsch, Sophia Drossopoulou, Sebastian Blessing, and Andy McNeil. 2015. Deny capabilities for safe, fast actors. In AGERE.
    [9]
    Jean-Louis Colaço, Mark Pantel, and Patrick Sallé. 1997. A setconstraint-based analysis of actors. In Formal Methods for Open Objectbased Distributed Systems. Springer, 107–122.
    [10]
    Ankush Desai, Amar Phanishayee, Shaz Qadeer, and Sanjit A Seshia. 2018. Compositional programming and testing of dynamic distributed systems. Proceedings of the ACM on Programming Languages 2, OOP-SLA (2018), 159.
    [11]
    Edsger W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18, 8 (Aug. 1975), 453–457.
    [12]
    Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Matthew Parkinson, and Viktor Vafeiadis. 2010. Concurrent Abstract Predicates. In ECOOP.
    [13]
    Mike Dodds, Xinyu Feng, Matthew Parkinson, and Viktor Vafeiadis. 2009. Deny-Guarantee Reasoning. In ESOP.
    [14]
    Emanuele D’Osualdo, Jonathan Kochems, and C-H Luke Ong. 2013. Automatic verification of Erlang-style concurrency. In SAS.
    [15]
    Xinyu Feng. 2009. Local Rely-Guarantee Reasoning. In POPL.
    [16]
    Michael J Fischer and Richard E Ladner. 1979. Propositional dynamic logic of regular programs. Journal of computer and system sciences 18, 2 (1979), 194–211.
    [17]
    George Gargov and Valentin Goranko. 1993. Modal logic with names. Journal of Philosophical Logic 22, 6 (1993), 607–636.
    [18]
    Valentin Goranko. 1996. Hierarchies of modal and temporal logics with reference pointers. Journal of Logic, Language and Information 5, 1 (1996), 1–24.
    [19]
    Colin S. Gordon, Michael D. Ernst, and Dan Grossman. 2013. RelyGuarantee References for Refinement Types Over Aliased Mutable Data. In PLDI.
    [20]
    Colin S. Gordon, Michael D. Ernst, Dan Grossman, and Matthew J. Parkinson. 2017. Verifying Invariants of Lock-free Data Structures with Rely-Guarantee and Refinement Types. ACM Transactions on Programming Languages and Systems (TOPLAS) 39, 3 (July 2017).
    [21]
    Colin S. Gordon, Matthew J. Parkinson, Jared Parsons, Aleks Bromfield, and Joe Duffy. 2012. Uniqueness and Reference Immutability for Safe Parallelism. In OOPSLA.
    [22]
    David Harel. 1979. First-order dynamic logic.
    [23]
    Carl Hewitt, Peter Bishop, Irene Greif, Brian Smith, Todd Matson, and Richard Steiger. 1973. Actor Induction and Meta-Evaluation. In POPL.
    [24]
    C. A. R. Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM 12, 10 (Oct. 1969), 576–580.
    [25]
    Furio Honsell and Marino Miculan. 1995. A natural deduction approach to dynamic logic. In International Workshop on Types for Proofs and Programs. Springer, 165–182.
    [26]
    C. B. Jones. 1983. Tentative Steps Toward a Development Method for Interfering Programs. ACM Transactions on Programming Languages and Systems (TOPLAS) 5, 4 (Oct. 1983), 596–619.
    [27]
    Ralf Jung, Robbert Krebbers, Jacques-Henri Jourdan, Aleš Bizjak, Lars Birkedal, and Derek Dreyer. 2018. Iris from the ground up: A modular foundation for higher-order concurrent separation logic. Journal of Functional Programming 28 (2018).
    [28]
    K Rustan M Leino. 2010. Dafny: An automatic program verifier for functional correctness. In Logic for Programming, Artificial Intelligence, and Reasoning. Springer, 348–370.
    [29]
    K. Rustan M. Leino and Wolfram Schulte. 2007. Using History Invariants to Verify Observers. In ESOP.
    [30]
    Inc. Lightbend. 2019. Akka Actors. https://akka.io
    [31]
    Nancy A. Lynch and Mark R. Tuttle. 1987. Hierarchical Correctness Proofs for Distributed Algorithms. In PODC.
    [32]
    Maarten Marx and Yde Venema. 1997. Multi-dimensional modal logic. Vol. 4. Springer Science & Business Media.
    [33]
    Filipe Militão, Jonathan Aldrich, and Luís Caires. 2014. Rely-Guarantee Protocols. In ECOOP.
    [34]
    Filipe Militão, Jonathan Aldrich, and Luís Caires. 2016. Composing Interfering Abstract Protocols. In ECOOP.
    [35]
    Aleksandar Nanevski, Ruy Ley-Wild, Ilya Sergey, and GermÃąn AndrÃľs Delbianco. 2014. Communicating State Transition Systems for Fine-Grained Concurrent Resources. In ESOP.
    [36]
    Susan Owicki and David Gries. 1976. An Axiomatic Proof Technique for Parallel Programs I. Acta Informatica (1976), 319–340. Issue 6.
    [37]
    Amir Pnueli. 1977. The Temporal Logic of Programs. In FOCS. IEEE.
    [38]
    Vaughan R Pratt. 1976. Semantical consideration on Floyd-Hoare logic. In FOCS.
    [39]
    Azalea Raad, Jules Villard, and Philippa Gardner. 2015. CoLoSL: Concurrent Local Subjective Logic. In ESOP.
    [40]
    Krister Segerberg. 1973. Two-dimensional modal logic. Journal of Philosophical logic 2, 1 (1973), 77–96.
    [41]
    Quentin Stiévenart, Jens Nicolay, Wolfgang De Meuter, and Coen De Roover. 2017. Mailbox Abstractions for Static Analysis of Actor Programs. In ECOOP.
    [42]
    Aaron Turon, Derek Dreyer, and Lars Birkedal. 2013. Unifying Refinement and Hoare-Style Reasoning in a Logic for Higher-Order Concurrency. In ICFP.
    [43]
    Viktor Vafeiadis. 2007. Modular Fine-Grained Concurrency Verification. PhD Thesis. University of Cambridge.
    [44]
    Viktor Vafeiadis and Matthew Parkinson. 2007. A Marriage of Rely/Guarantee and Separation Logic. In Concurrency Theory (CONCUR).
    [45]
    Hans Van Ditmarsch, Wiebe van Der Hoek, and Barteld Kooi. 2007. Dynamic epistemic logic. Vol. 337. Springer Science & Business Media.
    [46]
    Niki Vazou, Alexander Bakst, and Ranjit Jhala. 2015. Bounded Refinement Types. In ICFP.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    AGERE 2019: Proceedings of the 9th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control
    October 2019
    50 pages
    ISBN:9781450369824
    DOI:10.1145/3358499
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 22 October 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Actors
    2. Modal logic
    3. Rely-Guarantee

    Qualifiers

    • Research-article

    Conference

    SPLASH '19
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 19 of 35 submissions, 54%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media