EDBT 2026 Demo / reviewers in the wild / expert
Philippa Gardner
dblp:g/PhilippaGardner
· DBLP profile ↗
68ranked-venue papers
17as first author
13since 2021 · last 2026
0000-0002-4187-0585ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 45 · 4 first-author · 12 since 2021Theory of computation · 31 · 14 first-author · 3 since 2021Artificial intelligence and machine learning · 2 · 1 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Gillian Debugging: Swinging Through the (Compositional Symbolic Execution) Trees
Nat Karmios, Sacha-Élie Ayoun, Philippa Gardner |
TACAS (2) | 3 |
| 2025 | A Hybrid Approach to Semi-automated Rust VerificationabstractWe propose a hybrid approach to end-to-end Rust verification where the proof effort is split into powerful automated verification of safe Rust and targeted semi-automated verification of unsafe Rust. To this end, we present Gillian-Rust, a proof-of-concept semi-automated verification tool built on top of the Gillian platform that can reason about type safety and functional correctness of unsafe code. Gillian-Rust automates a rich separation logic for real-world Rust, embedding the lifetime logic of RustBelt and the parametric prophecies of RustHornBelt, and is able to verify real-world Rust standard library code with only minor annotations and with verification times orders of magnitude faster than those of comparable tools. We link Gillian-Rust with Creusot, a state-of-the-art verifier for safe Rust, by providing a systematic encoding of unsafe code specifications that Creusot can use but cannot verify, demonstrating the feasibility of our hybrid approach. Sacha-Élie Ayoun, Xavier Denis, Petar Maksimovic 0001, Philippa Gardner |
Proc. ACM Program. Lang. | 4 |
| 2025 | Compositional Symbolic Execution for the Next 700 Memory ModelsabstractMultiple successful compositional symbolic execution (CSE) tools and platforms exploit separation logic (SL) for compositional verification and/or incorrectness separation logic (ISL) for compositional bug-finding, including VeriFast, Viper, Gillian, CN, and Infer-Pulse. Previous work on the Gillian platform, the only CSE platform that is parametric on the memory model, meaning that it can be instantiated to different memory models, suggests that the ability to use custom memory models allows for more flexibility in supporting analysis of a wide range of programming languages, for implementing custom automation, and for improving performance. However, the literature lacks a satisfactory formal foundation for memory-model-parametric CSE platforms. In this paper, inspired by Gillian, we provide a new formal foundation for memory-model-parametric CSE platforms. Our foundation advances the state of the art in four ways. First, we mechanise our foundation (in the interactive theorem prover Rocq). Second, we validate our foundation by instantiating it to a broad range of memory models, including models for C and CHERI. Third, whereas previous memory-model-parametric work has only covered SL analyses, we cover both SL and ISL analyses. Fourth, our foundation is based on standard definitions of SL and ISL (including definitions of function specification validity, to ensure sound interoperation with other tools and platforms also based on standard definitions). Andreas Lööw, Seung Hoon Park, Daniele Nantes Sobrinho, Sacha-Élie Ayoun, Opale Sjöstedt, Philippa Gardner |
Proc. ACM Program. Lang. | 6 |
| 2025 | Progressful Interpreters for Efficient WebAssembly MechanisationabstractMechanisations of programming language specifications are now increasingly common, providing machine-checked modelling of the specification and verification of desired properties such as type safety. However it is challenging to maintain these mechanisations, particularly in the face of an evolving specification. Existing mechanisations of the W3C WebAssembly (Wasm) standard have so far been able to keep pace as the standard evolves, helped enormously by the W3C Wasm standard’s choice to state the language’s semantics in terms of a fully formal specification. However a substantial incoming extension to Wasm, the 2.0 feature set, motivates the investigation of strategies for more efficient production of the core verification artefacts currently associated with the WasmCert-Coq mechanisation of Wasm. In the classic formalisation of a typed operational semantics as followed by the W3C Wasm standard, both the type system and runtime operational semantics are defined as inductive relations, with associated type soundness properties (progress and preservation) and an independent sound interpreter. We investigate two more efficient strategies for producing these artefacts, which are currently all separately defined by WasmCert-Coq. First, the approach of Kokke, Siek, and Wadler for deriving a sound interpreter from a constructive progress proof — we show that this approach scales to the W3C Wasm 1.0 standard, but results in an inefficient interpreter in our setting. Second, inspired by results from intrinsically-typed languages, we define a progressful interpreter which uses Coq’s dependent types to certify not only its own soundness, but also the progress property. We show that this interpreter can implement several performance optimisations while maintaining these certifications, which are fully erasable when the interpreter is extracted from Coq. Using this approach, we extend the WasmCert-Coq mechanisation to the significantly larger Wasm 2.0 feature set, discovering and correcting several errors in the expanded specification’s type system. Xiaojia Rao, Stefan Radziuk, Conrad Watt, Philippa Gardner |
Proc. ACM Program. Lang. | 4 |
| 2024 | Compositional Symbolic Execution for Correctness and Incorrectness Reasoning
Andreas Lööw, Daniele Nantes Sobrinho, Sacha-Élie Ayoun, Caroline Cronjäger, Petar Maksimovic 0001, Philippa Gardner |
ECOOP | 6 |
| 2024 | Matching Plans for Frame Inference in Compositional Reasoning
Andreas Lööw, Daniele Nantes Sobrinho, Sacha-Élie Ayoun, Petar Maksimovic 0001, Philippa Gardner |
ECOOP | 5 |
| 2024 | Bringing the WebAssembly Standard up to Speed with SpecTecabstractWebAssembly (Wasm) is a portable low-level bytecode language and virtual machine that has seen increasing use in a variety of ecosystems. Its specification is unusually rigorous – including a full formal semantics for the language – and every new feature must be specified in this formal semantics, in prose, and in the official reference interpreter before it can be standardized. With the growing size of the language, this manual process with its redundancies has become laborious and error-prone, and in this work, we offer a solution. We present SpecTec, a domain-specific language (DSL) and toolchain that facilitates both the Wasm specification and the generation of artifacts necessary to standardize new features. SpecTec serves as a single source of truth — from a SpecTec definition of the Wasm semantics, we can generate a typeset specification, including formal definitions and prose pseudocode descriptions, and a meta-level interpreter. Further backends for test generation and interactive theorem proving are planned. We evaluate SpecTec’s ability to represent the latest Wasm 2.0 and show that the generated meta-level interpreter passes 100% of the applicable official test suite. We show that SpecTec is highly effective at discovering and preventing errors by detecting historical errors in the specification that have been corrected and ten errors in five proposals ready for inclusion in the next version of Wasm. Our ultimate aim is that SpecTec should be adopted by the Wasm standards community and used to specify future versions of the standard. Dongjun Youn, Wonho Shin, Sukyoung Ryu, Joachim Breitner, Philippa Gardner, Sam Lindley, Matija Pretnar, Xiaojia Rao, Conrad Watt, Andreas Rossberg |
Proc. ACM Program. Lang. | 6 |
| 2023 | Exact Separation Logic: Towards Bridging the Gap Between Verification and Bug-FindingabstractOver-approximating (OX) program logics, such as separation logic (SL), are used for verifying properties of heap-manipulating programs: all terminating behaviour is characterised, but established results and errors need not be reachable. OX function specifications are thus incompatible with true bug-finding supported by symbolic execution tools such as Pulse and Pulse-X. In contrast, under-approximating (UX) program logics, such as incorrectness separation logic, are used to find true results and bugs: established results and errors are reachable, but there is no mechanism for understanding if all terminating behaviour has been characterised. We introduce exact separation logic (ESL), which provides fully-verified function specifications compatible with both OX verification and UX true bug-funding: all terminating behaviour is characterised and all established results and errors are reachable. We prove soundness for ESL with mutually recursive functions, demonstrating, for the first time, function compositionality for a UX logic. We show that UX program logics require subtle definitions of internal and external function specifications compared with the familiar definitions of OX logics. We investigate the expressivity of ESL and, for the first time, explore the role of abstraction in UX reasoning by verifying abstract ESL specifications of various data-structure algorithms. In doing so, we highlight the difference between abstraction (hiding information) and over-approximation (losing information). Our findings demonstrate that abstraction cannot be used as freely in UX logics as in OX logics, but also that it should be feasible to use ESL to provide tractable function specifications for self-contained, critical code, which would then be used for both verification and true bug-finding. Petar Maksimovic 0001, Caroline Cronjäger, Andreas Lööw, Julian Sutherland, Philippa Gardner |
ECOOP | 5 |
| 2023 | Iris-Wasm: Robust and Modular Verification of WebAssembly ProgramsabstractWebAssembly makes it possible to run C/C++ applications on the web with near-native performance. A WebAssembly program is expressed as a collection of higher-order ML-like modules, which are composed together through a system of explicit imports and exports using a host language, enabling a form of higher- order modular programming. We present Iris-Wasm, a mechanized higher-order separation logic building on a specification of Wasm 1.0 mechanized in Coq and the Iris framework. Using Iris-Wasm, we are able to specify and verify individual modules separately, and then compose them modularly in a simple host language featuring the core operations of the WebAssembly JavaScript Interface. Building on Iris-Wasm, we develop a logical relation that enforces robust safety: unknown, adversarial code can only affect other modules through the functions that they explicitly export. Together, the program logic and the logical relation allow us to formally verify functional correctness of WebAssembly programs, even when they invoke and are invoked by unknown code, thereby demonstrating that WebAssembly enforces strong isolation between modules. Xiaojia Rao, Aïna Linn Georges, Maxime Legoupil, Conrad Watt, Jean Pichon-Pharabod, Philippa Gardner, Lars Birkedal |
Proc. ACM Program. Lang. | 6 |
| 2022 | Concurrent Separation Logics: Logical Abstraction, Logical Atomicity and Environment Liveness Conditions (Invited Talk)
Philippa Gardner |
CONCUR | 1 |
| 2021 | Gillian, Part II: Real-World Verification for JavaScript and CabstractAbstract We introduce verification based on separation logic to Gillian, a multi-language platform for the development of symbolic analysis tools which is parametric on the memory model of the target language. Our work develops a methodology for constructing compositional memory models for Gillian, leading to a unified presentation of the JavaScript and C memory models. We verify the JavaScript and C implementations of the AWS Encryption SDK message header deserialisation module, specifically designing common abstractions used for both verification tasks, and find two bugs in the JavaScript and three bugs in the C implementation. Petar Maksimovic 0001, Sacha-Élie Ayoun, José Fragoso Santos, Philippa Gardner |
CAV (2) | 4 |
| 2021 | Two Mechanisations of WebAssembly 1.0
Conrad Watt, Xiaojia Rao, Jean Pichon-Pharabod, Martin Bodin, Philippa Gardner |
FM | 5 |
| 2021 | TaDA Live: Compositional Reasoning for Termination of Fine-grained Concurrent ProgramsabstractWe present TaDA Live, a concurrent separation logic for reasoning compositionally about the termination of blocking fine-grained concurrent programs. The crucial challenge is how to deal with abstract atomic blocking : that is, abstract atomic operations that have blocking behaviour arising from busy-waiting patterns as found in, for example, fine-grained spin locks. Our fundamental innovation is with the design of abstract specifications that capture this blocking behaviour as liveness assumptions on the environment. We design a logic that can reason about the termination of clients that use such operations without breaking their abstraction boundaries, and the correctness of the implementations of the operations with respect to their abstract specifications. We introduce a novel semantic model using layered subjective obligations to express liveness invariants and a proof system that is sound with respect to the model. The subtlety of our specifications and reasoning is illustrated using several case studies. Emanuele D'Osualdo, Julian Sutherland, Azadeh Farzan, Philippa Gardner |
ACM Trans. Program. Lang. Syst. | 4 |
| 2020 | A Trusted Infrastructure for Symbolic Analysis of Event-Driven Web ApplicationsabstractWe introduce a trusted infrastructure for the symbolic analysis of modern event-driven Web applications. This infrastructure consists of reference implementations of the DOM Core Level 1, DOM UI Events, JavaScript Promises and the JavaScript async/await APIs, all underpinned by a simple Core Event Semantics which is sufficiently expressive to describe the event models underlying these APIs. Our reference implementations are trustworthy in that three follow the appropriate standards line-by-line and all are thoroughly tested against the official test-suites, passing all the applicable tests. Using the Core Event Semantics and the reference implementations, we develop JaVerT.Click, a symbolic execution tool for JavaScript that, for the first time, supports reasoning about JavaScript programs that use multiple event-related APIs. We demonstrate the viability of JaVerT.Click by proving both the presence and absence of bugs in real-world JavaScript code. Gabriela Sampaio, José Fragoso Santos, Petar Maksimovic 0001, Philippa Gardner |
ECOOP | 4 |
| 2020 | Data Consistency in Transactional Storage Systems: A Centralised SemanticsabstractWe introduce an interleaving operational semantics for describing the client-observable behaviour of atomic transactions on distributed key-value stores. Our semantics builds on abstract states comprising centralised, global key-value stores and partial client views. Using our abstract states, we present operational definitions of well-known consistency models in the literature, and prove them to be equivalent to their existing declarative definitions using abstract executions. We explore two applications of our operational framework: 1) verifying that the COPS replicated database and the Clock-SI partitioned database satisfy their consistency models using trace refinement, and 2) proving invariant properties of client programs. Shale Xiong, Andrea Cerone, Azalea Raad, Philippa Gardner |
ECOOP | 4 |
| 2020 | Gillian, part i: a multi-language platform for symbolic executionabstractWe introduce Gillian, a platform for developing symbolic analysis tools for programming languages. Here, we focus on the symbolic execution engine at the heart of Gillian, which is parametric on the memory model of the target language. We give a formal description of the symbolic analysis and a modular implementation that closely follows this description. We prove a parametric soundness result, introducing restriction on abstract states, which generalises path conditions used in classical symbolic execution. We instantiate to obtain trusted symbolic testing tools for JavaScript and C, and use these tools to find bugs in real-world code, thus demonstrating the viability of our parametric approach. José Fragoso Santos, Petar Maksimovic 0001, Sacha-Élie Ayoun, Philippa Gardner |
PLDI | 4 |
| 2019 | A Program Logic for First-Order Encapsulated WebAssembly
Conrad Watt, Petar Maksimovic 0001, Neelakantan R. Krishnaswami, Philippa Gardner |
ECOOP | 4 |
| 2019 | Skeletal semantics and their interpretationsabstractThe development of mechanised language specification based on structured operational semantics, with applications to verified compilers and sound program analysis, requires huge effort. General theory and frameworks have been proposed to help with this effort. However, none of this work provides a systematic way of developing concrete and abstract semantics, connected together by a general consistency result. We introduce a skeletal semantics of a language, where each skeleton describes the complete semantic behaviour of a language construct. We define a general notion of interpretation , which provides a systematic and language-independent way of deriving semantic judgements from the skeletal semantics. We explore four generic interpretations: a simple well-formedness interpretation; a concrete interpretation; an abstract interpretation; and a constraint generator for flow-sensitive analysis. We prove general consistency results between interpretations, depending only on simple language-dependent lemmas. We illustrate our ideas using a simple While language. Martin Bodin, Philippa Gardner, Thomas P. Jensen, Alan Schmitt |
Proc. ACM Program. Lang. | 2 |
| 2019 | JaVerT 2.0: compositional symbolic execution for JavaScriptabstractWe propose a novel, unified approach to the development of compositional symbolic execution tools, bridging the gap between classical symbolic execution and compositional program reasoning based on separation logic. Using this approach, we build JaVerT 2.0, a symbolic analysis tool for JavaScript that follows the language semantics without simplifications. JaVerT 2.0 supports whole-program symbolic testing, verification, and, for the first time, automatic compositional testing based on bi-abduction. The meta-theory underpinning JaVerT 2.0 is developed modularly, streamlining the proofs and informing the implementation. Our explicit treatment of symbolic execution errors allows us to give meaningful feedback to the developer during whole-program symbolic testing and guides the inference of resource of the bi-abductive execution. We evaluate the performance of JaVerT 2.0 on a number of JavaScript data-structure libraries, demonstrating: the scalability of our whole-program symbolic testing; an improvement over the state-of-the-art in JavaScript verification; and the feasibility of automatic compositional testing for JavaScript. José Fragoso Santos, Petar Maksimovic 0001, Gabriela Cunha Sampaio, Philippa Gardner |
Proc. ACM Program. Lang. | 4 |
| 2018 | A Concurrent Specification of POSIX File SystemsabstractPOSIX is a standard for operating systems, with a substantial part devoted to specifying file-system operations. File-system operations exhibit complex concurrent behaviour, comprising multiple actions affecting different parts of the state: typically, multiple atomic reads followed by an atomic update. However, the standard's description of concurrent behaviour is unsatisfactory: it is fragmented; contains ambiguities; and is generally under-specified. We provide a formal concurrent specification of POSIX file systems and demonstrate scalable reasoning for clients. Our specification is based on a concurrent specification language, which uses a modern concurrent separation logic for reasoning about abstract atomic operations, and an associated refinement calculus. Our reasoning about clients highlights an important difference between reasoning about modules built over a heap, where the interference on the shared state is restricted to the operations of the module, and modules built over a file system, where the interference cannot be restricted as the file system is a public namespace. We introduce specifications conditional on context invariants used to restrict the interference, and apply our reasoning to the example of lock files. Gian Ntzik, Pedro da Rocha Pinto, Julian Sutherland, Philippa Gardner |
ECOOP | 4 |
| 2018 | JaVerT: JavaScript Verification and Testing Framework: Invited TalkabstractWe present a novel, unified approach to the development of compositional symbolic execution tools, which bridges the gap between traditional symbolic execution and compositional program reasoning based on separation logic. We apply our approach to JavaScript, providing support for full verification, whole-program symbolic testing, and automatic compositional testing based on bi-abduction. Philippa Gardner |
PPDP | 1 |
| 2018 | Symbolic Execution for JavaScriptabstractWe present a framework for trustworthy symbolic execution of JavaScripts programs, whose aim is to assist developers in the testing of their code: the developer writes symbolic tests for which the framework provides concrete counter-models. We create the framework following a new, general methodology for designing compositional program analyses for dynamic languages. We prove that the underlying symbolic execution is sound and does not generate false positives. We establish additional trust by using the theory to precisely guide the implementation and by thorough testing. We apply our framework to whole-program symbolic testing of real-world JavaScript libraries and compositional debugging of separation logic specifications of JavaScript programs. José Fragoso Santos, Petar Maksimovic 0001, Théotime Grohens, Julian Dolby, Philippa Gardner |
PPDP | 5 |
| 2018 | JaVerT: JavaScript verification toolchainabstractThe dynamic nature of JavaScript and its complex semantics make it a difficult target for logic-based verification. We introduce JaVerT, a semi-automatic JavaScript Verification Toolchain, based on separation logic and aimed at the specialist developer wanting rich, mechanically verified specifications of critical JavaScript code. To specify JavaScript programs, we design abstractions that capture its key heap structures (for example, prototype chains and function closures), allowing the developer to write clear and succinct specifications with minimal knowledge of the JavaScript internals. To verify JavaScript programs, we develop JaVerT, a verification pipeline consisting of: JS-2-JSIL, a well-tested compiler from JavaScript to JSIL, an intermediate goto language capturing the fundamental dynamic features of JavaScript; JSIL Verify, a semi-automatic verification tool based on a sound JSIL separation logic; and verified axiomatic specifications of the JavaScript internal functions. Using JaVerT, we verify functional correctness properties of: data-structure libraries (key-value map, priority queue) written in an object-oriented style; operations on data structures such as binary search trees (BSTs) and lists; examples illustrating function closures; and test cases from the official ECMAScript test suite. The verification times suggest that reasoning about larger, more complex code using JaVerT is feasible. José Fragoso Santos, Petar Maksimovic 0001, Daiva Naudziuniene, Thomas Wood 0001, Philippa Gardner |
Proc. ACM Program. Lang. | 5 |
| 2017 | Towards Logic-Based Verification of JavaScript Programs
José Fragoso Santos, Philippa Gardner, Petar Maksimovic 0001, Daiva Naudziuniene |
CADE | 2 |
| 2017 | Abstract Specifications for Concurrent Maps
Shale Xiong, Pedro da Rocha Pinto, Gian Ntzik, Philippa Gardner |
ESOP | 4 |
| 2016 | Verifying Concurrent Graph Algorithms
Azalea Raad, Aquinas Hobor, Jules Villard, Philippa Gardner |
APLAS | 4 |
| 2016 | DOM: Specification and Client Reasoning
Azalea Raad, José Fragoso Santos, Philippa Gardner |
APLAS | 3 |
| 2016 | Modular Termination Verification for Non-blocking Concurrency
Pedro da Rocha Pinto, Thomas Dinsdale-Young, Philippa Gardner, Julian Sutherland |
ESOP | 3 |
| 2015 | Fault-Tolerant Resource Reasoning
Gian Ntzik, Pedro da Rocha Pinto, Philippa Gardner |
APLAS | 3 |
| 2015 | A Trusted Mechanised Specification of JavaScript: One Year On
Philippa Gardner, Gareth Smith, Conrad Watt, Thomas Wood 0001 |
CAV (1) | 1 |
| 2015 | CoLoSL: Concurrent Local Subjective Logic
Azalea Raad, Jules Villard, Philippa Gardner |
ESOP | 3 |
| 2015 | Reasoning about the POSIX file system: local update and global pathnamesabstractWe introduce a program logic for specifying a core sequential subset of the POSIX file system and for reasoning abstractly about client programs working with the file system. The challenge is to reason about the combination of local directory update and global pathname traversal (including '..' and symbolic links) which may overlap the directories being updated. Existing reasoning techniques are either based on first-order logic and do not scale, or on separation logic and can only handle linear pathnames (no '..' or symbolic links). We introduce fusion logic for reasoning about local update and global pathname traversal, introducing a novel effect frame rule to propagate the effect of a local update on overlapping pathnames. We apply our reasoning to the standard recursive remove utility (rm -r), discovering bugs in well-known implementations. Gian Ntzik, Philippa Gardner |
OOPSLA | 2 |
| 2014 | TaDA: A Logic for Time and Data Abstraction
Pedro da Rocha Pinto, Thomas Dinsdale-Young, Philippa Gardner |
ECOOP | 3 |
| 2014 | Local Reasoning for the POSIX File System
Philippa Gardner, Gian Ntzik, Adam Wright |
ESOP | 1 |
| 2014 | A trusted mechanised JavaScript specificationabstractJavaScript is the most widely used web language for client-side applications. Whilst the development of JavaScript was initially just led by implementation, there is now increasing momentum behind the ECMA standardisation process. The time is ripe for a formal, mechanised specification of JavaScript, to clarify ambiguities in the ECMA standards, to serve as a trusted reference for high-level language compilation and JavaScript implementations, and to provide a platform for high-assurance proofs of language properties. Martin Bodin, Arthur Charguéraud, Daniele Filaretti, Philippa Gardner, Sergio Maffeis, Daiva Naudziuniene, Alan Schmitt, Gareth Smith |
POPL | 4 |
| 2013 | Views: compositional reasoning for concurrent programsabstractCompositional abstractions underly many reasoning principles for concurrent programs: the concurrent environment is abstracted in order to reason about a thread in isolation; and these abstractions are composed to reason about a program consisting of many threads. For instance, separation logic uses formulae that describe part of the state, abstracting the rest; when two threads use disjoint state, their specifications can be composed with the separating conjunction. Type systems abstract the state to the types of variables; threads may be composed when they agree on the types of shared variables. Thomas Dinsdale-Young, Lars Birkedal, Philippa Gardner, Matthew J. Parkinson, Hongseok Yang |
POPL | 3 |
| 2012 | Towards a program logic for JavaScriptabstractJavaScript has become the most widely used language for client-side web programming. The dynamic nature of JavaScript makes understanding its code notoriously difficult, leading to buggy programs and a lack of adequate static-analysis tools. We believe that logical reasoning has much to offer JavaScript: a simple description of program behaviour, a clear understanding of module boundaries, and the ability to verify security contracts. We introduce a program logic for reasoning about a broad subset of JavaScript, including challenging features such as prototype inheritance and "with". We adapt ideas from separation logic to provide tractable reasoning about JavaScript code: reasoning about easy programs is easy; reasoning about hard programs is possible. We prove a strong soundness result. All libraries written in our subset and proved correct with respect to their specifications will be well-behaved, even when called by arbitrary JavaScript code. Philippa Gardner, Sergio Maffeis, Gareth Smith |
POPL | 1 |
| 2012 | Processes in space
Luca Cardelli, Philippa Gardner |
Theor. Comput. Sci. | 2 |
| 2011 | Abstract Local Reasoning for Program Modules
Thomas Dinsdale-Young, Philippa Gardner, Mark J. Wheelhouse |
CALCO | 2 |
| 2011 | A simple abstraction for complex concurrent indexesabstractIndexes are ubiquitous. Examples include associative arrays, dictionaries, maps and hashes used in applications such as databases, file systems and dynamic languages. Abstractly, a sequential index can be viewed as a partial function from keys to values. Values can be queried by their keys, and the index can be mutated by adding or removing mappings. Whilst appealingly simple, this abstract specification is insufficient for reasoning about indexes accessed concurrently. We present an abstract specification for concurrent indexes. We verify several representative concurrent client applications using our specification, demonstrating that clients can reason abstractly without having to consider specific underlying implementations. Our specification would, however, mean nothing if it were not satisfied by standard implementations of concurrent indexes. We verify that our specification is satisfied by algorithms based on linked lists, hash tables and B-Link trees. The complexity of these algorithms, in particular the B-Link tree algorithm, can be completely hidden from the client's view by our abstract specification. Pedro da Rocha Pinto, Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Mark J. Wheelhouse |
OOPSLA | 4 |
| 2010 | Processes in Space
Luca Cardelli, Philippa Gardner |
CiE | 2 |
| 2010 | Concurrent Abstract Predicates
Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner, Matthew J. Parkinson, Viktor Vafeiadis |
ECOOP | 3 |
| 2010 | Adjunct elimination in Context Logic for trees
Cristiano Calcagno, Thomas Dinsdale-Young, Philippa Gardner |
Inf. Comput. | 3 |
| 2009 | Automatic Parallelization with Separation Logic
Mohammad Raza, Cristiano Calcagno, Philippa Gardner |
ESOP | 3 |
| 2009 | A process model of Rho GTP-binding proteinsabstractRho GTP-binding proteins play a key role as molecular switches in many cellular activities. In response to extracellular stimuli and with the help of regulators (GEF, GAP, Effector, GDI), these proteins serve as switches that interact with their environment in a complex manner. Based on the structure of a published ordinary differential equations (ODE) model, we first present a generic process model for the Rho GTP-binding proteins, and compare it with the ODE model. We then extend the basic model to include the behaviour of the GDI regulators and explore the parameter space for the extended model with respect to biological data from the literature. We discuss the challenges this extension brings and the directions of further research. In particular, we present techniques for modular representation and refinement of process models, where, for example, different Rho proteins with different rates for regulator interactions can be given as instances of the same parametric model. Luca Cardelli, Emmanuelle Caron, Philippa Gardner, Ozan Kahramanogullari, Andrew Phillips |
Theor. Comput. Sci. | 3 |
| 2008 | Footprints in Local Reasoning
Mohammad Raza, Philippa Gardner |
FoSSaCS | 2 |
| 2008 | Local Hoare reasoning about DOMabstractThe W3C Document Object Model (DOM) specifies an XML update library. DOM is written in English, and is therefore not compositional and not complete. We provide a first step towards a compositional specification of DOM. Unlike DOM, we are able to work with a minimal set of commands and obtain a complete reasoning for straight-line code. Our work transfers O'Hearn, Reynolds and Yang's local Hoare reasoning for analysing heaps to XML, viewing XML as an in-place memory store as does DOM. In particular, we apply recent work by Calcagno, Gardner and Zarfaty on local Hoare reasoning about simple tree update to this real-world DOM application. Our reasoning not only formally specifies a significant subset of DOM Core Level 1, but can also be used to verify, for example, invariant properties of simple Javascript programs. Philippa Gardner, Gareth Smith, Mark J. Wheelhouse, Uri Zarfaty |
PODS | 1 |
| 2007 | Adjunct Elimination in Context Logic for Trees
Cristiano Calcagno, Thomas Dinsdale-Young, Philippa Gardner |
APLAS | 3 |
| 2007 | Context logic as modal logic: completeness and parametric inexpressivity
Cristiano Calcagno, Philippa Gardner, Uri Zarfaty |
POPL | 2 |
| 2007 | An Introduction to Context Logic
Philippa Gardner, Uri Zarfaty |
WoLLIC | 1 |
| 2007 | Expressiveness and complexity of graph logic
Anuj Dawar, Philippa Gardner, Giorgio Ghelli |
Inf. Comput. | 2 |
| 2007 | Linear forwarders
Philippa Gardner, Cosimo Laneve, Lucian Wischik |
Inf. Comput. | 1 |
| 2006 | Editorial
Philippa Gardner, Nobuko Yoshida |
Theor. Comput. Sci. | 1 |
| 2005 | From Separation Logic to First-Order Logic
Cristiano Calcagno, Philippa Gardner, Matthew Hague |
FoSSaCS | 2 |
| 2005 | Context logic and tree updateabstractSpatial logics have been used to describe properties of tree-like structures (Ambient Logic) and in a Hoare style to reason about dynamic updates of heap-like structures (Separation Logic). We integrat this work by analyzing dynamic updates to tree-like structures with pointers (such as XML with identifiers and idrefs). Naíve adaptations of the Ambient Logic are not expressive enough to capture such local updates. Instead we must explicitly reason about arbitrary tree contexts in order to capture updates throughout the tree. We introduce Context Logic, study its proof theory and models, and show how it generalizes Separation Logic and its general theory BI. We use it to reason locally about a small imperative programming language for updating trees, using a Hoare logic in the style of O'Hearn, Reynolds and Yang, and show that weakest preconditions are derivable. We demonstrate the robustness of our approach by using Context Logic to capture the locality of term rewrite systems. Cristiano Calcagno, Philippa Gardner, Uri Zarfaty |
POPL | 2 |
| 2005 | Modelling dynamic web data
Philippa Gardner, Sergio Maffeis |
Theor. Comput. Sci. | 1 |
| 2005 | Explicit fusions
Lucian Wischik, Philippa Gardner |
Theor. Comput. Sci. | 2 |
| 2004 | Strong Bisimulation for the Explicit Fusion Calculus
Lucian Wischik, Philippa Gardner |
FoSSaCS | 2 |
| 2004 | Adjunct Elimination Through Games in Static Ambient Logic
Anuj Dawar, Philippa Gardner, Giorgio Ghelli |
FSTTCS | 2 |
| 2003 | Linear Forwarders
Philippa Gardner, Cosimo Laneve, Lucian Wischik |
CONCUR | 1 |
| 2003 | Manipulating Trees with Hidden Labels
Luca Cardelli, Philippa Gardner, Giorgio Ghelli |
FoSSaCS | 2 |
| 2002 | The Fusion Machine
Philippa Gardner, Cosimo Laneve, Lucian Wischik |
CONCUR | 1 |
| 2002 | A Spatial Logic for Querying Graphs
Luca Cardelli, Philippa Gardner, Giorgio Ghelli |
ICALP | 2 |
| 2000 | From Process Calculi to Process Frameworks
Philippa Gardner |
CONCUR | 1 |
| 2000 | Explicit Fusions
Philippa Gardner, Lucian Wischik |
MFCS | 1 |
| 1999 | Closed Action Calculi
Philippa Gardner |
Theor. Comput. Sci. | 1 |
| 1995 | Equivalences between Logics and Their Representing Type TheoriesabstractWe propose a new framework for representing logics, called LF+, which is based on the Edinburgh Logical Framework. The new framework allows us to give, apparently for the first time, general definitions that capture how well a logic has been represented. These definitions are possible because we are able to distinguish in a generic way that part of the LF+entailment corresponding to the underlying logic. This distinction does not seem to be possible with other frameworks. Using our definitions, we show that, for example, natural deduction first-order logic can be well-represented in LF+, whereas linear and relevant logics cannot. We also show that our syntactic definitions of representation have a simple formulation as indexed isomorphisms, which both confirms that our approach is a natural one and provides a link between type-theoretic and categorical approaches to frameworks. Philippa Gardner |
Math. Struct. Comput. Sci. | 1 |
| 1993 | A New Type Theory for Representing Logics
Philippa Gardner |
LPAR | 1 |