RHLE: Modular Deductive Verification of Relational ∀∃-Properties

Rob Dickerson, Qianchuan Ye, Michael K. Zhang , and Benjamin Delaware

abstract

Hoare-style program logics are a popular and effective technique for software verification. Relational program logics are an instance of this approach that enable reasoning about relationships between the execution of two or more programs. Existing relational program logics have focused on verifying that all runs of a collection of programs do not violate a specified relational behavior. Several important relational properties, including refinement and noninterference, do not fit into this category, as they also mandate the existence of specific desirable executions. This paper presents RHLE, a logic for verifying these sorts of relational ∀∃-properties. Key to our approach is a novel form of function specification that employs a variant of ghost variables to ensure that valid implementations exhibit certain behaviors. We have used a program verifier based on RHLE to verify a diverse set of relational ∀∃-properties drawn from the literature.