Fundamentals of Logic