did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

did-you-know? rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9783540436133

Algebraic and Coalgebraic Methods in the Mathematics of Program Construction

by ; ;
  • ISBN13:

    9783540436133

  • ISBN10:

    3540436138

  • Format: Paperback
  • Copyright: 2002-06-01
  • Publisher: Springer Verlag
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $79.99 Save up to $61.43
  • Digital
    $40.22
    Add to Cart

    DURATION
    PRICE

Summary

Program construction is about turning specifications of computer software into implementations. Recent research aimed at improving the process of program construction exploits insights from abstract algebraic tools such as lattice theory, fixpoint calculus, universal algebra, category theory, and allegory theory. This textbook-like tutorial presents, besides an introduction, eight coherently written chapters by leading authorities on ordered sets and complete lattices, algebras and coalgebras, Galois connections and fixed point calculus, calculating functional programs, algebra of program termination, exercises in coalgebraic specification, algebraic methods for optimization problems, and temporal algebra.

Table of Contents

Introduction
1(20)
Roy Crole
Preliminaries
1(2)
Assumed Knowledge
1(1)
Volume Overview
2(1)
A Mathematical History Tour
3(10)
Fixed Points
3(4)
Induction and Coinduction
7(1)
Types and Categories
8(1)
Algebras and Coalgebras
9(4)
Mathematics in ACMMPC
13(8)
Ordered Sets and Complete Lattices
14(1)
Introducing Algebras and Coalgebras
14(1)
Galois Connections and Fixed Point Calculus
15(1)
Calculating Functional Programs
15(1)
Algebra of Program Termination
16(1)
Exercises in Coalgebraic Specification
17(1)
Algebraic Methods for Optimization Problems
17(1)
Temporal Algebra
18(3)
Ordered Sets and Complete Lattices
21(58)
Halary A. Priestley
Introduction
21(2)
From Binary Relations to Diagrams
23(5)
A Fundamental Example: Powersets
23(1)
Input-Output Relations Pictorially
24(1)
Exercise
25(1)
Binary Relations and Their Polars
26(1)
Exercise
27(1)
Summing Up So Far
27(1)
Order, Order, Order
28(11)
Partial Order
28(1)
Information Orderings
29(1)
Diagrams
30(1)
Duality: Buy One, Get One Free
31(1)
Bottom and Top
31(1)
Lifting
32(1)
New Posets from Old: Sums and Products
32(1)
Maps between Posets
33(1)
Pointwise Ordering of Maps
34(1)
Up-Sets: An Inbred Example
35(1)
Monotone Maps and Up-Sets
35(1)
Exercise (More on Monotone Maps and Up-Sets)
36(1)
Down Is Nice Too
36(1)
Exercise (Turning Things Upside Down)
36(1)
The Down-Set Operator, , and the Up-Set Operator
37(1)
Exercise (A Context Explored)
38(1)
Maximal and Minimal Elements
38(1)
Stocktaking
38(1)
Lattices in General and Complete Lattices in Particular
39(8)
Lattices
39(2)
Examples of Lattices
41(1)
Distributive Lattices
41(1)
Boolean Algebras
42(1)
Lattices in Logic
42(1)
Upper Bounds and Sups, Lower Bounds and Infs
43(1)
Much Ado about Nothing, and about Everything
44(1)
Complete Lattices
45(1)
Completencess on the Cheap
45(1)
A Special Class of Complete Lattices
45(1)
Suprema, Infima, and Monotone Maps
46(1)
Complete Lattices, Concretely: Closure Systems and Closure Operators
47(4)
A Useful Technical Remark
47(1)
Complete Lattices of Sets
47(1)
Closure Systems
47(1)
Closure Systems
48(1)
Examples
49(1)
From a Complete Lattice to a Closure System
49(1)
Defining Closure Operators
49(1)
New Complete Lattices from Old: From a Closure Operator to a Complete Lattice
50(1)
Closure Operator more Concretely
51(1)
Galois Connections: Basics
51(11)
Introduction
51(1)
Lattice Representation via Galois Connections
52(1)
Galois Connections from Binary Relations: Method I
53(1)
Galois Connections and Algebras---A Fleeting Glimpse
54(1)
Galois Connections by Sectioning
54(1)
Galois Connections from Binary Relations: Method II
55(1)
Galois Connections: Basic Properties
55(1)
and Have Isomorphic Images
56(1)
Equivalent Definiations for Galois Connections
57(1)
The Good (and Less Good) Behaviour of Galois Maps
58(1)
Uniqueness of Adjoints: from and from
59(1)
Exercise (Surjective and Injetive Galois Maps)
60(1)
A Look Ahead
60(1)
Existence of Adjoints: A Technical Lemma
61(1)
Existence Theorem for Adjoints
61(1)
Postscript
62(1)
Making Connections, Conceptually
62(5)
From a Galois Connection to a Closure Operator
62(1)
From a Closure Operator to a Galois Connection
63(1)
Contexts and Concepts: Re-setting the Scene
63(1)
Ordering Concepts
63(1)
Three for the Price of One: A Trinity of Complete Lattices
64(1)
Manufacturing Concepts
65(1)
Density: Generating all Concepts via γ or μ
65(1)
From a Complete Lattice to Concept Lattice
66(1)
The Case for the Defence
66(1)
Summing Up
67(1)
The Existence of Fixed Points
67(8)
Fixed Points and Least Fixed Points: Definitions
68(1)
Characterizing Least Fixed Points via Least Prefix Points
68(1)
The Knaster-Tarski Fixed Point Theorem
69(1)
Exercise
69(1)
Exercise
69(1)
From Complete Lattices to CPOs
69(1)
A Sense of Direction
70(1)
Exericse (Sups and Directed Sups Related)
70(1)
CPOs
71(1)
Directed Sets and Continuity
71(1)
New CPOs from Old
72(1)
Fixed Point Theorem for Continuous Function on a CPO
72(1)
From Continuity to Monotonicity
72(1)
An Assumption: Zorn's Lemma (ZL), CPO Form
73(1)
The Fixed Point Theorem for a Monotone Endofunction on a CPO
73(1)
Exercise
74(1)
Exercise
74(1)
Concluding Remarks
74(1)
Speaking Categorically
75(4)
Categories
75(4)
Algebras and Coalgebras
79(10)
Peter Aczel
Introduction
79(1)
Terms
80(4)
Variable-Free Terms
80(1)
Terms as Set Theoretical Objects
81(1)
Terms with Variables
82(1)
Initial (F, X)-Algebras
83(1)
Substitution
83(1)
Trees
84(4)
Variable-Free Trees
84(1)
Representing Terms as Well-Founded Trees
84(1)
Corecursion
85(1)
Set Theoretical Representation of Trees
85(2)
Trees with Variables
87(1)
Substitution
87(1)
Solution Property
87(1)
The Monad of a Substitution System
88(1)
Galois Connections and Fixed Point Calculus
89(60)
Roland Backhouse
Introduction
89(4)
Fixed Point Equations
89(1)
Languages
89(1)
Functions
90(1)
Datatypes
91(1)
Galois Connections
91(1)
Basic Assumptions
92(1)
Issues and Applications
93(1)
Galois Connections --- Introductory Examples
93(7)
Simple Examples
94(2)
The Floor Function
96(4)
Identifying Galois Connections
100(5)
Symmetric Definitions
101(1)
Universal Property
102(3)
Commutativity Properties
105(1)
Pair Algebras
105(10)
Infima and Suprema
107(2)
Extremum Preservation Properties
109(2)
Existence Theorem
111(4)
Fixed Points
115(12)
Prefix Points
115(4)
A First Example
119(3)
Kleene Algebra
122(5)
Fixed Point Calculus
127(19)
Basic Rules
128(1)
Fusion
129(5)
Uniqueness
134(2)
Parameterised Prefix Points
136(5)
Mutual Recursion
141(2)
An Illustration --- Arithmetic Expressions
143(3)
Further Reading
146(3)
Calculating Functional Programs
149(54)
Jeremy Gibbons
Introduction
149(11)
Why Calculate Programs?
149(1)
Functional Programming
150(1)
Universal Properties
150(3)
The Categorical Approach to Datatypes
153(2)
The Pair Calculus
155(3)
Bibliographic Notes
158(1)
Exercises
159(1)
Recursive Datatypes in the Category Set
160(13)
Overview
160(1)
Monomorphic Datatypes
160(1)
Folds
161(2)
Polymorphic Datatypes
163(2)
Properties of Folds
165(1)
Co-datatypes and Unfolds
166(3)
... and Never the Twain Shall Meet
169(1)
Bibliographic Notes
169(1)
Exercises
170(3)
Recursive Datatypes in the Category Cpo
173(10)
The Category Cpo
173(2)
Continuous Algebras
175(1)
The Pair Calculus Again
176(1)
Hylomorphisms
177(3)
Bibliographic Notes
180(1)
Exercises
180(3)
Applications
183(14)
A Simple Compiler
183(3)
Monads and Comonads
186(5)
Breadth-First Traversal
191(2)
Bibliographic Notes
193(1)
Exercises
193(4)
Appendix: Implementation in Haskell
197(6)
Products
197(1)
Sums
197(1)
Functors
198(1)
Datatypes
198(1)
Folds and Unfolds
198(1)
Lists
198(2)
Trees
200(1)
Quicksort
200(3)
Algebra of Program Termination
203(34)
Henk Doornbos
Roland Backhouse
Introduction
203(1)
Imperative Programming and Well-Founded Relations
203(15)
Relation Algebra
204(2)
Imperative Programming
206(2)
Domains and Division
208(2)
Well-Foundeness Defined
210(4)
Totality of While Statements
214(1)
Induction Principles
215(2)
Admits-Induction Implies Well-Founded
217(1)
Hylo Equations
218(19)
Relators and Hylos
219(1)
Hylo Programs
220(7)
Intermediate Data Structures
227(2)
The Hylo Theorem
229(1)
Reducing Problem Size
230(2)
A Calculus of F-Reductivity
232(5)
Exercises in Coalgebraic Specification
237(44)
Bart Jacobs
Introduction
237(2)
Mathematical Preliminaries
239(2)
Specification of Groups and Vector Spaces
241(3)
A First Coalgebraic Specification: Binary Trees
244(4)
Elements of Binary Trees
247(1)
Bisimulations and Bisimilarity
248(5)
Invariants
253(2)
Temporal Logic for Coalgebras
255(6)
A Concrete Description of and for Binary Trees
256(3)
Using and for Specification and Verification of Binary Trees
259(2)
Towards a μ-Calculus of Coalgebras
261(4)
A Case Study: Peterson's Mutual Exclusion Algorithm
265(10)
Peterson's Solution for Mutual Exclusion
265(2)
Dealing with Time in Coalgebraic Specification
267(2)
Class-Valued Methods
269(1)
Peterson's Algorithm in Coalgebraic Specification
270(5)
Refinements between Coalgebraic Specifications
275(2)
Conclusion
277(4)
Algebraic Methods for Optimization Problems
281(28)
Richard Bird
Jeremy Gibbons
Shin-Cheng Mu
Introduction
281(2)
Bibliographic Notes
283(1)
The Algebra of Relations
283(8)
Relations
283(3)
Special Kinds of Relation
286(1)
Breadth
287(1)
Folds
287(3)
Bibliographic Notes
290(1)
Exercises
290(1)
Optimization Problems
291(8)
The Eilenberg-Wright Lemma
292(1)
Preorders
292(1)
Monotonicity
293(1)
Minimum
293(1)
The Greedy Theorem
294(1)
Thinning
295(2)
Bibliographic Notes
297(1)
Exercises
297(2)
Optimal Bracketing
299(10)
Representation
300(1)
The Converse-of-a-Function Theorem
300(1)
Spines
301(1)
An Application of Thinning
302(1)
An Application of Greediness
303(1)
Refinement of the Greedy Algorithm to a Program
304(1)
Summary
304(1)
The Haskell Program
305(1)
Bibliographic Notes
305(1)
Exercises
305(4)
Temporal Algebra
309(78)
Burghard von Karger
Introduction
309(2)
Preliminaries
311(11)
Lattices
311(1)
Galois Connections
312(2)
Boolean Algebra
314(4)
Fixed Points
318(2)
Regular Algebra
320(1)
Ineration
320(2)
Repetition
322(1)
Galois Algebra
322(15)
Definition and Basic Properties
323(4)
New Algebras from Old
327(1)
Diamonds and Boxes
327(3)
`Until' and `Since'
330(2)
Confluence
332(3)
Linearity
335(2)
Infinity
337(1)
Sequential Algbra
337(18)
Observations
339(4)
Lifting to Sets
343(3)
Sequential Set Algebrs
346(6)
Abstract Sequential Algebras
352(2)
Time-Wise Duality
354(1)
Relational Laws of Sequential Algebra
355(9)
Basic Laws
356(3)
Predicates
359(2)
Left and Right Domain
361(3)
Interval Calculi
364(18)
Somewhere and Everywhere
365(3)
Importability
368(3)
Engineer's Induction
371(2)
Finite and Infinite Observations
373(2)
Measuring Time
375(2)
Phase Calculus
377(4)
Duration Calculus
381(1)
Conclusion
382(5)
Author Index 387

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program