Understanding Predicate Logic