School of Mathematical and Computer Sciences, Heriot-Watt University, UK