30 citations found. Retrieving documents...
Richard Bird and Oege de Moor. Algebra of Programming. International Series in Computer Science. Prentice-Hall, 1997.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Generic Operations on Nested Datatypes - Bayley (2001)   (Correct)

....fold operator and asserts that generalised folds are uniquely defined by this property. Often program calculation starts from a non deterministic specification so we must reason with relations instead of functions. This means we have to extend to nested datatypes the previous work of Oege de Moor [BdM97] and Roland Backhouse [BJJM99] designed to enable reasoning with relations for regular datatypes. Some thought is needed to confirm that fold operators and map operators can be extended to relations. The main purpose of this thesis is to define and prove properties of generic operations. These ....

....on sets. Sections 2.3, 2.4 and 2.5 apply this intuition to non recursive, regular and nested datatypes respectively. Standard folds and simple folds arise from the semantics of regular and nested datatypes respectively. Good introductions to the material in this chapter include [BJJM99] 14 and [BdM97]. Neither of these cover Section 2.5, however, which is based on [BM98] and [BP99b] 2.2 A naive model for type constructors Let us examine a typical recursive datatype. data List a = Nil Cons (a, List a) In words this declares that a list is empty or an element and a list . The word or ....

[Article contains additional citation context not shown here]

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


The Allegory of E-Relations in Constructive Type Theory - Gonzalía (2000)   (Correct)

....data type constructors, the many different traditional relational operators, and the ability to reason with the image set of an element under a relation. The most comprehensive effort to set a full calculus of relations for program construction based on allegories is the book by Bird and de Moor [2], in which the advantages of such an approach to formal program construction are evident and appealing. Perhaps even more important, it s not difficult to show most of the the non categorical and well known calculi of relations can be seen as some kind of allegory, and so we can try to build a ....

....arrow from A to B, called join, satisfying: R [ S X if and only if: R X and S X, for all X : A B (R [ S) T = R T ) S T ) R [ S) Delta T = R Delta T ) S Delta T ) 0 R = R 0 Delta R = R. For the reader familiar with the approach of Bird and de Moor [2] we need to remark the difference with their way of reaching a similar kind of allegory for program construction. They define a locally complete allegory, in which the join is a clearly impredicative concept, and so impossible to capture inside monomorphic type theory. In Agda we formalise ....

[Article contains additional citation context not shown here]

Bird, R., de Moor, O.: Algebra of Programming. International Series in Computer Science, Prentice Hall Europe, 1997.


Polytypic Proof Construction - Pfeifer, Rueß (1999)   (5 citations)  (Correct)

....notions from category theory that are needed to specify, in a uniform way, datatypes as initial objects in categories of functor algebras. Furthermore, Section 3 contains generalizations of the usual reflection and fusion theorems for recursors on initial datatypes as stated, for example, in [2] to recursors of dependent type, which correspond to structural induction schemes. These developments are polytypically abstracted for the semantically characterized class of initial datatypes. This notion of semantic polytypy, however, is not appropriate in many cases where inspection of the ....

....and proofs are formulated using initiality without reference to the underlying structure of datatypes. We exemplify polytypic program construction in this type theoretic framework with a polytypic version of the well known map function. Other polytypic developments from the literature (e.g. [2]) can be added easily. Furthermore we generalize some categorical notions to also work for eliminations and lift a reflection and a fusion theorem to this generalized framework. It is, however, not our intention to provide a complete formalization of category theory in type theory; we only define ....

[Article contains additional citation context not shown here]

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


The Universal Resolving Algorithm: Inverse Computation in a.. - Abramov, Glück (2000)   (11 citations)  (Correct)

.... concept in any programming language, e.g. if one direction of an algorithm is easier to define than the other, or if both directions are needed (cf. encoding and decoding) Interestingly, inversion has spanned relatively little interest in the area of functional programming (exceptions are [5, 9, 18, 20, 21, 25]) even though it is an essential concept in mathematics. We distinguish between two approaches for solving inversion problems: an inverse interpreter that performs inverse computation and an inverse compiler that performs program inversion. Determining for a given program P and output y an ....

....are undecidable. When a program is not injective in the missing input, the answer can either be universal (all possible inputs) or existential (one of the possible inputs) We will only consider universal solutions, hence the name for our algorithm. Most of the earlier work on this topic (e.g. [5 7, 16, 17]) has been program transformation by hand: specify a problem as the inverse of an easy computation, and then derive an e#cient algorithm by manual application of transformation rules. By contrast, our approach aims for mechanical inversion. The first observation [4] is that to do this, it su#ces, ....

[Article contains additional citation context not shown here]

R. Bird, O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Polytypic Abstraction in Type Theory - Pfeifer, Rueß   (Correct)

.... A; g : F :obj (B) B ; h : A B : Fusion) h ffi f : g ffi F :arr(h) h ffi cata(f ) cata(g) ff ffi cata(F :arr(ff) I T , cata(F :arr(ff) ffi ff : I F :obj (T) Lambek s lemma) The mechanized proofs of these properties are along the line of published equational proofs [BdM97] For the fact that the equality : see Section 2) on functions is not a congruence relation on terms, however, proofs are on the point level and the condition H 2 is required to replace the functional argument in cata(f ) with cata(g) when f : g . In the case of lists, the initial FF ....

.... are inhabited: Pi A; B ; C j Type; h : FF :obj B C ) C ; g : A B : Type Functor Fusion) cata(h) ffi T arr (g) cata(h ffi (FF :arr g I C ) functorial T T arr (Type Functor) The formal proofs of these facts are straightforward transliterations of the developments in Chapter 2 of [BdM97] Coming back to our running example, it is easy to see that the prerequisites of Theorem 9 are fulfilled for parametric lists. Pi A : Type: unique extension list(A) FF list obj (A) FF list arr (I A ) ff list A cata list A Pi A; B : Type; f ; g : A B : f : g ) cata list (f ) ....

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Polytypic Functional Programming and Data Abstraction - Iglesias (2006)   Self-citation (Programming)   (Correct)

No context found.

Richard Bird and Oege de Moor. Algebra of Programming. International Series in Computer Science. Prentice-Hall, 1997.


Rebuilding a Tree From Its Traversals: A Case Study of Program.. - Mu, Bird (2003)   Self-citation (Bird Programming)   (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Theory and Applications of Inverting Functions as Folds - Mu, Bird   Self-citation (Bird Programming)   (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


A Calculational Approach to Program Inversion - Linacre (2003)   (1 citation)  Self-citation (Programming)   (Correct)

....to develop a theory of programming on. Indeed, it has been proposed that non determinism should be taken as primitive in a programming and deterministic programming a special case [28, 3] Considering applications, the best explored area for relational derivation is that of optimisation problems [26, 17]. As the inverse of a function is most conveniently a,1 b,2 g,3 f,5 c,4 h,6 m,7 d,8 e,9 i,10 j,11 k,12 l,13 a b g f c h m d e i j k l Figure 1.1: Breadth first labelling a tree on the left with [1. described as a relation, it might be another area for which the relational model can ....

....(for example, 63, 10] started with modelling common imperative programming constructs as input output relations. The relational approach was later extended to model datatypes as well as operations on them. Some focused on relations [6, 7, 31, 32] while some took a category theoretical approach [64, 17]. Both approaches gave a formal treatment of important building blocks of functional programs, such as fold and unfold. The idea of program inversion can be traced at least back to Dijkstra [29] However, given the importance of inversion as a tool for specification, surprisingly few papers have ....

[Article contains additional citation context not shown here]

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Theory and Applications of Inverting Functions as Folds - Mu, Bird (2003)   Self-citation (Bird Programming)   (Correct)

....we are given a list of trees. The task is to combine them into a single tree, retaining the left to right order of the subtrees. How can we do this to make the height of the resulting tree as small as possible Figure 2 illustrates one such tree, of height 11, for given subtrees of heights [2, 9, 8, 3, 6, 9]. As the actual content of the subtrees isn t important, we can 2 2 9 8 3 6 9 Fig. 2. A tree with height 11 built from trees with heights [2, 9, 8, 3, 6, 9] think of them simply as numbers representing the heights. The third problem is a classical one. It is well known that given the ....

....the height of the resulting tree as small as possible Figure 2 illustrates one such tree, of height 11, for given subtrees of heights [2, 9, 8, 3, 6, 9] As the actual content of the subtrees isn t important, we can 2 2 9 8 3 6 9 Fig. 2. A tree with height 11 built from trees with heights [2, 9, 8, 3, 6, 9] think of them simply as numbers representing the heights. The third problem is a classical one. It is well known that given the preorder and inorder traversals of an internally labelled binary tree, the tree can be reconstructed uniquely if it contains no duplicated elements. The challenge is ....

[Article contains additional citation context not shown here]

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Arithmetic Coding with Folds and Unfolds - Bird, Gibbons (2003)   (6 citations)  Self-citation (Bird Programming)   (Correct)

....average = uncurry div sumlength where sumlength xs = sum xs, length xs) and sumlength can be written with asinglefoldr . Parallel loop fusion is sometimes known as the Banana Split Theorem (because, in days of old, folds were often written using banana brackets; see, for example, [4]) Prove the theorem, again using the universal property of foldr . Exercise 16. The function foldl canbeexpressedintermsoffoldr : foldl f = flip (foldr (comp f ) id) where comp f x u = u flip f x Verify this claim, and hence (from the universal property of foldr)derivethe following ....

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

No context found.

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Inverting Functions as Folds - Mu, Bird (2002)   (2 citations)  Self-citation (Bird Programming)   (Correct)

....theorem is another useful tool worth adding to the functional programmer s arsenal. Its joint use with the fold fusion theorem turns out to be a recurring pattern in program derivation. 2 Theory The converse of a function is a relation, so the framework is a calculus of relational programs [3, 5]. In this section we will present enough notation to describe the main ideas. Further concepts are introduced in Sect. 7. 2.1 Relations Set theoretically speaking, a relation R : A ; B is a set of pairs (a; b) where a has type A and b type B . The converse of a relation is de ned by ipping ....

.... check that dom R F(ran R) we reason: fLemma 1 : R S f FSg dom (S f FS ) fsince dom (X Y ) dom Y g dom (FS ) frelators preserve domains: dom (FS ) F(dom S )g F(dom S ) fby assumption (i) dom S = ran Rg F(ran R) That relators preserve domains is given in [5] as an exercise on tabulation. Finally, the left hand side of property (11) namely ran (R FC ) C , actually holds for all R when C is ran ( R] ran ( R] fde nition of ( R] g ran (R F( R] fsince ran (X Y ) ran (X ran Y )g ran (R ran (F( R] ran ( ....

[Article contains additional citation context not shown here]

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

....if R is a function. Every regular language is the language of a deterministic automaton: L(F ; R) fde nition of languageg F ( R] fcancellation of breadthg F 2 ( R] fsince ( R] R B2) g F 2 ( R B2) fde nition of languageg L(F 2; R B2) In [15], we named the identity in the penultimate step the Eilenberg Wright lemma, to honour the pioneering work of Eilenberg and Wright in the application of universal algebra to automata theory [30] Similar ideas can also be found in [33] Again it is useful to record this fact as a labelled ....

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Universal Regular Path Queries - de Moor, Lacey, Van Wyk (2001)   (1 citation)  Self-citation (De moor)   (Correct)

....if R is a function. Every regular language is the language of a deterministic automaton: L(F ; R) fde nition of languageg F ( R] fcancellation of breadthg F 2 ( R] fsince ( R] R B2) g F 2 ( R B2) fde nition of languageg L(F 2; R B2) In [15], we named the identity in the penultimate step the Eilenberg Wright lemma, to honour the pioneering work of Eilenberg and Wright in the application of universal algebra to automata theory [30] Similar ideas can also be found in [33] Again it is useful to record this fact as a labelled ....

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Bridging the Algorithm Gap: A Linear-time Functional Program .. - de Moor, Gibbons (1997)   (5 citations)  Self-citation (De moor Programming)   (Correct)

..... head Note that par1 is not equal to par0; in particular, if there is more than one optimal paragraph, par0 and par1 may return different (but still optimal) paragraphs. To express this refinement property formally we would have to generalize from functional programming to relational programming [4], a step that is beyond the scope of this paper. For efficiency, we could represent the paragraph (l:ls) by the triple 6 (l:ls, width l, waste ls) Because ls may be empty, we stipulate also that waste [ 0. The program resulting from this data refinement is as follows. par1 = the . ....

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice--Hall, 1996.


Pointwise Relational Programming - de Moor, Gibbons (2000)   (9 citations)  Self-citation (De moor Programming)   (Correct)

.... a body of theorems that aids the design of algorithms, and that encapsulates common problem solving techniques in precise mathematical facts [17, 19, 29] In particular, the point free relational calculus has proved extraordinarily successful in the derivation of general programming principles [1, 4, 9, 10, 13, 14, 21, 20]. The calculus is said to be point free because it does not name the data values: instead, one manipulates programs and speci cations through a set of combining forms, much in the style originally suggested by Backus [5] for functional programming. As the above references demonstrate, this style ....

....a) a] attens a single spine component: at (a; t) a : atten t : It now follows that ar distributes over [ and ( as follows: ar [ ar (x y) ar x ar y : This concludes our little exploration of ar itself; we now turn to its inversion. Converse Function Theorem [13] Let f : A [B ] be a total function. Let e : A and ( B A A be mappings that are jointly surjective onto A. Furthermore assume that f e w [ and f (a x ) w a : f x : Then we have f = foldr ( e. To say that two mappings are jointly surjective onto A is to say that the union ....

[Article contains additional citation context not shown here]

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Pointwise Relational Programming - de Moor, Gibbons (2000)   (9 citations)  Self-citation (De moor Programming)   (Correct)

.... a body of theorems that aids the design of algorithms, and that encapsulates common problem solving techniques in precise mathematical facts [17, 19, 29] In particular, the point free relational calculus has proved extraordinarily successful in the derivation of general programming principles [1, 4, 9, 10, 13, 14, 21, 20]. The calculus is said to be point free because it does not name the data values: instead, one manipulates programs and specifications through a set of combining forms, much in the style originally suggested by Backus [5] for functional programming. As the above references demonstrate, this style ....

....flattens a single spine component: flat (a; t) a : flatten t : It now follows that flar distributes over [ and ( as follows: flar [ flar (x y) flar x flar y : This concludes our little exploration of flar itself; we now turn to its inversion. Converse Function Theorem [13] Let f : A [B ] be a total function. Let e : A and ( Phi) B A A be mappings that are jointly surjective onto A. Furthermore assume that f e w [ and f (a Phi x ) w a : f x : Then we have f ffi = foldr ( Phi) e. To say that two mappings are jointly surjective onto A is to say ....

[Article contains additional citation context not shown here]

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Pointwise Relational Program Derivation - de Moor (1999)   (1 citation)  Self-citation (De moor)   (Correct)

.... Relational Program Derivation Oege de Moor June 23, 1999 Abstract The point free relational calculus has proved quite successful in the derivation of general programming principles [1, 5]. When applied to specific examples, however, it can be somewhat painful to use, due to the large number of combinators required. In this note, we explore the suggestion that for specific examples, it may be preferable to conduct relational derivations of concrete programs in a pointwise calculus ....

....[a] flattens a single spine component: flat (a; t) a : flatten t : It now follows that flar distributes over [ and ( as follows: flar [ flar (x y) flar x flar y This concludes our little exploration of flar itself; we now turn to its inversion. Converse Function Theorem [5] Let f : A [B ] be a total function. Let e : A and ( Phi) B A A be mappings that are jointly surjective onto A. Furthermore assume that f e [ and f (a Phi x ) a : f x : Then we have f ffi = foldr ( Phi) e. To say that two mappings are jointly surjective onto A is to say ....

[Article contains additional citation context not shown here]

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


An Exercise in Polytypic Program Derivation: repmin - de Moor (1996)   Self-citation (De moor)   (Correct)

....derivation would yield such paradigmparametrised results, this is the first non trivial example I have seen. The bulk of this paper consists of a summary of the results we need; it is in fact meant as an introduction to polytypic program derivation. An indepth account can be found in the textbook [4]. These results are all very general and not particular to the problem in hand. In fact, most were known to category theorists long before any applications to program derivation were realised. After we have summarised the necessary theory, the derivation itself consists of five steps: polytypism ....

....equations [f ; g ] Delta inl = f and [f ; g ] Delta inr = g : As we shall see below, the case operator is extraordinarily useful in hiding irrelevant syntactic detail. One can set up quite a nice calculus for reasoning about the case construct, including its connection to conditional statements [4]. 4 Products Another example of a functor is the product functor ( Theta) Fun Fun 2 . On sets, we have that A Theta B is the cartesian product. On functions, product is defined by (f Theta g) a; b) f a; g b) Of course we can define a very similar functor Rel Rel 2 by setting (a; ....

[Article contains additional citation context not shown here]

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


Bridging the Algorithm Gap: A Linear-time Functional Program .. - de Moor, Gibbons (1999)   (5 citations)  Self-citation (De moor Programming)   (Correct)

..... head Note that par1 is not equal to par0; in particular, if there is more than one optimal paragraph, par0 and par1 may return di erent (but still optimal) paragraphs. To express this re nement property formally we would have to generalize from functional programming to relational programming [4], a step that is beyond the scope of this paper. For e ciency, we can bene t from performing a tupling transformation [17, 6] to avoid recomputing the width of the rst line and the cost of the remaining candidate solutions. We represent the paragraph (l:ls) by the triple (l:ls, width l, cost ....

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice{Hall, 1996.


What is a Data Type? - Hoogendijk, de Moor (1996)   Self-citation (De moor)   (Correct)

....type F G when FR Delta OE OE Delta GR; for all R. In fact, writing J for the inclusion of C into Rel(C ) we have Fact 3 For any collection OE of arrows OE : FA GA, we have OE : F Delta J G Delta J if and only if OE : F G . Proofs of all facts cited in this section can be found in [3]. 5 Data types have membership The purpose of any data structure is to record the presence of elements. One might expect, therefore, that any data type F comes equipped with a collection of membership relations ffi : A FA, such that a ffix holds precisely when a is an element of data structure x ....

R. S. Bird and O. De Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1996.


TypeCase: A Design Pattern for Type-Indexed Functions - Bruno Oliveira And (2005)   (1 citation)  (Correct)

No context found.

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


The Gist of Side Effects in Pure Functional Languages - Pablo Nogueira Http   (Correct)

No context found.

Richard Bird and Oege de Moor. Algebra of Programming. International Series in Computer Science. Prentice-Hall, 1997.


An Injective Language for Reversible Computation - Mu, Hu, Takeichi (2004)   (2 citations)  (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


An Algebraic Approach to Bi-Directional Updating - Mu, Hu, Takeichi (2004)   (2 citations)  (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


A Language for Bidirectional Updating Based on Injective Mapping - Mu, Hu, Takeichi   (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


On Building Trees with Minimum Height, - Mu   (Correct)

No context found.

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


Polytypic Abstraction in Type Theory - Pfeifer And Rue   (Correct)

No context found.

R. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.


An Injective Language for Reversible Computation - Mu, Hu, Takeichi (2004)   (2 citations)  (Correct)

No context found.

R. S. Bird and O. de Moor. Algebra of Programming. International Series in Computer Science. Prentice Hall, 1997.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC