Outcome Logic: A Unifying Foundation for Correctness and Incorrectness Reasonin...
summary
Outcome Logic (OL) replaces a single postcondition with outcome-indexed assertions over sets of states, adds an outcome conjunction that composes reachable outcomes, and requires non-vacuous reachability so reported bugs correspond to real executions. OL is parametric over a monad (nondeterminism, exceptions, probability), proves any false OL spec can be disproven inside the logic, and quantifies probabilities (example: prove success with 99%). Semantics use finite traces so OL captures partial but not full total correctness.
AI-written summary · about
chapters (10)
- 0:00Outcome Logic intro
- 1:04Hoare Logic limits for bugs
- 2:49Outcome Logic for branching
- 5:13Describing bugs with conjunction
- 6:59Bug reachability formalized
- 8:02Outcome vs Incorrectness Logic
- 9:25Disproving specs in Outcome Logic
- 10:30Outcome Logic for effects
- 11:13Unifying correctness and incorrectness
- 11:38Q&A
