Foundations of Abstract Mathematics