Methods in Mathematical Logic