A Practical Theory of Programming, by Eric C. R. Hehner of the University of Toronto. ISBN 0387941061 . Now available online at http://www.cs.toronto.edu/~hehner/aPToP
CategoryOnlineBook