Results 1 
9 of
9
Stepindexed Kripke models over recursive worlds
 In Proc. of POPL
, 2011
"... Over the last decade, there has been extensive research on modelling challenging features in programming languages and program logics, such as higherorder store and storable resource invariants. A recent line of work has identified a common solution to some of these challenges: Kripke models over w ..."
Abstract

Cited by 18 (9 self)
 Add to MetaCart
Over the last decade, there has been extensive research on modelling challenging features in programming languages and program logics, such as higherorder store and storable resource invariants. A recent line of work has identified a common solution to some of these challenges: Kripke models over worlds that are recursively defined in a category of metric spaces. In this paper, we broaden the scope of this technique from the original domaintheoretic setting to an elementary, operational one based on step indexing. The resulting method is widely applicable and leads to simple, succinct models of complicated language features, as we demonstrate in our semantics of Charguéraud and Pottier’s typeandcapability system for an MLlike higherorder language. Moreover, the method provides a highlevel understanding of the essence of recent approaches based on step indexing. 1.
Separation logic for higherorder store
 Pages 575–590 of: Computer Science Logic. Lecture Notes in Computer Science
, 2006
"... Abstract. Separation Logic is a substructural logic that supports local reasoning for imperative programs. It is designed to elegantly describe sharing and aliasing properties of heap structures, thus facilitating the verification of programs with pointers. In past work, separation logic has been d ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Abstract. Separation Logic is a substructural logic that supports local reasoning for imperative programs. It is designed to elegantly describe sharing and aliasing properties of heap structures, thus facilitating the verification of programs with pointers. In past work, separation logic has been developed for heaps containing records of basic data types. Languages like C or ML, however, also permit the use of code pointers. The corresponding heap model is commonly referred to as “higherorder store ” since heaps may contain commands which in turn are interpreted as partial functions between heaps. In this paper we make Separation Logic and the benefits of local reasoning available to languages with higherorder store. In particular, we introduce an extension of the logic and prove it sound, including the Frame Rule that enables specifications of code to be extended by invariants on parts of the heap that are not accessed. 1
Logical equivalence for subtyping object and recursive types
"... Subtyping in first order object calculi is studied with respect to the logical semantics obtained by identifying terms that satisfy the same set of predicates, as formalised through an assignment system. It is shown that equality in the full first order ςcalculus is modelled by this notion, which i ..."
Abstract

Cited by 9 (8 self)
 Add to MetaCart
Subtyping in first order object calculi is studied with respect to the logical semantics obtained by identifying terms that satisfy the same set of predicates, as formalised through an assignment system. It is shown that equality in the full first order ςcalculus is modelled by this notion, which in turn is included in a Morrisstyle contextual equivalence.
About Hoare logics for higherorder store
 In ICALP, volume 3580
, 2005
"... Abstract. We present a Hoare logic for a simple imperative whilelanguage with stored commands, ie. stored parameterless procedures. Stores that may contain procedures are called higherorder. Soundness of our logic is established by using denotational rather than operational semantics. The former is ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
Abstract. We present a Hoare logic for a simple imperative whilelanguage with stored commands, ie. stored parameterless procedures. Stores that may contain procedures are called higherorder. Soundness of our logic is established by using denotational rather than operational semantics. The former is employed to elegantly account for an inherent difficulty of higherorder store, namely that assertions necessarily describe recursive predicates on a recursive domain. In order to obtain proof rules for mutually recursive procedures, assertions have to explicitly refer to the code of the procedures. 1
A Stepindexed Semantics of Imperative Objects
"... Stepindexed semantic models of types were proposed as an alternative to purely syntactic proofs of type safety using subject reduction. Building on work by Ahmed, Appel and others, we introduce a stepindexed model for the imperative object calculus of Abadi and Cardelli. Providing a semantic accou ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
Stepindexed semantic models of types were proposed as an alternative to purely syntactic proofs of type safety using subject reduction. Building on work by Ahmed, Appel and others, we introduce a stepindexed model for the imperative object calculus of Abadi and Cardelli. Providing a semantic account of this calculus using more ‘traditional’, domaintheoretic approaches has proved challenging due to the combination of dynamically allocated objects, higherorder store, and an expressive type system. Here we show that the stepindexed model can interpret a rich type discipline with object types, subtyping, recursive and bounded quantified types in the presence of state.
Denotational semantics for Abadi and Leino’s logic of objects
, 2004
"... Abstract. AbadiLeino Logic is a Hoarecalculus style logic for a simple imperative and objectbased language where every object comes with its own method suite. Consequently, methods need to reside in the store (”higherorder store”). We present a new soundness proof for this logic using a denotati ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
Abstract. AbadiLeino Logic is a Hoarecalculus style logic for a simple imperative and objectbased language where every object comes with its own method suite. Consequently, methods need to reside in the store (”higherorder store”). We present a new soundness proof for this logic using a denotational semantics where object specifications are recursive predicates on the domain of objects. Our semantics reveals which of the limitations of Abadi and Leino’s logic are deliberate design decisions and which follow from the use of higherorder store. We discuss the implications for the development of other, more expressive, program logics. 1
On Normalization by Evaluation for Object Calculi
"... We present a procedure for computing normal forms of terms in Abadi and Cardelli’s functional object calculus. Even when equipped with simple types, terms of this calculus are not terminating in general, and we draw on recent ideas about the normalization by evaluation paradigm for the untyped lambd ..."
Abstract
 Add to MetaCart
We present a procedure for computing normal forms of terms in Abadi and Cardelli’s functional object calculus. Even when equipped with simple types, terms of this calculus are not terminating in general, and we draw on recent ideas about the normalization by evaluation paradigm for the untyped lambda calculus. Technically, we work in the framework of Shinwell and Pitts ’ FMdomain theory, which leads to a normalization procedure for the object calculus that is directly implementable in a language like Fresh O’Caml.
Dialgebraic Semantics of Typed Object Calculi
"... Algebraic data type theory has a notion of structural recursion. Coalgebraic data types similarly have a notion of structural corecursion. In this thesis we study a third form of recursion: direcursion. The other two notions have been used in program derivations, correctness proofs, and in foundatio ..."
Abstract
 Add to MetaCart
Algebraic data type theory has a notion of structural recursion. Coalgebraic data types similarly have a notion of structural corecursion. In this thesis we study a third form of recursion: direcursion. The other two notions have been used in program derivations, correctness proofs, and in foundations of functional and classbased languages. Direcursion, on the other hand, has not been extensively studied in the context of programming languages, and not at all in the context of algebraic techniques for objectoriented programming languages or typed object calculi. Yet, every object in object calculi is equipped with this recursion principle, and we will demonstrate that this principle can be used in foundations and in programming (as a powerful and general way of computing with objects), and when reasoning with object calculi programs, e.g. in correctness proofs. The family of object calculi developed by Abadi and Cardelli [3] is one of several proposed foundations for objectoriented programming languages. It is one of the more general frameworks available, and arguably the most general framework which fully supports subtyping. The study of direcursion involves dealing with several aspects of object calculus, with contributions ranging from giving an operational (natural) semantics of a typed object calculus and interpreting this semantics into fixed point calculus while proving soundness and adequacy results to directly constructing a denotational semantics of typed object calculi. As a result, this thesis lays a foundation for algebraic programming techniques and laws for typed object calculi based on direcursion. Contents
(Theory of Computing Systems, 42(3):306348, 2008)
"... equivalence for subtyping object and recursive types ..."