Foundations of Real and Abstract Analysis by Douglas S. Bridges