Skip to main content

Resolution: horse, Bluebeard, Charlie

Short answer

Clauses from facts include Horse(Bluebeard) and Parent(Bluebeard,Charlie). Adding ¬Horse(Charlie) and resolving with offspring and parent links yields ¬Horse(Bluebeard), contradicting the fact. Empty clause proves Charlie is a horse.

Assume the following facts: i) Horses, cows, pigs are mammals. ii) An offspring of a horse is a horse. iii) Bluebeard is a horse. iv) Bluebeard is Charlie's parent. v) Offspring and parent are inverse relations. vi) Every mammal has a parent. Prove Charlie is a horse using resolution refutation.

Step 1: Statements in FOPL

Predicates: Horse(x), Cow(x), Pig(x), Mammal(x), Parent(x, y) = x is a parent of y, Offspring(y, x) = y is an offspring of x.

  1. ∀x [Horse(x) ∨ Cow(x) ∨ Pig(x)] → Mammal(x)
  2. ∀x ∀y [Horse(x) ∧ Offspring(y, x)] → Horse(y)
  3. Horse(Bluebeard)
  4. Parent(Bluebeard, Charlie)
  5. ∀x ∀y Parent(x, y) ↔ Offspring(y, x)
  6. ∀x Mammal(x) → ∃y Parent(y, x)

Goal: Horse(Charlie)

Step 2: Clauses

No.Clause
C1¬Horse(x) ∨ Mammal(x) (and similarly for Cow, Pig)
C2¬Horse(x) ∨ ¬Offspring(y, x) ∨ Horse(y)
C3Horse(Bluebeard)
C4Parent(Bluebeard, Charlie)
C5a¬Parent(x, y) ∨ Offspring(y, x)
C5b¬Offspring(y, x) ∨ Parent(x, y)
C6¬Mammal(x) ∨ Parent(g(x), x) (g is a Skolem function)

Step 3: Negated goal

C7: ¬Horse(Charlie)

Step 4: Resolution

StepResolveSubstitutionResolvent
1C7 and C2y/CharlieR1: ¬Horse(x) ∨ ¬Offspring(Charlie, x)
2R1 and C5ay/CharlieR2: ¬Horse(x) ∨ ¬Parent(x, Charlie)
3R2 and C4x/BluebeardR3: ¬Horse(Bluebeard)
4R3 and C3R4: empty clause (□)
¬Horse(Charlie) + C2 -> ¬Horse(x) ∨ ¬Offspring(Charlie,x)
   + C5a -> ¬Horse(x) ∨ ¬Parent(x,Charlie)
   + C4 {x/Bluebeard} -> ¬Horse(Bluebeard)
   + C3 -> □

The empty clause is derived. Hence Charlie is a horse. (C1, C5b and C6 are not needed in this proof.)

✓ Answer checked by Claude Opus 5.5 (high effort)

All Artificial Intelligence chapter 4 questions →