Live briefing
Everything about Separation logic
Concept in computer science
In computer science, separation logic is an extension of Hoare logic, a way of reasoning about programs. It was developed by John C. Reynolds, Peter O'Hearn, Samin Ishtiaq and Hongseok Yang, drawing upon early work by Rod Burstall. The assertion language of separation logic is a special case of the logic of bunched implications (BI). A CACM review article by O'Hearn charts developments in the subject to early 2019. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Separation logicA 5-minute orientation
- Skim a recent paper: Simuliris: a separation logic framework for verifying concurrent program optimizationsInfluential work since 2022
- Pick up a classic book: LogikThe most-reprinted book on the subject
- Read the landmark paper: Phase Separation by Low Complexity Domains Promotes Stress Granule Assembly and Drives Pathological FibrillizationCited 2,894 times
- Go sideways: Bunched logicA closely related topic
- Go sideways: Interference freedomA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🏆 Landmark papers (most cited)
Phase Separation by Low Complexity Domains Promotes Stress Granule Assembly and Drives Pathological Fibrillization
A semantics for concurrent separation logic
Relational separation logic
Separation logic
Permission accounting in separation logic
Concurrent separation logic
Concurrent Separation Logic and Operational Semantics
Separation logic and abstraction
🆕 Influential since 2022
Simuliris: a separation logic framework for verifying concurrent program optimizations
CN: Verifying Systems C Code with Separation-Logic Refinement Types
Concurrent incorrectness separation logic
Lilac: A Modal Separation Logic for Conditional Probability
Asynchronous Probabilistic Couplings in Higher-Order Separation Logic
📚 Books worth reading
LogikImmanuel Kant · 1800
Structure and Interpretation of Computer Programs (SICP)Harold Abelson, Gerald Jay Sussman · 1985
Clean CodeRobert C. Martin · 2008- 📕Practical foundations for programming languagesHarper, Robert · 2012
Ethnicity and raceStephen E. Cornell, Douglas Hartmann · 1997
Sacrificial LogicsAllison Weir · 1995
Digital systems testing and testable designMiron Abramovici · 1990
Metalevel architectures and separation of crosscutting concernsAkinori Yonezawa, Satoshi Matsuoka · 2001
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Bunched logic Bunched logic is a variety of substructural logic proposed by Peter O'Hearn and David Pym. Bunched logic provides primitives for reasoning about resource…
- Interference freedom In computer science, interference freedom is a technique for proving partial correctness of concurrent programs with shared variables. Hoare logic had…
- Split-biquaternion In mathematics, a split-biquaternion is a hypercomplex number of the form q = w + x i + y j + z k , {\displaystyle q=w+x\mathrm {i} +y\mathrm {j} +z\mathrm…
- Local system In mathematics, a local system (or a system of local coefficients) on a topological space X is a tool from algebraic topology which interpolates between…
- Classifying space for U(n) In mathematics, the classifying space for the unitary group U(n) is a space BU(n) together with a universal bundle EU(n) such that any hermitian bundle…
- Partial isometry In functional analysis, a partial isometry is a linear map between Hilbert spaces such that it is an isometry on the orthogonal complement of its kernel…
- Analytic torsion In mathematics, Reidemeister torsion (or R-torsion, or Reidemeister–Franz torsion) is a topological invariant of manifolds introduced by Kurt Reidemeister…
- Parallelogram of force The parallelogram of forces is a method for solving (or visualizing) the results of applying two forces to an object. When more than two forces are involved…