Abstraction and specification in program development
Abstraction and specification in program development
Operating system concepts (3rd ed.)
Operating system concepts (3rd ed.)
Toward reliable modular programs
Toward reliable modular programs
Abstract types have existential types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
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
A Semantic Basis for Local Reasoning
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Local reasoning for stateful programs
Local reasoning for stateful programs
Local reasoning about a copying garbage collector
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Possible worlds and resources: the semantics of BI
Theoretical Computer Science - Mathematical foundations of programming semantics
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of Separation-Logic Typing and Higher-Order Frame Rules
LICS '05 Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
Towards imperative modules: reasoning about invariants and sharing of mutable state
Theoretical Computer Science - Components and objects
State based ownership, reentrance, and encapsulation
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A verification methodology for model fields
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Separation logic, abstraction and inheritance
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scalable Specification and Reasoning: Challenges for Program Logic
Verified Software: Theories, Tools, Experiments
Tutorial on Separation Logic (Invited Tutorial)
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
A Simple Model of Separation Logic for Higher-Order Store
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part II
Higher-Order Separation Logic in Isabelle/HOLCF
Electronic Notes in Theoretical Computer Science (ENTCS)
Design patterns in separation logic
Proceedings of the 4th international workshop on Types in language design and implementation
Separation and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mathematical Structures in Computer Science
Local reasoning for abstraction and sharing
Proceedings of the 2009 ACM symposium on Applied Computing
A theory of indirection via approximation
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying event-driven programs using ramified frame properties
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
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
The next 700 separation logics
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Reasoning about function objects
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Step-indexed kripke models over recursive worlds
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular reasoning for deterministic parallelism
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Verifying object-oriented programs with higher-order separation logic in Coq
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Step-Indexed Kripke Model of Separation Logic for Storable Locks
Electronic Notes in Theoretical Computer Science (ENTCS)
A semantic foundation for hidden state
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Formalized verification of snapshotable trees: separation and sharing
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
LICS '12 Proceedings of the 2012 27th Annual IEEE/ACM Symposium on Logic in Computer Science
Modular reasoning about separation of concurrent data structures
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Joins: a case study in modular specification of a concurrent reentrant higher-order library
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Separation logic for object-oriented programming
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
We present a precise correspondence between separation logic and a simple notion of predicate BI, extending the earlier correspondence given between part of separation logic and propositional BI. Moreover, we introduce the notion of a BI hyperdoctrine, show that it soundly models classical and intuitionistic first- and higher-order predicate BI, and use it to show that we may easily extend separation logic to higher-order. We also demonstrate that this extension is important for program proving, since it provides sound reasoning principles for data abstraction in the presence of aliasing.