finished intro to first-order logic