Lecture Notes in Computer Science 2386 Edited by G. Goos, J. Hartmanis, and J. van Leeuwen
3 Berlin Heidelberg New York Barcelona Hong Kong London Milan Paris Tokyo
Eerke A. Boiten Bernhard M ller (Eds.) Mathematics of Program Construction 6th International Conference, MPC 2002 Dagstuhl Castle, Germany, July 8-10, 2002 Proceedings 13
Series Editors Gerhard Goos, Karlsruhe University, Germany Juris Hartmanis, Cornell University, NY, USA Jan van Leeuwen, Utrecht University, The Netherlands Volume Editors Eerke A. Boiten University of Kent at Canterbury, Computing Laboratory CT2 7NF Canterbury, Kent, United Kingdom E-mail: e.a.boiten@ukc.ac.uk Bernhard M ller Universit t Augsburg, Institut f r Informatik Universit tsstr. 14, 86135 Augsburg, Germany E-mail: bernhard.moeller@informatik.uni-augsburg.de Cataloging-in-Publication Data applied for Die Deutsche Bibliothek - CIP-Einheitsaufnahme Mathematics of program construction : 6th international conference ; proceedings / MPC 2002, Dagstuhl Castle, Germany, July 8-10, 2002. Eerke A. Boiten ; Bernhard M ller (ed.). - Berlin ; Heidelberg ; New York ; Barcelona ; Hong Kong ; London ; Milan ; Paris ; Tokyo : Springer, 2002 (Lecture notes in computer science ; Vol. 2386) ISBN 3-540-43857-2 CR Subject Classi cation (1998): F.3, F.4, D.2, F.1, D.3 ISSN 0302-9743 ISBN 3-540-43857-2 Springer-Verlag Berlin Heidelberg New York This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, speci cally the rights of translation, reprinting, re-use of illustrations, recitation, broadcasting, reproduction on micro lms or in any other way, and storage in data banks. Duplication of this publication or parts thereof is permitted only under the provisions of the German Copyright Law of September 9, 1965, in its current version, and permission for use must always be obtained from Springer-Verlag. Violations are liable for prosecution under the German Copyright Law. Springer-Verlag Berlin Heidelberg New York a member of BertelsmannSpringer Science+Business Media GmbH http://www.springer.de ' Springer-Verlag Berlin Heidelberg 2002 Printed in Germany Typesetting: Camera-ready by author, data conversion by Christian Grosche, Hamburg Printed on acid-free paper SPIN 10870520 06/3142 543210
Preface This volume contains the proceedings of MPC 2002, the sixth international conference on the Mathematics of Program Construction. This series of conferences aims to promote the development of mathematical principles and techniques that are demonstrably useful and usable in the process of constructing computer programs (whether implemented in hardware or software). The focus is on techniques that combine precision with conciseness, enabling programs to be constructed by formal calculation. Within this theme, the scope of the series is very diverse, including programming methodology, program specification and transformation, programming paradigms, programming calculi, and programming language semantics. The quality of the papers submitted to the conference was in general very high, and the number of submissions was comparable to that for the previous conference. Each paper was refereed by at least four, and often more, committee members. In addition to the 11 papers selected for presentation by the program committee, this volume contains three invited talks: Implementing Algebraic Dynamic Programming in the Functional and the Imperative Programming Paradigm by Robert Giegerich (Technical University of Bielefeld, Germany), and abstracts of Some Results in Dynamic Model Theory by Dexter Kozen (Cornell University, USA) and Mathematics in Computer Science Curricula by Jeannette Wing (Carnegie Mellon University, USA). The conference took place in Dagstuhl, Germany. The previous five conferences were held in 1989 in Twente, The Netherlands, in 1992 in Oxford, United Kingdom, in 1995 in Kloster Irsee, Germany, in 1998 in Marstrand near Göteborg in Sweden, and in 2000 in Ponte de Lima, Portugal. The proceedings of these conferences were published as LNCS 375, 669, 947, 1422, and 1837, respectively. Three international events were co-located with the conference: the IFIP WG2.1 working conference on Generic Programming, the third workshop on Constructive Methods for Parallel Programming, and the workshop on Types in Programming. We thank the organizers of these events for their interest in sharing the atmosphere of the conference. May 2002 Eerke Boiten Bernhard Möller
VI Preface Acknowledgments We are very grateful to the members of the program committee and their referees for their care and diligence in reviewing the submitted papers. We are also grateful to the sponsoring institutions. Program Committee Roland Backhouse (UK) Eerke Boiten (co-chair, UK) Michael Butler (UK) Ernie Cohen (USA) Jules Desharnais (Canada) Jeremy Gibbons (UK) David Gries (USA) Lindsay Groves (New Zealand) Ian Hayes (Australia) Eric Hehner (Canada) Zhenjiang Hu (Japan) John Hughes (Sweden) Bart Jacobs (The Netherlands) Johan Jeuring (The Netherlands) Dick Kieburtz (USA) Dexter Kozen (USA) Rustan Leino (USA) Christian Lengauer (Germany) Bernhard Möller (co-chair, Germany) David Naumann (USA) José N. Oliveira (Portugal) Alberto Pardo (Uruguay) PeterPepper(Germany) Kaisa Sere (Finland) Mark Utting (New Zealand) Sponsoring Institutions The generous support of the following companies and institutions is gratefully acknowledged: Deutsche Forschungsgemeinschaft University of Augsburg, Germany University of Kent at Canterbury, UK External Referees All submitted papers were reviewed by members of the program committee and a number of external referees, who produced extensive review reports and without whose work the conference would lose its quality status. To the best of our knowledge the list below is accurate. We apologize for any omissions or inaccuracies. Paulo Sérgio Almeida Juan C. Augusto Luís Barbosa José Barros Rudolf Berghammer Gustavo Betarte Orieta Celiku Jörg Fischer Daniel Fridlender Sergei Gorlatch Stefan Hallerstede Christoph Herrmann
Preface VII Petra Hofstedt Andy King Ulrike Lechner Markus Lepper Andres Löh Thomas Nitsche John O Donnell Luke Ong Jorge Sousa Pinto Michael Poppleton Rimvydas Ruksenas Luis Sierra Gregor Snelting Baltasar Trancón y Widemann Stephan Weber Jacob Wieland
Table of Contents Invited Talks Implementing Algebraic Dynamic Programming in the Functional and the Imperative Programming Paradigm... 1 Robert Giegerich,Peter Steffen Some Results in Dynamic Model Theory... 21 Dexter Kozen Mathematics in Computer Science Curricula... 22 Jeannette M. Wing Contributed Papers Logical Relations and Galois Connections... 23 Kevin Backhouse,Roland Backhouse Transformational Derivation of Greedy Network Algorithms from Descriptive Specifications... 40 Juan Eduardo Durán FineControlofDemandinHaskell... 68 William Harrison,Tim Sheard,James Hook Reasoning about Timeouts... 94 Ian J. Hayes Eternity Variables to Simulate Specifications...117 Wim H. Hesselink Constructing Tournament Representations: An Exercise in Pointwise Relational Programming...131 Ralf Hinze Type-Indexed Data Types...148 Ralf Hinze,Johan Jeuring,Andres Löh Verification of Java s AbstractCollection Class: A Case Study...175 Marieke Huisman Solving Regular Path Queries...195 Yanhong A. Liu,Fuxiang Yu Inverting Functions as Folds...209 Shin-Cheng Mu,Richard Bird
X Table of Contents From Kleene Algebra to Refinement Algebra...233 Joakim von Wright Author Index...263