Since logic, like other branches of mathematics, has trouble dealing with ambiguous statements, and since English is a notoriously ambiguous language, logicians (and other mathematicians) usually work in a language of their own, in which every term and symbol has a clear, well-defined meaning -- the "language of first-order logic", or FOL as the textbook calls it.

We'll start by examining *relations*, properties that can be
either true or false of specific objects. Relations can be combined using
*Boolean connectives* such as "not", "and", "or",
"implies", and "iff", and we'll discuss how to use, prove, and
disprove statements involving those connectives. Then we'll add
*quantifiers* to the language, so we can talk about "all" objects
or "at least one" object, and discuss how to use, prove, and disprove
statements involving quantifiers. Finally, we'll visit some topics of
particular importance in computer science: mathematical induction
and computer theorem-proving (which underlies the Prolog programming
language).