Informal minutes of IFIP Working Group 2.1
63rd meeting, Kyoto, Japan
Monday 2007-09-10 to Friday 2007-09-14

Contents of this page:    Administrative matters  |  Technical presentations
(Last updated 8th October 2007.)


Organizational and administrative matters

List of attendees

Members: Observers:

Membership (Fri 2007-09-14)

This discussion was for members only, and is not recorded in these public minutes.


Web presence (Fri 2007-09-14)

Doaitse Swierstra has set up a draft Working Group wiki, as a vehicle for promoting the Group on the web. (Note that the URL differs from what was reports in the minutes of Meeting 62.) It will eventually move to a more appropriate domain name; to that end, we have purchased the domain name ifipwg21.org.

The chairman will ask Swierstra if it is possible to use MediaWiki for the wiki of the group, since MediaWiki makes it easier to format mathematics. Maybe there was a good reason to use TWiki?


Book for Bob Paige (Fri 2007-09-14)

Alberto Pettorossi now has received the final proofs of Springer for the book in honour of Bob Paige. He will returns those proofs within a couple of weeks.


Subsequent meetings (Fri 2007-09-14)

Working Conference
There will be a Working Conference on Domain-Specific Languages, jointly with WG2.8 and WG2.11. Jeremy Gibbons will be General Chair; there will be one Program co-Chair per group: Doaitse Swierstra (WG2.1), Benjamin Pierce (WG2.8), and Walid Taha (WG2.11). The conference will be held in Oxford, perhaps in June 2008 (although there is a current discussion about whether to postpone the event by a few months).

Meeting 64
The Working Conference would take the place of the meeting that would normally happen in the middle of 2008, and so Meeting 64 probably be in late March 2009, organised by Bernhard Möller.

Meeting 65
This should be 4Q2009, on the US East Coast; perhaps Desharnais or Hehner would like to host?

Meeting 66
3Q2010, in Europe

Meeting 67
2Q2011, in Europe

Meeting 68
1Q2012, perhaps in Beijing?


Formal resolution (Fri 2006-03-31, 11:15)

The members of WG2.1 and the observers present at the 111111st meeting at Kyoto, Japan wish to thank Eiiti Wada of the Internet Initiative Japan and Zhenjiang Hu of the University of Tokyo for arranging and facilitating a fruitful meeting, which offered the opportunity to present, exchange, teach, and learn from new and stimulating ideas

We digested novel experiences from breakfast until dinner. Not only did we learn how to carry the torch as a group across a bridge, we now also know better than to worry about inconsistencies.

Having seen rivulets come together, and become a fast flowing stream that has to be navigated in narrow straits between the rocks, we have been shown how this can be achieved by combining strength, skill, and experience.



Technical presentations

Note: presentation summaries were prepared by the speakers.


Presentation: Hu, Automatic Generation of Divide-and-Conquer Parallel Algorithms on Trees (Mon 2007-09-10, 11:17)

It has been shown that list homomorphisms, a class of recursive functions suitable for parallel computation on lists, can be automatically derived from a pair of sequential programs based on the third homomorphism theorem and weak inversion. In this talk, we show that it is possible to generalize the framework from lists to trees. We give a tree version of the third homomorphism theorem, and propose a calculation method for systematic derivation of tree homomorphisms that are suitable for divide-and-conquer parallel computation.
(Joint work with Akimasa Morihara.) The slides are available.


Presentation: Möller, An Algebra for Feature-Oriented Software Development (Mon 2007-09-10, 14:00)

Feature-Oriented Software Development (FOSD) provides a multitude of formalisms, methods, languages, and tools for building variable, customizable, and extensible software. Along different lines of research different ideas of what a feature is have been developed. Although the existing approaches have similar goals, their representations and formalizations have not been integrated so far into a common framework. We present a feature algebra as a foundation of FOSD. The algebra captures the key ideas and provides a common ground for current and future research in this field, in which also alternative options can be explored.
A paper is available.


Presentation: Backhouse, Recounting the rationals. Twice! (Mon 2007-09-10, 15:15)

Jeremy Gibbons, David Lester and Richard Bird recently published a so-called Functional Pearl on an effective way of enumerating the rationals in "Calkin-Wilf" order. They remarked that it is "not obvious" how to do the same in "Stern-Brocot" order. We show, with one algorithm, how to do both. The work is a continuation of our research on improving mathematical method reported on at the last meeting.
A paper is available.


Presentation: Mu, Maximum Segment Sum is Back! On Two Maximum Segment Problems with Bounded Lengths (Mon 2007-09-10, 16:50)

It may be surprising that variations of the maximum segment sum (MSS) problem, a textbook example for the squiggolists, are still active topics for algorithm designers. I would like to examine the new developments from the view of relational program calculation.

It turns out that, while the classical MSS problem is solved by the Greedy Theorem, by applying the Thinning Theorem, we get a linear-time algorithm for MSS with upper bound on length. To derive an algorithm for the maximum segment density problem, on the other hand, we need a global notion of thinning which is stronger than the Thinning Theorem.

The concepts of left-negative and right-screw segments emerge from the search for monotonicity conditions. The efficiency of the resulting algorithms crucially relies on exploiting properties of the set of partial solutions and design efficient data structures for them.

The slides are available.


Presentation: Jeuring, Strategies feedback (Tue 2007-09-11, 9:45)

Exercises in mathematics are often solved using a standard procedure, such as for example solving a system of linear equations by subtracting equations from top to bottom, and then substituting variables from bottom to top. Students have to practice such procedural skills: they have to learn how to apply a particular strategy to an exercise. E-learning systems offer excellent possibilities for practicing procedural skills. The first explanations and motivation for a procedure that solves a particular kind of problems are probably best taught in a class room, or studied in a book, but the subsequent practice can often be done behind a computer. There exist many e-learning systems or intelligent tutoring systems that support practicing procedural skills. The tools vary widely in breadth, depth, user-interface, etc, but, unfortunately, almost all of them lack sophisticated techniques for providing immediate feedback. If feedback mechanisms are present, they are hard coded in the tools, often even with the exercises. This situation hampers the usage of e-learning systems for practicing mathematical skills. This paper introduces a formalism for specifying strategies for solving exercises. It shows how a strategy can be viewed as a language in which sentences consist of transformation steps. Furthermore, it discusses how we can use advanced techniques from computer science, such as term rewriting, strategies, error-correcting parsers, and parser combinators to provide feedback at each intermediate step from the start towards the solution of an exercise. Our goal is to obtain e-learning systems that give immediate and useful feedback.
(Joint work with Arthur van Leeuwen and Wouter Pasman.) The slides are available.


Presentation: Oliveira, Genericity, extensibility and type-safety in the VISITOR pattern: An overview (Tue 2007-09-11, 11:15)

In this presentation I will present an overview of my thesis. The main result of my thesis is that we can capture the Visitor pattern as an extensible software component that is parametrizable on both the shape of some concrete visitor, and the decomposion strategy that can be used to define functions over the concrete visitors. This contrasts with the tradition presentation, where visitors are presented as a design pattern and both of these parametrization aspects consist of early design choices on the implementation, basically precluding any form of reuse. Furthermore, it is shown how we can use DGP techniques to write generic functions over visitors defined using our software component. My work builds on some type-theoretic results on encodings of datatypes, the relation between different encodings with different recursion patterns, and the fact that the Visitor design pattern and encodings of datatypes are closely related.
The slides are available.

Presentation: Backhouse, Capacity C Torch Problem (Tue 2007-09-11, 12:10)

The torch (flashlight/bridge) problem is a problem of getting a number of people across a bridge with a limited capacity. A solution to the problem when the capacity of the bridge is 2 is well known. I will present a solution for the more general problem where the capacity is an input parameter. The solution has worst-case complexity O(N2) where N is the number of people. Before embarking on the problem, I was told that it is believed to be "hard" and I do not know of any other published solution. The problem is indeed surprisingly difficult to solve, but it is not "hard" in any technical sense. I strongly suspect that my solution can be improved. The conjectured improvements lead to interesting algorithmic challenges.
A paper is available.


Presentation: Igarashi, Deriving Compilers and Virtual Machines for a Multi-Level Language (Tue 2007-09-11, 15:25)

We develop virtual machines and compilers for a multi-level language, which supports multi-stage specialization by composing program fragments with quotation mechanisms. We consider two styles of virtual machines---ones equipped with special instructions for code generation and ones without---and show that the latter kind can deal with, more easily, low-level code generation, which avoids the overhead of (run-time) compilation by manipulating instruction sequences, rather than source-level terms, as data. The virtual machines and accompanying compilers are derived by program transformation, which extends Ager et al.'s derivation of virtual machines from evaluators.
(Joint work with Masashi Iwaki.)


Presentation: Vene, Representing Cyclic Structures as Nested Datatypes (Tue 2007-09-11, 17:00)

We show that cyclic structures, i.e., finite or possibly infinite structures with back-pointers, unwindable into possibly infinite structures, can be elegantly represented as nested datatypes. This representation is free of the various deficiencies characterizing the more naive representation as mixed-variant datatypes. It is inspired by the representation of lambda-terms as a nested datatype via the de Bruijn notation.
(Joint work with N.Ghani, M.Hamana, and T.Uustalu.) The slides are available.


Presentation: Meertens, Refinement and Transformations in Specware (Wed 2007-09-12, 9:00)

Specware is the "flagship" system of Kestrel Institute, developed over a sequence of years, as a system that supports the correct-by-construction paradigm. An earlier system, KIDS (Kestrel Interactive Development System, Doug Smith, 1990) was designed for, and excelled in, transformational programming in the small. Specware was designed for system development in the large; unfortunately, the initial designers paid scant attention to the convenience of doing the small steps. Recently, Kestrel Institute has begun to address this issue.

The talk is a progress report, discussing an improved notion of refinement between specs based on a new notion of the "observable" ops of a spec, and newly added transformational capabilities. This relatively small effort has already achieved a marked improvement in the practical usability of Specware.

(Joint work with Alessandro Coglio and Stephen Westfold, Kestrel Institute.) The slides are available.


Presentation: Löh, Implementing dependent types in Haskell (Wed 2007-09-12, 10:15-10:45, 11:15)

No abstract received.
The slides are available.

Presentation: Jansson, Agda tutorial (Wed 2007-09-12, 14:05)

Agda is a functional language for programming with dependent types. In this tutorial/demo I present a subset of the notation starting from basic lambda calculus, through simple datatypes, datatypes with strong invariants, the Curry-Howard isomorphism and equational reasoning. The strong typesystems means that theorems can be expressed as types and proofs can be expressed as programs, with the Agda implementation acting as a proof checker.
More information about Agda2 is available (website, paper).


Presentation: Pardo, Shortcut Fusion for Accumulations (Wed 2007-09-12, 15:05)

No abstract received.
The slides are available.

Presentation: Jansson, Comparing Libraries for Generic Programming in Haskell (Wed 2007-09-12, 16:25)

Recently, Garcia, Järvi et al. presented "An extended comparative study of language support for generic programming" [JFP 2007] where Haskell scores best out of eight compared languages (C++, SML, Ocaml, Haskell, Eiffel, Java, C#, Cecil). There are numerous (> 8) approaches to generic programming in Haskell alone and until now there hasn't emerged a clear winner. This talk presents work in progress on comparing libraries for generic programming in Haskell when it comes to implementation techniques, expressiveness and efficiency.
(Joint work with Johan Jeuring et al.) The slides are available.


Presentation: Morihata, A new calculational law for combinatorial optimization problems (Wed 2007-09-12, 16:55)

Program calculation is a methodology for easy construction of efficient algorithms, where efficient algorithms are systematically derived from naive but apparently correct algorithms by calculational laws. In this presentation, I propose a new calculational laws for combinatorial optimization problems, which are not only helpful for deriving dynamic programming algorithms for a wide class of combinatorial optimization problems, but also suitable for automatic implementation. I show a derivation of an algorithm for resource-constrained shortest path problems, and explain how my calculational law works.
The slides are available.

Presentation: Möller, Mechanizing Algebraic Proofs (Thu 2007-09-13, 9:05)

We have been using algebraic axiom systems for a variety of application areas over the last few years. Recently, it turned out that these lend themselves easily to mechanization via existing theorem provers, notably Prover9/Mace4 by W. McCune. The axioms can be typed in directly, without extra preparation, and the system is able to prove relevant consequences fully automatically at surprising speed, although guidance through lemmas may help in proving more complicated results. A repertory of the topics that have already been treated in this way is available online.

In this talk we exemplify the technique with part of the axiom system from the presentation An Algebra for Feature-Oriented Software Development and several theorems from term rewriting and refinement calculus.

Further examples can be found in the following papers:


Presentation: Solin, A Sketch of a Dynamic Epistemic Semiring (Thu 2007-09-13, 9:55)

I propose a semiring formulation for reasoning about an agent's changing beliefs: a dynamic epistemic semiring (DES). A DES is a modal semiring extended with epistemic-action operators. I concentrate on the revision operator by proposing an axiomatisation, developing a basic calculus and deriving the classical AGM revision axioms in the algebra.

Presentation: Morgan, Horses for Courses: An introduction to probabilistic Kleene Algebra (pKA) (Thu 2007-09-13, 10:50)

Rabin's (distributed, probabilistic) mutual exclusion algorithm addresses the liveness of resource sharing by guaranteeing a probabilistic lower bound on the chance that a process competing for a shared resource will actually get it. At its core is a clever and unexpected mathematical "gem" around which the details of concurrency and overlapping executions are set: the gem is not obvious, but is nevertheless easily proved; the details of organising the concurrency, on the other hand, are obvious but not so easily proved. In fact there was an error in Rabin's original presentation.

"Horses for Courses" means choosing the right tool for the job. Proof of Rabin's algorithm seems so difficult, in full rigour, that McIver decided to split it up into "layers", one of which --the most intricate-- would be handled by a probabilistic extension of Cohen's Separation-and-Reduction technique, itself based on (non-probabilistic) Kleene Algebra. (Study of that algebra is the connection with WG2.1's interests.)

The talk summarises the history of the problem, and the proposed solution strategy, and sketches what the progress so far has delivered. There turn out to be interesting links between pKA and other Kleene-style algebras invented for a wholly different purpose.

The slides are available.

Presentation: Pepper, Evolution of Evolving-Systems Specifications (Fri 2007-09-14, 11:30)

Large specifications (today also referred to as "models") exhibit the same problem as large programs: They need to be developed, ideally in a systematic derivation process. We discuss means for such a "model evolution process" based on the formalism of Espces (comparable to Statecharts) and generalized refinement morphisms. To this end we also employ some kind of modal operators. The concepts can also be used to assist other development aspects such as the weaving of global policies into local specifications. The approach treats discrete models as well as continuous or hybrid models.
(Joint work with Doug Smith and Dusko Pavlovic.)



Working documents

892 KYO-1
Bernhard Möller. An Algebra for Feature-Oriented Software Development (paper).

893 KYO-2
Roland Backhouse. Recounting the Rationals. Twice! (paper).

894 KYO-3
Johan Jeuring. Strategic Feedback (slides).

895 KYO-4
Roland Backhouse. Capacity C Torch Problem (paper).

896 KYO-5
Lambert Meertens. Refinement and Transformations in Specware (slides).

897 KYO-6
Patrik Jansson. Agda2 tutorial (paper).

898 KYO-7
Patrik Jansson. Comparing Libraries for Generic Programming in Haskell (slides).

899 KYO-8
Bruno Oliveira. Genericity, extensibility and type-safety in the VISITOR pattern: An overview (slides).

900 KYO-9
Varmo Vene. Representing Cyclic Structures as Nested Datatypes (slides).

901 KYO-10
Akimasa Morihata. A new calculational law for combinatorial optimization problems (slides).

902 KYO-11
Alberto Pardo. Shortcut Fusion for Accumulations (slides).

903 KYO-12
Carroll Morgan. Horses for Courses: An introduction to probabilistic Kleene Algebra (pKA) (zipped slides).

904 KYO-13
Zhenjiang Hu. Automatic Generation of Divide-and-Conquer Parallel Algorithms on Trees (slides).

905 KYO-14
Shin-Cheng Mu. Maximum Segment Sum is Back! On Two Maximum Segment Problems with Bounded Lengths (slides).

906 KYO-15
Andres Löh. Implementing Dependent Types in Haskell (slides).



Jeremy Gibbons (email: Jeremy.Gibbons@comlab.ox.ac.uk)