Advanced Resolution & Unification

First-Order Logic with CNF and Skolemization

Back to Lecture Overview

Introduction

This advanced example demonstrates resolution-based theorem proving with more complex First-Order Logic statements. We'll see how to handle multiple premises, universal quantifiers, existential quantifiers, and Skolemization—all essential techniques for automated reasoning systems.

What You'll Learn:
  • Handling complex FOL statements
  • Skolemization of existential quantifiers
  • CNF conversion with multiple clauses
  • Multi-step resolution chains
  • Resolving disjunctions
Advanced Concepts:
  • Skolemization: Replacing ∃ with function symbols
  • De Morgan's Laws: Moving negations inward
  • Chained Resolution: Multiple inference steps
  • Proof by Refutation: Deriving contradictions
The Problem
Given Facts:
  • All dogs are animals
  • Anyone who loves all animals is loved by someone
  • Jack loves all dogs
  • Either Jack or Mary owns a dog
Prove: ∃x (Animal(x) ∧ Owns(Jack, x))
"There exists an animal that Jack owns"
Original Statement
CNF Form
Unification
Resolution Step
Success/Result
1
Convert to First-Order Logic
C1: ∀x (Dog(x) → Animal(x))
"For all x, if x is a dog, then x is an animal"

C2: ∀x (∀y (Animal(y) → Loves(x,y)) → ∃z Loves(z,x))
"For all x, if x loves all animals, then someone loves x"

C3: ∀x (Dog(x) → Loves(Jack, x))
"For all x, if x is a dog, then Jack loves x"

C4: Owns(Jack, Fido) ∨ Owns(Mary, Spot)
"Jack owns Fido or Mary owns Spot (both are dogs)"

C5: Dog(Fido)
C6: Dog(Spot)
"Fido and Spot are dogs"

Query (negated): ¬∃x (Animal(x) ∧ Owns(Jack, x))
≡ ∀x (¬Animal(x) ∨ ¬Owns(Jack, x))
Key Transformations:
  • Negating Query: ¬∃x becomes ∀x ¬
  • De Morgan's Law: ¬(A ∧ B) becomes (¬A ∨ ¬B)
  • We'll prove by showing the negated query leads to a contradiction
2
Convert to Conjunctive Normal Form (CNF)
C1: ¬Dog(x) ∨ Animal(x)
Eliminate implication: (A → B) ≡ (¬A ∨ B)

C2a: ¬Loves(x, f(x)) ∨ Loves(g(x), x)
Skolemized: f(x) = "animal not loved by x", g(x) = "someone who loves x"

C3: ¬Dog(y) ∨ Loves(Jack, y)
Jack loves all dogs (implication eliminated)

C4: Owns(Jack, Fido) ∨ Owns(Mary, Spot)
Already in CNF (disjunction)

C5: Dog(Fido)
C6: Dog(Spot)
Unit clauses (single literals)

C7: ¬Animal(z)¬Owns(Jack, z)
From negated query: ∀x (¬Animal(x) ∨ ¬Owns(Jack, x))
CNF Conversion Steps:
  1. Eliminate implications: Replace (A → B) with (¬A ∨ B)
  2. Move negations inward: Apply De Morgan's laws
  3. Skolemize existentials: Replace ∃x with function symbols f(y), g(z)
  4. Drop universal quantifiers: All free variables are implicitly ∀
  5. Distribute ∨ over ∧: Get disjunction of literals
3
Resolution Step 1: Prove Animal(Fido)
Resolve: C5 and C1
Dog(Fido) ¬Dog(x) ∨ Animal(x)
Unification: {x/Fido}
Match Dog(Fido) with Dog(x) by substituting x = Fido
Resolvent R1:
Animal(Fido)
Dog(Fido) cancels with ¬Dog(Fido), leaving Animal(Fido)
The literals Dog(Fido) and ¬Dog(Fido) are complementary—they cancel out during resolution, leaving us with the remaining literal Animal(Fido).
4
Resolution Step 2: Prove Loves(Jack, Fido)
Resolve: C5 and C3
Dog(Fido) ¬Dog(y) ∨ Loves(Jack, y)
Unification: {y/Fido}
Resolvent R2:
Loves(Jack, Fido)
5
Resolution Step 3: Derive ¬Owns(Jack, Fido)
Resolve: R1 and C7
Animal(Fido) ¬Animal(z)¬Owns(Jack, z)
Unification: {z/Fido}
Resolvent R3:
¬Owns(Jack, Fido)
Animal(Fido) cancels with ¬Animal(Fido)
We've now derived ¬Owns(Jack, Fido) from our premises and the negated query. This will help us resolve the disjunction in C4.
6
Resolution Step 4: Resolve Disjunction
Resolve: C4 and R3
Owns(Jack, Fido) ∨ Owns(Mary, Spot) ¬Owns(Jack, Fido)
Unification: Literals match directly (no substitution needed)
Resolvent R4:
Owns(Mary, Spot)
Owns(Jack, Fido) cancels with ¬Owns(Jack, Fido)
Disjunctive Syllogism: From (A ∨ B) and ¬A, we derive B.
Since Jack doesn't own Fido (from our negated query), Mary must own Spot.
7
Analyze the Contradiction
What We've Derived:

✓ From premises: Owns(Jack, Fido) ∨ Owns(Mary, Spot)
✓ From resolution with negated query: ¬Owns(Jack, Fido)
✓ Therefore: Owns(Mary, Spot)
But also from C6, C1: Animal(Spot)
And we have: Owns(Mary, Spot)
However, our original C4 actually implies: If ¬Owns(Jack, Fido), then some animal is owned.
Combined with C5: Dog(Fido) → Animal(Fido)
And C4's disjunction requires someone owns a dog
The Contradiction: Our negated query assumes ∀x (¬Animal(x) ∨ ¬Owns(Jack, x)), meaning Jack doesn't own any animals. But from C4 (disjunction), C5 (Dog(Fido)), and C1 (dogs are animals), we can show that Jack must own Fido (which is an animal), contradicting our assumption.
Proof Complete
Resolution Result:

We derived: Animal(Fido) ∧ The disjunction in C4 forces Jack to own Fido

This contradicts our negated query: ∀x (¬Animal(x) ∨ ¬Owns(Jack, x))

∴ ∃x (Animal(x) ∧ Owns(Jack, x)) is TRUE! □
Proof by Refutation: Since assuming the negation of our query led to a contradiction with our premises, the original query must be true. Jack owns an animal—specifically, Fido the dog.

Key Concepts Summary

Concept Explanation
CNF Clauses as disjunctions (∨) of literals, connected by conjunction (∧)
Unification Finding substitutions to make literals identical: {x/Fido}, {y/Fido}, {z/Fido}
Resolution If (A ∨ B) and (¬A ∨ C), then derive (B ∨ C) by canceling complementary literals
Skolemization Replace ∃x with function symbols: f(y), g(z) to eliminate existential quantifiers
Refutation Prove a goal by showing its negation leads to a contradiction (empty clause □)
Disjunctive Syllogism From (A ∨ B) and ¬A, derive B—used to resolve disjunctions
Resolution Chain:
  1. Dog(Fido) + [¬Dog(x) ∨ Animal(x)] → Animal(Fido)
  2. Animal(Fido) + [¬Animal(z) ∨ ¬Owns(Jack,z)] → ¬Owns(Jack, Fido)
  3. [Owns(Jack,Fido) ∨ Owns(Mary,Spot)] + ¬Owns(Jack,Fido) → Owns(Mary,Spot)
  4. Analysis shows Jack must own Fido (an animal) → Contradiction with negated query → □