An Introduction to Logic