University of Leicester

informatics

Concrete topics for PhD research

Roy Crole

Programming language semantics research makes use of techniques from mathematical logic, category theory and type theory to develop the foundations of programming languages with a long term goal of producing new and better programming languages and environments. I am interested in axiomatic, operational, categorical and denotational semantics. One creates mathematical models and methods which inform language design and assist with the development of logical systems for specifying and reasoning about program properties. More specifically this research

  • aims to increase our general understanding of the theory and fundamentals of programming and computation;
  • aims to underpin and clarify our understanding of existing programming languages and systems, and can be used as a basis for analysis, specification, verification, and testing; and
  • can lead to the development of fundamentally new languages and systems.

  1. Mathematical Models of Variable Binding: In the last decade we have advanced our understanding of the formal notion of variable binding considerably. Presheaf categories have been shown to provide models of standard languages with variable binding, such as (variants of) the lambda calculus, as initial algebras. This is a considerable advancement over older models in which expressions with binders could only be realised as alpha-equivalence classes of elements of initial algebras. The important gain here is the initial algebra gives rise to a clear principle of structural induction. My own work has developed particular kinds of presheaf category models, and a PhD thesis could be based upon the further development of these models and the associated reasoning principles.
  2. Computer Systems for Reasoning About Binding: The Hybrid system was developed in Isabelle HOL. It is a metalogic which can be used to reason about languages with binding. One translates the object language into Hybrid, and then uses Hybrid's reasoning principles (such as induction and coinduction) to prove properties of the language. There are a variety of research avenues to explore, ranging from applications of Hybrid which could involve the testing of Hybrid and its comparison with other systems of reasoning with binders, to the further development of the Hybrid system itself.

Roy Crole's homepage and contact details

Fer-Jan de Vries

Rewriting and Lambda Calculus We are interested to extend the theory of rewriting with infinite reductions and infinite terms. This leads to new insights when one tries to generalise results and concepts of finite rewriting to the infinite setting. Waiting to be explored are questions like:

  1. Models for infinitary lambda calculus: the study of infinite lambda calculus has revealed an abundance of different syntactic models. Is it possible to construct models that induce the same equality relations as these syntactic models with other means, for instance via domain equations? The converse question is of interest too: given a known semantics of the lambda calculus, what is the corresponding infinite lambda calculus whose term model induces the same equality relation?

  2. Infinite lambda calculi without renaming: traditional finite lambda calculi follow a variable convention. Various solutions have been proposed to circumvent this problem: for instance De Bruijn indices or the Adbmal calculus of Hendriks and van Oostrom. Do these solutions generalise?

  3. Decreasing diagrams is a powerful technique to prove confluence in finite rewriting. Can it be generalised to prove confluence in the infinite setting?

Fer-Jan de Vries's homepage and contact details

Thomas Erlebach

Algorithmic Aspects of Comunication Networks. Numerous challenging optimization problems arise in the design and operation of communication networks such as optical networks, cellular wireless networks, mobile wireless ad-hoc networks, and GRID computing. Examples of such problems include network design, resource provisioning, resource allocation, scheduling, virtual backbone construction, and call admission control. Students working on such topics typically identify suitable models and problem formulations, design and analyze algorithms (approximation algorithms, on-line algorithms, distributed algorithms, algorithmic game theory), and implement simulations of algorithms for the purpose of experimental evaluation and comparisons. The focus can be more on the theoretical analysis (proofs of worst-case performance guarantees, competitive analysis) or on the experimental and algorithm engineering side, but typically the research includes aspects of both.

This is a broad topic that can accommodate a number of specific PhD research projects. Note, however, that I already have a number of PhD students and, for the moment, will accept additional students only if they are exceptionally well qualified.

List of skills required:

  • Ability to understand the design and analysis of algorithms.
  • Ability to understand and apply basic concepts of discrete mathematics (graphs, combinatorics, proofs).
  • Ability to write about algorithms and proofs in a precise and rigorous way.
  • Creativity in prolem-solving.
  • Ability to write programs in a suitable programming language such as Java or C++ (only if the PhD project includes a simulation or implementation component).

List of relevant optional modules that can be attended at University of Leicester:

  • CO7200 Algorithms for Bioinformatics
  • CO7212 Game Theory in Computer Science
  • CO7213 Networking and Distributed Computing

Some suggested reading:

  • Introduction to Online Algorithms:
    Susanne Albers: Competitive Online Algorithms. BRICS Lecture Series, LS-96-2, 1996. Available at: http://www.brics.dk/LS/96/2/
  • Survey of Approximation Algorithms for Disjoint Paths Problems:
    Thomas Erlebach: Approximation Algorithms for Edge-Disjoint Paths and Unsplittable Flow. In E. Bampis et al. (Eds.): Efficient Approximation and Online Algorithms, LNCS 3484, Springer, 2006, pp. 97-134. Available at: http://www.cs.le.ac.uk/people/te17/papers/edpsurvey.pdf
  • Survey of Algorithmic Models of Ad-hoc/Sensor Networks:
    S. Schmid and R. Wattenhofer: Algorithmic Models for Sensor Networks. In Proceedings of the 14th International Workshop on Parallel and Distributed Real-Time Systems (WPDRTS), April 2006. Available at: http://www.dcg.ethz.ch/members/pascal/refs/wpdrts06cam.pdf
  • Example of an algorithmic result for virtual backbone construction in ad-hoc networks:
    Christoph Ambuehl, Thomas Erlebach, Matus Mihalak, Marc Nunkesser: Constant-factor approximation for minimum-weight (connected) dominating sets in unit disk graphs. In Proceedings of the 9th International Workshop on Approximation Algorithms for Combinatorial Optimization Problems (APPROX 2006), LNCS 4110, Springer, 2006, pp. 3-14. Extended version available at: http://www.cs.le.ac.uk/people/te17/papers/CS-06-008.pdf

Thomas Erlebach's homepage and contact details

Jose Fiadeiro

Topics on software engineering for service-oriented systems: These topics explore or extend the work that is being done at Leicester within the SENSORIA project, mainly around the modelling language SRML. See http://www.sensoria-ist.eu/ for general information about the project and http://www.cs.le.ac.uk/people/jfiadeiro/ for papers that I've written with my colleagues and students.

  1. Human services: In this topic, the aim is to extend the modelling primitives that we have been defining for software services to services provided by humans. More precisely, we would like to be able to model business activities that may rely on services provided by software (as in web-services), technical components (as in embedded systems) and humans (as in organisations). There is already an extension of BPEL for such human services (called BPEL4People), but it needs to be properly formalised and integrated in a software engineering framework such as the one that we are defining in SENSORIA.

    The work can follow one or more of the following directions:

    A: Definition of a role-based model of humans as service providers that reflects organisational structures

    B: Extension of the publication and discovery mechanisms of service-oriented architectures to address human service providers

    C: Extension of the SRML language and its semantics to the case of human provided services

    Work can involve a combination of aspects that are more theoretical (involving logic and algebraic semantics), methodological (principles and notations), or practical (development of prototypes or extension of tools), depending on the background and interests of the candidate.

    Suggested MSc modules: Advanced System Design, Service-Oriented Architectures

  2. Requirements engineering: SENSORIA has not addressed this phase of the software engineering process. Under this topic, the student will investigate the role of requirements engineering for service-oriented systems and propose languages and notations that fit the use of SRML for high-level design.

    The work can follow one or more of the following directions:
    - Implications of the difference between activities and services in requirements engineering. Who are the users? Who are the customers? What is the life-cycle of activities and services?
    - Extension of Jackson's Problem Frames for service-oriented systems.
    - Extension of use-case diagrams and similar notations.
    - What is the relationship between component-based and service-oriented development in what concerns requirements?
    - What is the role of service level agreements in requirements engineering?

    Work can involve a combination of aspects that are more theoretical (involving logic and algebraic semantics), methodological (principles and notations), or practical (development of prototypes or extension of tools), depending on the background and interests of the candidate, with an emphasis on the methodological aspects.

    Suggested MSc modules: Advanced System Design, Service-Oriented Architectures, Generative Development, Domain Specific Languages

  3. Reflective configuration model: The dynamic aspects of SRML (service discovery and binding) have an algebraic semantics based on graphs: business activities are modelled as sub-graphs of the system configuration; these graphs are rewritten each time the activity binds to a discovered service, inducing a reconfiguration of the system. Configurations are typed by what we call activity modules (formal models of the activity type and its dependencies on external services).

    In this topic, the aim is to take forward the graph-based representation of configurations and activities and "implement" it over a rewriting system such as Maude (developed by Jose Meseguer at the University of Illinois - Urbana Champaign and the SRI International) in order to support prototyping and analysis of SRML modules. Another goal is to investigate the relationship between this model and notions of reflective middleware as developed, for instance, by Gordon Brown in Lancaster.

    Work can involve a combination of aspects that are more theoretical (involving logic and algebraic semantics), methodological (principles and notations), or practical (development of prototypes or extension of tools), depending on the background and interests of the candidate, with an emphasis on the theoretical and practical/implementation aspects.

    Suggested MSc modules: Advanced System Design, Service-Oriented Architectures

  4. Publication and discovery of services: Current support for publication and discovery of services in service- oriented architectures does not go much further than the UDDI. In SENSORIA, we have been relying on an abstract notion of an ontology-based 'broker' for discovery, ranking and selection of services. In SRML, the matchmaking and ranking are performed over functional properties and SLA constraints. The handling of SLA constraints in SRML is based on the c-semiring approach to constraint satisfaction and optimisation developed by Bistarelli et al. The matching of the required functional properties (static and behavioural) is formalised in SRML as an interpretation between theories, i.e. that properties required from a service are entailed by those provided by candidate services.

    From an operational point of view, the current level of maturity of verification technologies is not advanced enough to let such a broker rely on case-by-case roofs of entailment. In this topic, the aim is to support a notion of broker that can use a repository of (patterns of) 'standard' service descriptions organised in hierarchies of entailment. These hierarchies should be established within business domains to facilitate discovery in conjunction with Semantic Web techniques.

    Work can involve a combination of aspects that are more theoretical (involving specification/description logics), methodological (principles and notations), or practical (development of a prototype broker), depending on the background and interests of the candidate, with an emphasis on the theoretical and practical/implementation aspects.

    Suggested MSc modules: Advanced System Design, Service-Oriented Architectures, Semantic Web, Domain Specific Languages

Jose Fiadeiro's homepage and contact details

Stanley Fung

    Design and analysis of algorithms, particularly in the areas of
    - Online algorithms
    - Combinatorial optimization
    - Computational biology and bioinformatics

    Skills:
    Background in discrete mathematics and algorithms as provided in most CS undergraduate degrees

    Suggested MSc modules:
    Analysis and Design of Algorithms. provides the above skills. C++ Programming and Advanced Algorithm Design and Game Theory in Computer Science may also be useful.

    Papers:
    - S. Albers, Online algorithms: a survey, Mathematical Programming 97 (1-2), p. 3-26, July 2003. http://www.informatik.uni-freiburg.de/~salbers/ismp03.ps.gz
    - A. Borodin and R. El-Yaniv, Online Computation and Competitive Analysis, Cambridge University Press, 1998.

Stanley Fung's homepage and contact details

Reiko Heckel

  1. Modelling and analysis of social networks by graph transformation: A network can be seen as a graph, and its evolution over time modelled by graph transformation rules. See http://www.cs.le.ac.uk/people/rh122/papers/2006/Hec06Nutshell.pdf for an introduction to graph transformation and google 'social network analysis' to get an idea of the problem.

  2. Business process modelling: from Petri nets to graph transformation Modelling of business process (or workflows) by Petri nets has been very popular recently. An introduction to the approach can be found in http://is.tm.tue.nl/staff/wvdaalst/publications/p44.pdf.

    Graph transformation systems (GTS), see http://www.cs.le.ac.uk/people/rh122/papers/2006/Hec06Nutshell.pdf, are more expressive than nets, and indeed every net can be seen as a simple GTS. Lifting ideas and concepts from the Petri net world, we would like to establish GTS as a technique for modelling workflows / business processes.

In either topic, good knowledge and skills in at least two out of the following three areas is required.
- OO development (programming and UML).
- basic theoretical computer science (automata and formal languages, propositional and first order logic, basic set theory).
- classical maths (analysis and probability theory).

Reiko Heckel's homepage and contact details

Michael Hoffmann

  1. Algorithm with uncertainty: The area of update algorithms for problems with uncertainty is a relative recent developed topic. For most classical algorithms it is assumed that the input is precise. In this model each input might be given in a rough (uncertain) form. The precise value for each input can be obtained for a certain cost. The algorithm has to decide for which input data the the extra costs needs to be paid to solve the underlying problem. Algorithm with uncertainty are rated on cost effective they are.

    Prerequisites:
    - Programming in C++, Java, or similar computer language
    - Knowledge in time and space complexity
    - Knowledge in statistical analysis

    Related publication:
    - Thomas Erlebach, Michael Hoffmann, Danny Krizanc, Matu's Mihala'k, Rajeev Raman: Computing Minimum Spanning Trees with Uncertainty. STACS 2008: 277-288T.

  2. Online Algorithms: Quota from wikipedia: (http://en.wikipedia.org/wiki/Online_algorithm) "In computer science, an online algorithm is one that can process its input piece-by-piece, without having the entire input available from the start. In contrast, an offline algorithm is given the whole problem data from the beginning and is required to output an answer which solves the problem at hand. (For example, selection sort requires that the entire list be given before it can sort it.)

    As an example of the problem consider the problem of finding a shortest path in a finite connected graph when the graph is unknown and the algorithm receives the node neighbors only when it "enters" the node. It is clear that this problem can not be solved optimally without a simple exhaustive search. Thus, new performance measures have to be introduced, such as competitive analysis, which compares the performance of an online algorithm with that of a hypothetical offline algorithm that knows the entire input in advance."

    In this general topic some of my recent research focused on network discovery. Where a structure of the network is not known and by probing certain nodes the whole network will be discovered.

    Prerequisites:
    - Programming in C++, Java, or similar computer language
    - Knowledge in time and space complexity
    - Knowledge in statistical analysis

    Related publication:
    - Zuzana Beerliova, Felix Eberhard, Thomas Erlebach, Alexander Hall, Michael Hoffmann, Matu's Mihala'k, L. Shankar Ram: Network Discovery and Verification. IEEE Journal on Selected Areas in Communications 24(12): 2168-2181 (2006)

Michael Hoffmann's homepage and contact details

Andrzej Murawski

My research applies mathematical structures to investigate computational phenomena. In particular, I specialise in using games to interpret computer programs, an area known as game semantics. Although I am especially keen on exploring applications of games, I would be more than happy to hear from potential students interested in pursuing alternative ideas in the areas of programming language semantics or software verification.

Game semantics is a modelling theory that interprets computation as an exchange of moves between two players: one of them represents the program and the other plays the role of the context in which the program is executed. According to this view, a program becomes a strategy in a game. The last 15 years have led to the construction of a multitude of highly accurate game models for a wide spectrum of programming paradigms. They are waiting to be field-tested!

  • A concrete project in the area will focus on a selection of programming features such as concurrency, higher-order functions, references, objects, etc. It will aim to uncover novel ways of analyzing such programs in an automated fashion, by drawing inspiration from the structure of corresponding game models, among others, exploiting their compositionality. The ultimate objective will be to beat existing approaches or to propose significant improvements thereof.

  • More foundational topics are also possible. A typical one would involve identifying an emerging programming paradigm that is relatively poorly understood and attempting to provide a solid semantic analysis, covering both operational and denotational semantics. An even more theoretical thesis could consist in dissecting the structure of game models with tools from algebra and category theory. There are also numerous problems about the lambda calculus that one can attack or revisit with game semantics.

Feel free to send me an email to discuss possible ideas!

Andrzej Murwaski's homepage and contact details

Stephan Reiff-Marganiec

  1. Dynamic Adaptation of Workflows: Workflows capture Business Processes, but business is dynamic so their workflows need to adapt. StPowla is an approach to process modelling for service-oriented systems. It has three ingredients: workflows to express core processes, services to perform activities and policies to express variability. Workflows are expressed using a graphical notation. Policies can make short-lived changes to a workflow instance, i.e. they last for the duration of the workflow instance and usually will be made during the execution of the instance, rather than applied to the overall workflow model. There are two types of policies: refinement and reconfiguration. Refinement policies specify criteria for the selection of the service that is ultimately chosen and invoked to execute the task at hand, while reconfiguration policies change the structure of the workflow instance by e.g. deleting or adding tasks. This area also covers the study of policy conflict.

    Selected References:

    • S Gorton, C Montangero, S Reiff-Marganiec and L Semini. StPowla: SOA, Policies and Workflows. WESOA 2007.
    • L Bocchi, S Gorton and S Reiff-Marganiec. Engineering Service Oriented Applications: From StPowla Processes to SRML Models. FACS (Formal Aspects of Computing).

  2. Service Selection: One area of service-oriented computing is concerned with identifying the right service for a user. This is a very active and interesting area and I am specifically interested in how can the best service for a specific user context be selected and how can the overall selection services for a business process be optimized. In the former area we have developed an extension of LSP (Logic Scoring for Preferences) that allows for automatic ranking of single services. An extension of this method for workflows is under consideration, however, for workflows we are also working on an Immune based algorithm for finding the global best.

    Selected References:

    • J. Xu and S Reiff-Marganiec. Towards Heuristic Web Services Composition Using Immune Algorithm. ICWS 2008.
    • HQ Yu and S Reiff-Marganiec. A Method for Automated Web Service Selection. WSCA 2008.

  3. Virtual Organisations: The idea of virtual organisations captured the fact that many smaller organisations can work together in dynamic ways to achieve larger goals that none of them could achieve on their own. We are studying how to model VOs at higher levels of abstraction, but in ways that will ultimately allow to reason about their behaviour. A future aspect of this work would be the consideration of a run-time platform to enable the operation of VOs.

    Reference:

    • L. Bocchi, J.L. Fiadeiro, N. Rajper and S. Reiff-Marganiec. Structure and Behaviour of Virtual Organisation Breeding Environments. FAVO 2009.

Stephan Reiff-Marganiec's homepage and contact details

Rick Thomas

  1. Automatic groups and semigroups: There have been some intriguing interactions in recent years between group theory and theoretical computer science. One area which has proved to be very fruitful in providing interesting and useful results is that of automatic groups where computation in the group can (essentially) be performed via an associated set of finite automata. For example, it is known that any automatic group must be finitely presented and the word problem of an automatic group can be solved in quadratic time. For an overview of automatic groups, see [1].

    Much of the research at Leicester is involved in extending this theory to semigroups. We find that some of the results in automatic groups do generalize to semigroups (such as the solution of the word problem in quadratic time) whereas others do not (for example, there exist automatic semigroups that are not finitely presented). See [2] for an introduction to automatic semigroups. As an example of the work done in this area, see [3] where it was shown that, for semigroups, the notions of automatic and biautomatic do not coincide (this is still an open problem for groups).

    References:
    [1] D. B. A. Epstein, J. W. Cannon, D. F. Holt, S. Levy, M. S. Paterson and W. Thurston, Word Processing in Groups (Jones and Barlett, 1992).
    [2] C. M. Campbell, E. F. Robertson, N. Ruskuc and R. M. Thomas, Automatic semigroups, Theoretical Computer Science 250 (2001), 365-391.
    [3] M. Hoffmann and R. M. Thomas, Biautomatic semigroups, in: M. Liskiewicz and R. Reischuk (editors), 15th International Symposium on Fundamentals of Computation Theory (FCT) 2005 (Lecture Notes in Computer Science 3623, Springer-Verlag, 2005), 56-67.

  2. Hyperbolic groups and monoids: The notion of hyperbolic groups has played a fundamental role in computational group theory. There were several equivalent definitions of the notion of hyperbolicity in groups (see [1] for example) but none of these generalized to monoids. This changed with Gilman's elegant characterization of hyperbolic groups; Duncan and Gilman then suggested that this formulation could be taken as the definition of a hyperbolic monoid.

    Their definition is entirely natural but we do not have efficient algorithms for dealing with hyperbolic monoids. It is known that the word problem for hyperbolic groups can be solved in linear time but the best known algorithm for the word problem in a hyperbolic monoid is exponential [2]. Other questions are still open as far as hyperbolic monoids are concerned, even as regards decidability. However, research at Leicester has shown how the definition can be changed in such a way that we still have equivalence in the class of groups but we do have efficient algorithms for hyperbolic monoids; see [3].

    References:
    [1] J. M Alonso, T. Brady, D. Cooper, V. Ferlini, M. Lustig, M. Michalik, M. Shapiro and H. Short, Notes on word hyperbolic groups, in: E. Ghys, A. Haefliger and A. Verjovsky (editors), Group Theory from a Geometric Viewpoint (World Scientific Publishing, 1991), 3-63.
    [2] M. Hoffmann, D. Kuske, F. Otto and R. M. Thomas, Some relatives of automatic and hyperbolic groups, in: G. M. S. Gomes, J-E. Pin and P. V. Silva (editors), Semigroups, Algorithms, Automata and Languages (World Scientific, 2002), 379-406.
    [3] M. Hoffmann and R. M. Thomas, Notions of hyperbolicity in monoids, in: E. Csuhaj-Varju and Z. Esik (editors), 16th International Symposium on Fundamentals of Computation Theory (FCT) 2007 (Lecture Notes in Computer Science 4639, Springer-Verlag, 2007), 341-352.

  3. Word problems of groups and semigroups. The word problem for a finitely generated group is one of the must fundamental notions in group theory. There are many intriguing connections with theoretical computer science, and one important such area is that of investigating what implications the structure of the word problem as a formal language has on the algebraic structure of the corresponding group; see [2] for example. We can also ask which groups have word problem solvable within some resource bound, which leads to intriguing connections with computational complexity; see [1] for example.

    As well as groups, it is possible to consider these issues in the wider context of finitely generated semigroups; several questions that have been completely resolved in the group case remain open in this wider setting. Notwithstanding this, some advances have been made, particularly in the case of the one-counter languages (see [3]).

    References:
    [1] S. R. Lakin and R. M. Thomas, Context-sensitive decision problems in groups, in: C. S. Calude, E. Calude and M. J. Dinneen (editors), Developments in Language Theory: 8th International Conference, DLT 2004, (Lecture Notes in Computer Science 3340, Springer-Verlag, 2004), 296-307.
    [2] D. F. Holt, C. E. Roever, S. E. Rees and R. M. Thomas, Groups with a context-free co-word problem, Journal of the London Mathematical Society 71 (2005), 643-657.
    [3] D. F. Holt, M. D. Owens and R. M. Thomas, Groups and semigroups with a one-counter word problem, Journal of the Australian Mathematical Society 85 (2008), 197-209.

  4. FA-presentable structures. When one considers the notion of a computable structure. one would normally use some general model of computation such as a Turing machine. However, there have been various ideas put forward to restrict the model of computation used; whilst the range of possible structures decreases, the computation can become more efficient and certain properties of the structures may become decidable.

    One interesting approach was introduced by Khoussainov and Nerode [1] who considered structures whose domain and relations can be checked by finite automata (as opposed to Turing machines); such a structure is said to be FA-presentable. One area of intense interest here has been the classification of which structures are FA-presentable, and there are not many instances where this has been achieved. Amongst the few examples of this to date has been the classification of FA-presentable finitely generated groups in [2] and the generalization to FA-presentable finitely generated cancellative semigroups in [3].

    References:
    [1] B. Khoussainov and A. Nerode, Automatic presentations of structures, in: D. Leivant (editor), Logic and Computational Complexity (Lecture Notes in Comp. Science 960, Springer-Verlag, 1995), 367-392.
    [2] G. P. Oliver and R. M. Thomas, Automatic presentations for finitely generated groups, in: V. Diekert and B. Durand (editors), 22nd Annual Symposium on Theoretical Aspects of Computer Science, STACS 05 (Lecture Notes in Computer Science 3404, Springer-Verlag, 2005), 693-704.
    [3] A. J. Cain, G. P. Oliver, N. Ruskuc and R. M. Thomas, Automatic presentations for semigroups, Information and Computation 207 (2009), 1156-1168.

Rick Thomas's homepage and contact details

Emilio Tuosto

Abstractions for mobile distributed systems The widespread use of distributed and concurrent systems urges to use formal models to rigorously describe and analyse computations where remotely executing processes interact through amongcommunication infrastructures that can dynamically change.
I'm interested in studying models for several aspects of modern distributed computations from theoretical as well as applied points of view. My favourite models are based on process algebras, automata and hypergraphs.

  1. Process Algebras: Process algebras are particularly suitable for formally describing and reasoning on distributed communicating processes that operates in a dynamically changing environment. Indeed, many different theories (e.g., behavioural type systems) have been shown adequate to tackle problems rising in distributed computing (e.g., service-oriented computing). Moreover, process algebras can be practically used for verifying systems with techniques like model checking or type-checking.
    Promising research directions are event-notification based calculi and session types to control distributed interactions (see the suggested papers below). Both theoretical and applied research is possible, in fact I'm currently interested in defining suitable systems for dynamic multiparty sessions and some implementation issues of an event-notification based process algebra.

    Required skills:
    - Good mathematical and logical skills.
    - If interested in implementation aspects, good programming skills (either functional or object oriented programming).

    References:
    - Robin Milner, Joachim Parrow, David Walker. A Calculus of Mobile Processes Part I and Part II. Information and Computation 100:1-77 (1992).
    - GianLuigi Ferrari, Daniele Strollo, Roberto Guanciale, and Emilio Tuosto. Coordination Via Types in an Event-Based Framework.. In J. Derrick and J. Vain, editors, 27th IFIP WG 6.1 International Conference on Formal Methods for Networked and Distributed Systems Special focus on service oriented computing and architectures, volume 4574 of Lecture Notes in Computer Science. Springer-Verlag, June 2007.
    - Roberto Bruni, Ivan Lanese, Hernan Melgratti, Emilio Tuosto. Multiparty sessions in SOC. In D. Lea and G. Zavattaro editors. Coordination Models and Languages, volume 5052 of Lecture Notes in Computer Science, Springer-Verlag, May 2008.

  2. Automata for mobile systems: Traditional automata can be enriched to model computational phenomena arising in mobile systems modelled with nominal calculi. Not only automata can be used to check behavioural equivalences of systems, but they are also suitable to model check them or verify e.g., service compatibility.
    This research is very much related to process algebras and aims at exploiting the class of History-Dependent automata as the basis for formal verification of systems modelled with nominal calculi

    Required skills:
    - Good mathematical and logical skills.
    - Notions of automata theory.

    References:
    - Robin Milner, Joachim Parrow, David Walker. A Calculus of Mobile Processes - Part I and Part II. Information and Computation 100:1-77 (1992).
    - G. Ferrari, U. Montanari, E. Tuosto. Coalgebraic Minimisation of HD-Automata for the pi-calculus Using Polymorphic Types. TCS 331:325-365 (2005).
    - V. Ciancia, G. Ferrari, M. Pistore, E. Tuosto. History Dependent Automata for Service Compatibility. In P. Degano, R. De Nicola, and J. Meseguer editors. Concurrency, Graphs and Models, volume 5065 of Lecture Notes in Computer Science, Springer-Verlag, July 2008.

  3. Graphs model: Graph and graph transformation can be envisaged as a generalisation of terms and term rewriting. In last years, graphs have been widely used to model concurrent and distributed systems and nowadays many tools rely on such theories.
    I'm interested in the use of a recent techniques for rewriting hypergraphs, a class of graphs where edges can connect more than 2 nodes. An interesting line of research is the implementation of the rewriting techniques defined for hypergraphs.

    Required skills:
    - Good programming skills (preferably functional programming).
    - Some mathematical and logical skills.

    References:
    - Gianluigi Ferrari and Dan Hirsch and Ivan Lanese and Ugo Montanari and Emilio Tuosto. Synchronised Hyperedge Replacement as a Model for Service Oriented Computing. F. de Boer, M. M. Bonsangue, S. Graf and W. P. de Roever editors. Formal Methods for Components and Objects: 4th International Symposium, FMCO, volume 4111 of Lecture Notes in Computer Science, Springer-Verlag, November 2005.

Emilio Tuosto's homepage and contact details

Irek Ulidowski

    Reversible Debugging and Concurrency: In the last several years a number of commercial debuggers appeared on the market that claim to make full use of reversibility when debugging programs. The two good examples of such tools are UndoBD by Undo Ltd and Simics Hindsight by Virtutech. However, when it comes to dealing with multi-threaded programs or programs that use a shared memory, these state-of-the-art debuggers are powerless. This project aims to address this inadequacy by taking the formal methods approach. We aim to develop a robust method for reversing simple multi-threaded programs using a process algebra-like notation and methodology. Moreover, we aim to implement an extension of one of the existing reversible debuggers that is able to cope with multi-threaded programs.

    An ideal candidate for this project would be interested in debugging in general, and would enjoy working with formal methodologies such as process algebra CCS, operational semantics of multi-threaded programs and reversibility of such programs. Additionally, good programming skills would be very helpful.

    Starting date: October 1st, 2011. This will enable the successful candidate to take a course on process algebra CCS and refresh their C++ and Java programming skills during Semester 1 (October to January) of the academic year at the University of Leicester.

Irek Ulidowski's homepage and contact details

Author: Fer-Jan de Vries.
University of Leicester Jun 13, 14:17:49 BST 2008. Last modified: 29th September 2011, 15:21:11.
Informatics Web Maintainer. This document has been approved by the Head of Department.