Results 1  10
of
19
When is a Functional Program Not a Functional Program?
 Proceedings of Fourth ACM SIGPLAN International Conference on Functional Programming
, 1999
"... In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the class of programs with functional behaviour is ..."
Abstract

Cited by 19 (7 self)
 Add to MetaCart
In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the class of programs with functional behaviour is more expressive than the usual class of pure functional programs. In this paper we introduce this extended class of "functional" programs by means of examples in Standard ML, and explore what they might have to offer to programmers and language implementors. After reviewing some theoretical background, we present some examples of functions of the above kind, and discuss how they may be implemented. We then consider two possible programming applications for these functions: the implementation of a search algorithm, and an algorithm for exact realnumber integration. We discuss the advantages and limitations of this style of programming relative to other approaches. We also consider the incr...
Infinite sets that admit fast exhaustive search
 In Proceedings of the 22nd Annual IEEE Symposium on Logic In Computer Science
, 2007
"... Abstract. Perhaps surprisingly, there are infinite sets that admit mechanical exhaustive search in finite time. We investigate three related questions: What kinds of infinite sets admit mechanical exhaustive search in finite time? How do we systematically build such sets? How fast can exhaustive sea ..."
Abstract

Cited by 14 (8 self)
 Add to MetaCart
Abstract. Perhaps surprisingly, there are infinite sets that admit mechanical exhaustive search in finite time. We investigate three related questions: What kinds of infinite sets admit mechanical exhaustive search in finite time? How do we systematically build such sets? How fast can exhaustive search over infinite sets be performed? Keywords. Highertype computability and complexity, Kleene–Kreisel functionals, PCF, Haskell, topology. 1.
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...
Operational domain theory and topology of a sequential language
 In Proceedings of the 20th Annual IEEE Symposium on Logic In Computer Science
, 2005
"... A number of authors have exported domaintheoretic techniques from denotational semantics to the operational study of contextual equivalence and order. We further develop this, and, moreover, we additionally export topological techniques. In particular, we work with an operational notion of compact ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
A number of authors have exported domaintheoretic techniques from denotational semantics to the operational study of contextual equivalence and order. We further develop this, and, moreover, we additionally export topological techniques. In particular, we work with an operational notion of compact set and show that total programs with values on certain types are uniformly continuous on compact sets of total elements. We apply this and other conclusions to prove the correctness of nontrivial programs that manipulate infinite data. What is interesting is that the development applies to sequential programming languages, in addition to languages with parallel features. 1
From coinductive proofs to exact real arithmetic
"... Abstract. We give a coinductive characterisation of the set of continuous functions defined on a compact real interval, and extract certified programs that construct and combine exact real number algorithms with respect to the binary signed digit representation of real numbers. The data type corresp ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
Abstract. We give a coinductive characterisation of the set of continuous functions defined on a compact real interval, and extract certified programs that construct and combine exact real number algorithms with respect to the binary signed digit representation of real numbers. The data type corresponding to the coinductive definition of continuous functions consists of finitely branching nonwellfounded trees describing when the algorithm writes and reads digits. This is a pilot study in using prooftheoretic methods for obtaining certified algorithms in exact real arithmetic. 1
Comparing hierarchies of total functionals
 Logical Methods in Computer Science
, 2005
"... In this paper, we will address a problem raised by Bauer, Escardó and Simpson. We define two hierarchies of total, continuous functionals over the reals based on domain theory, one based on an “extensional ” representation of the reals and the other on an “intensional ” representation. The problem i ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
In this paper, we will address a problem raised by Bauer, Escardó and Simpson. We define two hierarchies of total, continuous functionals over the reals based on domain theory, one based on an “extensional ” representation of the reals and the other on an “intensional ” representation. The problem is if these two hierarchies coincide. We will show that this coincidence problem is equivalent to the statement that the topology on the KleeneKreisel continuous functionals of a fixed type induced by all continuous functions into the reals is zerodimensional for each type. As a tool of independent interest, we will construct topological embeddings of the KleeneKreisel functionals into both the extensional and the intensional hierarchy at each type. The embeddings will be hierarchy embeddings as well in the sense that they are the inclusion maps at type 0 and respect application at higher types. 1
The constructive reals as a Java Library
 J. Log. Algebr. Program
, 2004
"... We describe an implementation of the computable (or constructive) real numbers as a pure Java library. To the user, the library interface appears very similar to that of some other numeric types provided by the standard Java library. The primary goal of the implementation is simplicity, so that the ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
We describe an implementation of the computable (or constructive) real numbers as a pure Java library. To the user, the library interface appears very similar to that of some other numeric types provided by the standard Java library. The primary goal of the implementation is simplicity, so that the implementation could be easily understood, and to allow simple informal correctness arguments. We hope to demonstrate that even such a basic implementation of constructive real arithmetic can be useful in a number of contexts, including in a desk calculator utility distributed with the package. A secondary goal was to demonstrate that some secondorder functions on the reals, such as restricted inverse and derivative operations, can be implemented with su#cient performance to be useful.
Applications of the KleeneKreisel Density Theorem to Theoretical Computer Science
, 2006
"... The KleeneKreisel density theorem is one of the tools used to investigate the denotational semantics of programs involving higher types. We give a brief introduction to the classical density theorem, then show how this may be generalized to set theoretical models for algorithms accepting real numbe ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The KleeneKreisel density theorem is one of the tools used to investigate the denotational semantics of programs involving higher types. We give a brief introduction to the classical density theorem, then show how this may be generalized to set theoretical models for algorithms accepting real numbers as inputs and finally survey some recent applications of this generalization. 1