## TPTP Problem File: PUZ017-1.p

View Solutions - Solve Problem

```%--------------------------------------------------------------------------
% File     : PUZ017-1 : TPTP v8.1.0. Released v1.0.0.
% Domain   : Puzzles
% Problem  : The Houses
% Version  : Especial.
% English  : There are 5 houses, 5 people, 5 colors, 5 drinks, 5 games,
%            and 4 pets. Each house has a person, a color, a drink, and
%            game, and all but one of the houses has a pet. The problem
%            is to match each house with as many properties as possible.
%             House 1 is at the left end and house 5 is at the right end.
%             The Englishman lives in the Red house. The white house
%            is left of the Green house. The Italian has a Guppy. Lemonade
%            is drunk in the Green house. The Swede lives in the house
%            where Coffee is drunk. The Toad lives in the house where
%            Backgammon is played. Racquetball is played in the yellow
%            house. Milk is drunk in the third house. The Russian lives
%            in the first house. The Camel lives next to the house where
%            Quoits is played. The Rat lives next to the house where
%            Racquetball is played. Solitaire is played in the house where
%            vodka is drunk. The American lives in the house where
%            Charades is played. The Russian lives next to the Blue house.

% Refs     :
% Source   : [ANL]
% Names    : houses.ver1.in [ANL]

% Status   : Unsatisfiable
% Rating   : 0.00 v6.2.0, 0.25 v6.1.0, 0.12 v6.0.0, 0.25 v5.5.0, 0.00 v4.0.1, 0.20 v3.7.0, 0.00 v3.1.0, 0.11 v2.7.0, 0.17 v2.6.0, 0.44 v2.5.0, 0.25 v2.4.0, 0.75 v2.3.0, 0.67 v2.2.1, 1.00 v2.0.0
% Syntax   : Number of clauses     :  148 (  82 unt;  17 nHn; 132 RR)
%            Number of literals    :  332 (   0 equ; 204 neg)
%            Maximal clause size   :   25 (   2 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :   13 (  13 usr;   0 prp; 2-2 aty)
%            Number of functors    :   30 (  30 usr;  30 con; 0-0 aty)
%            Number of variables   :  155 (  27 sgn)
% SPC      : CNF_UNS_EPR_NEQ_NHN

%--------------------------------------------------------------------------
cnf(reflexivity_for_samehouse,axiom,
samehouse(X,X) ).

cnf(house_1_not_2,axiom,
~ samehouse(n1,n2) ).

cnf(house_1_not_3,axiom,
~ samehouse(n1,n3) ).

cnf(house_1_not_4,axiom,
~ samehouse(n1,n4) ).

cnf(house_1_not_5,axiom,
~ samehouse(n1,n5) ).

cnf(house_2_not_3,axiom,
~ samehouse(n2,n3) ).

cnf(house_2_not_4,axiom,
~ samehouse(n2,n4) ).

cnf(house_2_not_5,axiom,
~ samehouse(n2,n5) ).

cnf(house_3_not_4,axiom,
~ samehouse(n3,n4) ).

cnf(house_3_not_5,axiom,
~ samehouse(n3,n5) ).

cnf(house_4_not_5,axiom,
~ samehouse(n4,n5) ).

cnf(reflexivity_for_sameperson,axiom,
sameperson(X,X) ).

cnf(englishman_not_italian,axiom,
~ sameperson(englishman,italian) ).

cnf(englishman_not_swede,axiom,
~ sameperson(englishman,swede) ).

cnf(englishman_not_russian,axiom,
~ sameperson(englishman,russian) ).

cnf(englishman_not_american,axiom,
~ sameperson(englishman,american) ).

cnf(italian_not_swede,axiom,
~ sameperson(italian,swede) ).

cnf(italian_not_russian,axiom,
~ sameperson(italian,russian) ).

cnf(italian_not_american,axiom,
~ sameperson(italian,american) ).

cnf(swede_not_russian,axiom,
~ sameperson(swede,russian) ).

cnf(swede_not_american,axiom,
~ sameperson(swede,american) ).

cnf(russian_not_american,axiom,
~ sameperson(russian,american) ).

cnf(reflexivity_for_samecolor,axiom,
samecolor(X,X) ).

cnf(red_not_white,axiom,
~ samecolor(red,white) ).

cnf(red_not_green,axiom,
~ samecolor(red,green) ).

cnf(red_not_yellow,axiom,
~ samecolor(red,yellow) ).

cnf(red_not_blue,axiom,
~ samecolor(red,blue) ).

cnf(white_not_green,axiom,
~ samecolor(white,green) ).

cnf(white_not_yellow,axiom,
~ samecolor(white,yellow) ).

cnf(white_not_blue,axiom,
~ samecolor(white,blue) ).

cnf(green_not_yellow,axiom,
~ samecolor(green,yellow) ).

cnf(green_not_blue,axiom,
~ samecolor(green,blue) ).

cnf(yellow_not_blue,axiom,
~ samecolor(yellow,blue) ).

cnf(reflexivity_for_samedrink,axiom,
samedrink(X,X) ).

cnf(coffee_not_milk,axiom,
~ samedrink(coffee,milk) ).

cnf(coffee_not_vodka,axiom,
~ samedrink(coffee,vodka) ).

cnf(coffee_not_known,axiom,
~ samedrink(coffee,unknown_drink) ).

cnf(milk_not_vodka,axiom,
~ samedrink(milk,vodka) ).

cnf(milk_not_unknown,axiom,
~ samedrink(milk,unknown_drink) ).

cnf(vodka_not_unknown,axiom,
~ samedrink(vodka,unknown_drink) ).

cnf(reflexivity_for_samegame,axiom,
samegame(X,X) ).

cnf(backgammon_not_recquetball,axiom,
~ samegame(backgammon,racquetball) ).

cnf(backgammon_not_quoits,axiom,
~ samegame(backgammon,quoits) ).

cnf(backgammon_not_solitaire,axiom,
~ samegame(backgammon,solitaire) ).

cnf(racquetball_not_quoits,axiom,
~ samegame(racquetball,quoits) ).

cnf(racquetball_not_solitaire,axiom,
~ samegame(racquetball,solitaire) ).

cnf(quoits_not_solitaire,axiom,
~ samegame(quoits,solitaire) ).

cnf(reflexivity_for_samepet,axiom,
samepet(X,X) ).

cnf(guppy_not_camel,axiom,
~ samepet(guppy,camel) ).

cnf(guppy_not_rat,axiom,
~ samepet(guppy,rat) ).

cnf(guppy_is_pet,axiom,
~ samepet(guppy,no_pet) ).

cnf(camel_not_rat,axiom,
~ samepet(camel,rat) ).

cnf(camel_is_pet,axiom,
~ samepet(camel,no_pet) ).

cnf(rat_is_pet,axiom,
~ samepet(rat,no_pet) ).

cnf(symmetry_of_nextto,axiom,
( ~ nextto(X,Y)
| nextto(Y,X) ) ).

cnf(non_symmetry_of_left,axiom,
( ~ left(X,Y)
| ~ left(Y,X) ) ).

cnf(nextto_means_left,axiom,
( ~ nextto(X,Y)
| left(X,Y)
| left(Y,X) ) ).

cnf(left_means_nextto,axiom,
( ~ left(X,Y)
| nextto(X,Y) ) ).

cnf(house_not_nextto_itself,axiom,
( ~ samehouse(X,Y)
| ~ nextto(X,Y) ) ).

cnf(nothing_left_of_itself,axiom,
~ left(X,X) ).

cnf(nothing_nextto_itself,axiom,
~ nextto(X,X) ).

cnf(every_house_has_a_national,axiom,
( hasperson(X,englishman)
| hasperson(X,italian)
| hasperson(X,swede)
| hasperson(X,russian)
| hasperson(X,american) ) ).

cnf(every_natioality_is_used,axiom,
( hasperson(n1,Y)
| hasperson(n2,Y)
| hasperson(n3,Y)
| hasperson(n4,Y)
| hasperson(n5,Y) ) ).

cnf(every_house_has_color,axiom,
( hascolor(X,red)
| hascolor(X,white)
| hascolor(X,green)
| hascolor(X,yellow)
| hascolor(X,blue) ) ).

cnf(every_color_is_used,axiom,
( hascolor(n1,Y)
| hascolor(n2,Y)
| hascolor(n3,Y)
| hascolor(n4,Y)
| hascolor(n5,Y) ) ).

cnf(every_house_has_a_drink,axiom,
| hasdrink(X,coffee)
| hasdrink(X,milk)
| hasdrink(X,vodka)
| hasdrink(X,unknown_drink) ) ).

cnf(every_drink_is_used,axiom,
( hasdrink(n1,Y)
| hasdrink(n2,Y)
| hasdrink(n3,Y)
| hasdrink(n4,Y)
| hasdrink(n5,Y) ) ).

cnf(every_house_has_a_game,axiom,
( hasgame(X,backgammon)
| hasgame(X,racquetball)
| hasgame(X,quoits)
| hasgame(X,solitaire)

cnf(every_game_is_used,axiom,
( hasgame(n1,Y)
| hasgame(n2,Y)
| hasgame(n3,Y)
| hasgame(n4,Y)
| hasgame(n5,Y) ) ).

cnf(every_house_has_a_pet,axiom,
( haspet(X,guppy)
| haspet(X,camel)
| haspet(X,rat)
| haspet(X,no_pet) ) ).

cnf(every_pet_is_used,axiom,
( haspet(n1,Y)
| haspet(n2,Y)
| haspet(n3,Y)
| haspet(n4,Y)
| haspet(n5,Y) ) ).

cnf(houses_have_unique_colors,axiom,
( samehouse(X1,X2)
| ~ hascolor(X1,Y)
| ~ hascolor(X2,Y) ) ).

cnf(nationals_have_unique_houses,axiom,
( samehouse(X1,X2)
| ~ hasperson(X1,Y)
| ~ hasperson(X2,Y) ) ).

cnf(drinks_have_unique_houses,axiom,
( samehouse(X1,X2)
| ~ hasdrink(X1,Y)
| ~ hasdrink(X2,Y) ) ).

cnf(games_have_unique_houses,axiom,
( samehouse(X1,X2)
| ~ hasgame(X1,Y)
| ~ hasgame(X2,Y) ) ).

cnf(pets_have_unique_houses,axiom,
( samehouse(X1,X2)
| ~ haspet(X1,Y)
| ~ haspet(X2,Y) ) ).

cnf(houses_have_unique_nationals,axiom,
( sameperson(X1,X2)
| ~ hasperson(Y,X1)
| ~ hasperson(Y,X2) ) ).

cnf(colours_are_unique,axiom,
( samecolor(X1,X2)
| ~ hascolor(Y,X1)
| ~ hascolor(Y,X2) ) ).

cnf(houses_have_unique_drinks,axiom,
( samedrink(X1,X2)
| ~ hasdrink(Y,X1)
| ~ hasdrink(Y,X2) ) ).

cnf(houses_have_unique_games,axiom,
( samegame(X1,X2)
| ~ hasgame(Y,X1)
| ~ hasgame(Y,X2) ) ).

cnf(houses_have_unique_pets,axiom,
( samepet(X1,X2)
| ~ haspet(Y,X1)
| ~ haspet(Y,X2) ) ).

cnf(englishman_lives_in_red_house1,hypothesis,
( ~ hasperson(X,englishman)
| hascolor(X,red) ) ).

cnf(englishman_lives_in_red_house2,hypothesis,
( hasperson(X,englishman)
| ~ hascolor(X,red) ) ).

cnf(white_house_left_of_green1,hypothesis,
( ~ hascolor(X,white)
| ~ hascolor(Y,green)
| left(X,Y) ) ).

cnf(white_house_left_of_green2,hypothesis,
( ~ hascolor(X,white)
| hascolor(Y,green)
| ~ left(X,Y) ) ).

cnf(white_house_left_of_green3,hypothesis,
( hascolor(X,white)
| ~ hascolor(Y,green)
| ~ left(X,Y) ) ).

cnf(italian_has_guppy1,hypothesis,
( ~ hasperson(X,italian)
| haspet(X,guppy) ) ).

cnf(italian_has_guppy2,hypothesis,
( hasperson(X,italian)
| ~ haspet(X,guppy) ) ).

| hascolor(X,green) ) ).

| ~ hascolor(X,green) ) ).

cnf(swede_drinks_coffee1,hypothesis,
( ~ hasperson(X,swede)
| hasdrink(X,coffee) ) ).

cnf(swede_drinks_coffee2,hypothesis,
( hasperson(X,swede)
| ~ hasdrink(X,coffee) ) ).

| hasgame(X,backgammon) ) ).

| ~ hasgame(X,backgammon) ) ).

cnf(racquetball_played_in_yellow_house1,hypothesis,
( ~ hasgame(X,racquetball)
| hascolor(X,yellow) ) ).

cnf(racquetball_played_in_yellow_house2,hypothesis,
( hasgame(X,racquetball)
| ~ hascolor(X,yellow) ) ).

cnf(c1,hypothesis,
( ~ haspet(X,camel)
| samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| hasgame(Y,quoits)
| hasgame(Z,quoits) ) ).

cnf(c2,hypothesis,
( ~ haspet(X,camel)
| ~ samehouse(n1,X)
| ~ nextto(X,Y)
| hasgame(Y,quoits) ) ).

cnf(c3,hypothesis,
( ~ haspet(X,camel)
| ~ samehouse(X,n5)
| ~ nextto(X,Y)
| hasgame(Y,quoits) ) ).

cnf(c4,hypothesis,
( ~ haspet(X,camel)
| nextto(X,Y)
| ~ hasgame(Y,quoits) ) ).

cnf(c5,hypothesis,
( samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| ~ hasgame(X,quoits)
| haspet(Y,camel)
| haspet(Z,camel) ) ).

cnf(c6,hypothesis,
( ~ samehouse(n1,X)
| ~ nextto(X,Y)
| ~ hasgame(X,quoits)
| haspet(Y,camel) ) ).

cnf(c7,hypothesis,
( ~ samehouse(X,n5)
| ~ nextto(X,Y)
| ~ hasgame(X,quoits)
| haspet(Y,camel) ) ).

cnf(c8,hypothesis,
( ~ haspet(X,rat)
| samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| hasgame(Y,racquetball)
| hasgame(Z,racquetball) ) ).

cnf(c9,hypothesis,
( ~ haspet(X,rat)
| ~ nextto(X,Y)
| ~ samehouse(n1,X)
| hasgame(Y,racquetball) ) ).

cnf(c10,hypothesis,
( ~ haspet(X,rat)
| ~ nextto(X,Y)
| ~ samehouse(X,n5)
| hasgame(Y,racquetball) ) ).

cnf(c11,hypothesis,
( ~ haspet(X,rat)
| nextto(X,Y)
| ~ hasgame(Y,racquetball) ) ).

cnf(c12,hypothesis,
( samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| ~ hasgame(X,racquetball)
| haspet(Y,rat)
| haspet(Z,rat) ) ).

cnf(c13,hypothesis,
( ~ nextto(X,Y)
| ~ samehouse(n1,X)
| ~ hasgame(X,racquetball)
| haspet(Y,rat) ) ).

cnf(c14,hypothesis,
( ~ nextto(X,Y)
| ~ samehouse(X,n5)
| ~ hasgame(X,racquetball)
| haspet(Y,rat) ) ).

cnf(c15,hypothesis,
( ~ hasgame(X,solitaire)
| hasdrink(X,vodka) ) ).

cnf(c16,hypothesis,
( hasgame(X,solitaire)
| ~ hasdrink(X,vodka) ) ).

cnf(c17,hypothesis,
( ~ hasperson(X,american)

cnf(c18,hypothesis,
( hasperson(X,american)

cnf(c19,hypothesis,
( ~ hasperson(X,russian)
| samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| hascolor(Y,blue)
| hascolor(Z,blue) ) ).

cnf(c20,hypothesis,
( ~ hasperson(X,russian)
| ~ samehouse(n1,X)
| ~ nextto(X,Y)
| hascolor(Y,blue) ) ).

cnf(c21,hypothesis,
( ~ hasperson(X,russian)
| ~ samehouse(X,n5)
| ~ nextto(X,Y)
| hascolor(Y,blue) ) ).

cnf(c22,hypothesis,
( ~ hasperson(X,russian)
| nextto(X,Y)
| ~ hascolor(Y,blue) ) ).

cnf(c23,hypothesis,
( samehouse(Y,Z)
| ~ nextto(X,Y)
| ~ nextto(X,Z)
| ~ hascolor(X,blue)
| hasperson(Y,russian)
| hasperson(Z,russian) ) ).

cnf(c24,hypothesis,
( ~ nextto(X,Y)
| ~ hascolor(X,blue)
| ~ samehouse(n1,X)
| hasperson(Y,russian) ) ).

cnf(c25,hypothesis,
( ~ nextto(X,Y)
| ~ hascolor(X,blue)
| ~ samehouse(X,n5)
| hasperson(Y,russian) ) ).

cnf(house1_at_left,hypothesis,
~ left(X,n1) ).

cnf(house5_at_right,hypothesis,
~ left(n5,X) ).

cnf(house_1_left_of_2,hypothesis,
left(n1,n2) ).

cnf(house_2_left_of_3,hypothesis,
left(n2,n3) ).

cnf(house_3_left_of_4,hypothesis,
left(n3,n4) ).

cnf(house_4_left_of_5,hypothesis,
left(n4,n5) ).

cnf(house_1_not_nextto_3,hypothesis,
~ nextto(n1,n3) ).

cnf(house_1_not_nextto_4,hypothesis,
~ nextto(n1,n4) ).

cnf(house_1_not_nextto_5,hypothesis,
~ nextto(n1,n5) ).

cnf(house_2_not_nextto_4,hypothesis,
~ nextto(n2,n4) ).

cnf(house_2_not_nextto_5,hypothesis,
~ nextto(n2,n5) ).

cnf(house_3_not_nextto_5,hypothesis,
~ nextto(n3,n5) ).

cnf(house_3_has_milk,hypothesis,
hasdrink(n3,milk) ).

cnf(house_1_has_russian,hypothesis,
hasperson(n1,russian) ).

cnf(find_out_house_details,negated_conjecture,
( ~ hasperson(n1,X0)
| ~ hasperson(n2,X1)
| ~ hasperson(n3,X2)
| ~ hasperson(n4,X3)
| ~ hasperson(n5,X4)
| ~ hascolor(n1,X5)
| ~ hascolor(n2,X6)
| ~ hascolor(n3,X7)
| ~ hascolor(n4,X8)
| ~ hascolor(n5,X9)
| ~ hasdrink(n1,X10)
| ~ hasdrink(n2,X11)
| ~ hasdrink(n3,X11a)
| ~ hasdrink(n4,X12)
| ~ hasdrink(n5,X13)
| ~ hasgame(n1,X14)
| ~ hasgame(n2,X15)
| ~ hasgame(n3,X16)
| ~ hasgame(n4,X17)
| ~ hasgame(n5,X18)
| ~ haspet(n1,X19)
| ~ haspet(n2,X20)
| ~ haspet(n3,X21)
| ~ haspet(n4,X22)
| ~ haspet(n5,X23) ) ).

%--------------------------------------------------------------------------
```