Mathematical Thinking by Douglas B. West, John P. D'Angelo & Douglas Brent West