BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Automatic verification of programs with complex data structure.
Automatic verification of programs with complex data structure.
Local reasoning for stateful programs
Local reasoning for stateful programs
Simple relational correctness proofs for static analyses and program transformations
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A case study of C source code verification: the Schorr-Waite algorithm
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
A logic for information flow in object-oriented programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types, bytes, and separation logic
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theoretical Computer Science
Scalable Shape Analysis for Systems Code
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Proving that non-blocking algorithms don't block
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal certification of code-based cryptographic proofs
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical Tactics for Separation Logic
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Structuring the verification of heap-manipulating programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming with angelic nondeterminism
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Separation logic for small-step cminor
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Verification of Information Flow and Access Control Policies with Dependent Types
SP '11 Proceedings of the 2011 IEEE Symposium on Security and Privacy
Relational verification using product programs
FM'11 Proceedings of the 17th international conference on Formal methods
Separation logic adapted for proofs by rewriting
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
A marriage of rely/guarantee and separation logic
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Proving acceptability properties of relaxed nondeterministic approximate programs
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
On construction of a library of formally verified low-level arithmetic functions
Innovations in Systems and Software Engineering
Hi-index | 0.00 |
Relational methods are gaining growing acceptance for specifying and verifying properties defined in terms of the execution of two programs--notions such as simulation, observational equivalence, non-interference, and continuity can be elegantly cast in this setting. In previous work, we have proposed program product construction as a technique to reduce relational verification to standard verification. This method hinges on the ability to interpret relational assertions as traditional predicates, which becomes problematic when considering assertions from relational separation logic. We report in this article an alternative method that overcomes this difficulty, defined as a relational weakest precondition calculus based on separation logic and formalized in the Coq proof assistant. The formalization includes an application to the formal verification of the Schorr-Waite graph marking algorithm. We discuss additional variants of relational separation logic inspired by the standard notions of partial and total correctness, and extensions of the logic to handle non-structurally equivalent programs.