TPTP Problem File: PUZ018_10.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : PUZ018_10 : TPTP v9.0.0. Released v8.2.0.
% Domain : Puzzles
% Problem : The Interns
% Version : PUZ018_1 with the conjecture removed
% English : Three interns are residents of the same hospital. On only one day
% of the week are all three interns on call. No intern is on call on
% three consecutiveutive days. No two interns are off on the same
% day more than once a week. The first intern is off on Sunday,
% Tuesday, and Thursday. The second intern is off on Thursday and
% Saturday. The third intern is off on Sunday. Which day of the
% week are all three interns on call?
% Refs :
% Source : [TPTP]
% Names :
% Status : Satisfiable
% Rating : 0.00 v8.2.0
% Syntax : Number of formulae : 64 ( 39 unt; 17 typ; 0 def)
% Number of atoms : 71 ( 0 equ)
% Maximal formula atoms : 7 ( 1 avg)
% Number of connectives : 55 ( 31 ~; 11 |; 8 &)
% ( 0 <=>; 5 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 3 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of types : 3 ( 2 usr)
% Number of type conns : 9 ( 5 >; 4 *; 0 +; 0 <<)
% Number of predicates : 5 ( 5 usr; 0 prp; 1-2 aty)
% Number of functors : 10 ( 10 usr; 10 con; 0-0 aty)
% Number of variables : 17 ( 17 !; 0 ?; 17 :)
% SPC : TF0_SAT_NEQ_NAR
% Comments :
%------------------------------------------------------------------------------
tff(day_type,type,
day: $tType ).
tff(person_type,type,
person: $tType ).
tff(all_on_type,type,
all_on: day > $o ).
tff(on_type,type,
on: ( person * day ) > $o ).
tff(consecutive_type,type,
consecutive: ( day * day ) > $o ).
tff(same_day_type,type,
same_day: ( day * day ) > $o ).
tff(same_person_type,type,
same_person: ( person * person ) > $o ).
tff(a_type,type,
a: person ).
tff(b_type,type,
b: person ).
tff(c_type,type,
c: person ).
tff(monday_type,type,
monday: day ).
tff(tuesday_type,type,
tuesday: day ).
tff(wednesday_type,type,
wednesday: day ).
tff(thursday_type,type,
thursday: day ).
tff(friday_type,type,
friday: day ).
tff(sunday_type,type,
sunday: day ).
tff(saturday_type,type,
saturday: day ).
tff(all_on_a_on,axiom,
! [X: day] :
( all_on(X)
=> on(a,X) ) ).
tff(all_on_b_on,axiom,
! [X: day] :
( all_on(X)
=> on(b,X) ) ).
tff(all_on_c_on,axiom,
! [X: day] :
( all_on(X)
=> on(c,X) ) ).
tff(all_on,axiom,
! [X: day] :
( ( on(a,X)
& on(b,X)
& on(c,X) )
=> all_on(X) ) ).
tff(all_on_well_defined,axiom,
! [X: day,Y: day] :
( ( all_on(X)
& all_on(Y) )
=> same_day(X,Y) ) ).
tff(monday_follows_sunday,axiom,
consecutive(sunday,monday) ).
tff(tuesday_follows_monday,axiom,
consecutive(monday,tuesday) ).
tff(wednesday_follows_tuesday,axiom,
consecutive(tuesday,wednesday) ).
tff(thursday_follows_wednesday,axiom,
consecutive(wednesday,thursday) ).
tff(friday_follows_thursday,axiom,
consecutive(thursday,friday) ).
tff(staurday_follows_friday,axiom,
consecutive(friday,saturday) ).
tff(sunday_follows_saturday,axiom,
consecutive(saturday,sunday) ).
tff(reflexivity_for_same_person,axiom,
! [X: person] : same_person(X,X) ).
tff(a_not_b,axiom,
~ same_person(a,b) ).
tff(a_not_c,axiom,
~ same_person(a,c) ).
tff(b_not_c,axiom,
~ same_person(b,c) ).
tff(reflexivity_for_same_day,axiom,
! [X: day] : same_day(X,X) ).
tff(sunday_not_monday,axiom,
~ same_day(sunday,monday) ).
tff(sunday_not_tuesday,axiom,
~ same_day(sunday,tuesday) ).
tff(sunday_not_wednesday,axiom,
~ same_day(sunday,wednesday) ).
tff(sunday_not_thursday,axiom,
~ same_day(sunday,thursday) ).
tff(sunday_not_friday,axiom,
~ same_day(sunday,friday) ).
tff(sunday_not_saturday,axiom,
~ same_day(sunday,saturday) ).
tff(monday_not_tuesday,axiom,
~ same_day(monday,tuesday) ).
tff(monday_not_wednesday,axiom,
~ same_day(monday,wednesday) ).
tff(monday_not_thursday,axiom,
~ same_day(monday,thursday) ).
tff(monday_not_friday,axiom,
~ same_day(monday,friday) ).
tff(monday_not_saturday,axiom,
~ same_day(monday,saturday) ).
tff(tuesday_not_wednesday,axiom,
~ same_day(tuesday,wednesday) ).
tff(tuesday_not_thursday,axiom,
~ same_day(tuesday,thursday) ).
tff(tuesday_not_friday,axiom,
~ same_day(tuesday,friday) ).
tff(tuesday_not_saturday,axiom,
~ same_day(tuesday,saturday) ).
tff(wednesday_not_thursday,axiom,
~ same_day(wednesday,thursday) ).
tff(wednesday_not_friday,axiom,
~ same_day(wednesday,friday) ).
tff(wednesday_not_saturday,axiom,
~ same_day(wednesday,saturday) ).
tff(thursday_not_friday,axiom,
~ same_day(thursday,friday) ).
tff(thursday_not_saturday,axiom,
~ same_day(thursday,saturday) ).
tff(friday_not_saturday,axiom,
~ same_day(friday,saturday) ).
tff(all_on_one_day,hypothesis,
( all_on(sunday)
| all_on(monday)
| all_on(tuesday)
| all_on(wednesday)
| all_on(thursday)
| all_on(friday)
| all_on(saturday) ) ).
tff(not_on_for_3_days,hypothesis,
! [X: day,Y: day,Z: day,W: day,U: person] :
~ ( consecutive(X,Y)
& consecutive(Y,Z)
& consecutive(Z,W)
& on(U,X)
& on(U,Y)
& on(U,Z) ) ).
tff(no_two_off_twice_together,hypothesis,
! [X: person,Y: day,Z: day,W: person] :
( on(X,Y)
| on(X,Z)
| on(W,Y)
| on(W,Z)
| same_person(X,W)
| same_day(Y,Z) ) ).
tff(a_off_sunday,hypothesis,
~ on(a,sunday) ).
tff(a_off_tuesday,hypothesis,
~ on(a,tuesday) ).
tff(a_off_thursday,hypothesis,
~ on(a,thursday) ).
tff(b_off_thursday,hypothesis,
~ on(b,thursday) ).
tff(b_off_saturday,hypothesis,
~ on(b,saturday) ).
tff(c_off_sunday,hypothesis,
~ on(c,sunday) ).
% tff(prove_all_on_friday,conjecture,
% all_on(friday) ).
%------------------------------------------------------------------------------