Thinking mathematically - Mason, John (Addison-Wesley, 1985)