ABSTRACT

The main goal of this book is to introduce first-order logic (FOL). But ever since Hilbert and Ackermann’s book [30], this has almost always been done by first describing the simpler logic called propositional logic (PL), which is the subject of this chapter, and then upgrading to full FOL, which we do in Chapter 3. The logics we discuss are examples of artificial languages to be contrasted with natural languages such as English. Natural languages are often imprecise when we try to use them in situations where precision is essential, being riddled with ambiguities.1 In such cases, artificial languages are used. Thus, programming languages are artificial languages suitable for describing algorithms to be implemented by computer. The description of an artificial language has two aspects: syntax and semantics. Syntax, or grammar, tells you what the allowable sequences of symbols are, whereas semantics tells you what they mean.