Cartesian hoare logic for verifying k-safety properties
Authors:
Open Access
- 2 June 2016
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 51 (6) , 57-69
Abstract
Unlike safety properties which require the absence of a “bad” program trace, k-safety properties stipulate the absence of a “bad” interaction between k traces. Examples of k-safety properties include transitivity, associativity, anti-symmetry, and monotonicity. This paper presents a sound and relatively complete calculus, called Cartesian Hoare Logic (CHL), for verifying k-safety properties. We also present an automated verification algorithm based on CHL and implement it in a tool called DESCARTES. We use DESCARTES to analyze user-defined relational operators in Java and demonstrate that DESCARTES is effective at verifying (or finding violations of) multiple k-safety properties.Keywords
Funding Information
- National Science Foundation (1453386)
- Air Force Research Laboratory (8750-15-2-0096, 8750-14-2-0270)
This publication has 26 references indexed in Scilit:
- Formal certification of code-based cryptographic proofsACM SIGPLAN Notices, 2009
- MapReduceCommunications of the ACM, 2008
- Relational separation logicTheoretical Computer Science, 2007
- The octagon abstract domainHigher-Order and Symbolic Computation, 2006
- DARTACM SIGPLAN Notices, 2005
- A Tool for Checking ANSI-C Programs2004
- Simple relational correctness proofs for static analyses and program transformationsACM SIGPLAN Notices, 2004
- Language-based information-flow securityIEEE Journal on Selected Areas in Communications, 2003
- Bounded Model Checking2003
- Translation validation1998