Thinking mathematically - Blitzer, Robert (Custom Publishing, 2009)