Resolution Proof Example

Complete Step-by-Step Unification & Resolution

Back to Lecture Overview

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
The Problem
Given Facts:
  1. All cats are animals
  2. Tom is a cat
Prove: Tom is an animal
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?
  1. We unified Cat(x) and Cat(Tom) by substituting x = Tom
  2. The literals ¬Cat(Tom) and Cat(Tom) cancel each other out
  3. 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