Results 1 
4 of
4
Chasing bottoms: A case study in program verification in the presence of partial and infinite values
 In MPC 2004, volume 3125 of LNCS
, 2004
"... Abstract. This work is a case study in program verification: We have written a simple parser and a corresponding prettyprinter in a nonstrict functional programming language with lifted pairs and functions (Haskell). A natural aim is to prove that the programs are, in some sense, each other’s inver ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
Abstract. This work is a case study in program verification: We have written a simple parser and a corresponding prettyprinter in a nonstrict functional programming language with lifted pairs and functions (Haskell). A natural aim is to prove that the programs are, in some sense, each other’s inverses. The presence of partial and infinite values in the domains makes this exercise interesting, and having lifted types adds an extra spice to the task. We have tackled the problem in different ways, and this is a report on the merits of those approaches. More specifically, we first describe a method for testing properties of programs in the presence of partial and infinite values. By testing before proving we avoid wasting time trying to prove statements that are not valid. Then we prove that the programs we have written are in fact (more or less) inverses using first fixpoint induction and then the approximation lemma. 1
Syntactic Composition of TopDown Tree Transducers is Short Cut Fusion
, 2001
"... We compare two deforestation techniques: short cut fusion formalized in category theory and the syntactic composition of tree transducers. The former strongly depends on types and uses the parametricity property or free theorem whereas the latter makes no use of types at all and allows more general ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
We compare two deforestation techniques: short cut fusion formalized in category theory and the syntactic composition of tree transducers. The former strongly depends on types and uses the parametricity property or free theorem whereas the latter makes no use of types at all and allows more general compositions. We introduce the notion of a categorical transducer which is a generalization of a catamorphism and show a respective fusion result which is a generalization of the `acid rain theorem'. We prove the following main theorems: (i) The class of all categorical transducers builds a category where composition is fusion. (ii) The semantics of categorical transducers is a functor. (iii) The subclass of topdown categorical transducers is a subcategory. (iv) Syntactic composition of topdown tree transducers is equivalent to the fusion of topdown categorical transducers.
"Explosive" Programming Controlled by Calculation
, 1998
"... . In the design of a functional library in the area of datamining several algorithmic patterns have been identified which call for generic programming. Some of these have to do with flattening functions which arise in a particular group of hierarchical systems. In this paper we describe our efforts ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
. In the design of a functional library in the area of datamining several algorithmic patterns have been identified which call for generic programming. Some of these have to do with flattening functions which arise in a particular group of hierarchical systems. In this paper we describe our efforts to make such functionalities generic. We start by a generic inductive construction of the intended class of hierarchical types. We conclude by relating the structure of the relevant basefunctors with the algebraic structure which is required by the generic flattening functionality, in particular concerning its "deforestation" towards a linearly complex implementation. The instances we provide as examples include the widely known bill of materials "explode" operation. 1 Introduction The definition of a function f : B \Gamma! A (1) can be regarded as a kind of "contract": function f is committed to produce an Avalue provided it is supplied with a Bvalue. Such "functional contracts" ca...
The UnderPerforming Unfold A new approach to optimising corecursive programs
"... This paper presents a new approach to optimising corecursive programs by factorisation. In particular, we focus on programs written using the corecursion operator unfold. We use and expand upon the proof techniques of guarded coinduction and unfold fusion, capturing a pattern of generalising coinduc ..."
Abstract
 Add to MetaCart
This paper presents a new approach to optimising corecursive programs by factorisation. In particular, we focus on programs written using the corecursion operator unfold. We use and expand upon the proof techniques of guarded coinduction and unfold fusion, capturing a pattern of generalising coinductive hypotheses by means of abstraction and representation functions. The pattern we observe is simple, has not been observed before, and is widely applicable. We develop a general program factorisation theorem from this pattern, demonstrating its utility with a range of practical examples. Categories and Subject Descriptors D.1.1 [Programming Techniques]: