Third edition of Artificial Intelligence: foundations of computational agents, Cambridge University Press, 2023 is now available (including the full text).

5.1.1 Syntax of Propositional Calculus

A proposition is a sentence, written in a language, that has a truth value (i.e., it is true or false) in a world. A proposition is built from atomic propositions using logical connectives.

An atomic proposition, or just an atom, is a symbol that starts with a lower-case letter. Intuitively, an atom is something that is true or false.

For example, ai_is_fun, lit_l1, live_outside, and sunny can all be atoms.

In terms of the algebraic variables of the preceding chapter, an atom can be seen as a statement that a variable has a particular value or that the value is in a set of values. For example, the proposition classtimeAfter3 may mean ClassTime>3, which is true when the variable ClassTime has value greater than 3 and is false otherwise. It is traditional in propositional calculus not to make the variable explicit and we follow that tradition. A direct connection exists to Boolean variables, which are variables with domain {true, false}. An assignment X=true is written as the proposition x, using the variable name, but in lower case. So the proposition happy can mean there exists a Boolean variable Happy, where happy means Happy=true.

Propositions can be built from simpler propositions using logical connectives. A proposition is either

  • an atomic proposition or
  • a compound proposition of the form
    ¬p (read "not p")--the negation of p
    p∧q (read "p and q")--the conjunction of p and q
    p∨q (read "p or q")--the disjunction of p and q
    p→q (read "p implies q")--the implication of q from p
    p←q (read "p if q")--the implication of p from q
    p ↔q (read "p if and only if q" or "p is equivalent to q")

    where p and q are propositions.

The precedence of the operators is in the order they are given above. That is, a compound proposition can be disambiguated by adding parentheses to the subexpressions in the order the operations are defined above. Thus, for example,

¬a ∨ b ∧c →d ∧¬e ∨ f

is an abbreviation for

((¬a) ∨ (b ∧c)) →((d ∧(¬e)) ∨ f).