Introduction to symbolic logic