Quantifiers and Variables
Quantifiers and Their Meanings
Quantifiers let you make claims about how many objects in a domain satisfy a given property. There are two:
- The universal quantifier says a statement holds for every object in the domain. Read as "for all , ."
- The existential quantifier says a statement holds for at least one object in the domain. Read as "there exists an such that ."
Variables (, , , etc.) are placeholders for unspecified objects in the domain. A variable is bound when it falls within the scope of a quantifier that governs it; otherwise it's free.
The scope of a quantifier is the part of the formula where that quantifier applies. It typically extends to the end of the smallest well-formed formula that immediately follows the quantifier. Parentheses control scope explicitly, so pay close attention to them when parsing complex statements.
Interpreting Quantified Statements
When a statement has multiple quantifiers, read them left to right. The leftmost quantifier has the widest scope. Changing the order of different quantifier types changes the meaning:
- : "For every , there is at least one such that ." Here the choice of can depend on which you pick.
- : "There is a single that works for every ." This is a much stronger claim because the same must satisfy no matter what is.
Getting comfortable with this distinction is one of the trickiest parts of predicate logic, and it comes up constantly in proofs.
Universal Instantiation
The Universal Instantiation (UI) Rule
Universal Instantiation (UI) lets you move from a universal claim to a specific instance. The idea is straightforward: if something is true of everything in the domain, it must be true of any particular thing you name.
Formally:
From , infer , where is any constant that refers to an object in the domain.
The step of swapping the bound variable for a specific constant is called instantiation.
.svg.png)
Applying Universal Instantiation
- Locate a universally quantified statement in your proof (e.g., ).
- Choose any constant that denotes an object in the domain. Unlike with some other rules, does not need to be fresh; you can instantiate to a constant already in use.
- Replace every occurrence of the bound variable within the scope of with , producing .
- Write as a new line in the proof, citing UI and the line number of the universal statement.
Example: Suppose line 1 is . You can instantiate with any constant, say , to get . This is especially useful when you already have on another line, because you can then apply Modus Ponens to derive .
A key point: you can apply UI to the same universal statement more than once with different constants. If everything is , then is , is , and so on.
Existential Generalization
The Existential Generalization (EG) Rule
Existential Generalization (EG) lets you move from a specific instance to an existential claim. If you know something is true of a particular object, you can conclude that something in the domain has that property.
Formally:
From , infer , where is a variable that replaces one or more occurrences of the constant .
The step of swapping a constant for a bound variable under is called generalization.
Applying Existential Generalization
- Locate a statement containing a specific constant in your proof (e.g., ).
- Choose a variable to serve as the existentially quantified variable.
- Replace one or more occurrences of the constant with , and prefix the statement with .
- Write the resulting statement (e.g., ) as a new line, citing EG and the line number of the original statement.
You don't have to replace every occurrence of the constant. For instance, from you could derive , , or (the last only if and are the same constant). This flexibility matters when your conclusion targets a specific pattern.
UI and EG Working Together
These two rules are natural partners. A common proof pattern goes like this:
- Start with a universal premise, e.g., .
- Use UI to instantiate it to a particular constant: .
- Given as another premise, apply Modus Ponens to get .
- Use EG to generalize: .
This UI-then-EG pattern shows up in many predicate logic proofs. Recognizing it quickly will save you time and help you plan your proof strategy before you start writing lines.