Essentials of mathematical thinking - Steven G. Krantz (2018)