Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
167 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
42 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

Outcome Logic: A Unified Approach to the Metatheory of Program Logics with Branching Effects (2401.04594v2)

Published 9 Jan 2024 in cs.LO and cs.PL

Abstract: Starting with Hoare Logic over 50 years ago, numerous program logics have been devised to reason about the diverse programs encountered in the real world. This includes reasoning about computational effects, particularly those effects that cause the program execution to branch into multiple paths due to, .e.g nondeterministic or probabilistic choice. The recently introduced Outcome Logic reimagines Hoare Logic with branching at its core, using an algebraic representation of choice to capture programs that branch into many outcomes. In this article, we expand on prior Outcome Logic papers in order to give a more authoritative and comprehensive account of the metatheory. This includes a relatively complete proof system for Outcome Logic with the ability to reason about general purpose looping. We also show that this proof system applies to programs with various types of branching and that it facilitates the reuse of proof fragments across different kinds of specifications.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (58)
  1. Krzysztof R. Apt. 1981. Ten Years of Hoare’s Logic: A Survey–Part I. ACM Trans. Program. Lang. Syst. 3, 4 (oct 1981), 431–483. https://doi.org/10.1145/357146.357150
  2. Sufficient Incorrectness Logic: SIL and Separation SIL. arXiv:2310.18156 [cs.LO]
  3. An Assertion-Based Program Logic for Probabilistic Programs. In Programming Languages and Systems. Springer International Publishing, Cham, 117–144. https://doi.org/10.1007/978-3-319-89884-1_5
  4. Weighted Programming: A Programming Paradigm for Specifying Mathematical Models. Proc. ACM Program. Lang. 6, OOPSLA1, Article 66 (apr 2022), 30 pages. https://doi.org/10.1145/3527310
  5. Quantitative Separation Logic: A Logic for Reasoning about Probabilistic Pointer Programs. Proc. ACM Program. Lang. 3, POPL, Article 34 (Jan 2019), 29 pages. https://doi.org/10.1145/3290347
  6. Automatic Termination Proofs for Programs with Shape-Shifting Heaps. In Computer Aided Verification. Springer Berlin Heidelberg, Berlin, Heidelberg, 386–400. https://doi.org/10.1007/11817963_35
  7. Better Termination Proving through Cooperation. In Computer Aided Verification. Springer Berlin Heidelberg, Berlin, Heidelberg, 413–429. https://doi.org/10.1007/978-3-642-39799-8_28
  8. Manfred Broy and Martin Wirsing. 1981. On the Algebraic Specification of Nondeterministic Programming Languages. In Proceedings of the 6th Colloquium on Trees in Algebra and Programming (CAAP ’81). Springer-Verlag, Berlin, Heidelberg, 162–179. https://doi.org/10.5555/648216.750907
  9. A Logic for Locally Complete Abstract Interpretations. In 2021 36th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). 1–13. https://doi.org/10.1109/LICS52264.2021.9470608
  10. A Correctness and Incorrectness Program Logic. J. ACM 70, 2, Article 15 (mar 2023), 45 pages. https://doi.org/10.1145/3582267
  11. Local Action and Abstract Separation Logic. In 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007). 366–378. https://doi.org/10.1109/LICS.2007.30
  12. Disproving Termination with Overapproximation. In Proceedings of the 14th Conference on Formal Methods in Computer-Aided Design (Lausanne, Switzerland) (FMCAD ’14). FMCAD Inc, Austin, Texas, 67–74. https://doi.org/10.1109/FMCAD.2014.6987597
  13. Termination Proofs for Systems Code. SIGPLAN Not. 41, 6 (jun 2006), 415–426. https://doi.org/10.1145/1133255.1134029
  14. Termination Proofs for Systems Code. In Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation (Ottawa, Ontario, Canada) (PLDI ’06). Association for Computing Machinery, New York, NY, USA, 415–426. https://doi.org/10.1145/1133981.1134029
  15. Stephen A. Cook. 1978. Soundness and Completeness of an Axiom System for Program Verification. SIAM J. Comput. 7, 1 (feb 1978), 70–90. https://doi.org/10.1137/0207005
  16. An Abstract Interpretation Framework for Refactoring with Application to Extract Methods with Contracts. In Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications (Tucson, Arizona, USA) (OOPSLA ’12). Association for Computing Machinery, New York, NY, USA, 213–232. https://doi.org/10.1145/2384616.2384633
  17. Thibault Dardinier and Peter Müller. 2023. Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version). https://doi.org/10.48550/ARXIV.2301.10037
  18. Edsko de Vries and Vasileios Koutavas. 2011. Reverse Hoare Logic. In Software Engineering and Formal Methods. Springer Berlin Heidelberg, Berlin, Heidelberg, 155–171. https://doi.org/10.1007/978-3-642-24690-6_12
  19. Jerry den Hartog. 2002. Probabilistic Extensions of Semantical Models. Ph.D. Dissertation. Vrije Universiteit Amsterdam. https://core.ac.uk/reader/15452110
  20. J. I. den Hartog. 1999. Verifying Probabilistic Programs Using a Hoare like Logic. In Advances in Computing Science — ASIAN’99, P. S. Thiagarajan and Roland Yap (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 113–125.
  21. Edsger W. Dijkstra. 1975. Guarded Commands, Nondeterminacy and Formal Derivation of Programs. Commun. ACM 18, 8 (Aug 1975), 453–457. https://doi.org/10.1145/360933.360975
  22. Edsger W. Dijkstra. 1976. A Discipline of Programming. Prentice-Hall. I–XVII, 1–217 pages.
  23. Edsger W. Dijkstra and Carel S. Schölten. 1990. The strongest postcondition. Springer New York, New York, NY, 209–215. https://doi.org/10.1007/978-1-4612-3228-5_12
  24. Scaling Static Analyses at Facebook. Commun. ACM 62, 8 (jul 2019), 62–70. https://doi.org/10.1145/3338112
  25. Simon Docherty. 2019. Bunched logics: a uniform approach. Ph.D. Dissertation. University College London. https://discovery.ucl.ac.uk/id/eprint/10073115/
  26. Robert W. Floyd. 1967a. Assigning Meanings to Programs. In Mathematical Aspects of Computer Science (Proceedings of Symposia in Applied Mathematics, Vol. 19). American Mathematical Society, Providence, Rhode Island, 19–32.
  27. Robert W. Floyd. 1967b. Nondeterministic Algorithms. J. ACM 14, 4 (oct 1967), 636–644. https://doi.org/10.1145/321420.321422
  28. Jonathan S. Golan. 2003. Semirings and Affine Equations over Them. Springer Dordrecht. https://doi.org/10.1007/978-94-017-0383-3
  29. C. A. R. Hoare. 1969. An Axiomatic Basis for Computer Programming. Commun. ACM 12, 10 (Oct. 1969), 576–580. https://doi.org/10.1145/363235.363259
  30. C. A. R. Hoare. 1978. Some Properties of Predicate Transformers. J. ACM 25, 3 (Jul 1978), 461–480. https://doi.org/10.1145/322077.322088
  31. Iris from the ground up: A modular foundation for higher-order concurrent separation logic. Journal of Functional Programming 28 (2018). https://doi.org/10.1017/S0956796818000151
  32. Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Mumbai, India) (POPL ’15). Association for Computing Machinery, New York, NY, USA, 637–650. https://doi.org/10.1145/2676726.2676980
  33. Benjamin Lucien Kaminski. 2019. Advanced weakest precondition calculi for probabilistic programs. Dissertation. RWTH Aachen University, Aachen. https://doi.org/10.18154/RWTH-2019-01829
  34. Georg Karner. 2004. Continuous monoids and semirings. Theoretical Computer Science 318, 3 (2004), 355–372. https://doi.org/10.1016/j.tcs.2004.01.020
  35. Dexter Kozen. 1979. Semantics of probabilistic programs. In 20th Annual Symposium on Foundations of Computer Science (SFCS ’79). 101–114. https://doi.org/10.1109/SFCS.1979.38
  36. Dexter Kozen. 1983. A Probabilistic PDL. In Proceedings of the Fifteenth Annual ACM Symposium on Theory of Computing (STOC ’83). Association for Computing Machinery, New York, NY, USA, 291–297. https://doi.org/10.1145/800061.808758
  37. Dexter Kozen. 1997. Kleene Algebra with Tests. ACM Trans. Program. Lang. Syst. 19, 3 (May 1997), 427–443. https://doi.org/10.1145/256167.256195
  38. Dexter Kozen and Jerzy Tiuryn. 2001. On the completeness of propositional Hoare logic. Information Sciences 139, 3 (2001), 187–195. https://doi.org/10.1016/S0020-0255(01)00164-5 Relational Methods in Computer Science.
  39. Finding Real Bugs in Big Programs with Incorrectness Logic. Proc. ACM Program. Lang. 6, OOPSLA1, Article 81 (Apr 2022), 27 pages. https://doi.org/10.1145/3527325
  40. Richard J. Lipton. 1977. A necessary and sufficient condition for the existence of hoare logics. In 18th Annual Symposium on Foundations of Computer Science (sfcs 1977). 1–6. https://doi.org/10.1109/SFCS.1977.1
  41. Exact Separation Logic: Towards Bridging the Gap Between Verification and Bug-Finding. In 37th European Conference on Object-Oriented Programming (ECOOP 2023) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 263). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 19:1–19:27. https://doi.org/10.4230/LIPIcs.ECOOP.2023.19
  42. Ernest G. Manes. 1976. Algebraic Theories. Springer New York. https://doi.org/10.1007/978-1-4612-9860-1
  43. Zohar Manna and Amir Pnueli. 1974. Axiomatic Approach to Total Correctness of Programs. Acta Inf. 3, 3 (sep 1974), 243–263. https://doi.org/10.1007/BF00288637
  44. Eugenio Moggi. 1991. Notions of computation and monads. Information and Computation 93, 1 (1991), 55–92. https://doi.org/10.1016/0890-5401(91)90052-4
  45. On Algebra of Program Correctness and & Incorrectness. In Relational and Algebraic Methods in Computer Science: 19th International Conference, RAMiCS 2021, Marseille, France, November 2–5, 2021, Proceedings (Marseille, France). Springer-Verlag, Berlin, Heidelberg, 325–343. https://doi.org/10.1007/978-3-030-88701-8_20
  46. Probabilistic Predicate Transformers. ACM Trans. Program. Lang. Syst. 18, 3 (may 1996), 325–353. https://doi.org/10.1145/229542.229547
  47. Peter W. O’Hearn. 2019. Incorrectness Logic. Proc. ACM Program. Lang. 4, POPL, Article 10 (Dec. 2019), 32 pages. https://doi.org/10.1145/3371078
  48. Peter W. O’Hearn and David J. Pym. 1999. The Logic of Bunched Implications. The Bulletin of Symbolic Logic 5, 2 (1999), 215–244.
  49. Vaughan R. Pratt. 1976. Semantical Considerations on Floyd-Hoare Logic. In 17th Annual Symposium on Foundations of Computer Science (sfcs 1976). 109–121. https://doi.org/10.1109/SFCS.1976.27
  50. Local Reasoning About the Presence of Bugs: Incorrectness Separation Logic. In Computer Aided Verification. Springer International Publishing, Cham, 225–252. https://doi.org/10.1007/978-3-030-53291-8_14
  51. Concurrent Incorrectness Separation Logic. Proc. ACM Program. Lang. 6, POPL, Article 34 (Jan 2022), 29 pages. https://doi.org/10.1145/3498695
  52. Compositional Non-Termination Proving. https://www.soundandcomplete.org/papers/Unter.pdf
  53. Robert Rand and Steve Zdancewic. 2015. VPHL: A Verified Partial-Correctness Logic for Probabilistic Programs. In Electronic Notes in Theoretical Computer Science, Vol. 319. 351–367. https://doi.org/10.1016/j.entcs.2015.12.021 The 31st Conference on the Mathematical Foundations of Programming Semantics (MFPS XXXI).
  54. Probabilistic Guarded KAT Modulo Bisimilarity: Completeness and Complexity. In 50th International Colloquium on Automata, Languages, and Programming (ICALP 2023) (Leibniz International Proceedings in Informatics (LIPIcs), Vol. 261). Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl, Germany, 136:1–136:20. https://doi.org/10.4230/LIPIcs.ICALP.2023.136
  55. Hongseok Yang. 2001. Local Reasoning for Stateful Programs. Ph.D. Dissertation. USA. Advisor(s) Reddy, Uday S. https://doi.org/10.5555/933728
  56. Linpeng Zhang and Benjamin Lucien Kaminski. 2022. Quantitative Strongest Post: A Calculus for Reasoning about the Flow of Quantitative Information. Proc. ACM Program. Lang. 6, OOPSLA1, Article 87 (apr 2022), 29 pages. https://doi.org/10.1145/3527331
  57. Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasoning. Proc. ACM Program. Lang. 7, OOPSLA1, Article 93 (Apr 2023), 29 pages. https://doi.org/10.1145/3586045
  58. Outcome Separation Logic: Local Reasoning for Correctness and Incorrectness with Computational Effects. (2023). https://doi.org/10.48550/arXiv.2305.04842 arXiv:2305.04842 [cs.LO]
Citations (2)

Summary

We haven't generated a summary for this paper yet.