Results 1  10
of
13
Prelogical Relations
, 1999
"... this paper but which have some intriguing connections to some of our results and techniques, are [32] and [20]. We believe that the concept of prelogical relation would have a beneficial impact on the presentation and understanding of their results ..."
Abstract

Cited by 26 (5 self)
 Add to MetaCart
this paper but which have some intriguing connections to some of our results and techniques, are [32] and [20]. We believe that the concept of prelogical relation would have a beneficial impact on the presentation and understanding of their results
Exact Completions and Toposes
 University of Edinburgh
, 2000
"... Toposes and quasitoposes have been shown to be useful in mathematics, logic and computer science. Because of this, it is important to understand the di#erent ways in which they can be constructed. Realizability toposes and presheaf toposes are two important classes of toposes. All of the former and ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
Toposes and quasitoposes have been shown to be useful in mathematics, logic and computer science. Because of this, it is important to understand the di#erent ways in which they can be constructed. Realizability toposes and presheaf toposes are two important classes of toposes. All of the former and many of the latter arise by adding "good " quotients of equivalence relations to a simple category with finite limits. This construction is called the exact completion of the original category. Exact completions are not always toposes and it was not known, not even in the realizability and presheaf cases, when or why toposes arise in this way. Exact completions can be obtained as the composition of two related constructions. The first one assigns to a category with finite limits, the "best " regular category (called its regular completion) that embeds it. The second assigns to
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 12 (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.
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 5 (2 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
On the ubiquity of certain total type structures
 UNDER CONSIDERATION FOR PUBLICATION IN MATH. STRUCT. IN COMP. SCIENCE
, 2007
"... It is a fact of experience from the study of higher type computability that a wide range of approaches to defining a class of (hereditarily) total functionals over N leads in practice to a relatively small handful of distinct type structures. Among these are the type structure C of KleeneKreisel co ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
It is a fact of experience from the study of higher type computability that a wide range of approaches to defining a class of (hereditarily) total functionals over N leads in practice to a relatively small handful of distinct type structures. Among these are the type structure C of KleeneKreisel continuous functionals, its effective substructure C eff, and the type structure HEO of the hereditarily effective operations. However, the proofs of the relevant equivalences are often nontrivial, and it is not immediately clear why these particular type structures should arise so ubiquitously. In this paper we present some new results which go some way towards explaining this phenomenon. Our results show that a large class of extensional collapse constructions always give rise to C, C eff or HEO (as appropriate). We obtain versions of our results for both the “standard” and “modified” extensional collapse constructions. The proofs make essential use of a technique due to Normann. Many new results, as well as some previously known ones, can be obtained as instances of our theorems, but more importantly, the proofs apply uniformly to a whole family of constructions, and provide strong evidence that the above three type structures are highly canonical mathematical objects.
Implementing real numbers with RZ
, 2007
"... RZ is a tool which translates axiomatizations of mathematical structures to program specifications using the realizability interpretation of logic. This helps programmers correctly implement data structures for computable mathematics. RZ does not prescribe a particular method of implementation, but ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
RZ is a tool which translates axiomatizations of mathematical structures to program specifications using the realizability interpretation of logic. This helps programmers correctly implement data structures for computable mathematics. RZ does not prescribe a particular method of implementation, but allows programmers to write efficient code by hand, or to extract trusted code from formal proofs, if they so desire. We used this methodology to axiomatize real numbers and implemented the specification computed by RZ. The axiomatization is the standard domaintheoretic construction of reals as the maximal elements of the interval domain, while the implementation closely follows current stateoftheart implementations of exact real arithmetic. Our results shows not only that the theory and practice of computable mathematics can coexist, but also that they work together harmoniously.
Notions of computability at higher types II
 In preparation
, 2001
"... ntroduce some simple general theory to allow us to talk about notions of highertype computable functional. The following definitions (with minor variations) appear frequently in the literature. Definition 1.1 (Weak partial type structures) A weak partial type structure, or weak PTS A [over a set X ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
ntroduce some simple general theory to allow us to talk about notions of highertype computable functional. The following definitions (with minor variations) appear frequently in the literature. Definition 1.1 (Weak partial type structures) A weak partial type structure, or weak PTS A [over a set X], consists of the following data: . for each type #, a set A # of elements of type # [equipped with a canonical bijection A 0 # = X], . for each #, # , a partial application function ## : A ### A # # A # . We usually omit type subscripts from application operations, and often write x y simply as xy. By convention, w
A Proof System for Correct Program Development
, 2000
"... realworld applications (e.g. [EHM + 99, Buh95]). Moreover, aspects of ML such as strong typing and the exceptions system have significantly influenced the design of languages such as Java [GJS96], and it seems likely that future systems languages will incorporate many of these features [Mac00]. ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
realworld applications (e.g. [EHM + 99, Buh95]). Moreover, aspects of ML such as strong typing and the exceptions system have significantly influenced the design of languages such as Java [GJS96], and it seems likely that future systems languages will incorporate many of these features [Mac00]. Regarding the second requirement, even before the definition of ML had fully taken shape, the LCF system [GMW78] provided a program logic for a rather restricted fragment of the language. Subsequent research has sought to build on the definition in order to support formal reasoning about programs. Most notably, the Extended ML project [KST97] resulted in a formal language for specifying program properties, but the complexity of this language prohibited the development of useful proof rules. A di#erent approach has been pursued by Elsa Gunter et al [GV94], who have formalized the definition of ML within the HOL theorem prover; this has proved useful for metatheo