TPTP Problem File: PUZ151_1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : PUZ151_1 : TPTP v9.2.0. Released v9.1.0.
% Domain   : Puzzles
% Problem  : Jon owns Garfield's lovers
% Version  : Especial.
% English  : Jon is the only human. Garfield, Arlene, and Nermal are the only
%            cats. Jon owns Garfield and does not own Arlene. All cats love
%            Garfield. Therefore Jon owns every cat that is not Arlene and
%            loves Garfield.

% Refs     : 
% Source   : [TPTP]
% Names    :

% Status   : CounterSatisfiable
% Rating   : 0.33 v9.1.0
% Syntax   : Number of formulae    :   14 (   2 unt;   8 typ;   0 def)
%            Number of atoms       :   13 (  10 equ)
%            Maximal formula atoms :    3 (   2 avg)
%            Number of connectives :   12 (   5   ~;   2   |;   4   &)
%                                         (   0 <=>;   1  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    5 (   3 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :    3 (   2   >;   1   *;   0   +;   0  <<)
%            Number of predicates  :    2 (   1 usr;   0 prp; 2-2 aty)
%            Number of functors    :    5 (   5 usr;   4 con; 0-1 aty)
%            Number of variables   :    4 (   4   !;   0   ?;   4   :)
% SPC      : TF0_CSA_EQU_NAR

% Comments :
%------------------------------------------------------------------------------
tff(human_type,type,
    human: $tType ).

tff(cat_type,type,
    cat: $tType ).

tff(jon_decl,type,
    jon: human ).

tff(garfield_decl,type,
    garfield: cat ).

tff(arlene_decl,type,
    arlene: cat ).

tff(nermal_decl,type,
    nermal: cat ).

tff(loves_decl,type,
    loves: cat > cat ).

tff(owns_decl,type,
    owns: ( human * cat ) > $o ).

tff(only_jon,axiom,
    ! [H: human] : ( H = jon ) ).

tff(only_garfield_and_arlene_and_nermal,axiom,
    ! [C: cat] :
      ( ( C = garfield )
      | ( C = arlene )
      | ( C = nermal ) ) ).

tff(distinct_cats,axiom,
    ( ( garfield != arlene )
    & ( arlene != nermal )
    & ( nermal != garfield ) ) ).

tff(jon_owns_garfield_not_arlene,axiom,
    ( owns(jon,garfield)
    & ~ owns(jon,arlene) ) ).

tff(all_cats_love_garfield,axiom,
    ! [C: cat] : ( loves(C) = garfield ) ).

tff(jon_owns_garfields_lovers,conjecture,
    ! [C: cat] :
      ( ( ( loves(C) = garfield )
        & ( C != arlene ) )
     => owns(jon,C) ) ).

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