Fundamental Methods of Logic