Formal Specification Using Z by David Lightfoot