Monday, May 09, 2016

Interview with Stephen Brookes and Peter W. O’Hearn, recipients of the 2016 Gödel Prize


Peter O'Hearn


Steve Brookes


















As announced earlier today, Stephen Brookes (Carnegie Mellon University, USA) and Peter W. O’Hearn (Facebook and University College London, UK) are the recipients of the 2016 Gödel Prize for their invention of Concurrent Separation Logic.

In order to celebrate the award of the Gödel prize to their path-breaking work and to allow the research community in theoretical computer science at large to appreciate the origin of the ideas that led to their invention of Concurrent Separation Logic, I interviewed Steve (abbreviated to SB in what follows) and Peter (referred to as PO in the text below) via email. Here is the interview, which will appear in the June issue of the Bulletin of the EATCS. (The interview in PDF is here.) Enjoy it!

Thanks to Peter and Steve for sharing their recollections and knowledge with the theoretical-computer-science community, and congratulations for the 2016 Gödel Prize!

LA: You are receiving the Gödel Prize 2016 for your invention of Concurrent Separation Logic (CSL), which, quoting from the prize citation, is "a revolutionary advance over  previous proof systems for verifying properties of systems software,  which commonly involve both pointer manipulation and shared-memory concurrency." Could you briefly describe the history of the ideas that led to the invention of CSL, what were the main inspirations and motivations for its invention and how CSL advanced the state of the art?

PO: After John Reynolds and I and others had done the initial work on separation logic for sequential programs it made sense to consider concurrency, just based on the idea of using the logic to keep track of the separation of resources used by different processes or threads. In the summer of 2001 I devised initial proof rules to do just that, by adapting an approach of Hoare to reasoning about concurrency from Hoare logic to separation logic. 

This first step seemed straightforward enough, but then it hit me that we could use the logic to track dynamically changing partitions rather than the static partitioning in Hoare’s approach. I used a little program, the pointer-transferring buffer, to explore this idea, and I made a program proof in which the fact that something was allocated seemed to move from one process to another… during the proof. The pointer itself was copied, but the fact that it was allocated (and hence the right to dereference it) was given up by the sending process. I began talking about “knowledge” or “ownership” transferring from one process to another. The striking thing was that there was no explicit concept of ownership in the logic or proof rules, but that this transfer seemed to be encoded in the way that the proofs of the processes worked. I circulated an unpublished note on proving the pointer-transferring buffer in August of 2001, and then a longer note in January 2002; these documents got a lot of attention from people working on separation logic.

It quickly became clear that quite a few concurrent programs would have much simpler proofs than before. Modular proofs were provided of semaphore programs, of a toy memory manager, and programs with interacting resources. I got up a huge head of steam because it seemed as if the logic could explain the way that synchronisation had been used in the fundamental works on concurrent programming by Dijkstra, Hoare and Brinch Hansen. For example, in the paper that essentially founded concurrent programming, Dijkstra in 1965  (Co-operating Sequential Processes, still the most important paper in concurrency) had explained that the point of synchronisation was to enable programmers to avoid minute considerations of timing, to simplify reasoning. Brinch Hansen had hammered into me the importance of speed independence and resource separation for simplifying thinking about concurrent processes when I was his colleague at Syracuse in the 1990s, and what he said to me seemed to be mirrored in the proofs in this early concurrent separation logic. And although I had never written a paper on concurrency, I was opinionated: I thought that work in the theory of concurrency was often missing the mark because while it could describe semaphores and other synchronisation primitives, it did not explain their significance because it did not connect back to simplifying reasoning; which was their whole point. Hoare had made important steps in various points in his work, but it seemed as if we could go much further armed with the separating conjunction. 

So, years of thinking about these issues seemed poised to come together at once in this concurrent separation logic. But, for all my opinionated excitement, I ran into a blocker of a problem: I wasn’t able to prove soundness of my proof rules. And it was the very feature which gave rise to the unexpected power, the ownership or knowledge transfer, that made soundness non-obvious. I worked hard on this problem for several months in the second half of 2001 and early in 2002, and got nowhere. Reynolds, Yang, and Calcagno, all semantics experts, also looked at the problem. Finally, I admitted to myself that it was technically beyond my expertise in concurrency theory and that I needed help. Luckily, I knew where to turn. Steve Brookes and I had never worked together before, but knew one another from way back. He was the external examiner of my 1991 PhD thesis, I was well aware of his fundamental work with Hoare and Roscoe on the foundations of CSP, and he had recently produced striking results on full abstraction for shared-memory parallelism, what I though of as the most impressive theoretical results in semantics of concurrency at the time. What is more, Steve had built up a powerful repertoire of techniques for proving properties of concurrent programming languages. So, sometime in 2002, I picked up the phone and gave him a call: “Steve, I have a problem!”.

SB: As Peter said, he called me out of the blue. I knew Peter well, having served as the external examiner on his PhD thesis, and I had kept in contact with him after he took up his first academic positions at Syracuse and at Queen Mary (University of London). We were in fairly regular email contact, but he didn’t normally phone me from England; I knew this must be important. I sat in my office at Carnegie Mellon University in Pittsburgh, intrigued and fascinated to hear his ideas and excited by the challenge he was offering me. I think he also spoke by phone at a different time to John Reynolds, whose office was right next to mine. We all agreed that the best plan was for Peter to come to Pittsburgh and give a talk, after which we would do some brainstorming.

That was how it started, from my viewpoint. Peter came to CMU in March of 2002 and gave a talk on his new logic. Peter was proposing a subtle and clever combination of key ideas from separation logic and a much earlier Owicki-Gries logic for shared-memory concurrency, itself based on ideas appearing in a classic paper of Tony Hoare (“Towards a theory of parallel programming”). Superficially the new logic was both very simple and also very perplexing. The Hoare-style logic has a simple rule for parallel composition that combines pre- and post-conditions using conventional conjunction, and a rule for conditional critical regions (essentially, binary semaphores) that makes use of “resource invariants”. The inference rules ensure that a provable program obeys what has come to be known as a “rely-guarantee” discipline: each process assumes that whenever it acquires a semaphore the relevant invariant holds, and guarantees that the invariant holds again when releasing the semaphore. However, the earlier logic is not sound for programs using pointers, because of the possibility of aliasing. On the other hand separation logic was originally formulated for reasoning about sequential programs using pointers, but lacked rules for shared-memory concurrency and (until then) it was not clear how to generalize. Peter introduced a radically simple and elegant way to combine the two: an overly simplistic summary is that he allows separation logic formulas as pre- and post-conditions (and resource invariants) and strategically replaces certain occurrences of conjunction in the Hoare-Owicki-Gries rules with the separating conjunction operator from separation logic. Of course this naive characterization glosses over some profound issues: in Peter’s approach the invariants and pre- and post-conditions are not really talking about the “global” state, but serve to specify the “footprint” of a program component, just the piece of state on which that component acts. I think this was the first time I saw use of terms such as “footprint” and “ownership transfer”, notions which now seem very intuitive but as yet had no formal semantic counterpart.
(Until this point, I think it is fair to say, semantic models for concurrent languages had typically dealt entirely with global state, and it was conventional wisdom that it was already hard enough to find a decent semantics for simple shared-memory programs, let alone try to incorporate mutable state, heap cells, allocation and deallocation.) My challenge was to develop a semantic model robust and flexible enough to handle the combination of concurrency and pointers, in which such notions as ownership transfer could be properly formalized: to build a foundation on which to establish soundness of Peter’s proposal. Furthermore, prior semantic models for concurrent languages had pretty much ignored race conditions, typically by assuming that assignments were executed atomically so that races never happen. While that worked well for “simple” shared-memory it was clearly an insufficiently sophisticated way to cope with mutable state and the more localized view of state that is so fundamental in Peter’s approach.

During this visit we basically barricaded ourselves in a room with Reynolds and Calcagno, dropping all other distractions and tossing ideas around in an attempt to lay out a groundplan, exploring the apparent benefits of the new logic while probing for limitations and possibly even counterexamples. John’s wife Mary recalls very intense discussions at the Reynolds’s household, walls covered with sticky paper, only breaking for meals. Peter enunciated what became known as the Separation Principle: “at all stages, the global heap is partitioned into disjoint parts…”, another way to articulate the idea of “ownership transfer”. Again it is easy to express these notions informally, but it turned out to be surprisingly tricky to encapsulate them semantically, and Peter was right to be cautious.

I remember marveling at the ease with which Peter was able to articulate,
with simple-looking little programs like a one-place buffer, the kinds of problem that arise when concurrent threads manipulate the heap. And the logic seemed elegantly suited for reasoning about the correctness of such programs, with the decided advantage that provable programs are guaranteed to be free of data races. (This was also true of the earlier Hoare-Owicki-Gries logic, but only in the much more limited setting of “simple” shared-memory without pointers.)

The use of separation in the logic neatly embodies a kind of disciplined use of resources in programs. Yet it was by no means clear how to formalize these ideas, and Peter was quite forthright about his unwillingness to publicize the ideas until it had been demonstrated that it all made sense. He had circulated an “unpublished manuscript” with the title “Notes on separation logic for shared-variable concurrency”, dated January 2002. Meanwhile I was excited to have a challenging problem to work on, and intense interactions continued between Peter, John and me as our understanding evolved.

I had plenty of experience in developing denotational semantic models for (simple) shared-memory programs and also for communication-based languages such as CSP. Just like the earliest denotational accounts of concurrency (dating back to David Park in the late 70’s) the most widespread and generally most adaptable approach was to use traces (or sequences of actions) of some kind; I had introduced “transition traces”, built from steps that represent (finite sequences of) atomic operations by a process, with gaps allowing for state changes made by the “environment”. I think that transition trace semantics is what Peter was referring to, when he mentioned full abstraction, but I should emphasize that this model was tailored specifically to simple shared-memory and I could not see an obvious way to adapt it to incorporate pointers. I did try! My more recent
focus had been on “action traces”, in which steps represent atomic actions but the details concerning state (when an action is enabled, and what state change it causes) are kept apart: a process denotes a set of action traces, and one can then plug in a model of state, give an interpretation of actions as state transformers, and be able to reason rigorously about program execution. It seemed to me that action traces offered the best basis for expansion to incorporate pointers: by augmenting the “alphabet” of actions to include heap lookup, update, allocation and deallocation. It should also be quite natural to treat semaphore operations (for acquiring and releasing) as actions. It took until some time in 2003 for me to iron out the technical details and be able to explain the key definitions and results clearly enough to be ready for publication.

In retrospect I regard this period of a couple of years as probably the most exciting and stimulating sustained research in which I have been involved.
I am immensely grateful to have had the opportunity to work with Peter on this project. And throughout all of this I was strongly influenced by John Reynolds, whose good taste, deep originality of thought and sheer intellectual inquisitiveness served to keep me focussed. Echoing Peter’s reluctance to publish without being sure, I always said to myself that I wouldn’t be sure until I could convince John (and Peter!). John and I had lunch together almost every day, and I camped out in his office whenever I had an idea that needed a sounding board. He prompted me to always seek clearer explanations, isolate the key concepts and make the right definitions, and strive for generality. I remember in particular that at one point, after several weeks trying to figure out how to extend action traces, I told John that I might be able to give a semantics in which (only) provable programs would be definable. My naive idea was to modify the way that parallel composition gets modelled to keep track of the preservation of resource invariants explicitly and treat any violation as a
“disaster”. I recall John upbraiding me gently about this plan; in his view, one should develop a semantics that is “agnostic” about any intended logic, and instead built to express computational properties of programs in general terms. He did agree that we needed a semantics that reported the potential for race conditions, an idea that is echoed in his own work. Having found such a semantics, it ought then to be possible to show using the semantics that programs provable in the logic are indeed race-free. In essence, that’s what happened. But it didn’t happen overnight, and
the path from start to end involved a few detours and dead-ends before
finding a robust solution.

There was a crucial role in this played by the concept of “precise” assertion. I will hand back to Peter to make a few remarks on that.

PO: Yes, a memorable moment came when John poked his head into my office one day: “want some bad news?”. He showed me an example where the proof rule for critical regions together with the usual Hoare proof rule for using conjunction in the postcondition lead to an inconsistency. This problem had nothing to do with concurrency per se, but rather was about the potential indeterminacy of the “angel” affecting ownership transfer. (We had been attempting to get a handle on ownership transfer by couching it in adversarial terms, involving an “angel” making program choices and a “demon” trying to invalidate invariants or induce race conditions.) The problem also arose in a sequential setting, in proof rules for modules that I was working on with John and Yang (which we eventually published in “Separation and Information Hiding, in POPL’04). In any case, I quickly proposed a concept of “precise” assertion, one that unambiguously picks out an area of storage, as a way to get around the problems cause by the indeterminacy of the angel, and this concept is used in the resource invariants in concurrent separation logic.

This indicates what a subtle problem we were up against. Some experienced semantics researchers had been working on soundness of CSL and of information hiding and there lurked a problem that none of us had spotted. We were lucky that John Reynolds was not only keeping us honest by tracking our progress, but thinking deeply about these problems himself. Concurrent separation logic owes a lot to John’s brilliance.

That being said, this problem with the ownership angel was not the biggest hurdle Steve had to get over. Setting up the concurrency semantics and identifying the right properties to prove to get inductions to go through was just hard. Once he had done it, others were able to generalize and sometimes (arguably) simplify his proof method; e.g., in work of Calcagno, Yang, Gotsman, Parkinson, Vafeiadis, Nanevsky, Sergey and others, and some of it drops the precision requirement (but also the conjunction rule). But, from my perspective, Steve solving this problem for the first time was difficult, and important. I like to say: he saved my logic!

LA: I noticed that you each published short versions of your papers in the same conference, CONCUR’04, and then again the long versions appeared in the same journal issue in TCS’07. How did that come about?

SB: My email to Peter and John, announcing that I had found the “right” semantics and that the concurrency rules can be shown to be sound when resource invariants are chosen to be precise, dates from early June 2003. (I also showed that the rules remain sound when invariants are chosen to be “supported”, so that in any state with a sub-heap satisfying an invariant there is a unique minimal sub-heap with that property.) This was obviously very exciting and I headed over to England to spend some time in London with Peter. Peter organized informal discussion meetings (called “yak sessions” to distinguish from full-blown seminars) and Peter and I both gave presentations there on CSL. Philippa Gardner witnessed these presentations, and she was so enthusiastic that she decided (as organizer for the CONCUR 2004 conference in the following year) to invite us to give back-to-back hour-long tutorials at that meeting. That’s how the original short versions of our papers ended up at the same conference.
We felt honoured to be asked, effectively, to give tutorial invited lectures on as-yet unpublished work! And thanks to Philippa for her part in encouraging this scenario.

We published the full, journal-length versions together in TCS as tributes to John on his 70th birthday. The Festschrift volume appeared as a book, under the TCS imprimatur, edited by Peter along with Olivier Danvy and Phil Wadler, in 2007. There’s an amusing story that Peter reminded me of. One day Philippa was walking with me, John and Peter, some time before the CONCUR short versions were finalized. John was berating Peter for what he perceived perhaps as dilatoriness in not submitting long versions to POPL or some other conference instead of preparing the journal-length versions; he couldn’t understand why it was taking us so long to get around to it. What he did not realize was that the plans were already afoot for his birthday festschrift, and we had already agreed to publish there. After all, what better way to acknowledge the profound influence John had on the work. Philippa leaned over to Peter and whispered that we couldn’t tell him because those (long) papers are for his “bloody festschrift”.

LA:  In your opinion and experience, how important are modularity and compositionality in proving properties of programs and systems?

SB: I think the benefits of modularity — in particular, allowing more “localized” reasoning by considering each component largely in isolation from the others — have been touted right from the early days. For example Dijkstra was in favor of “loose coupling”, and argued that the art of parallel program design was to ensure that processes can be regarded almost as independent, except for the (ideally small number of) places where they synchronize. The claim was, and continues to be, that this would improve our ability to
manage the sheer complexity caused by interactions between concurrent threads. For similar reasons, and dating back to Hoare logic (1969!), we seek compositional proof systems for proving program properties. In a compositional proof system one can derive correctness properties of a program by reasoning about program components individually, and the inference rules show how the properties of components determine the behaviour of the whole program. In short, compositional means “syntax-directed”, and again a major desire is to exploit syntax-directed analysis to tame the combinatorial explosion. But to design a compositional logic for a specific programming language, for use in establishing a specific class of program behaviour, you need to start with a suitably chosen assertion language — one for which compositional reasoning like this is even possible. This is particularly difficult for concurrent programs, since it has long been known that Hoare-style partial correctness assertions about a multi-threaded program cannot be deduced simply on the basis of partial correctness properties of individual threads.
A partial correctness assertion of form {p}c{q} says that every terminating execution of c from an initial state satisfying p ends in a state satisfying q.

In the early Hoare-style logics for shared-memory programs (Hoare-Owicki-Gries, as mentioned earlier) assertions look just like conventional partial correctness but are interpreted semantically as expressing a much more sophisticated property, allowing for
the program to be running in an “environment” of other processes. It has become common to describe this interpretation in terms of “rely/guarantee”. I think one of the key ingredients in my semantic model is that it allows formalization of the kind of ownership transfer discipline inherent in Peter’s inference rules. Turning this on its head, you could say that the semantic model supports compositional reasoning about programs whose correctness is justified by appeal to Peter’s separation principle and the ownership discipline.
    
 I’ll let Peter step in here too, as I’m sure he feels strongly about compositionality as a virtue. Maybe he can say something about monitors as well, which I know were a strong motivating factor in how he came up with the inference rules.

PO:  Generally speaking, when proving a program it is possible in principle to construct a global proof, one that talks about the global state of the system. But global proofs tend to be much harder to maintain when the program is changed. And programs are constantly being changed in the real world: the world won’t accept prove-it-and-forget-it proof efforts, verification needs to be active and move with the programmers. This, even more than efficiency considerations in constructing proofs at the outset, is the strongest reason for wanting modularity.

Separation logic has just provided a theory that often matches the intuitive modularity that comes up in data structure designs. The degree of modularity in proofs that have been done has been surprising. For instance, when I was thinking about proof rules for CSL my first idea was to axiomatize monitors (class-like abstractions for concurrency due to Brinch Hansen and Hoare), because I thought that low-level primitives like semaphores were too unstructured and that modular proofs would be impossible. Of course I knew that monitors could simulate semaphores, but I didn’t expect to find nice proofs of semaphore programs. It therefore came as a bit of a shock when I was able to provide very local independent reasoning about semaphores  in some nontrivial examples.

But, while modularity is important, you should be careful not to try to take it too far. For instance, sometimes multiple resources participate together in the implementation of a data abstraction, like the use of several locks in hand-over-hand locking on linked lists. Vafeiadis and Parkinson have some lovely work on RGSep, a descendent of the original concurrent separation logic, in which they show how you can describe the effects of operations in a very local way, but where the description sometimes involves two locks and a bit of a linked list, rather than only one lock; you would just be causing yourself trouble if you tried to formulate everything in terms of independent reasoning about the individual locks in this case.   So I like to think that you should make your specifications and proofs as modular as is natural, but not more so; logic should not block making specs+proofs modular, but neither should it force you to shoehorn your descriptions into a fixed granularity of modularity.

Some of the work that follows on from mine and Steve’s work is very flexible in the degree of abstraction that can be given to the way that state is composed and decomposed. For instance, work of Nanevski, Sergey, Dreyer, Birkedal and others is all based on proof methods which allow the granularity of modularity or separation to be chosen, but specifying a partial commutative monoid of composition (in place of the standard separation logic monoid of heaplets and disjoint union).

LA: What are some of the main developments since your papers appeared.

PO: First let me mention developments in theory. To me, the most surprising has been the demonstration that the most basic principles of concurrent separation logic, particularly independent reasoning about threads using the separating conjunction, cover a much broader range of situations than we ever expected. There have been proofs of fine-grained locking and non-blocking concurrency and cases that involve interference and general graph structures, what might have been though of as bad cases originally for separation logic.

SB: We should also mention generalizations based on permissions (for example, Boyland’s account of fractional permissions). In particular this path led to versions of CSL capable of dealing naturally with concurrent reads, and to some very elegant program proofs (due to Peter with Calcagno and Bornat) in which the correctness of the program depends on a permissive form of ownership transfer.

PO: Interestingly, the unexpected power of this is based on what you might call “non-standard models” of separation logic; I mean this by analogy with the usual situation in logic, where a theory (e.g. reals, or integers) has an intended model, but then additional non-standard models of the same axioms. The proof theory can then accomplish unexpected things when applied to the non-standard models. The standard model of separation logic is the original model based on splitting portions of the heap, or heaplets. There are lots of other models stemming from the “resource semantics” of bunched logic invented by David Pym (based on having a partial commutative monoid of possible worlds). The surprise is that some of these nonstandard models involve composing highly intertwined structures and interfering processes. Gardner coined the phrase “fiction of separation” to describe this phenomenon in the nonstandard models.

For example, in their POPL’13 work on Views, Dinsdale-Young, Parkinson and colleagues  show that a simple abstract version of concurrent separation logic can embed many other techniques for reasoning about concurrency including type systems and even the classic rely-guarantee method, which was invented for the purpose of reasoning about interference.  Work of Nanevski and Sergey on their Fine-Grained Concurrent Separation Logic shows how one of the sources of non-modularity in the classic Owicki-Gries approach to concurrency, the treatment of auxiliary variables, can be addressed by a suitable non-standard model of separation. They also obtain great mileage out of a model that interprets the separating conjunction in terms of a composition of histories, thus combining temporal and spatial aspects of reasoning. Finally, Hoare and others have been pursuing a very general theory of “Concurrent Kleene Algebra”, which encompasses message passing as well as shared variable concurrency, and its associated program logic is again a very general form of CSL.

Although they technically use simple abstract version of CSL, these works conceptually go well beyond the original because the nonstandard models have meanings so far removed from the standard models. And they represent technically significant advances as well. For instance, the Views work has a new and very flexible proof of soundness, which is needed I think to cover the concurrency in the nonstandard models. There is a lot happening in this space, and I have left out other very good work by Birkedal, Dreyer, Raad, Feng, Shao and others;  a number of competing logics are being advanced, and there is just too much good work to mention it all here. It will take some time to see these developments shake out, but already it is clear that the principles of CSL apply much more broadly one could have guessed at the time of mine and Steve’s papers.

Second, I would like to mention that a surprising practical development has been the degree of progress in tools for mechanized verification. The first implementation of CSL actually preceded the publication of mine and Steve’s papers. Cristiano Calcagno included CSL in his earliest prototypes of Smallfoot, the first separation logic verification tool, around 2002. But, since then, many tools have appeared for verification with CSL and relatives.
Examples of the state of the art include the Verifast tool of Jacobs et al and the implementation in Coq of the aforementioned Fine-grained CSL: in both tools there are examples of mechanized proofs of nontrivial concurrent programs including hand-over-hand locking on linked lists, lock-free queues, and a concurrent spanning tree construction. It is also possible to verify custom synchronisation primitives, such as for locks implemented using compare-and-swap, and then to use the specifications of the primitives in verifications of client code without having to look at the lock internals.


LA: What are some of the current directions of interest, or future problems, for research.

PO: One important direction in pure theory is unification, to bring to a form of local conclusion all of the developments on non-standard models. I sense that there is good and possibly deep theoretical work to be done there.

SB: I agree. And I think the time is ripe for a systematic attempt to develop a denotational framework capable of supporting such a unification. My own recent research into the foundations of weak memory concurrency is an attempt to start in this direction, and seems like a natural generalization from the action trace semantics that we used to formalize CSL. The main idea here is to go from traces (essentially, linearly ordered sets of actions) to a more general partial-order setting. Similar themes are also appearing in work of others, and we are starting to see papers proposing the use of pomsets (my own work, building on early ideas of Vaughan Pratt) and event structures (originally introduced by Winskel) in semantic accounts of weak memory. I think this is exciting, and I believe it would be a valuable service to cast these developments into a uniform framework, and to use such a framework to establish soundness of new CSL-style logics for weak memory and explore the relationships between such logics.

PO: As I said above, there has been tremendous progress in mechanized verification of concurrent programs; but there has been less in automatic program analysis. With program analysis we would like to give programmers feedback without requiring annotations, say by trying to prove specific integrity properties (such as memory safety or race freedom); annotations can help the analysis along, but are not needed to get started, and this greatly eases broad deployment. A number of prototype concurrency analyses based on CSL have been developed, but there has been much more work applying sequential separation logic to program analysis. For example, the Infer program analyser, which is in production at Facebook, uses sequential but not concurrent separation logic. To make advanced program analysis for concurrency which brings value to programmers in the real world is in the main an open problem. And not an easy one.

I would finally like to mention language design. There have been experimental type systems which incorporate ideas from CSL into a programming language, such as the Mezzo language and Asynchronous Liquid Separation Types. Related ideas can be found earlier in Cyclone, and more recently in the ownership typing that happens in the Rust language. It seems as if there is a lot of room for experimentation and innovation in this space.

Stephen Brookes and Peter W. O’Hearn receive the 2016 Gödel Prize

2016 GÖDEL PRIZE RECOGNIZES MAJOR ADVANCES IN VERIFICATION OF CONCURRENT PROGRAMS

The Association for Computing Machinery’s Special Interest Group on Algorithms and Computation Theory (SIGACT) and the European Association for Theoretical Computer Science (EATCS) have announced that Stephen Brookes and Peter W. O’Hearn are the recipients of the 2016 Gödel Prize for their invention of Concurrent Separation Logic. The prize will be presented at the 43rd International Colloquium on Automata, Languages and Programming (ICALP 2016), to be held July 12-15 in Rome, Italy. Congratulations to Peter and Steve!

In computer science, concurrency is the decomposition of programs, algorithms or problems into units whose order is not determined; concurrent program units might occur in arbitrary order, even overlapping in time. Such a decomposition is the basis for the parallel execution of programs or algorithms, which can considerably enhance the overall speed of execution of multicore and multiprocessor systems. However, concurrent execution can make programs difficult to understand and get right, because different execution orders can lead to different results, and because different threads of execution can interfere with one another. Computer scientists use logic to write, and to reason about, specifications of concurrency in computer software systems.
In their separate papers— Brookes’ “A Semantics for Concurrent Separation Logic and O’Hearn’s “Resources , Concurrency and Logical Reasoning,” the 2016 Gödel Prize recipients introduced and advanced the idea of Concurrent Separation Logic (CSL), which has had a far-reaching impact in both theoretical and practical realms. O'Hearn's paper introduces CSL and is very much about fluency with the logic – how to reason with it – rather than its meta-theory. The latter is the concern of Brookes' paper, which demonstrates soundness of the logic via a clever new model; this was essential for CSL to be widely accepted and applied.
In the theoretical realm, almost all research papers developing concurrent program logics in the last decade are based on CSL; including work on permissions; refinement and atomicity; on adaptations to assembly languages and weak memory models; on higher-order variants; and on the logics for termination of concurrent programs. In the practical realm, the beauty of CSL is in its similarity to the programming idioms commonly used by working engineers. The fact that the logic matches the common programming idioms has the effect of greatly simplifying proofs. CSL’s simplicity and structure also facilitates automation. As a result, numerous tools and techniques in the research community are based on it, and it is attracting attention in companies such as Facebook, Microsoft and Amazon.
Stephen Brookes is Professor of Computer Science at Carnegie Mellon University. A long-term aim of his research, culminating in his foundational work on Concurrent Separation Logic, has been to facilitate the design and analysis of correct concurrent programs. He has recently begun work on semantic models for weak memory concurrency. His work on Concurrent Separation Logic was partially funded by the National Science Foundation (NSF). He obtained his BA degree in Mathematics and his PhD in Computer Science, both from Oxford University.
Peter W. O’Hearn is an Engineering Manager at Facebook and a Professor of Computer Science at University College London. He cofounded a verification startup, Monoidics, which was acquired by Facebook in 2013. O’Hearn has also held academic positions at Queen Mary University of London and at Syracuse University. He is a past recipient of a Royal Society Wolfson Research Merit Award and a Most Influential POPL Paper award, and held a Royal Academy of Engineering/Microsoft Research Chair. He obtained his BS in Computer Science from Dalhousie University, Nova Scotia, and his MS and PhD Degrees in Computer Science from Queen’s University, Kingston, Canada.
The Gödel Prize is named in honour of Kurt Gödel, who was born in Austria-Hungary (now the Czech Republic) in 1906. Gödel's work has had immense impact upon scientific and philosophical thinking in the 20th century. The award is presented annually by ACM’s Special Interest Group on Algorithms and Computation Theory (SIGACT) (http://sigact.acm.org) and the European Association for Theoretical Computer Science (EATCS) (http://eatcs.org/). It recognizes major contributions to mathematical logic and the foundations of computer science and includes an award of $5,000.

Friday, April 29, 2016

Best paper awards at ICALP 2016


The PCs for the three tracks of ICALP 2016 have selected the articles that will receive the best paper and best student paper awards at the conference.

The best paper awards will go to the following papers:
The following papers will receive the best student paper awards:
Congratulations to the authors of the award-receiving papers! 

Monday, April 18, 2016

Accepted papers for ICALP 2016

The list of accepted papers for ICALP 2016 is out. The list of papers looks truly excellent to me and the conference programme will, as usual, give a broad snapshot of current research in TCS. I like to think that there will be something interesting for every TCS research in each track of the conference.

Thanks to the PCs for the three tracks for their sterling work and to Michael Mitzenmacher, Yuval Rabani and Davide Sangiorgi for their leadership as PC chairs.

I hope to see many of you in Rome for the conference. 




Wednesday, April 13, 2016

Yuval Rabani, the PC chair for the Track A of ICALP 2016, has written  the first of a short series of posts on tumblr on the work of the PC for Track A. Further posts will follow on his blog, which is devoted solely to ICALP 2016. 

Quoting from Yuval's post: 
I’d like to encourage all theoreticians to attend ICALP 2016 in Rome. Rome has art. Rome has history. Rome has art history. Rome has fashion. Rome has design. Rome has espresso, Rome has gelato. Rome has tomatoes. Rome has porcini mushrooms. Rome even has jazz clubs (not to mention opera). Best of all, the program committee worked very hard to produce an excuse to charge your grants for the trip!
Many thanks to Yuval and his PC for their splendid work!

Let me close by adding that Roma also has Casa del Jazz :-)

Addendum: Yuval's second post is available here.

Thursday, March 24, 2016

Mark Braverman (Princeton University) receives the EATCS Presburger Award 2016

The European Association for Theoretical Computer Science (EATCS) has awarded the 2016 Presburger Award to Mark Braverman (Princeton University, USA). Congratulations to Mark!

Mark Braverman has achieved fundamental results in complexity theory, the theory of computation over the reals, approximation algorithms, computational learning theory, information theory, algorithmic economics, pseudorandomness and communication complexity. In 2009, using a surprisingly simple argument from harmonic analysis, he completely settled the Linial-Nisan conjecture that any k-wise independent distribution will look completely random to a bounded depth boolean circuit. He and his collaborators cast new light on the computability and computational complexity of Julia sets and disproved a long-standing conjecture of Krivine on the value of Grothendieck’s constant. Through his many seminal results, he has become a leader in extending information theory to an interactive setting, developing the theory of information complexity, a thriving subfield at the boundary of theoretical computer science and electrical engineering. On this topic, he is currently co-organizing a semester on the Nexus of Information and Computation Theories at the Institut Henri Poincaré in Paris, January-April 2016. For more information see here.

The  Presburger Award is given to a young scientist (in exceptional cases to several young scientists)  for outstanding contributions in theoretical computer science, documented by a published paper or a series of published papers. The list of the previous recipients of the Presburger Award is available at

http://eatcs.org/index.php/presburger

The Presburger Award carries a prize money of 1000 Euros  and will be delivered at ICALP 2016, which will take place in Rome (Italy) from the 12th till the 15th of July 2016.

The 2016 Presburger Award Committee consisted of Zoltan Esik (University of Szeged, Hungary), Marta Kwiatkowska (University of Oxford, UK) and  Claire Mathieu (ENS Paris, France; chair).

Friday, March 11, 2016

Looking for input on promoting PhD education and research in TCS

As current president of the EATCS, I am very interested in hearing the opinion of PhD students and young researchers in TCS on what an association like the EATCS could do to promote PhD education and research in the field, and to entice young scientists to carry out research in TCS. (Of course, the opinion of every TCS researcher is welcome!) For instance, should we increase the offer of our EATCS Young Researcher Schools?

Please post your suggestions as comments to this post. I'll collect all your suggestions and discuss them with the Council of the EATCS.

Thanks in advance for your input! The EATCS is here to serve the whole of the TCS community and we will consider all your opinions carefully.

Tuesday, March 08, 2016

We are hiring at long last!

Al long last, we have advertised several faculty positions in the School of Computer Science at Reykjavik University! The call is available here, but I also copy-paste it below  for ease of reference. (If following that link shows a page that is encrypted in Icelandic, change to English using the flag at the top corner on the right-hand side.) (I fixed the URL so that it always redirects to the English page.)

Note that strong applicants in TCS are encouraged to apply, even though the call mentions other areas explicitly. One position is earmarked for Software Engineering, which does not rule out some TCS-related research.

Information about research and faculty in our school is here.

-----------------------

The School of Computer Science at Reykjavik University invites applications for several full-time faculty positions.

We are looking for energetic, highly qualified academics who, apart from developing their own research programs, will strengthen some of the existing research areas within the School, or build bridges between them or with industry. Of particular interest are candidates in the areas of software engineering, data analytics, computer security and systems, broadly construed, but exceptionally qualified candidates from all areas of computer science are encouraged to apply.

Candidates are expected to have a proven international research record and will be expected to play a full part in the teaching and administrative activities of the School. The applicants are expected to teach courses at both graduate and undergraduate level. It is preferred that applicants have a demonstrated history of excellence in teaching at the graduate and undergraduate levels. A PhD in computer science or closely related field is required.

Salary and rank are commensurate with experience. The positions are open until filled, with the earliest available starting date in August 2016, but later starting dates can be negotiated.

The review of the applications will begin on March 15th and continue until the positions are filled. Application letters should be submitted through the University's online application submission system here below.
  • a cover letter
  • a CV with a list of publications,
  • a research statement,
  • copies of three to five major publications,
  • a teaching statement,
  • supporting material regarding excellence in teaching, and
  • any other relevant information the applicant wishes to supply.

Please arrange to have at least three letters of recommendation sent directly to mannaudur@ru.is (subject "Faculty Positions in CS") with a cc to the Dean of the School of Computer Science, DrProf. Yngvi Björnsson (yngvi@ru.is). Informal communication and discussions on any aspect related to the positions are encouraged, and interested candidates are welcome to contact the chairman of the search committee, DrProf. Magnús Már Halldórsson (mmh@ru.is), for further information.

The School of Computer Science at Reykjavik University has about 800 students and 18 permanent faculty members. The school offers undergraduate and graduate programs in computer science and software engineering, as well as a combined-degree undergraduate program in discrete mathematics and computer science. The doctoral program within the School received its ministerial accreditation in 2009. Quoting from the accreditation report on PhD studies from 2009 (http://www.ru.is/media/td/SCS_accreditation.pdf):
The School of Computer Science is "the strongest in Iceland" (p. 6) and its research is "on a similar level to that of cutting-edge institutions worldwide" (p. 15).

For further information about the School of Computer Science at Reykjavik University and its activities, see en.ru.is/scs/.

Monday, February 22, 2016

February 2016 issue of the Bulletin of the EATCS

I am happy to inform you that the 118th issue of the EATCS Bulletin is now available online at http://bulletin.eatcs.org/index.php/beatcs/issue/view/20, featuring, amongst others:

- "Computational Aspects of Packing Problems", by Helmut Alt
- "Catalytic computation", by Michal Koucký
- "Fault-Tolerant Logical Network Structures", by Merav Parter
- "Bringing Informatics Concepts to Children Through Solving Short Tasks", by Valentina Dagiene
- "Viewpoints on “Logic activities in Europe”, twenty years later", by Luca Aceto, Thomas A. Henzinger, Joost-Pieter Katoen, Wolfgang Thomas, Moshe Y. Vardi.

You can download a pdf with the printed version of the bulletin from http://www.eatcs.org/images/bulletin/beatcs118.pdf
 
Many thanks to the column editors, the authors of the contributions, Kazuo Iwama, the editor in chief of the BEATCS, and Efi Chita at the EATCS Secretary Office for the enormous work they have put into producing this issue of the Bulletin. 

As usual, thanks to the support of the EATCS members, the Bulletin is freely accessible to everyone. Enjoy it!

Wednesday, February 17, 2016

EATCS Fellows class of 2016 named


The EATCS has recognized five of its members for their outstanding contributions to theoretical computer science by naming them as recipients of an EATCS fellowship. The EATCS Fellows for 2016 are:
  • Zoltán Ésik (University of Szeged, Hungary; http://www.inf.u-szeged.hu/~ze/) for "contributions to the fields of automata and formal languages, iteration theories, algebra and logic in computer science, and in particular to their connections. He has been able to apply deep theorems of some area to problems of other fields, yielding particularly short, beautiful and mathematically concise proofs."
  • David Harel (Weizmann Institute of Science, Israel; http://www.wisdom.weizmann.ac.il/~harel/) for "fundamental contributions to program verification, database theory, and software engineering, as well as for exceptional merits as a writer and teacher. The Statecharts model has had profound impact on software and systems engineering."
  • Giuseppe F. Italiano (University of Rome Tor Vergata, Italy; http://www.disp.uniroma2.it/users/italiano/) for "fundamental contributions to the design and analysis of algorithms for solving theoretical and applied problems in graphs and massive data sets, and for his role in establishing the field of algorithm engineering."
  • Kurt Mehlhorn (Max-Planck-Institut für Informatik, Germany; https://people.mpi-inf.mpg.de/~mehlhorn/) for "his influential contribution to the whole field of algorithmics over the past decades. In addition to key theoretical contributions, he has brought basic research closer to practice."
  • Scott A. Smolka (Stony Brook University, USA; http://www3.cs.stonybrook.edu/~sas/) for "fundamental contributions to process algebra, model checking, probabilistic processes, runtime verification, and more recently for the successful application of most of these theories to cardiac-cell modelling and analysis."
The aforementioned members of the EATCS were selected by the EATCS Fellow Selection Committee, after examining the nominations received from our research community. The EATCS Fellow Selection Committee for 2016 consisted of
  • Rocco De Nicola (IMT Lucca, Italy; chair),
  • Paul Goldberg (Oxford, UK),
  • Anca Muscholl (Bordeaux, France),
  • Dorothea Wagner (Karlsruhe, Germany) and
  • Roger Wattenhofer (ETH Zurich, CH).
The EATCS Fellows Program was established by the association  in 2014 to recognize outstanding EATCS members for their scientific achievements in the field of Theoretical Computer Science.

The EATCS is very proud to have the above-mentioned members of the association among its fellows.

The list of EATCS Fellows is available at  http://www.eatcs.org/index.php/eatcs-fellows.

Tuesday, February 16, 2016

"Save Italian Research": A petition started by Giorgio Parisi

Giorgio Parisi, an eminent Italian physicist, has started a petition to put pressure on the Italian government to support Italian research adequately. Together with 68 colleagues, he has also written a letter published in Nature, which I copy-paste below from the site of the petition.

Readers of this blog might consider signing the petition.

Addendum: In a comment on this post, Giorgio Parisi invites everyone to sign the petition at https://www.change.org/p/salviamo-la-ricerca-italiana. Please do. Researchers working at Italian universities and research centres could do with your support. 

Letter to Nature by Parisi et al.

We call for the European Union to push governments into keeping their research funding above subsistence level. This will ensure that scientists from across Europe can compete for Horizon 2020 research funding, not just those from the United Kingdom, Germany and Scandinavia. Europe's research money is divided between the European Commission and national governments. The commission funds large, transnational collaborative networks in mostly applied areas of research, and the governments support small-scale, bottom-up science and their own strategic research programmes.

Some member states are not keeping their part of the bargain. Italy, for example, seriously neglects its research base. The Italian National Research Council has not overseen basic research for decades, being itself starved of resources. University funding has dwindled to a bare minimum. The ministerial initiative known as PRIN (Research Projects of National Interest) has been defunct since 2012, apart from a few limited programmes for young researchers.

This year's PRIN allocation of a 92-million (US$100-million) funding call to cover all research areas is too little, too late. Compare this with the annual French National Research Agency’s allocation of up to 1 billion, or with Italy's 900-million annual contribution to the EU Seventh Framework Programme that ran in 2007–13. That resulted in a net annual loss of 300 million for Italian science.

To prevent distorted development in research among EU countries, national policies must be coherent and guarantee a balanced use of resources.

Friday, February 05, 2016

Would your department refuse to host the recipient of a very competitive post-doctoral award?

Suppose that your department were given the chance to host the recipient of a very competitive post-doctoral award. That award would pay 95% of the salary of the post-doctoral researcher, who also leads a project funded in 2016 (worth 185,373.66€) and one funded in 2015 (worth 222,568.50€). I am fairly confident that your department would welcome that award- and grant-winning post-doctoral researcher with open arms.

This is not what has happened to Vincenzo Dimonte, an Italian set theorist who is presently a post-doctoral researcher at the Kurt Gödel Research Center for Mathematical Logic in Vienna. Dimonte was one of the three recipients in the field of mathematics  of a prestigious and competitive Rita Levi Montalcini award for 2016. In his application for the award, Vincenzo Dimonte gave a ranked list of five three mathematics department in Italy that were willing to host him, the top one being the Department of Mathematics at the Politecnico di Torino. I presume that he even enclosed a letter from someone at that department saying that they were willing to host him. The choice of Turin as top location in his list was natural since Turin hosts a group of top-class set theorists Andretta, Viale, Motto Ros and Camerlo (who is actually at the Politecnico).

However, when Vincenzo Dimonte won the grant, the department twice refused to host him! Of course, he'll go down his own list and I trust that one of the four other destinations he chose will actually welcome him. The fact remains that such decisions are hard to understand when viewed from a purely scientific perspective and may have a negative impact on the future career of someone who has been deemed to be worthy of a top award for young researchers in Italy.

Wednesday, February 03, 2016

Comments of the European research environment in logic and computation (contribution by Joost-Pieter Katoen and Wolfgang Thomas)

This is the last piece I received in response to my call for opinions on the report on logic activities in Europe that Yuri Gurevich wrote in 1992.

Joost-Pieter Katoen and Wolfgang Thomas discuss the sections of Yuri's report devoted to the European research environment (funding, research centres and other issues) related to logic in computation. You can read their contribution here. Thanks to Joost-Pieter and Wolfgang  for taking the time to write this piece and for allowing me to share it on this blog. Enjoy it!

Monday, February 01, 2016

Rūsiņš Mārtiņš Freivalds (1942-2016)

Andris Ambainis has kindly allowed me to post on this blog the obituary of Rūsiņš Freivalds he wrote for the February issue of the Bulletin of the EATCS. It is a fitting tribute to the importance of Rūsiņš's  lifetime work for TCS in general and for Latvian CS. 

Rūsiņš Mārtiņš Freivalds (1942-2016)


Rusins Freivalds, one of European pioneers of theoretical computer science, passed away on January 4, 2016 at the age of 73.
Freivalds was born on November 10, 1942 in Cesvaine, Latvia. He studied at the University of Latvia and, during his studies, he had an opportunity to spend two years in Novosibirsk, one of leading theoretical computer science research groups in the Soviet Union. There, he started working with Boris Trachtenbrot, one of leading Soviet computer scientists, who supervised his Ph.D. dissertation (defended in 1971 at Novosibirsk State University).
Freivalds is best known for his probabilistic algorithm for testing matrix multiplication, invented in 1977 (https://en.wikipedia.org/wiki/Freivalds'_algorithm). Freivalds' discovery was that, given the result of matrix multiplication, one could check its correctness substantially faster than the time for multiplying the matrices with the best algorithm that is known. Freivalds' algorithm was also one of the first probabilistic algorithms which were faster than deterministic algorithms.
Freivalds' algorithm became an inspiration for other researchers who started studying probabilistic algorithms. In particular, Turing Award winner Manuel Blum mentioned it as an important inspiration in his 1995 Turing Award lecture. Now, Freivalds' algorithm is a part of textbooks on probabilistic algorithms and is taught in many universities.
More generally, Freivalds was one of the first to study probabilistic algorithms and to compare the power of algorithms that use random coin flips with algorithms that do not use randomness. His focus was on finding situations in which one could prove that randomness increases the computational power. For example, Freivalds showed that there is a language that can be recognized by a probabilistic 2-way finite automaton but not by a deterministic 2-way finite automaton. He also showed similar results for 1-way automata with multiple heads, pushdown automata and other computational models. Freivalds’ research in this direction in 1970s and 1980s was among the first results of this type.
Freivalds was interested in many research topics and published over 200 research papers. Another major research interest of Freivalds was inductive inference - a mathematical theory which models the process of learning on an abstract level, using computability theory.
Starting from late 1990s, Freivalds worked on quantum computing and quantum automata. Together with Andris Ambains, he showed that quantum automata can use exponentially less space than probabilistic automata. Most recently, he invented ultrametric automata, a model of automata with p-adic transition probabilities, winning a Best Paper Award at Turing-100 conference in Manchester.
Freivalds supervised 19 Ph.D. dissertations and a number of M.Sc. and B.Sc. theses, including Andris Ambainis (known as a leading quantum computing expert) and Daina Taimina (known for her crocheted models of hyperbolic planes). He was very active in introducing undergraduate students to theoretical computer science and bringing them to research conferences, teaching them to enjoy both research and cultural events (for example, opera or popular science museums).
A number of those undergraduates went on to do their Ph.D., either with him, or other faculty members at the University of Latvia or different universities abroad (including Berkeley, Yale, University of Maryland and University of Waterloo).
Freivalds was an excellent teacher and popularizer of theoretical computer science in Latvia. He was an engaging lecturer who was keen on showing connections between different subfields of mathematics and theoretical computer science. In 2006, University of Latvia students voted him to be the "Teacher of the Year" for all of the natural sciences. Through his teaching and student supervision, he left a major influence on theoretical computer science in Latvia.
Freivalds was highly recognized both in Latvia and internationally. In 2003, he received the Grand Medal of the Latvian Academy of Science (the highest Latvian award for lifetime achievement in research). Freivalds was a member of Academia Europeae and gave a number of invited talks at highly recognized international conferences (such as ICALP - International Colloqium on Automata, Languages and Programming and MFCS - Mathematical Foundations of Computer Science).


Viewpoints on “Logic activities in Europe”, twenty years later

This is the third post related to the viewpoints I commissioned on the report on logic activities in Europe that Yuri Gurevich wrote in 1992.

In case you are interested, you can read my viewpoint contribution (pdf file) that will serve as a preface to the pieces by Thomas Henzinger, Joost-Pieter Katoen and Wolfgang Thomas, and Moshe Vardi. All the contributions will appear in the February 2016 issue of the Bulletin of the EATCS.

Friday, January 29, 2016

EATCS Award 2016 to Dexter Kozen (Cornell University, USA)

The EATCS bestows the EATCS Award 2016 to Dexter Kozen (Cornell University, USA) for fundamental contributions across the whole spectrum of theoretical computer science

The EATCS is proud to announce that the EATCS Award Committee consisting of Fedor Fomin, Kim G. Larsen (chair) and Jean-Eric Pin has selected Dexter Kozen (Cornell University, USA; http://www.cs.cornell.edu/~kozen/ as the recipient of the EATCS Award 2016.

Dexter Kozen is a theoretical computer scientist, perhaps the  theoretical computer scientist, who has excelled across the entire spectrum of our field and crashed through the so-called Volume A/Volume B barrier. Even within these tracks he has exhibited remarkable diversity and depth. This makes him an exceptional candidate for the EATCS Award and he continues the lineage of stellar scientists who have received the EATCS Career Award so far.

Dexter Kozen is known for his many contributions to theoretical computer science. These include, among many others, the most succinct and beautiful proof imaginable of completeness for PDL, a stunning treatment of the far more challenging mu-calculus and the elegant treatment of logics of programs in the setting of Kleene algebra. He has also made fundamental contributions to complexity theory. In fact, one of the first contributions of Dexter Kozen to the scientific community was the definition of the notion of alternating Turing machine, a deep contribution to complexity theory that made it possible to connect time and space complexity. The results were viewed as so significant that they almost immediately became part of the graduate curriculum in complexity theory. Dexter’s work on alternation appeared initially in his singly-authored FOCS’76 paper, independent of the Chandra-Stockmeyer paper that was published back-to-back with it in the same volume; the two later became the famous combined, very high-cited, triply-authored J.ACM version for which the authors won an IBM Outstanding Innovation Award in 1980.

Dexter Kozen’s work on modal logic and Kleene algebra has undoubtedly had a major impact in the area of programming logics and gathered a huge number of citations as it opened up this field.

Besides complexity theory and modal logic, Dexter Kozen also produced major results on algebra, such as the complexity of the theory of real closed algebraic theories, and on computer algebra, such as the Kozen-Landau theorem.

Dexter Kozen has also been a pioneer in probabilistic semantics. Long before it became fashionable, he worked on a measure-theoretic semantics  for probabilistic programs which remains the inspiration for the intense activity in topics like probabilistic programming languages, probabilistic process algebra and logics.

Dexter Kozen has had many collaborations. His connections to Amsterdam, Aarhus and Warsaw are probably the most well-known. He has spent several one year sabbaticals in Europe with successful collaborations. He is an inspiring person  and his presence in a department is of immeasurable value for young researchers. It is worth mentioning that Dexter Kozen’s support for the contacts with Eastern European colleagues has been admirable, at a time when this was rather difficult and complex to achieve.

David Harel's two-page  laudation that appears in the volume for Dexter's 60th birthday (available at http://www.wisdom.weizmann.ac.il/~harel/papers/Kozen.pdf) provides a wonderful introduction to Dexter Kozen as a scientist and as a colleague.

The  EATCS Award is given to acknowledge extensive and widely recognized contributions to theoretical computer science over a life-long scientific career. The list of the previous recipients of the EATCS Award is available at

http://eatcs.org/index.php/eatcs-award.

The EATCS Award carries a prize money of 1000 Euros and will be presented at ICALP 2016, which will take place in Rome (Italy) from the 12th till the 15th of July 2016.

Wednesday, January 27, 2016

Report on Dagstuhl Seminar 15511 on the Graph Isomorphism Problem (contribution by Anuj Dawar)

Anuj Dawar has kindly allowed me to post here his report on Dagstuhl Seminar 15511 on the Graph Isomorphism Problem, which will appear in the February 2016 issue of the Bulletin of the EATCS. IMHO, it is a real gem and conveys the excitement of the event wonderfully well. Enjoy it!

The February 2016 issue of the BEATCS will be brimming with interesting and though-provoking content, and will be open access as usual. I hope that you'll make a point of reading it, when it is published. Watch this space for further news on the issue.

Friday, January 22, 2016

Computer Science in Europe (contribution by Thomas A. Henzinger)

This is the second viewpoint piece I received in response to my call for opinions on the report on logic activities in Europe that Yuri Gurevich wrote in 1992. Thanks to Tom for taking the time to write this piece and for allowing me to share it on this blog. Enjoy it! 

Computer Science in Europe



It saddens me but it would be difficult to refute a claim that, in the past two decades, Europe has been falling further behind the United States in the dynamism of the information technology industry, the popularity of the computer science major, and the impact of frontier research in computing. The vast majority of Turing awards still goes to researchers who work in the United States. It is particularly disconcerting that the main strengths of European computer science appear largely unchanged from 1994: on the academic side, Europe's research leaders are still concentrated disproportionately in formal methods, and on the industrial side, Europe's technology leaders are still found primarily in the "old" economy, exemplified by the automotive industry.

To close the gap, Europe desperately needs new organizational structures in academia, a greater entrepreneurial spirit of society, an improved image for computer science as a career choice, especially among women, the mandatory acquisition of computational thinking and coding skills in secondary education, and more emphasis on principles of systems building which are critical to industry in university curricula of computer science. Israel offers a role model for closing the gap with the United States with regard to the first three points ---academic structures, entrepreneurial culture, and the public image of computer science--- and has been a leader in computer science education.

There are a few encouraging signs of European computer science changing. The European systems community has begun to organize itself through efforts such as the Eurosys conference and some countries are trying to remedy their deficiencies in systems research. Germany, for example, founded the Max Planck Institute for SoftwareSystems. Several European countries and institutions have started to copy key aspects of the American career model, such as tenure tracks that give faculty early independence and doctoral programs that give students a broad graduate education. Student mobility and structured doctoral education are strongly supported by the Marie Curie program of the European Union and by the funding agencies of some countries, to counteract the wide-spread habit of researchers advancing in the same lab from undergraduate to faculty level.

There have been some remarkable institutional changes. EPFL has demonstrated that changes in the organization and recruiting can lead to dramatic improvements in the scientific reputation and attractiveness of an institution. Even entirely new institutions have been founded, such as IST Austria, which naturally find it easier to implement new structures such as a tenure track and an institutional doctoral school.

The most significant development can be found, perhaps surprisingly, on the European level. I am referring to the creation of the EuropeanResearch Council, which supports frontier research based purely on scientific criteria. This program has no counterpart in the United States, but if it manages to remain scientifically independent and well-funded, I am confident that its impact will change the game. These are big if's, of course, and the ERC is constantly being threatened by national interests and sectorial lobbies that favor traditional programs which distribute the available funds to more different countries, sectors, and groups. Given that politicians love to pride themselves with the founding of "strategic" consortia, centers, and flagships, and industry likes to get every possible cut of public money, the initial success of the ERC has been all the more remarkable. Let's work together so that it will trump the less effective funding formats and lift the strength of computer science in Europe.

Monday, January 18, 2016

On the Two Sides of the Atlantic in Logic and Computation (contribution by Moshe Y. Vardi)

Prompted by a reference to it in a recent CACM editorial by Moshe Vardi, I belatedly read the very interesting piece on logic activities in Europe that Yuri Gurevich wrote in 1992. I was struck by the idea that it might be interesting to ask some selected colleagues to contribute (short) opinion pieces to the Bulletin of the EATCS reflecting on the points raised by Yuri in that article twenty years later. 
In order to whet your appetite, I post below Moshe's contribution. Thanks to Moshe for taking the time to write this piece and for allowing me to share it on this blog. Enjoy it! 


On the Two Sides of the Atlantic in Logic and Computation
Rice University

In his 1977 EWD Note 611, “On the fact that the Atlantic Ocean has twosides,” Edsger Dijkstra noted the different attitudes towards computing research in Northern America and Western Europe. Yuri Gurevich noted the same phenomenon in his 1992 report, "Logic Activities inEurope." In a 2015 Communications of the ACM editorial I revisited this issue and asked “Why Doesn't ACM Have a SIG for Theoretical ComputerScience?"
The key issue raised in that editorial was the split between Volume-A-type and Volume-B-type research in Theoretical Computer Science (TCS), referring to the 1990 Handbook of Theoretical Computer Science, with Jan van Leeuwen as editor. The handbook consisted of Volume A, focusing on algorithms and complexity, and Volume B, focusing on formal models and semantics. In other words, Volume A is the theory of algorithms, while Volume B is the theory of systems (hardware and software). North American TCS tends to be quite heavily focused on Volume A, while European TCS tends to encompass both Volume A and Volume B. The ACM Special Interest Group on Algorithms and Computation Theory (SIGACT) is, de facto, a special-interest group for Volume-A TCS.
I pointed out in my editorial that this division did not exist prior to the 1980s. In fact, the tables of contents of the proceedings of two North American premier TCS conferences—IEEE Symposium on Foundations of Computer Science (FOCS) and ACM Symposium on Theory of Computing (STOC)---from the 1970s reveal a surprisingly (from today's perspective) high level of Volume-B content. In the 1980s, the level of TCS activities in North America grew beyond the capacity of two annual single-track three-day conferences, which led to the launching of what was known then as "satellite conferences." Shedding the "satellite" topics allowed FOCS and STOC to specialize and develop a narrower focus on TCS. But this narrower focus in turn has influenced what is considered TCS in North America. In contrast, the European Association for Theoretical Computer Science (EATCS), expanded the scope of its flagship conference, the International Colloquium on Automata, Languages, and Programming (ICALP), by reorganizing the conference along several tracks. In 2015, ICALP consisted of three tracks: Track A: Algorithms, Complexity and Games; Track B: Logic, Semantics, Automata and Theory of Programming; and Track C: Foundations of Networked Computation: Models, Algorithms and Information Management. The reorganization along tracks allowed EATCS to broaden its scope, rather than narrow it like SIGACT.
But the reality is that if one zooms into Volume-B research, one finds again the Volume-A/Volume-B dichotomy, also reflected in the range of topics of the Symposium on Logic in Computer Science (LICS), the flagship conference of the ACM Special Interest Group on Logic and Computation (SIGLOG). Sub-volume A of Volume-B research is concerned with connections between logic, algorithms, and computational complexity. Descriptive-Complexity Theory, for example, aims at bridging computational complexity and logic by studying the expressive power needed to describe problems in given complexity classes. A celebrated result in this area is Fagin’s Theorem, which relates NP to Existential Second-Order Logic. Model Checking, as another example, studies the evaluation of logical formalisms, including various temporal logics, over finitely represented structures. Automata theory often provides tools to bridge between logic and algorithms. The Büchi-Elgot-Trakhtenbrot Theorem, for example, provides automata-theoretic tools for solving the satisfiability problem for Monadic Second-Order Logic on finite words.
Sub-volume B of Volume-B research, in contrast, is concerned with semantical and methodological foundations for programming and programming languages. Domain theory, for example, studies special kinds of partially ordered sets called domains. Domain theory is used to specify denotational semantics, especially for functional programming languages. Category theory, as another example, formalizes mathematical structure and its concepts in terms of a collection of objects and of arrows (also called morphisms). Category theory provides powerful modeling idioms and has deep connections to types in programming languages. Concurrency theory studies formalisms for modeling and analyzing concurrent systems. Proof Theory is of major interest in Sub-volume B of Volume B research, and a distinguished result is the Curry–Howard Correspondence, which provides a direct relationship between types in computer programs and formal proofs in certain logics.
The split between Sub-volumes A and B within Volume-B research can perhaps be traced to the standard division of mathematical Logic into several branches: computability theory, model theory, proof Theory, and set Theory. (See the 1989 Handbook of Mathematical Logic, with John Barwise as editor.) While set theory has no clear computer-science counterpart, Sub-volume A of Volume-B research can be traced to computability theory and model theory, while Sub-volume B of Volume-B research can be traced to proof theory. Indeed, a scientific discipline, as it grows and matures, inevitably grows branches, which gradually grow apart from each other. As scientists are forced to go deeper, it becomes gradually impossible for them to keep track of developments in more than a very small number of branches. In fact different branches develop their own specialized languages, impeding communication between branches.
It is often at the interfaces between branches, however, that the most exciting developments occur. Consider Artificial Intelligence, for example. Since the establishment of the field in the late 1950s, logic has played a key role as the fundamental formalism for describing reasoning. Ultimately, however, logical tools were not fully adequate to capture the common-sense reasoning that characterizes human reasoning. In the 21st Century, probabilistic and statistical approaches have become dominant, for example, in machine learning. Synthesizing the logical and probabilistic approaches is a new frontier, where I expect to see many exciting developments in the next few years.
Finally, while 25 years ago computing-research took place mostly in North America and Western Europe, computing research has since globalized. The Atlantic Ocean is no longer as dominant as it used to be. I look forward to the day when we will write about “The Two Sides of the Pacific/Indian Ocean in Logic and Computation.”

Thursday, December 31, 2015

EC comes to Europe

The EC'16 conference will be held in lovely Maastricht, NL next year with Vincent Conitzer as general chair. As far as I can tell, this is the second time that EC comes to Europe in its 17-year history. This is a step that, as president of the EATCS, I warmly welcome.

Submit your best work to EC'16 and you'll have a chance to visit a historical city at the heart of Europe to boot!

Monday, December 28, 2015

Four EATCS Awards with deadline for nominations on the 31st of December 2015

This is to remind you that the deadline for nominations for the following awards is the 31st of December 2015:

    EATCS Award: http://eatcs.org/index.php/eatcs-award
    EATCS Distinguished Dissertation Award: http://www.eatcs.org/index.php/dissertation-award
    EATCS Fellows: http://www.eatcs.org/index.php/eatcs-fellows
    Presburger Award: http://eatcs.org/index.php/presburger

I strongly encourage members of the TCS community to nominate eligible colleagues for these accolades. Writing a good letter of nominations takes a little work, but  this is time well spent as it puts some of the many outstanding members of our community and their research areas in the spotlight, and provides role models for the younger members of the TCS community.

Call for nominations for the 2016 Alonzo Church Award

It's been a long journey, but the Alonzo Church Award is finally off the ground. Here is the call for nominations I just received from the first award committee. You will notice that the deadline for nominating papers for the first award is close: March 1, 2016.  (Of course, the call for nominations will be issued earlier next year.) For the time being, I hope that you will follow Littlewood's zero-infinity law: If you  have a paper (or papers) you'd like to nominate for the award, do it now, where in this case "now" means "by the end of February 2016" :-)

The award committee, whose members I thank on behalf of the EATCS, look forward to receiving your nominations!



The 2016 Alonzo Church Award

for

Outstanding Contributions to Logic and Computation



Call for Nominations

Introduction

An annual award, called the Alonzo Church Award for Outstanding Contributions to Logic and Computation, was established in 2015 by the ACM Special Interest Group for Logic and Computation (SIGLOG), the European Association for Theoretical Computer Science (EATCS), the European Association for Computer Science Logic (EACSL), and the Kurt Gödel Society (KGS). The award is for an outstanding contribution represented by a paper or by a small group of papers published within the past 25 years. This time span allows the lasting impact and depth of the contribution to have been established. The award can be given to an individual, or to a group of individuals who have collaborated on the research. For the rules governing this award, see


Eligibility and Nominations

The contribution must have appeared in a paper or papers published within the past 25 years. Thus, for the 2016 award, the cut-off date is January 1, 1991. When a paper has appeared in a conference and then in a journal, the date of the journal publication will determine the cut-off date. In addition, the contribution must not yet have received recognition via a major award, such as the Turing Award, the Kanellakis Award, or the Gödel Prize. (The nominee(s) may have received such awards for other contributions.) While the contribution can consist of conference or journal papers, journal papers will be given a preference.

Nominations for the 2016 award are now being solicited. The nominating letter must summarize the contribution and make the case that it is fundamental and outstanding. The nominating letter can have multiple co-signers. Self-nominations are excluded. Nominations must include: a proposed citation (up to 25 words); a succinct (100-250 words) description of the contribution; and a detailed statement (not exceeding four pages) to justify the nomination. Nominations may also be accompanied by supporting letters and other evidence of worthiness.

Nominations are due by March 1, 2016, and should be submitted to vardi@cs.rice.edu.

Presentation of the Award

The 2016 award will be presented at LICS, the flagship conference of SIGLOG. The award will be accompanied by an invited lecture by the award winner, or by one of the award winners. The awardee(s) will receive a certificate and a cash prize of USD 2,000. If there are multiple awardees, this amount will be shared.


Award Committee

The 2016 Alonzo Church Award Committee consists of the following four members: Catuscia Palamidessi, Gordon Plotkin, Wolfgang Thomas, and Moshe Vardi (chair).

Monday, December 21, 2015

The 'novelty' of arXiv overlay journals

Last September, Nature published an article on a new publishing initiative by Timothy Gowers. The Nature piece starts thus:
"New journals spring up with overwhelming, almost tiresome, frequency these days. But Discrete Analysis is different. This journal is online only — but it will contain no papers. Rather, it will provide links to mathematics papers hosted on the preprint server arXiv. Researchers will submit their papers directly from arXiv to the journal, which will evaluate them by conventional peer review."
and ends as follows:
"The question, perhaps, is how readily researchers will embrace the model. “Apart from being an arXiv overlay journal, our journal is very conventional, which I think is important so that mathematicians won't feel it is too risky to publish in it,” says Gowers. “But if the model becomes widespread, then I personally would very much like to see more-radical ideas tried out as well” — for example, post-publication review and non-anonymous referees."
Based on the first paragraph of this blog post by Timothy Gowers, it is highly likely that Discrete Analysis will start by publishing some very strong papers. This will probably play an important role in enticing mathematicians to publish some of their best work in it and in giving the new journal a good impact factor within a reasonable amount of time.

However, as mentioned in the Nature piece and as Gowers himself pointed out in his blog post announcing Discrete Analysis, arXiv overlay journals are not new. In TCS, Logical Methods in Computer Science published its first issue ten years ago and has become one of the favourite publication outlets for researchers working on logic in computer science, broadly construed. Logical Methods in Computer Science is an open-access journal, covered by Thompson ISI , SCOPUS, DBLP, Mathematical Reviews and Zentralblatt. (Impact factor: 0.443.) All journal content is licensed under a Creative Commons license.

Moreover, the 'arXiv overlay principle' is also used by Electronic Proceedings in Theoretical Computer Science (EPTCS), an international refereed open access venue for the rapid electronic publication of the proceedings of workshops and conferences, and of Festschriften, etc, in the general area of theoretical computer science, broadly construed. This proceedings series, which was initiated in 2008-2009 by the sterling effort of Rob van Glabbeek, has published 200 volumes at the time of writing this blog post. (Congrats to EPTCS for reaching the milestone of 200 volumes!)

Just like Discrete Analysis will do, Logical Methods in Computer Science (and EPTCS for workshops and conferences) only publishes papers that have undergone classic peer review and have been vetted for publication by the cognizant editor. For what it is worth, I therefore fail to see why Logical Methods in Computer Science and Discrete Analysis, once it starts publishing papers, are not doing journal publishing, as hinted in this excerpt from a post from the scholarly kitchen:
"My view is that while this is a fascinating way to draw out from arXiv links to good preprints in relevant fields, this is not journal publishing. In Gower’s blog he moves on from talking about the idea of the overlay journal to a more polemical discussion of how his venture is in essence the future of the journal, reducing costs and supplying quality content in a way that may be used in the same way journal articles are used now. While Gowers has every right to his views on this, I would argue that, while his is certainly an exciting way to make use of preprints in arXiv, what it does is quite distinct from a journal. As discussed above, the journal is a matter of record, and like it or not, journals form a part of the academic and recognition workflow that allows for career progress, grant making, more research and more articles to be published."
Logical Methods in Computer Science is "a matter of record", and publishing in it does carry weight in hiring and promotion decisions. Prime conferences in the field, such as LICS, have used it for their special issues.

Whether a journal publishes its contents as overlay of the arXiv or by some other means, IMHO it is the process that went into selecting the papers and the scientific quality of what is published that matter.

Tuesday, December 08, 2015

EATCS Awards 2016: Deadline approaching!

This is to remind you that the deadline for nominations for the following EATCS awards is the 31st of December 2015:

EATCS Award: http://eatcs.org/index.php/eatcs-award
EATCS Distinguished Dissertation Award: http://www.eatcs.org/index.php/dissertation-award
EATCS Fellows: http://www.eatcs.org/index.php/eatcs-fellows
Presburger Award: http://eatcs.org/index.php/presburger

I strongly encourage members of the TCS community to nominate eligible colleagues for these accolades. Writing a good letter of nominations takes a little work, but this is time well spent as it puts some of the many outstanding members of our community and their research areas in the spotlight, and provides role models for the younger members of the TCS community.

The deadline for nominations for the Gödel Prize (http://eatcs.org/index.php/goedel-prize) is January 31, 2016.

The award committees for the above-mentioned prizes and honours look forward to receiving your nominations!

Tuesday, December 01, 2015

Logarithms in the cultural pages of an Italian newspaper

Last Saturday, the cultural pages of a major Italian newspaper featured an article with the title "Arte digitale - la creatività salvata da social e logaritmi" ("Digital art - creativity saved by social networks and logarithms", sic) . The article ends with the following war cry: un "logaritmo vi seppellirà" oppure un "logaritmo vi salverà! " (a logarithm will bury you or a logarithm will save you!).

Well, after all, "logarithm" is an anagram of "algorithm" :-)