David Makinson Sets, Logic and Maths for Computing