Introduction
This is a complete worked example demonstrating resolution-based theorem proving in First-Order Logic.
We'll go through every detail of the unification and substitution process, showing how logical inference
derives new knowledge from existing facts.
What You'll Learn:
- Converting statements to First-Order Logic
- CNF (Conjunctive Normal Form) transformation
- Proof by refutation technique
- Step-by-step unification process
- Resolution and substitution mechanics
Key Concepts:
- Unification: Finding substitutions to match literals
- Resolution: Canceling complementary literals
- Substitution: Replacing variables with constants
- Empty Clause (□): Represents contradiction
1
Write in First-Order Logic
Clause 1: ∀x (Cat(x) → Animal(x))
Clause 2: Cat(Tom)
Query: Animal(Tom) ?
Translation:
- ∀x means "for all x"
- → means "implies" (if...then)
- Cat(x) is a predicate: "x is a cat"
- Animal(x) is a predicate: "x is an animal"
2
Convert to CNF (Conjunctive Normal Form)
Original: ∀x (Cat(x) → Animal(x))
⬇
CNF: ¬Cat(x) ∨ Animal(x)
CNF Conversion Rule: (A → B) is equivalent to (¬A ∨ B)
So: Cat(x) → Animal(x) becomes ¬Cat(x) ∨ Animal(x)
"Either x is NOT a cat, OR x is an animal"
3
Negate the Query (Proof by Contradiction)
Query to Prove: Animal(Tom)
⬇
Negated Query: ¬Animal(Tom)
Why negate? We'll prove the query is true by showing that assuming it's FALSE leads to a contradiction. This is called proof by refutation.
4
List All Clauses for Resolution
C1: ¬Cat(x) ∨ Animal(x)
C2: Cat(Tom)
C3: ¬Animal(Tom)
Now we have 3 clauses in CNF. We'll use resolution to combine them and try to derive an empty clause (□), which represents a contradiction.
5
Resolution Step 1: Resolve C1 and C2
C1: ¬Cat(x) ∨ Animal(x)
C2: Cat(Tom)
UNIFICATION STEP
Step 1: Identify complementary literals
- In C1: ¬Cat(x)
- In C2: Cat(Tom)
Step 2: Find substitution to make them identical
- We need: Cat(x) = Cat(Tom)
- Solution: Substitute x with Tom
Substitution: θ = {x/Tom}
(Replace x with Tom everywhere in C1)
After Substitution:
C1': ¬Cat(Tom) ∨ Animal(Tom)
C2: Cat(Tom)
⬇ Resolve (cancel complementary literals)
¬Cat(Tom) ∨ Animal(Tom) + Cat(Tom)
RESOLVENT R1: Animal(Tom)
What happened?
- We unified Cat(x) and Cat(Tom) by substituting x = Tom
- The literals ¬Cat(Tom) and Cat(Tom) cancel each other out
- We're left with: Animal(Tom)
6
Resolution Step 2: Resolve R1 and C3
R1: Animal(Tom)
C3: ¬Animal(Tom)
UNIFICATION STEP
Step 1: Identify complementary literals
- In R1: Animal(Tom)
- In C3: ¬Animal(Tom)
Step 2: Check if they match
- Animal(Tom) = Animal(Tom) ✓
- They already match exactly!
Substitution: θ = { } (empty - no substitution needed)
Resolution:
Animal(Tom) + ¬Animal(Tom)
⬇ Cancel complementary literals
□ (Empty Clause)
CONTRADICTION FOUND! □
Empty Clause (□): This means we've derived a contradiction!
We assumed ¬Animal(Tom) was true, but this led to a contradiction with our facts. Therefore, our assumption must be FALSE, which means Animal(Tom) must be TRUE!
PROOF COMPLETE!
We have proven: Animal(Tom)
Resolution Chain Summary:
1. ¬Cat(x) ∨ Animal(x) + Cat(Tom) → Animal(Tom)
2. Animal(Tom) + ¬Animal(Tom) → □
3. □ means contradiction!
4. ∴ Animal(Tom) is TRUE
Unification
Finding substitutions to match literals: {x/Tom}
Resolution
Canceling complementary literals: P and ¬P
Substitution
Replacing variables with constants: x → Tom
CNF
Disjunction of literals: ¬A ∨ B
Refutation
Prove by finding contradiction (□)
Empty Clause
□ represents logical contradiction