Algebraic laws for nondeterminism and concurrency
Journal of the ACM (JACM)
Introduction to mathematical logic (3rd ed.)
Introduction to mathematical logic (3rd ed.)
The C programming language
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
A calculus of mobile processes, II
Information and Computation
Operational reasoning for functions with local state
Higher order operational techniques in semantics
Verification of Array, Record, and Pointer Operations in Pascal
ACM Transactions on Programming Languages and Systems (TOPLAS)
Assignment and Procedure Call Proof Rules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specifying the Semantics of while Programs: A Tutorial and Critique of a Paper by Hoare and Lauer
ACM Transactions on Programming Languages and Systems (TOPLAS)
An axiomatic basis for computer programming
Communications of the ACM
Modal logic
Types and programming languages
Types and programming languages
Region-based memory management in cyclone
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Unrestricted procedure calls in Hoare's logic
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN 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
On the Proper Treatment or Referencing, Dereferencing and Assignment
Proceedings of the Fourth Colloquium on Automata, Languages and Programming
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
From Denotational to Operational and Axiomatic Semantics for ALGOL-like Languages: an Overview
Proceedings of the Carnegie Mellon Workshop on Logic of Programs
A Fully Abstract Game Semantics for General References
LICS '98 Proceedings of the 13th Annual IEEE Symposium on Logic in Computer Science
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A compositional logic for polymorphic higher-order functions
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
From process logic to program logic
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Elimination of spatial connectives in static spatial logics
Theoretical Computer Science - Expressiveness in concurrency
An Observationally Complete Program Logic for Imperative Higher-Order Frame Rules
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
From separation logic to first-order logic
FOSSACS'05 Proceedings of the 8th international conference on Foundations of Software Science and Computation Structures
Small bisimulations for reasoning about higher-order imperative programs
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Certified assembly programming with embedded code pointers
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A logical analysis of aliasing in imperative higher-order functions
Journal of Functional Programming
Towards type-theoretic semantics for transactional concurrency
Proceedings of the 4th international workshop on Types in language design and implementation
Hoare type theory, polymorphism and separation1
Journal of Functional Programming
Who: a verifier for effectful higher-order programs
Proceedings of the 2009 ACM SIGPLAN workshop on ML
Reasoning about Entanglement and Separability in Quantum Higher-Order Functions
UC '09 Proceedings of the 8th International Conference on Unconventional Computation
A general framework for sound and complete Floyd-Hoare logics
ACM Transactions on Computational Logic (TOCL)
Logical reasoning for higher-order functions with local state
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
Abstract predicates and mutable adts in hoare type theory
ESOP'07 Proceedings of the 16th European conference on Programming
A realizability model for impredicative Hoare type theory
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Reasoning about function objects
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Characteristic formulae for the verification of imperative programs
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Descriptive and relative completeness of logics for higher-order functions
ICALP'06 Proceedings of the 33rd international conference on Automata, Languages and Programming - Volume Part II
CSL'06 Proceedings of the 20th international conference on Computer Science Logic
Program logics for sequential higher-order control
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Reasoning about data-parallel pointer programs in a modal extension of separation logic
AMAST'06 Proceedings of the 11th international conference on Algebraic Methodology and Software Technology
A unified theory of program logics: an approach based on the π-calculus
VoCS'08 Proceedings of the 2008 international conference on Visions of Computer Science: BCS International Academic Conference
Taming non-compositionality using new binders
UC'07 Proceedings of the 6th international conference on Unconventional Computation
Hi-index | 0.00 |
We present a compositional program logic for call-by-value imperative higher-order functions with general forms of aliasing, which can arise from the use of reference names as function parameters, return values, content of references and parts of data structures. The program logic extends our earlier logic for alias-free imperative higher-order functions with new modal operators which serve as building blocks for clean structural reasoning about programs and data structures in the presence of aliasing. This has been an open issue since the pioneering work by Cartwright-Oppen and Morris twenty-five years ago. We illustrate usage of the logic for description and reasoning through concrete examples including a higher-order polymorphic Quicksort. The logical status of the new operators is clarified by translating them into (in)equalities of reference names. The logic is observationally complete in the sense that two programs are observationally indistinguishable if they satisfy the same set of assertions.