Thinking mathematically - Blitzer, Robert (Pearson Prentice Hall, 2008)