TPTP Axioms File: PUZ001-0.ax
%------------------------------------------------------------------------------
% File : PUZ001-0 : TPTP v9.0.0. Released v1.0.0.
% Domain : Puzzles (Mars and Venus)
% Axioms : Mars and Venus axioms
% Version :
% English :
% Refs : [Rap95] Raptis (1995), Email to G. Sutcliffe
% Source : [ANL]
% Names :
% Status : Satisfiable
% Syntax : Number of clauses : 16 ( 0 unt; 4 nHn; 12 RR)
% Number of literals : 39 ( 1 equ; 23 neg)
% Maximal clause size : 3 ( 2 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 0 prp; 1-2 aty)
% Number of functors : 1 ( 1 usr; 0 con; 1-1 aty)
% Number of variables : 20 ( 1 sgn)
% SPC :
% Comments : [Rap95] has pointed out that the clause
% statements_are_true_or_not is a tautology. Does your ATP
% system ignore it?
%------------------------------------------------------------------------------
%----Everyone's either from Mars or Venus, male or female, and statements
%----are true or false
cnf(from_mars_or_venus,axiom,
( from_mars(X)
| from_venus(X) ) ).
cnf(not_from_mars_and_venus,axiom,
( ~ from_mars(X)
| ~ from_venus(X) ) ).
cnf(male_or_female,axiom,
( male(X)
| female(X) ) ).
cnf(not_male_and_female,axiom,
( ~ male(X)
| ~ female(X) ) ).
cnf(truthteller_or_liar,axiom,
( truthteller(X)
| liar(X) ) ).
cnf(not_truthteller_and_liar,axiom,
( ~ truthteller(X)
| ~ liar(X) ) ).
%----Rules about statements
cnf(statements_are_true_or_not,axiom,
( ~ says(X,Y)
| a_truth(Y)
| ~ a_truth(Y) ) ).
cnf(people_say_their_statements,axiom,
( ~ says(X,Y)
| Y = statement_by(X) ) ).
cnf(true_statements_made_by_truthtellers,axiom,
( ~ a_truth(statement_by(X))
| truthteller(X) ) ).
cnf(false_statements_made_by_liars,axiom,
( a_truth(statement_by(X))
| liar(X) ) ).
%----Who's a liar, who's not
cnf(venusian_female_are_truthtellers,axiom,
( ~ from_venus(X)
| ~ female(X)
| truthteller(X) ) ).
cnf(venusian_males_are_liars,axiom,
( ~ from_venus(X)
| ~ male(X)
| liar(X) ) ).
cnf(marsian_males_are_truthtellers,axiom,
( ~ from_mars(X)
| ~ male(X)
| truthteller(X) ) ).
cnf(marsian_females_are_liars,axiom,
( ~ from_mars(X)
| ~ female(X)
| liar(X) ) ).
%----what truthtellers say is true, what liars say is false, what
%----truthtellers say is true, what liars say is false
cnf(truthtellers_make_true_statements,axiom,
( ~ truthteller(X)
| ~ says(X,Y)
| a_truth(Y) ) ).
cnf(liars_make_false_statements,axiom,
( ~ liar(X)
| ~ says(X,Y)
| ~ a_truth(Y) ) ).
%------------------------------------------------------------------------------