VLDB 2026 Research / reviewers in the wild / expert
Peter W. O'Hearn
dblp:o/PeterWOHearn
· DBLP profile ↗
78ranked-venue papers
30as first author
7since 2021 · last 2025
0000-0001-8730-5496ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 46 · 16 first-author · 4 since 2021Theory of computation · 40 · 14 first-author · 3 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 first-authorArtificial intelligence and machine learning · 1 · 1 since 2021Systems, architecture and hardware · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Logic.py: Bridging the Gap between LLMs and Constraint SolversabstractWe present a novel approach to formalise and solve search-based problems using large language models, which significantly improves upon previous state-of-the-art results. We demonstrate the efficacy of this approach on benchmarks like the logic puzzles tasks in ZebraLogicBench. Instead of letting the LLM attempt to directly solve the puzzles, our method prompts the model to formalise the problem in a logic-focused, human-readable domain-specific language (DSL) called Logic.py. This formalised representation is then solved using a constraint solver, leveraging the strengths of both the language model and the solver. Our approach achieves a remarkable 65% absolute improvement over the baseline performance of Llama 3.1 70B on ZebraLogicBench, setting a new state-of-the-art with an accuracy of over 90%. This significant advancement demonstrates the potential of combining language models with domain-specific languages and auxiliary tools on traditionally challenging tasks for LLMs. Pascal Kesseli, Peter W. O'Hearn, Ricardo Silveira Cabral |
NeurIPS | 2 |
| 2024 | Non-termination Proving at ScaleabstractProgram termination is a classic non-safety property whose falsification cannot in general be witnessed by a finite trace. This makes testing for non-termination challenging, and also a natural target for symbolic proof. Several works in the literature apply non-termination proving to small, self-contained benchmarks, but it has not been developed for large, real-world projects; as such, despite its allure, non-termination proving has had limited practical impact. We develop a compositional theory for non-termination proving, paving the way for its scalable application to large codebases. Discovering non-termination is an under-approximate problem, and we present UNT er , a sound and complete under-approximate logic for proving non-termination. We then extend UNT er with separation logic and develop UNTer SL for heap-manipulating programs, yielding a compositional proof method amenable to automation via under-approximation and bi-abduction. We extend the Pulse analyser from Meta and develop Pulse ∞ , an automated, compositional prover for non-termination based onx UNTer SL . We have run Pulse ∞ on large codebases and libraries, each comprising hundreds of thousands of lines of code, including OpenSSL, libxml2, libxpm and CryptoPP; we discovered several previously-unknown non-termination bugs and have reported them to developers of these libraries. Azalea Raad, Julien Vanegue, Peter W. O'Hearn |
Proc. ACM Program. Lang. | 3 |
| 2023 | A General Approach to Under-Approximate Reasoning About Concurrent Programs
Azalea Raad, Julien Vanegue, Josh Berdine, Peter W. O'Hearn |
CONCUR | 4 |
| 2022 | Applying formal verification to microkernel IPC at metaabstractWe use Iris, an implementation of concurrent separation logic in the Coq proof assistant, to verify two queue data structures used for inter-process communication in an operating system under development. Our motivations are twofold. First, we wish to leverage formal verification to boost confidence in a delicate piece of industrial code that was subject to numerous revisions. Second, we aim to gain information on the cost-benefit tradeoff of applying a state-of-the-art formal verification tool in our industrial setting. On both fronts, our endeavor has been a success. The verification effort proved that the queue algorithms are correct and uncovered four algorithmic simplifications as well as bugs in client code. The simplifications involve the removal of two memory barriers, one atomic load, and one boolean check, all in a performance-sensitive part of the OS. Removing the redundant boolean check revealed unintended uses of uninitialized memory in multiple device drivers, which were fixed. The proof work was completed in person months, not years, by engineers with no prior familiarity with Iris. These findings are spurring further use of verification at Meta. Quentin Carbonneaux, Noam Zilberstein, Christoph Klee, Peter W. O'Hearn, Francesco Zappa Nardelli |
CPP | 4 |
| 2022 | Finding real bugs in big programs with incorrectness logicabstractIncorrectness Logic (IL) has recently been advanced as a logical theory for compositionally proving the presence of bugs—dual to Hoare Logic, which is used to compositionally prove their absence. Though IL was motivated in large part by the aim of providing a logical foundation for bug-catching program analyses, it has remained an open question: is IL useful only retrospectively (to explain existing analyses), or can it actually be useful in developing new analyses which can catch real bugs in big programs? In this work, we develop Pulse-X, a new, automatic program analysis for catching memory errors, based on ISL, a recent synthesis of IL and separation logic. Using Pulse-X, we have found 15 new real bugs in OpenSSL, which we have reported to OpenSSL maintainers and have since been fixed. In order not to be overwhelmed with potential but false error reports, we develop a compositional bug-reporting criterion based on a distinction between latent and manifest errors, which references the under-approximate ISL abstractions computed by Pulse-X, and we investigate the fix rate resulting from application of this criterion. Finally, to probe the potential practicality of our bug-finding method, we conduct a comparison to Infer, a widely used analyzer which has proven useful in industrial engineering practice. Quang Loc Le, Azalea Raad, Jules Villard, Josh Berdine, Derek Dreyer, Peter W. O'Hearn |
Proc. ACM Program. Lang. | 6 |
| 2022 | Concurrent incorrectness separation logicabstractIncorrectness separation logic (ISL) was recently introduced as a theory of under-approximate reasoning, with the goal of proving that compositional bug catchers find actual bugs. However, ISL only considers sequential programs. Here, we develop concurrent incorrectness separation logic (CISL), which extends ISL to account for bug catching in concurrent programs. Inspired by the work on Views, we design CISL as a parametric framework, which can be instantiated for a number of bug catching scenarios, including race detection, deadlock detection, and memory safety error detection. For each instance, the CISL meta-theory ensures the soundness of incorrectness reasoning for free, thereby guaranteeing that the bugs detected are true positives. Azalea Raad, Josh Berdine, Derek Dreyer, Peter W. O'Hearn |
Proc. ACM Program. Lang. | 4 |
| 2021 | On Algebra of Program Correctness and IncorrectnessabstractAbstract Variants of Kleene algebra have been used to provide foundations of reasoning about programs, for instance by representing Hoare Logic (HL) in algebra. That work has generally emphasised program correctness, i.e., proving the absence of bugs. Recently, Incorrectness Logic (IL) has been advanced as a formalism for the dual problem: proving the presence of bugs. IL is intended to underpin the use of logic in program testing and static bug finding. Here, we use a Kleene algebra with diamond operators and countable joins of tests, which embeds IL, and which also is complete for reasoning about the image of the embedding. Next to embedding IL, the algebra is able to embed HL, and allows making connections between IL and HL specifications. In this sense, it unifies correctness and incorrectness reasoning in one formalism. Bernhard Möller, Peter W. O'Hearn, Tony Hoare |
RAMiCS | 2 |
| 2020 | Local Reasoning About the Presence of Bugs: Incorrectness Separation LogicabstractThere has been a large body of work on local reasoning for proving the absence of bugs, but none for proving their presence . We present a new formal framework for local reasoning about the presence of bugs, building on two complementary foundations: 1) separation logic and 2) incorrectness logic. We explore the theory of this new incorrectness separation logic (ISL), and use it to derive a begin-anywhere, intra-procedural symbolic execution analysis that has no false positives by construction . In so doing, we take a step towards transferring modular, scalable techniques from the world of program verification to bug catching. Azalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer, Peter W. O'Hearn, Jules Villard |
CAV (2) | 5 |
| 2020 | Incorrectness logicabstractProgram correctness and incorrectness are two sides of the same coin. As a programmer, even if you would like to have correctness, you might find yourself spending most of your time reasoning about incorrectness. This includes informal reasoning that people do while looking at or thinking about their code, as well as that supported by automated testing and static analysis tools. This paper describes a simple logic for program incorrectness which is, in a sense, the other side of the coin to Hoare's logic of correctness. Peter W. O'Hearn |
Proc. ACM Program. Lang. | 1 |
| 2019 | A true positives theorem for a static race detectorabstractRacerD is a static race detector that has been proven to be effective in engineering practice: it has seen thousands of data races fixed by developers before reaching production, and has supported the migration of Facebook's Android app rendering infrastructure from a single-threaded to a multi-threaded architecture. We prove a True Positives Theorem stating that, under certain assumptions, an idealized theoretical version of the analysis never reports a false positive. We also provide an empirical evaluation of an implementation of this analysis, versus the original RacerD. The theorem was motivated in the first case by the desire to understand the observation from production that RacerD was providing remarkably accurate signal to developers, and then the theorem guided further analyzer design decisions. Technically, our result can be seen as saying that the analysis computes an under-approximation of an over-approximation, which is the reverse of the more usual (over of under) situation in static analysis. Until now, static analyzers that are effective in practice but unsound have often been regarded as ad hoc; in contrast, we suggest that, in the future, theorems of this variety might be generally useful in understanding, justifying and designing effective static analyses for bug catching. Nikos Gorogiannis, Peter W. O'Hearn, Ilya Sergey |
Proc. ACM Program. Lang. | 2 |
| 2018 | Continuous Reasoning: Scaling the impact of formal methodsabstractThis paper describes work in continuous reasoning, where formal reasoning about a (changing) codebase is done in a fashion which mirrors the iterative, continuous model of software development that is increasingly practiced in industry. We suggest that advances in continuous reasoning will allow formal reasoning to scale to more programs, and more programmers. The paper describes the rationale for continuous reasoning, outlines some success cases from within industry, and proposes directions for work by the scientific community. Peter W. O'Hearn |
LICS | 1 |
| 2018 | Experience Developing and Deploying Concurrency Analysis at Facebook
Peter W. O'Hearn |
SAS | 1 |
| 2018 | From Start-ups to Scale-ups: Opportunities and Open Problems for Static and Dynamic Program AnalysisabstractThis paper describes some of the challenges and opportunities when deploying static and dynamic analysis at scale, drawing on the authors' experience with the Infer and Sapienz Technologies at Facebook, each of which started life as a research-led start-up that was subsequently deployed at scale, impacting billions of people worldwide. The paper identifies open problems that have yet to receive significant attention from the scientific community, yet which have potential for profound real world impact, formulating these as research questions that, we believe, are ripe for exploration and that would make excellent topics for research projects. Note: This paper accompanies the authors' joint keynote at the 18th IEEE International Working Conference on Source Code Analysis and Manipulation, September 23rd-24th, 2018 - Madrid, Spain. Mark Harman, Peter W. O'Hearn |
SCAM | 2 |
| 2018 | RacerD: compositional static race detectionabstractAutomatic static detection of data races is one of the most basic problems in reasoning about concurrency. We present RacerD—a static program analysis for detecting data races in Java programs which is fast, can scale to large code, and has proven effective in an industrial software engineering scenario. To our knowledge, RacerD is the first inter-procedural, compositional data race detector which has been shown to have non-trivial precision and impact. Due to its compositionality, it can analyze code changes quickly, and this allows it to perform continuous reasoning about a large, rapidly changing codebase as part of deployment within a continuous integration ecosystem. In contrast to previous static race detectors, its design favors reporting high-confidence bugs over ensuring their absence. RacerD has been in deployment for over a year at Facebook, where it has flagged over 2500 issues that have been fixed by developers before reaching production. It has been important in enabling the development of new code as well as fixing old code: it helped support conversion of part of the main Facebook Android app from a single-threaded to a multi-threaded architecture. In this paper we describe RacerD’s design, implementation, deployment and impact. Sam Blackshear, Nikos Gorogiannis, Peter W. O'Hearn, Ilya Sergey |
Proc. ACM Program. Lang. | 3 |
| 2015 | From Categorical Logic to Facebook EngineeringabstractI chart a line of development from category-theoretic models of programs and logics to automatic program verification/analysis techniques that are in deployment at Facebook. Our journey takes in a number of concepts from the computer science logician's toolkit -- including categorical logic and model theory, denotational semantics, the Curry-Howard isomorphism, sub structural logic, Hoare Logic and Separation Logic, abstract interpretation, compositional program analysis, the frame problem, and abductive inference. Peter W. O'Hearn |
LICS | 1 |
| 2014 | Developments in Concurrent Kleene Algebra
Tony Hoare, Stephan van Staden, Bernhard Möller, Georg Struth, Jules Villard, Huibiao Zhu, Peter W. O'Hearn |
RAMiCS | 7 |
| 2014 | Disproving termination with overapproximationabstractWhen disproving termination using known techniques (e.g. recurrence sets), abstractions that overapproximate the program's transition relation are unsound. In this paper we introduce live abstractions, a natural class of abstractions that can be combined with the recent concept of closed recurrence sets to soundly disprove termination. To demonstrate the practical usefulness of this new approach we show how programs with nonlinear, nondeterministic, and heap-based commands can be shown nonterminating using linear overapproximations. Byron Cook, Carsten Fuhs, Kaustubh Nimkar, Peter W. O'Hearn |
FMCAD | 4 |
| 2014 | The essence of ReynoldsabstractJohn Reynolds (1935-2013) was a pioneer of programming languages research. In this paper we pay tribute to the man, his ideas, and his influence. Stephen D. Brookes, Peter W. O'Hearn, Uday S. Reddy |
POPL | 2 |
| 2014 | Proving Nontermination via Safety
Hong Yi Chen, Byron Cook, Carsten Fuhs, Kaustubh Nimkar, Peter W. O'Hearn |
TACAS | 5 |
| 2014 | The Essence of ReynoldsabstractAbstract John Reynolds (1935-2013) was a pioneer of programming languages research. In this paper we pay tribute to the man, his ideas, and his influence. Stephen D. Brookes, Peter W. O'Hearn, Uday S. Reddy |
Formal Aspects Comput. | 2 |
| 2012 | Presentation of the SIGPLAN distinguished achievement award to Sir Charles Antony Richard Hoare, FRS, FREng, FBCS; and interviewabstractNo abstract available. Andrew P. Black, Peter W. O'Hearn |
POPL | 2 |
| 2011 | Algebra, Logic, Locality, Concurrency
Peter W. O'Hearn |
APLAS | 1 |
| 2011 | On Locality and the Exchange Law for Concurrent Processes
Tony Hoare, Akbar Hussain, Bernhard Möller, Peter W. O'Hearn, Rasmus Lerchedahl Petersen, Georg Struth |
CONCUR | 4 |
| 2011 | Algebra, Logic, Locality, Concurrency
Peter W. O'Hearn |
CPP | 1 |
| 2011 | Reasoning about Programs Using a Scientific Method
Peter W. O'Hearn |
ICFEM | 1 |
| 2011 | The Complexity of Abduction for Separated Heap Abstractions
Nikos Gorogiannis, Max I. Kanovich, Peter W. O'Hearn |
SAS | 3 |
| 2011 | Compositional Shape Analysis by Means of Bi-AbductionabstractThe accurate and efficient treatment of mutable data structures is one of the outstanding problem areas in automatic program verification and analysis. Shape analysis is a form of program analysis that attempts to infer descriptions of the data structures in a program, and to prove that these structures are not misused or corrupted. It is one of the more challenging and expensive forms of program analysis, due to the complexity of aliasing and the need to look arbitrarily deeply into the program heap. This article describes a method of boosting shape analyses by defining a compositional method, where each procedure is analyzed independently of its callers. The analysis algorithm uses a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Our method brings the usual benefits of compositionality---increased potential to scale, ability to deal with incomplete programs, graceful way to deal with imprecision---to shape analysis, for the first time. The analysis rests on a generalized form of abduction (inference of explanatory hypotheses), which we call bi-abduction . Bi-abduction displays abduction as a kind of inverse to the frame problem: it jointly infers anti-frames (missing portions of state) and frames (portions of state not touched by an operation), and is the basis of a new analysis algorithm. We have implemented our analysis and we report case studies on smaller programs to evaluate the quality of discovered specifications, and larger code bases (e.g., sendmail, an imap server, a Linux distribution) to illustrate the level of automation and scalability that we obtain from our compositional method. This article makes number of specific technical contributions on proof procedures and analysis algorithms, but in a sense its more important contribution is holistic: the explanation and demonstration of how a massive increase in automation is possible using abductive inference. Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
J. ACM | 3 |
| 2010 | Verifying linearizability with hindsightabstractWe present a proof of safety and linearizability of a highly-concurrent optimistic set algorithm. The key step in our proof is the Hindsight Lemma, which allows a thread to infer the existence of a global state in which its operation can be linearized based on limited local atomic observations about the shared state. The Hindsight Lemma allows us to avoid one of the most complex and non-intuitive steps in reasoning about highly concurrent algorithms: considering the linearization point of an operation to be in a different thread than the one executing it. Peter W. O'Hearn, Noam Rinetzky, Martin T. Vechev, Eran Yahav, Greta Yorsh |
PODC | 1 |
| 2010 | Blaming the client: on data refinement in the presence of pointersabstractAbstract Data refinement is a common approach to reasoning about programs, based on establishing that a concrete program indeed satisfies all the required properties imposed by an intended abstract pattern. Reasoning about programs in this setting becomes complex when use of pointers is assumed and, moreover, a well-known method for proving data refinement, namely the forward simulation method, becomes unsound in presence of pointers. The reason for unsoundness is the failure of the “lifting theorem” for simulations: that a simulation between abstract and concrete modules can be lifted to all client programs. The result is that simulation does not imply that a concrete can replace an abstract module in all contexts. Our diagnosis of this problem is that unsoundness is due to interference from the client programs. Rather than blame a module for the unsoundness of lifting simulations, our analysis places the blame on the client programs which cause the interference: when interference is not present, soundness is recovered. Technically, we present a novel instrumented semantics which is capable of detecting interference between a module and its client. With use of special simulation relations, namely growing relations, and interpreting the simulation method using the instrumented semantics, we obtain a lifting theorem. We then show situations under which simulation does indeed imply refinement. Ivana Filipovic, Peter W. O'Hearn, Noah Torp-Smith, Hongseok Yang |
Formal Aspects Comput. | 2 |
| 2010 | Abstraction for concurrent objects
Ivana Filipovic, Peter W. O'Hearn, Noam Rinetzky, Hongseok Yang |
Theor. Comput. Sci. | 2 |
| 2009 | Abstraction for Concurrent Objects
Ivana Filipovic, Peter W. O'Hearn, Noam Rinetzky, Hongseok Yang |
ESOP | 2 |
| 2009 | Compositional shape analysis by means of bi-abductionabstractThis paper describes a compositional shape analysis, where each procedure is analyzed independently of its callers. The analysis uses an abstract domain based on a restricted fragment of separation logic, and assigns a collection of Hoare triples to each procedure; the triples provide an over-approximation of data structure usage. Compositionality brings its usual benefits -- increased potential to scale, ability to deal with unknown calling contexts, graceful way to deal with imprecision -- to shape analysis, for the first time. Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
POPL | 3 |
| 2009 | Graphical models of separation logic
Ian Wehrman, Tony Hoare, Peter W. O'Hearn |
Inf. Process. Lett. | 3 |
| 2009 | Separation and information hidingabstractWe investigate proof rules for information hiding, using the formalism of separation logic. In essence, we use the separating conjunction to partition the internal resources of a module from those accessed by the module's clients. The use of a logical connective gives rise to a form of dynamic partitioning, where we track the transfer of ownership of portions of heap storage between program components. It also enables us to enforce separation in the presence of mutable data structures with embedded addresses that may be aliased. Peter W. O'Hearn, Hongseok Yang, John C. Reynolds |
ACM Trans. Program. Lang. Syst. | 1 |
| 2008 | Tutorial on Separation Logic (Invited Tutorial)
Peter W. O'Hearn |
CAV | 1 |
| 2008 | Scalable Shape Analysis for Systems Code
Hongseok Yang, Oukseh Lee, Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn |
CAV | 7 |
| 2008 | Separation Logic Tutorial
Peter W. O'Hearn |
ICLP | 1 |
| 2008 | Space Invading Systems Code
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
LOPSTR | 3 |
| 2007 | Shape Analysis for Composite Data Structures
Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn, Thomas Wies, Hongseok Yang |
CAV | 5 |
| 2007 | Separation logic and concurrent resource managementabstractConcurrent separation logic provides a way of reasoning about the usage of resources in concurrent programs. Proofs in the logic all track the transfer of ownership of portions of memory between concurrent processes, mirroring design principles for concurrent systems programs. This allows the safe treatment of "daring" concurrent programs, that access shared memory without explicit protection, outside of critical sections; canonical examples of such daring concurrency are resource managers of various kinds. In this talk I will describe the underpinnings of the concurrent separation logic, andallillustrate it with experimental tools -- SMALLFOOT and SPACE INVADER -- that are being developed to do automatic proofs with the logic. Peter W. O'Hearn |
ISMM | 1 |
| 2007 | Local Action and Abstract Separation LogicabstractSeparation logic is an extension of Hoare's logic which supports a local way of reasoning about programs that mutate memory. We present a study of the semantic structures lying behind the logic. The core idea is of a local action, a state transformer that mutates the state in a local way. We formulate local actions for a class of models called separation algebras, abstracting from the RAM and other specific concrete models used in work on separation logic. Local actions provide a semantics for a generalized form of (sequential) separation logic. We also show that our conditions on local actions allow a general soundness proof for a separation logic for concurrency, interpreted over arbitrary separation algebras. Cristiano Calcagno, Peter W. O'Hearn, Hongseok Yang |
LICS | 2 |
| 2007 | Variance analyses from invariance analyses
Josh Berdine, Aziem Chawdhary, Byron Cook, Dino Distefano, Peter W. O'Hearn |
POPL | 5 |
| 2007 | Modular verification of a non-blocking stackabstractThis paper contributes to the development of techniques for the modular proof of programs that include concurrent algorithms. We present a proof of a non-blocking concurrent algorithm, which provides a shared stack. The inter-thread interference, which is essential to the algorithm, is confined in the proof and the specification to the modular operations, which perform push and pop on the stack. This is achieved by the mechanisms of separation logic. The effect is that inter-thread interference does not pollute specification or verification of clients of the stack. Matthew J. Parkinson, Richard Bornat, Peter W. O'Hearn |
POPL | 3 |
| 2007 | Footprint Analysis: A Shape Analysis That Discovers Preconditions
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
SAS | 3 |
| 2007 | Preface
Olivier Danvy, Peter W. O'Hearn, Philip Wadler |
Theor. Comput. Sci. | 2 |
| 2007 | Resources, concurrency, and local reasoning
Peter W. O'Hearn |
Theor. Comput. Sci. | 1 |
| 2006 | Automatic Termination Proofs for Programs with Shape-Shifting Heaps
Josh Berdine, Byron Cook, Dino Distefano, Peter W. O'Hearn |
CAV | 4 |
| 2006 | Beyond Reachability: Shape Abstraction in the Presence of Pointer Arithmetic
Cristiano Calcagno, Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
SAS | 3 |
| 2006 | Separation Logic and Program Analysis
Peter W. O'Hearn |
SAS | 1 |
| 2006 | A Local Shape Analysis Based on Separation Logic
Dino Distefano, Peter W. O'Hearn, Hongseok Yang |
TACAS | 2 |
| 2005 | Symbolic Execution with Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn |
APLAS | 3 |
| 2005 | Permission accounting in separation logicabstractA lightweight logical approach to race-free sharing of heap storage between concurrent threads is described, based on the notion of permission to access. Transfer of permission between threads, subdivision and combination of permission is discussed. The roots of the approach are in Boyland's [3] demonstration of the utility of fractional permissions in specifying non-interference between concurrent threads. We add the notion of counting permission, which mirrors the programming technique called permission counting. Both fractional and counting permissions permit passivity, the specification that a program can be permitted to access a heap cell yet prevented from altering it. Models of both mechanisms are described. The use of two different mechanisms is defended. Some interesting problems are acknowledged and some intriguing possibilities for future development, including the notion of resourcing as a step beyond typing, are paraded. Richard Bornat, Cristiano Calcagno, Peter W. O'Hearn, Matthew J. Parkinson |
POPL | 3 |
| 2004 | Resources, Concurrency and Local Reasoning
Peter W. O'Hearn |
CONCUR | 1 |
| 2004 | Resources, Concurrency, and Local Reasoning (Abstract)
Peter W. O'Hearn |
ESOP | 1 |
| 2004 | A Decidable Fragment of Separation Logic
Josh Berdine, Cristiano Calcagno, Peter W. O'Hearn |
FSTTCS | 3 |
| 2004 | Refinement and Separation Contexts
Ivana Mijajlovic, Noah Torp-Smith, Peter W. O'Hearn |
FSTTCS | 3 |
| 2004 | Separation and information hidingabstractWe investigate proof rules for information hiding, using the recent formalism of separation logic. In essence, we use the separating conjunction to partition the internal resources of a module from those accessed by the module's clients. The use of a logical connective gives rise to a form of dynamic partitioning, where we track the transfer of ownership of portions of heap storage between program components. It also enables us to enforce separation in the presence of mutable data structures with embedded addresses that may be aliased. Peter W. O'Hearn, Hongseok Yang, John C. Reynolds |
POPL | 1 |
| 2004 | Possible worlds and resources: the semantics of BI
David J. Pym, Peter W. O'Hearn, Hongseok Yang |
Theor. Comput. Sci. | 2 |
| 2003 | On bunched typingabstractWe study a typing scheme derived from a semantic situation where a single category possesses several closed structures, corresponding to different varieties of function type. In this scheme typing contexts are trees built from two (or more) binary combining operations, or in short, bunches . Bunched typing and its logical counterpart, bunched implications, have arisen in joint work of the author and David Pym. The present paper gives a basic account of the type system, and then focusses on concrete models that illustrate how it may be understood in terms of resource access and sharing. The most basic system has two context-combining operations, and the structural rules of Weakening and Contraction are allowed for one but not the other. This system includes a multiplicative, or substructural, function type −∗ alongside the usual (additive) function type $\rightarrow$ ; it is dubbed the $\alpha\lambda$ -calculus after its binders, $\alpha$ for the $\alpha$ dditive binder and $\lambda$ for the multiplicative, or $\lambda$ inear, binder. We show that the features of this system are, in a sense, complementary to calculi based on linear logic; it is incompatible with an interpretation where a multiplicative function uses its argument once, but perfectly compatible with a reading based on sharing of resources. This sharing interpretation is derived from syntactic control of interference, a type-theoretic method of controlling sharing of storage, and we show how bunch-based management of Contraction can be used to provide a more flexible type system for interference control. Peter W. O'Hearn |
J. Funct. Program. | 1 |
| 2003 | Program logic and equivalence in the presence of garbage collection
Cristiano Calcagno, Peter W. O'Hearn, Richard Bornat |
Theor. Comput. Sci. | 2 |
| 2002 | A Semantic Basis for Local Reasoning
Hongseok Yang, Peter W. O'Hearn |
FoSSaCS | 2 |
| 2001 | On Garbage and Program Logic
Cristiano Calcagno, Peter W. O'Hearn |
FoSSaCS | 2 |
| 2001 | Computability and Complexity Results for a Spatial Assertion Language for Data Structures
Cristiano Calcagno, Hongseok Yang, Peter W. O'Hearn |
FSTTCS | 3 |
| 2001 | BI as an Assertion Language for Mutable Data StructuresabstractReynolds has developed a logic for reasoning about mutable data structures in which the pre- and postconditions are written in an intuitionistic logic enriched with a spatial form of conjunction. We investigate the approach from the point of view of the logic BI of bunched implications of O'Hearnand Pym. We begin by giving a model in which the law of the excluded middleholds, thus showing that the approach is compatible with classical logic. The relationship between the intuitionistic and classical versions of the system is established by a translation, analogous to a translation from intuitionistic logic into the modal logic S4. We also consider the question of completeness of the axioms. BI's spatial implication is used to express weakest preconditions for object-component assignments, and an axiom for allocating a cons cell is shown to be complete under an interpretation of triplesthat allows a command to be applied to states with dangling pointers. We make this latter a feature, by incorporating an operation, and axiom, for disposing of memory. Finally, we describe a local character enjoyed by specifications in the logic, and show how this enables a class of frame axioms, which say what parts of the heap don't change, to be inferred automatically. Samin S. Ishtiaq, Peter W. O'Hearn |
POPL | 2 |
| 2000 | Semantic analysis of pointer aliasing, allocation and disposal in Hoare logic351292abstractBornat has recently described an approach to reasoning about pointers, building on work of Morris. Here we describe a semantics that validates the approach, and use it to help devise axioms for operations that allocate and dispose of memory. 1. INTRODUCTION It is widely acknowledged that pointers cause problems for program-proving formalisms (e.g. [8, 17, 13, 16, 9, 1, 14, 7]), but there is less agreement on precisely what the problems are. So, before describing our own work, we rst discuss where we believe the diculties lie. The rst issue that must be faced is aliasing , where distinct expressions can denote the same l-value. The problem here can be seen by reference to Hoare logic, where assignment is treated using substitution on the object-language level: fP [E=x]g x := E fPg: For this treatment of assignment to be sound it is necessary that dierent identiers are not aliases. With pointers the problem is that aliasing is not an exceptional circumstance: for example, it wi... Cristiano Calcagno, Samin S. Ishtiaq, Peter W. O'Hearn |
PPDP | 3 |
| 2000 | From Algol to polymorphic linear lambda-calculusabstractIn a linearly-typed functional language, one can define functions that consume their arguments in the process of computing their results. This is reminiscent of state transformations in imperative languages, where execition of an assignment statement alters the contents of the store. We explore this connection by translating two variations on Algol 60 into a purely functional language with polymorphic linear types. On the one hand, the translations lead to a semantic analysis of Algol-like programs, in terms of a model of the linear language. On the other hand, they demonstrate that a linearly-typed functional language can be at least as expressive as Algol. Peter W. O'Hearn, John C. Reynolds |
J. ACM | 1 |
| 1999 | Bireflectivity
Peter J. Freyd, Peter W. O'Hearn, John Power, Makoto Takeyama, R. Street, Robert D. Tennent |
Theor. Comput. Sci. | 2 |
| 1999 | Syntactic Control of Interference RevisitedabstractIn “syntactic control of interference” (POPL, 1978), J.C. Reynolds proposes three design principles intended to constrain the scope of imperative state effects in Algol-like languages. The resulting linguistic framework seems to be a very satisfactory way of combining functional and imperative concepts, having the desirable attributes of both purely functional languages (such as PCF) and simple imperative languages (such as the language of while programs). However, Reynolds points out that the “obvious” syntax for interference control has the unfortunate property that β-reductions do not always preserve typings. Reynolds has subsequently presented a solution to this problem (ICALP, 1989), but it is fairly complicated and requires intersection types in the type system. Here, we present a much simpler solution which does not require intersection types. We first describe a new type system inspired in part by linear logic and verify that reductions preserve typings. We then define a class of “bireflective” models, which provide a categorical analysis of structure underlying the new typing rules; a companion paper “Bireflectivity”, in this volume, exposes wider ramifications of this structure. Finally, we describe a concrete model for an illustrative programming language based on the new type system; this improves on earlier such efforts in that states are not assumed to be structured using locations. Peter W. O'Hearn, John Power, Makoto Takeyama, Robert D. Tennent |
Theor. Comput. Sci. | 1 |
| 1999 | Objects, Interference, and the Yoneda EmbeddingabstractWe present a new semantics for Algol-like languages that combines methods from two prior lines of development: the object-based approach of Reddy, where the meaning of an imperative program is described in terms of sequences of observable actions, and the functor-category approach initiated by Reynolds, where the varying nature of the run-time stack is explained using functors from a category of store shapes to a category of cpos. Peter W. O'Hearn, Uday S. Reddy |
Theor. Comput. Sci. | 1 |
| 1996 | Note on Algol and Conservatively Extending Functional ProgrammingabstractAbstract A simple Idealized Algol is considered, based on Reynolds's ‘essence of Algol’. It is shown that observational equivalence in this language conservatively extends observational equivalence in its assignment-free functional sublanguage. Peter W. O'Hearn |
J. Funct. Program. | 1 |
| 1995 | Kripke Logical Relations and PCFabstractSieber has described a model of PCF consisting of continuous functions that are invariant under certain (finitary) logical relations, and shown that it is fully abstract for closed terms of up to third-order types. We show that one may achieve full abstraction at all types using a form of "Kripke logical relations" introduced by Jung and Tiuryn to characterize λ-definability. Peter W. O'Hearn, Jon G. Riecke |
Inf. Comput. | 1 |
| 1995 | Parametricity and Local VariablesabstractWe propose that the phenomenon of local state may be understood in terms of Strachey's concept of parametric (i.e., uniform) polymorphism. The intuitive basis for our proposal is the following analogy: a non-local procedure is independent of locally-declared variables in the same way that a parametrically polymorphic function is independent of types to which it is instantiated. A connection between parametricity and representational abstraction was first suggested by J.C. Reynolds. Reynolds used logical relations to formalize this connection in languages with type variables and user-defined types. We use relational parametricity to construct a model for an Algol-like language in which interactions between local and non-local entities satisfy certain relational criteria. Reasoning about local variables essentially involved proving properties of polymorphic functions. The new model supports straightforward validations of all the test equivalences that have been proposed in the literature for local-variable semantics, and encompasses standard methods of reasoning about data representations. It is not known whether our techniques yield fully abstract semantics. A model based on partial equivalence relations on the natural numbers is also briefly examined. Peter W. O'Hearn, Robert D. Tennent |
J. ACM | 1 |
| 1994 | Fully Abstract Translations and Parametric Polymorphism
Peter W. O'Hearn, Jon G. Riecke |
ESOP | 1 |
| 1993 | Relational Parametricity and Local VariablesabstractJ. C. Reynolds suggested that Strachey's intuitive concept of “parametric” (i.e., uniform) polymorphism is closely linked to representation independence, and used logical relations to formalize this principle in languages with type variables and user-defined types. Here, we use relational parametricity to address long-standing problems with the semantics of local-variable declarations, by showing that interactions between local and non-local entities satisfy certain relational criteria. Peter W. O'Hearn, Robert D. Tennent |
POPL | 1 |
| 1993 | Semantical Analysis of Specification Logic, 2
Peter W. O'Hearn, Robert D. Tennent |
Inf. Comput. | 1 |
| 1993 | A Model for Syntactic Control of InterferenceabstractTwo imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed λ-calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach. We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a ‘tensor’ product whose components are required never to interfere. Environments are defined using the tensor, and procedure types are obtained via a suitable adjunction. The category is a model of intuitionistic linear logic. Reynolds' concept of passive type - i.e. types for phrases that do not write to any storage variables - is shown to be closely related, in this model, to Girard's ‘of course’ modality. Peter W. O'Hearn |
Math. Struct. Comput. Sci. | 1 |
| 1992 | Resolution Framework for Finitely-Valued First-Order LogicsabstractIn this paper we propose a resolution proof framework on the basis of which automated proof systems for finitely-valued first-order logics (FFO logics) can be introduced and studied. We define the notion of a first-order resolution proof system and we show that for every disjunctive FFO logic a refutationally complete resolution proof system can be constructed. Moreover, we discuss two theorem proving strategies, the polarity and set of support strategies, and we prove their completeness. Peter W. O'Hearn, Zbigniew Stachniak |
J. Symb. Comput. | 1 |
| 1989 | Note on Theorem Proving Strategies for Resolution Counterparts of Non-Classical LogicsabstractArticle Free Access Share on Note on theorem proving strategies for resolution counterparts of non-classical logics Authors: P. O'Hearn Queen's University, Kingston, Canada Queen's University, Kingston, CanadaView Profile , Z. Stachniak York University, North York, Canada York University, North York, CanadaView Profile Authors Info & Claims ISSAC '89: Proceedings of the ACM-SIGSAM 1989 international symposium on Symbolic and algebraic computationJuly 1989 Pages 364–372https://doi.org/10.1145/74540.74583Online:17 July 1989Publication History 6citation198DownloadsMetricsTotal Citations6Total Downloads198Last 12 Months4Last 6 weeks2 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF Peter W. O'Hearn, Zbigniew Stachniak |
ISSAC | 1 |