Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Gavin M. Bierman is active.

Publication


Featured researches published by Gavin M. Bierman.


symposium on principles of programming languages | 2005

Separation logic and abstraction

Matthew J. Parkinson; Gavin M. Bierman

In this paper we address the problem of writing specifications for programs that use various forms of modularity, including procedures and Java-like classes. We build on the formalism of separation logic and introduce the new notion of an abstract predicate and, more generally, abstract predicate families. This provides a flexible mechanism for reasoning about the different forms of abstraction found in modern programming languages, such as abstract datatypes and objects. As well as demonstrating the soundness of our proof system, we illustrate its utility with a series of examples.


international conference on management of data | 2006

LINQ: reconciling object, relations and XML in the .NET framework

Erik Meijer; Brian Beckman; Gavin M. Bierman

Many software applications today need to handle data from different data models; typically objects from the host programming language along with the relational and XML data models. The ROX impedance mismatch makes programs awkward to write and hard to maintain.The .NET Language-Integrated Query (LINQ) framework, proposed for the next release of the .NET framework, approaches this problem by defining a pattern of general-purpose standard query operators for traversal, filter, and projection. Based on this pattern, any .NET language can define special query comprehension syntax that is subsequently compiled into these standard operators (our code examples are in VB).Besides the general query operators, the LINQ framework also defines two domain specific APIs that work over XML (XLinq) and relational data (DLinq) respectively. The operators over XML use a lightweight and easy to use in-memory XML representation to provide XQuery-style expressiveness in the host programming language. The operators over relational data provide a simple OR mapping by leveraging remotable queries that are executed directly in the back-end relational store.


symposium on principles of programming languages | 2008

Separation logic, abstraction and inheritance

Matthew J. Parkinson; Gavin M. Bierman

Inheritance is a fundamental concept in object-oriented programming, allowing new classes to be defined in terms of old classes. When used with care, inheritance is an essential tool for object-oriented programmers. Thus, for those interested in developing formal verification techniques, the treatment of inheritance is of paramount importance. Unfortunately, inheritance comes in a number of guises, all requiring subtle techniques. To address these subtleties, most existing verification methodologies typically adopt one of two restrictions to handle inheritance: either (1) they prevent a derived class from restricting the behaviour of its base class (typically by syntactic means) to trivialize the proof obligations; or (2) they allow a derived class to restrict the behaviour of its base class, but require that every inherited method must be reverified. Unfortunately, this means that typical inheritance-rich code either cannot be verified or results in an unreasonable number of proof obligations. In this paper, we develop a separation logic for a core object-oriented language. It allows derived classes which override the behaviour of their base class, yet supports the inheritance of methods without reverification where this is safe. For each method, we require two specifications: a static specification that is used to verify the implementation and direct method calls (in Java this would be with a super call); and a dynamic specification that is used for calls that are dynamically dispatched; along with a simple relationship between the two specifications. Only the dynamic specification is involved with behavioural subtyping. This simple separation of concerns leads to a powerful system that supports all forms of inheritance with low proof-obligation overheads. We both formalize our methodology and demonstrate its power with a series of inheritance examples.


international conference on typed lambda calculi and applications | 1995

What is a Categorical Model of Intuitionistic Linear Logic

Gavin M. Bierman

This paper re-addresses the old problem of providing a categorical model for Intuitionistic Linear Logic (ILL). In particular we compare the now standard model proposed by Seely to the lesser known one proposed by Benton, Bierman, Hyland and de Paiva. Surprisingly we find that Seelys model is unsound in that it does not preserve equality of proofs. We shall propose how to adapt Seelys definition so as to correct this problem and consider how this compares with the model due to Benton et al.


international conference on typed lambda calculi and applications | 1993

A Term Calculus for Intuitionistic Linear Logic

P. N. Benton; Gavin M. Bierman; Valeria de Paiva; Martin Hyland

In this paper we consider the problem of deriving a term assignment system for Girards Intuitionistic Linear Logic for both the sequent calculus and natural deduction proof systems. Our system differs from previous calculi (e.g. that of Abramsky [1]) and has two important properties which they lack. These are the substitution property (the set of valid deductions is closed under substitution) and subject reduction (reduction on terms is well-typed). We also consider term reduction arising from cut-elimination in the sequent calculus and normalisation in natural deduction. We explore the relationship between these and consider their computational content.


Studia Logica | 2000

On an Intuitionistic Modal Logic

Gavin M. Bierman; V. C. V. de Paiva

In this paper we consider an intuitionistic variant of the modal logic S4 (which we call IS4). The novelty of this paper is that we place particular importance on the natural deduction formulation of IS4— our formulation has several important metatheoretic properties. In addition, we study models of IS4— not in the framework of Kirpke semantics, but in the more general framework of category theory. This allows not only a more abstract definition of a whole class of models but also a means of modelling proofs as well as provability.


european conference on object oriented programming | 2005

The essence of data access in Cω: the power is in the dot!

Gavin M. Bierman; Erik Meijer; Wolfram Schulte

In this paper we describe the data access features of Cω, an experimental programming language based on C# currently under development at Microsoft Research. Cω targets distributed, data-intensive applications and accordingly extends C#s support of both data and control. In the data dimension it provides a type-theoretic integration of the three prevalent data models, namely the object, relational, and semi-structured models of data. In the control dimension Cω provides elegant primitives for asynchronous communication. In this paper we concentrate on the data dimension. Our aim is to describe the essence of these extensions; by which we mean we identify, exemplify and formalize their essential features. Our tool is a small core language, FCω, which is a valid subset of the full Cω language. Using this core language we are able to formalize both the type system and the operational semantics of the data access fragment of Cω.


Journal of Functional Programming | 1998

Computational types from a logical perspective

P. N. Benton; Gavin M. Bierman; V. C. V. de Paiva

Moggis computational lambda calculus is a metalanguage for denotational semantics which arose from the observation that many different notions of computation have the categorical structure of a strong monad on a cartesian closed category. In this paper we show that the computational lambda calculus also arises naturally as the term calculus corresponding (by the Curry–Howard correspondence) to a novel intuitionistic modal propositional logic. We give natural deduction, sequent calculus and Hilbert-style presentations of this logic and prove strong normalisation and confluence results.


ACM Transactions on Programming Languages and Systems | 2007

Mutatis Mutandis : Safe and predictable dynamic software updating

Gareth Paul Stoyle; Michael Hicks; Gavin M. Bierman; Peter Sewell; Iulian Neamtiu

This article presents Proteus, a core calculus that models dynamic software updating, a service for fixing bugs and adding features to a running program. Proteus permits a programs type structure to change dynamically but guarantees the updated program remains type-correct by ensuring a property we call con-freeness. We show how con-freeness can be enforced dynamically, and how it can be approximated via a novel static analysis. This analysis can be used to assess the implications of a programs structure on future updates in order to make update success more predictable. We have implemented Proteus for C, and briefly discuss our implementation which we have tested on several well-known programs.


international conference on typed lambda calculi and applications | 2001

Strong Normalisation of Cut-Elimination in Classical Logic

Christian Urban; Gavin M. Bierman

In this paper a strongly normalizing cut-elimination procedure is presented for classical logic. The procedure adapts the standard cut transformations, see for example. In particular our cut-elimination procedure requires no special annotations on formulae. We design a term calculus for a variant of Kleenes sequent calculus G3 via the Curry-Howard correspondence and the cut-elimination steps are given as rewrite rules. In the strong normalization proof we adapt the symmetric reducibility candidates developed by Barbanera and Berardi.

Collaboration


Dive into the Gavin M. Bierman's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Peter Sewell

University of Cambridge

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge