Mathematical thinking problem-solving and proofs - D'Angelo, John P. (Prentice-Hall, 2000)