Logic: An Introduction