Introduction To Proof In Abstract Mathematics by Andrew Wohlgemuth