This two-volume work bridges the gap between introductory expositions of logic (or set theory) and the research literature. It can be used as a text in an advanced undergraduate or beginning graduate course in mathematics, computer science, or philosophy. The volumes are written in a user-friendly lecture style that makes them equally effective for self-study or class use. Volume I includes formal proof techniques, applications of compactness (including...