Results 1  10
of
14
Biorthogonality, StepIndexing and Compiler Correctness
, 2009
"... We define logical relations between the denotational semantics of a simply typed functional language with recursion and the operational behaviour of lowlevel programs in a variant SECD machine. The relations, which are defined using biorthogonality and stepindexing, capture what it means for a piec ..."
Abstract

Cited by 24 (10 self)
 Add to MetaCart
We define logical relations between the denotational semantics of a simply typed functional language with recursion and the operational behaviour of lowlevel programs in a variant SECD machine. The relations, which are defined using biorthogonality and stepindexing, capture what it means for a piece of lowlevel code to implement a mathematical, domaintheoretic function and are used to prove correctness of a simple compiler. The results have been formalized in the Coq proof assistant.
Constructive Data Refinement in Typed Lambda Calculus
, 2000
"... . A new treatment of data refinement in typed lambda calculus is proposed, based on prelogical relations [HS99] rather than logical relations as in [Ten94], and incorporating a constructive element. Constructive data refinement is shown to have desirable properties, and a substantial example of ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
. A new treatment of data refinement in typed lambda calculus is proposed, based on prelogical relations [HS99] rather than logical relations as in [Ten94], and incorporating a constructive element. Constructive data refinement is shown to have desirable properties, and a substantial example of refinement is presented. 1 Introduction Various treatments of data refinement in the context of typed lambda calculus, beginning with Tennent's in [Ten94], have used logical relations to formalize the intuitive notion of refinement. This work has its roots in [Hoa72], which proposes that the correctness of a concrete version of an abstract program be verified using an invariant on the domain of concrete values together with a function mapping concrete values (that satisfy the invariant) to abstract values. In algebraic terms, what is required is a homomorphism from a subalgebra of the concrete algebra to the abstract algebra. A strictly more general method is to take a homomorphic relatio...
Notions of computability at higher types I
 In Logic Colloquium 2000
, 2005
"... We discuss the conceptual problem of identifying the natural notions of computability at higher types (over the natural numbers). We argue for an eclectic approach, in which one considers a wide range of possible approaches to defining higher type computability and then looks for regularities. As a ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
We discuss the conceptual problem of identifying the natural notions of computability at higher types (over the natural numbers). We argue for an eclectic approach, in which one considers a wide range of possible approaches to defining higher type computability and then looks for regularities. As a first step in this programme, we give an extended survey of the di#erent strands of research on higher type computability to date, bringing together material from recursion theory, constructive logic and computer science. The paper thus serves as a reasonably complete overview of the literature on higher type computability. Two sequel papers will be devoted to developing a more systematic account of the material reviewed here.
Duality between CallbyName Recursion and CallbyValue Iteration
 In Proc. Computer Science Logic, Springer Lecture Notes in Comput. Sci
, 2001
"... We investigate the duality between callbyname recursion and callbyvalue iteration on the calculi. The duality between callbyname and callbyvalue was first studied by Filinski, and Selinger has studied the categorytheoretic duality on the models of the callbyname calculus and the callby ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
We investigate the duality between callbyname recursion and callbyvalue iteration on the calculi. The duality between callbyname and callbyvalue was first studied by Filinski, and Selinger has studied the categorytheoretic duality on the models of the callbyname calculus and the callbyvalue one. We extend the callbyname calculus and the callbyvalue one with a fixedpoint operator and an iteration operator, respectively. We show that the dual translations constructed by Selinger can be expanded into our extended calculi, and we also discuss their implications to practical applications.
A Logic for Probabilities in Semantics
, 2003
"... Probabilistic computation has proven to be a challenging and interesting area of research, both from the theoretical perspective of denotational semantics and the practical perspective of reasoning about probabilistic algorithms. On the theoretical side, the probabilistic powerdomain of Jones and Pl ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
Probabilistic computation has proven to be a challenging and interesting area of research, both from the theoretical perspective of denotational semantics and the practical perspective of reasoning about probabilistic algorithms. On the theoretical side, the probabilistic powerdomain of Jones and Plotkin represents a significant advance. Further work, especially by AlvarezManilla, has greatly improved our understanding of the probabilistic powerdomain, and has helped clarify its relation to classical measure and integration theory. On the practical side, many researchers such as Kozen, Segala, Desharnais, and Kwiatkowska, among others, study problems of verification for probabilistic computation by defining various suitable logics for the classes of processes under study. The work reported here begins to bridge the gap between the domain theoretic and verification (model checking) perspectives on probabilistic computation by exhibiting sound and complete logics for probabilistic powerdomains that arise directly from given logics for the underlying domains. The category in which the construction is carried out generalizes Scott’s Information Systems by taking account of full classical sequents. Via Stone duality, following Abramsky’s Domain Theory in Logical Form, all known interesting categories of domains are embedded as subcategories. So the results reported here properly generalize similar constructions on specific categories of domains. The category offers a promising universe of semantic domains characterized by a very rich structure and good preservation properties of standard constructions. Furthermore, because the logical constructions make use of full classical sequents, the morphisms have a natural nondeterministic interpretation. Thus the category is a natural one in which to investigate the relationship between probabilistic and nondeterministic computation. We discuss the problem of integrating probabilistic and nondeterministic computation after presenting the construction of logics for probabilistic powerdomains.
RZ: A tool for bringing constructive and computable mathematics closer to programming practice
 CiE 2007: Computation and Logic in the Real World, volume 4497 of LNCS
, 2007
"... Abstract. Realizability theory can produce code interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between constructive mathematics and programming by translating specifications in constructive logic into annotated interface code in Obje ..."
Abstract

Cited by 6 (3 self)
 Add to MetaCart
Abstract. Realizability theory can produce code interfaces for the data structure corresponding to a mathematical theory. Our tool, called RZ, serves as a bridge between constructive mathematics and programming by translating specifications in constructive logic into annotated interface code in Objective Caml. The system supports a rich input language allowing descriptions of complex mathematical structures. RZ does not extract code from proofs, but allows any implementation method, from handwritten code to code extracted from proofs by other tools. 1
Program Logics for Sequential HigherOrder Control
"... We introduce a Hoare logic for higherorder functional languages with control operators such as callcc. The key idea is to build the assertion language and proof rules on the basis of types that generalise the standard types for control operators (for ’jumpingto’) with dual types (for ’beingjumpe ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
We introduce a Hoare logic for higherorder functional languages with control operators such as callcc. The key idea is to build the assertion language and proof rules on the basis of types that generalise the standard types for control operators (for ’jumpingto’) with dual types (for ’beingjumpedto’). This enables the assertion language to capture precisely the intensional and extensional effects of jumps by internalising rely/guarantee reasoning, leading to simple proof rules for callbyvalue PCF with callcc and/or nameabstraction. All new operators come with powerful associated axioms. We show that the logic allows specification and reasoning about nontrivial examples of using callcc. The logic matches exactly with the operational semantics of the target language (observational completeness), is relatively complete in Cook’s sense and allows efficient generation of characteristic formulae.
An Implementation of Parallel Patternmatching via Concurrent Haskell
 Australian Computer Science Communications
, 2002
"... Parallel patternmatching offers the maximum laziness for programs written in lazy functional languages. Function arguments are evaluated concurrently and all arguments are given equal precedence, so functions can return results whenever possible in the presence of errors or infinite computations. W ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Parallel patternmatching offers the maximum laziness for programs written in lazy functional languages. Function arguments are evaluated concurrently and all arguments are given equal precedence, so functions can return results whenever possible in the presence of errors or infinite computations. We describe the motivation for and the semantics of parallel patternmatching. We also describe the first available implementation of Haskell with parallel patternmatching. The implementation works via a sourcetosource translation into Concurrent Haskell, using the existing facilities of GHC to provide the required concurrency. Various transformation techniques are outlined which can help to reduce the degree and cost of the concurrency required to satisfy the semantics.
Matching typed and untyped realizability (Extended abstract)
"... Realizability interpretations of logics are given by saying what it means for computational objects of some kind to realize logical formulae. The computational objects in question might be drawn from an untyped universe of computation, such as a partial combinatory algebra, or they might be typed ob ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Realizability interpretations of logics are given by saying what it means for computational objects of some kind to realize logical formulae. The computational objects in question might be drawn from an untyped universe of computation, such as a partial combinatory algebra, or they might be typed objects such as terms of a PCFstyle programming language. In some instances, one can show that a particular untyped realizability interpretation matches a particular typed one, in the sense that they give the same set of realizable formulae. In this case, we have a very good fit indeed between the typed language and the untyped realizability model—we refer to this condition as (constructive) logical full abstraction. We give some examples of this situation for a variety of extensions of PCF. Of particular interest are some models that are logically fully abstract for typed languages including nonfunctional features. Our results establish connections between what is computable in various programming languages, and what is true inside various realizability toposes. We consider some examples of logical formulae to illustrate these ideas, in particular their application to exact realnumber computability. The present article summarizes the material I presented at the Domains IV workshop, plus a few subsequent developments; it is really an extended abstract for a projected journal paper. No proofs are included in the present version. 0