Abstract
Variants of Kleene algebra have been used to provide foundations of reasoning about programs, for instance by representing Hoare Logic (HL) in algebra. That work has generally emphasised program correctness, i.e., proving the absence of bugs. Recently, Incorrectness Logic (IL) has been advanced as a formalism for the dual problem: proving the presence of bugs. IL is intended to underpin the use of logic in program testing and static bug finding. Here, we use a Kleene algebra with diamond operators and countable joins of tests, which embeds IL, and which also is complete for reasoning about the image of the embedding. Next to embedding IL, the algebra is able to embed HL, and allows making connections between IL and HL specifications. In this sense, it unifies correctness and incorrectness reasoning in one formalism.
Cite
CITATION STYLE
Möller, B., O’Hearn, P., & Hoare, T. (2021). On Algebra of Program Correctness and Incorrectness. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 13027 LNCS, pp. 325–343). Springer Science and Business Media Deutschland GmbH. https://doi.org/10.1007/978-3-030-88701-8_20
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.