TPTP Problem File: PUZ134_20.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : PUZ134_20 : TPTP v9.0.0. Released v8.2.0.
% Domain   : Puzzles
% Problem  : The Knowheyan Job Puzzle - Ages
% Version  : PUZ134_2 with the conjecture removed
% English  : Five Knowheyans, A, B, C, D, and E, work in Metropolisas Airfoil
%            Technician, Communications Consultant, Space Planner, Lunar Energy
%            Engineer, and Synthetic Food Nutrionist. No two of them are the
%            same age. The Knowheyan interpreter explains about the jobs and
%            ages of these five inhabitants, as follows:
%            1. The Communications Consultant is not younger than any of the
%               other four.
%            2. D is not as old as A and not as young as B, who is not as old
%               as the Lunar Energy Engineer, but not as young as C.
%            3. The Airfoil Technician is not younger than the Space Planner,
%               who is not younger than the Synthetic Food Nutrionist.
%            4. C is not the yougest of the five.
%            What is the age order of the five Knowheyans?

% Refs     : [WS+06] Willis et al. (2006), The World's Biggest Book of Brai
% Source   : [TPTP]
% Names    : 

% Status   : Satisfiable
% Rating   : 0.00 v8.2.0
% Syntax   : Number of formulae    :   51 (  24 unt;  16 typ;   0 def)
%            Number of atoms       :   56 (  41 equ)
%            Maximal formula atoms :    5 (   1 avg)
%            Number of connectives :   48 (  27   ~;   9   |;   4   &)
%                                         (   1 <=>;   7  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   3 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of types       :    4 (   3 usr)
%            Number of type conns  :    4 (   3   >;   1   *;   0   +;   0  <<)
%            Number of predicates  :    2 (   1 usr;   0 prp; 2-2 aty)
%            Number of functors    :   12 (  12 usr;  10 con; 0-1 aty)
%            Number of variables   :   21 (  19   !;   2   ?;  21   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
%------------------------------------------------------------------------------
tff(knowheyan_type,type,
    knowheyan: $tType ).

tff(job_type,type,
    job: $tType ).

tff(age_type,type,
    age: $tType ).

tff(age_of_type,type,
    age_of: knowheyan > age ).

tff(job_of_type,type,
    job_of: knowheyan > job ).

tff(greater_type,type,
    greater: ( age * age ) > $o ).

tff(a_knowheyan,type,
    a: knowheyan ).

tff(b_knowheyan,type,
    b: knowheyan ).

tff(c_knowheyan,type,
    c: knowheyan ).

tff(d_knowheyan,type,
    d: knowheyan ).

tff(e_knowheyan,type,
    e: knowheyan ).

tff(a_not_b,axiom,
    a != b ).

tff(a_not_c,axiom,
    a != c ).

tff(a_not_d,axiom,
    a != d ).

tff(a_not_e,axiom,
    a != e ).

tff(b_not_c,axiom,
    b != c ).

tff(b_not_d,axiom,
    b != d ).

tff(b_not_e,axiom,
    b != e ).

tff(c_not_d,axiom,
    c != d ).

tff(c_not_e,axiom,
    c != e ).

tff(d_not_e,axiom,
    d != e ).

tff(airfoil_technician_job,type,
    airfoil_technician: job ).

tff(communications_consultant_job,type,
    communications_consultant: job ).

tff(space_planner_job,type,
    space_planner: job ).

tff(lunar_energy_engineer_job,type,
    lunar_energy_engineer: job ).

tff(synthetic_food_nutitionist_job,type,
    synthetic_food_nutitionist: job ).

tff(airfoil_technician_not_communications_consultant,axiom,
    airfoil_technician != communications_consultant ).

tff(airfoil_technician_not_space_planner,axiom,
    airfoil_technician != space_planner ).

tff(airfoil_technician_not_lunar_energy_engineer,axiom,
    airfoil_technician != lunar_energy_engineer ).

tff(airfoil_technician_not_synthetic_food_nutitionist,axiom,
    airfoil_technician != synthetic_food_nutitionist ).

tff(communications_consultant_not_space_planner,axiom,
    communications_consultant != space_planner ).

tff(communications_consultant_not_lunar_energy_engineer,axiom,
    communications_consultant != lunar_energy_engineer ).

tff(communications_consultant_not_synthetic_food_nutitionist,axiom,
    communications_consultant != synthetic_food_nutitionist ).

tff(space_planner_not_lunar_energy_engineer,axiom,
    space_planner != lunar_energy_engineer ).

tff(space_planner_not_synthetic_food_nutitionist,axiom,
    space_planner != synthetic_food_nutitionist ).

tff(lunar_energy_engineer_not_synthetic_food_nutitionist,axiom,
    lunar_energy_engineer != synthetic_food_nutitionist ).

tff(only_knowheyans,axiom,
    ! [X: knowheyan] :
      ( ( X = a )
      | ( X = b )
      | ( X = c )
      | ( X = d )
      | ( X = e ) ) ).

tff(only_jobs,axiom,
    ! [X: job] :
      ( ( X = airfoil_technician )
      | ( X = communications_consultant )
      | ( X = space_planner )
      | ( X = lunar_energy_engineer )
      | ( X = synthetic_food_nutitionist ) ) ).

tff(unique_ages,axiom,
    ! [X: knowheyan,Y: knowheyan] :
      ( ( X != Y )
     => ( age_of(X) != age_of(Y) ) ) ).

tff(unique_jobs,axiom,
    ! [X: knowheyan,Y: knowheyan] :
      ( ( X != Y )
     => ( job_of(X) != job_of(Y) ) ) ).

tff(age_transitive,axiom,
    ! [X: age,Y: age,Z: age] :
      ( ( greater(X,Y)
        & greater(Y,Z) )
     => greater(X,Z) ) ).

tff(age_irreflexive,axiom,
    ! [X: age,Y: age] :
      ~ ( greater(X,Y)
        & greater(Y,X) ) ).

tff(age_greater,axiom,
    ! [X: age,Y: age] :
      ( ( X != Y )
    <=> ( greater(X,Y)
        | greater(Y,X) ) ) ).

tff(communications_consultant_not_younger,axiom,
    ! [X: knowheyan] :
      ( ( job_of(X) = communications_consultant )
     => ~ ? [Y: knowheyan] : greater(age_of(Y),age_of(X)) ) ).

tff(age_info1,axiom,
    greater(age_of(a),age_of(d)) ).

tff(age_info2,axiom,
    greater(age_of(d),age_of(b)) ).

tff(age_info3,axiom,
    ! [X: knowheyan] :
      ( ( job_of(X) = lunar_energy_engineer )
     => greater(age_of(X),age_of(b)) ) ).

tff(age_info4,axiom,
    greater(age_of(b),age_of(c)) ).

tff(age_job1,axiom,
    ! [X: knowheyan,Y: knowheyan] :
      ( ( ( job_of(X) = airfoil_technician )
        & ( job_of(Y) = space_planner ) )
     => greater(age_of(X),age_of(Y)) ) ).

tff(age_job2,axiom,
    ! [X: knowheyan,Y: knowheyan] :
      ( ( ( job_of(X) = space_planner )
        & ( job_of(Y) = synthetic_food_nutitionist ) )
     => greater(age_of(X),age_of(Y)) ) ).

tff(c_not_youngest,axiom,
    ? [X: knowheyan] : greater(age_of(c),age_of(X)) ).

% tff(age_order,conjecture,
%     ( greater(age_of(a),age_of(d))
%     & greater(age_of(d),age_of(b))
%     & greater(age_of(b),age_of(c))
%     & greater(age_of(c),age_of(e)) ) ).

%------------------------------------------------------------------------------