Noah Torp-Smith
IT University of Copenhagen
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Noah Torp-Smith.
ACM Transactions on Programming Languages and Systems | 2008
Noah Torp-Smith; Lars Birkedal; John C. Reynolds
We present a programming language, model, and logic appropriate for implementing and reasoning about a memory management system. We state semantically what is meant by correctness of a copying garbage collector, and employ a variant of the novel separation logics to formally specify partial correctness of Cheneys copying garbage collector in our program logic. Finally, we prove that our implementation of Cheneys algorithm meets its specification using the logic we have given and auxiliary variables.
logic in computer science | 2005
Lars Birkedal; Noah Torp-Smith; Hongseok Yang
We show how to give a coherent semantics to programs that are well-specified in a version of separation logic for a language with higher types: idealized algol extended with heaps (but with immutable stack variables). In particular, we provide simple sound rules for deriving higher-order frame rules, allowing for local reasoning.
european symposium on programming | 2005
Bodil Biering; Lars Birkedal; Noah Torp-Smith
We present a precise correspondence between separation logic and a new simple notion of predicate BI, extending the earlier correspondence given between part of separation logic and propositional BI [14]. Moreover, we introduce the notion of a BI hyperdoctrine and show that it soundly models classical and intuitionistic first- and higher-order predicate BI, and use it to show that we may easily extend separation logic to higher-order. We argue that the given correspondence may be of import for formalizations of separation logic.
Logical Methods in Computer Science | 2006
Lars Birkedal; Noah Torp-Smith; Hongseok Yang
We show how to give a coherent semantics to programs that are well-specified in a version of separation logic for a language with higher types: idealized algol extended with heaps (but with immutable stack variables). In particular, we provide simple sound rules for deriving higher-order frame rules, allowing for local reasoning.
foundations of software technology and theoretical computer science | 2004
Ivana Mijajlović; Noah Torp-Smith; Peter W. O’Hearn
A separation context is a client program which does not dereference internals of a module with which it interacts. We use certain “precise” relations to unambiguously describe the storage of a module and prove that separation contexts preserve such relations. We also show that a simulation theorem holds for separation contexts, while this is not the case for arbitrary client programs.
Formal Aspects of Computing | 2010
Ivana Filipović; Peter O’Hearn; Noah Torp-Smith; Hongseok Yang
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.
ACM Transactions on Programming Languages and Systems | 2005
Lars Birkedal; Noah Torp-Smith
Archive | 2003
Lars Birkedal; Noah Torp-Smith; John C. Reynolds
european symposium on programming | 2007
Bodil Biering; Lars Birkedal; Noah Torp-Smith
Archive | 2005
Nick Benton; Noah Torp-Smith