Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties (extended version)
Thibault Dardinier, Peter M\"uller

TL;DR
This paper introduces Hyper Hoare Logic, a novel proof system that generalizes traditional Hoare logic to reason about complex hyperproperties of programs, including both proving and disproving such properties.
Contribution
It presents Hyper Hoare Logic, capable of expressing and reasoning about arbitrary sets of states and hyperproperties, unifying proof and disproof within a single framework.
Findings
Hyper Hoare Logic is sound and complete.
It captures proof principles for hyperproperties naturally.
All results are formalized in Isabelle/HOL.
Abstract
Hoare logics are proof systems that allow one to formally establish properties of computer programs. Traditional Hoare logics prove properties of individual program executions (such as functional correctness). Hoare logic has been generalized to prove also properties of multiple executions of a program (so-called hyperproperties, such as determinism or non-interference). These program logics prove the absence of (bad combinations of) executions. On the other hand, program logics similar to Hoare logic have been proposed to disprove program properties (e.g., Incorrectness Logic), by proving the existence of (bad combinations of) executions. All of these logics have in common that they specify program properties using assertions over a fixed number of states, for instance, a single pre- and post-state for functional properties or pairs of pre- and post-states for non-interference. In this…
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 · Distributed systems and fault tolerance · Advanced Software Engineering Methodologies
