Thinking Mathematically by Robert F. Blitzer & Robert Blitzer