Prolog is a prigramming language that is based on first order predicate logic. It uses Horn clause logic (predicates can be defined in terms of other predicates, but not arbitrary equations) and unification of variables, with backtracking when it reaches an impasse or tries to seek additional solutions. The outcome of a Prolog query is a binding of variables or 'No' meaning no (further) solution can be found. Prolog allows negation and has a closed world model of knowledge – if a fact is not found it is assumed to be false.
Used in Chap. 2: pages 14, 16, 19; Chap. 4: page 50; Chap. 13: page 208; Chap. 17: pages 271, 272; Chap. 18: pages 297, 299