Modular product programs

M Eilers, P Müller, S Hitz - ACM Transactions on Programming …, 2019 - dl.acm.org
ACM Transactions on Programming Languages and Systems (TOPLAS), 2019dl.acm.org
Many interesting program properties like determinism or information flow security are
hyperproperties, that is, they relate multiple executions of the same program.
Hyperproperties can be verified using relational logics, but these logics require dedicated
tool support and are difficult to automate. Alternatively, constructions such as self-
composition represent multiple executions of a program by one product program, thereby
reducing hyperproperties of the original program to trace properties of the product. However …
Many interesting program properties like determinism or information flow security are hyperproperties, that is, they relate multiple executions of the same program. Hyperproperties can be verified using relational logics, but these logics require dedicated tool support and are difficult to automate. Alternatively, constructions such as self-composition represent multiple executions of a program by one product program, thereby reducing hyperproperties of the original program to trace properties of the product. However, existing constructions do not fully support procedure specifications, for instance, to derive the determinism of a caller from the determinism of a callee, making verification non-modular.
We present modular product programs, a novel kind of product program that permits hyperproperties in procedure specifications and, thus, can reason about calls modularly. We provide a general formalization of our product construction and prove it sound and complete. We demonstrate its expressiveness by applying it to information flow security with advanced features such as declassification and termination-sensitivity. Modular product programs can be verified using off-the-shelf verifiers; we have implemented our approach for both secure information flow and general hyperproperties using the Viper verification infrastructure. Our evaluation demonstrates that modular product programs can be used to prove hyperproperties for challenging examples in reasonable time.
ACM Digital Library