Problem Set: challenging

Impostors on a ship

A logic problem by Adam Richard-Bollans

Your problem is to use first-order logic to represent the following example of reasoning, and use the Prover9 theorem prover to prove that the reasoning is valid.

Use the following template file to create your Prover9 encoding of the problem: impostor.p9

Marks: There are two marks for each sentence, making a total of 28 marks.

Problem Statement

A1 Blue,Red,Yellow, Purple and a Janitor are crewmembers on a ship and are the only crewmembers.
A2 There are two crewmembers who are impostors.
A3 There are no more than two impostors.
A4 If somebody accuses someone then the accused is an impostor or the accuser is the impostor.
A5 If somebody is known to be an impostor, then they are an impostor.
A6 Impostors know they are impostors.
A7 If someone is murdered then they are not an impostor.
A8 Purple knows one of the impostors.
A9 Purple doesn't know that the Janitor or Blue are an impostor.
A10 Purple was found murdered.
A11 Neither Red or Blue are the Janitor.
A12 Blue accused Yellow.
A13 Nobody knows that Yellow is an impostor.
Goal Yellow, Purple and the Janitor are not impostors and Blue and Red are impostors.

Non-Logical Vocabulary

Constants: Blue, Red, Yellow, Purple, Janitor

Predicates: Crewmember, Impostor, Murdered

Relations: Accused, KnowsImpostor