A Semantic Basis for Local Reasoning
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Semantics of types for mutable state
Semantics of types for mutable state
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A step-indexed model of substructural state
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Variables as Resource in Hoare Logics
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
A very modal model of a modern, major, general type system
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Resources, concurrency, and local reasoning
Theoretical Computer Science
Local Action and Abstract Separation Logic
LICS '07 Proceedings of the 22nd Annual IEEE Symposium on Logic in Computer Science
Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations
Journal of Automated Reasoning
Multimodal Separation Logic for Reasoning About Operational Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Formal verification of a realistic compiler
Communications of the ACM - Barbara Liskov: ACM's A.M. Turing Award Winner
A Fresh Look at Separation Algebras and Share Accounting
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A theory of indirection via approximation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation logic for small-step cminor
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Oracle semantics for concurrent separation logic
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
The next 700 separation logics
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Abstraction and refinement for local reasoning
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Step-Indexed Kripke Model of Separation Logic for Storable Locks
Electronic Notes in Theoretical Computer Science (ENTCS)
CompCertTSO: A Verified Compiler for Relaxed-Memory Concurrency
Journal of the ACM (JACM)
Hi-index | 0.00 |
Soundness proofs of program logics such as Hoare logics and type systems are often made easier by decorating the operational semantics with information that is useful in the proof. However, modifying the operational semantics to carry around such information can make it more difficult to show that the operational semantics corresponds to what actually occurs on a real machine. In this work we present a program logic framework targeting operational semantics in Curry-style---that is, operational semantics without proof decorations such as separation algebras, share models, and step indexes. Although we target Curry-style operational semantics, our framework permits local reasoning via the frame rule and retains expressive assertions in the program logic. Soundness of the program logic is derived mechanically from simple properties of primitive commands and expressions. We demonstrate our framework by deriving a separation logic for the model of a core imperative programming language with external function calls. We also apply our framework in a more realistic setting in the soundness proof of a separation logic for CompCert's Cminor. Our proofs are machine-checked in Coq.