Propositional logic does not allow any reasoning based on general rules, so its usefulness is limited. Predicate calculus generalizes propositional logic with variables, quantifiers, and functions.

Formulas are constructed from:

- Predicates have arguments, which are terms:
*P(x, f(a))*. Predicates are true or false. - Terms refer to objects in the application domain:
- Variables:
*x, y, z* - Constants:
*John, Mary, 3, a, b*. Note that a constant is generally capitalized in English:*Austin*can be a constant, but*dog*cannot. - Functions:
*f(x)*whose arguments are terms.

- Variables:
- Quantifiers:
*&forall*(``for all'') and*&exist*(``there exists'' or ``for some'') quantify variables:*&forall x*,*&exist y*. If a variable is in the scope of a quantifier, it is*bound*; otherwise, it is*free*.