Outcome Logic: A Unified Approach to the Metatheory of Program Logics with Branching Effects
Noam Zilberstein

TL;DR
This paper develops a comprehensive metatheory for Outcome Logic, a unified framework for reasoning about programs with diverse branching effects, including loops, enabling more flexible and reusable proofs.
Contribution
It provides a more complete proof system for Outcome Logic, accommodating general looping and various branching types, advancing the theoretical foundation of program logics.
Findings
Established a relatively complete proof system for Outcome Logic
Demonstrated applicability to multiple branching effects
Facilitated reuse of proof fragments across different specifications
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Software Engineering Research · Software Testing and Debugging Techniques
