
arXiv: 1703.00055
Relational properties describe multiple runs of one or more programs. They characterize many useful notions of security, program refinement, and equivalence for programs with diverse computational effects, and they have received much attention in the recent literature. Rather than developing separate tools for special classes of effects and relational properties, we advocate using a general purpose proof assistant as a unifying framework for the relational verification of effectful programs. The essence of our approach is to model effectful computations using monads and to prove relational properties on their monadic representations, making the most of existing support for reasoning about pure programs. We apply this method in F* and evaluate it by encoding a variety of relational program analyses, including information flow control, program equivalence and refinement at higher order, correctness of program optimizations and game-based cryptographic security. By relying on SMT-based automation, unary weakest preconditions, user-defined effects, and monadic reification, we show that, compared to unary properties, verifying relational properties requires little additional effort from the F* programmer.
CPP'18 extended version with the missing ERC acknowledgement
Weakest Preconditions, Program Verification, FOS: Computer and information sciences, Information-Flow Control, Relational Verification, Computer Science - Programming Languages, Computer Science - Cryptography and Security, Program Equivalence and Refinement, SMT-based Automation, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL], Monadic Effects, Certified Optimizations, Proof Assistants, Cryptography and Security (cs.CR), [INFO.INFO-CR] Computer Science [cs]/Cryptography and Security [cs.CR], Programming Languages (cs.PL)
Weakest Preconditions, Program Verification, FOS: Computer and information sciences, Information-Flow Control, Relational Verification, Computer Science - Programming Languages, Computer Science - Cryptography and Security, Program Equivalence and Refinement, SMT-based Automation, [INFO.INFO-PL] Computer Science [cs]/Programming Languages [cs.PL], Monadic Effects, Certified Optimizations, Proof Assistants, Cryptography and Security (cs.CR), [INFO.INFO-CR] Computer Science [cs]/Cryptography and Security [cs.CR], Programming Languages (cs.PL)
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 14 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Top 10% | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Top 10% |
