TSTP Solution File: PUZ035-3 by Otter---3.3

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Otter---3.3
% Problem  : PUZ035-3 : TPTP v8.1.0. Released v2.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : otter-tptp-script %s

% Computer : n006.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Wed Jul 27 13:11:26 EDT 2022

% Result   : Unsatisfiable 1.98s 2.18s
% Output   : Refutation 1.98s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    7
%            Number of leaves      :    5
% Syntax   : Number of clauses     :   15 (   6 unt;   8 nHn;  15 RR)
%            Number of literals    :   27 (   0 equ;   4 neg)
%            Maximal clause size   :    3 (   1 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    4 (   3 usr;   1 prp; 0-2 aty)
%            Number of functors    :    7 (   7 usr;   4 con; 0-2 aty)
%            Number of variables   :    4 (   3 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(1,axiom,
    ( ~ person(A)
    | truth(isa(A,knight))
    | truth(isa(A,knave)) ),
    file('PUZ035-3.p',unknown),
    [] ).

cnf(13,axiom,
    ( ~ truth(isa(asked,A))
    | ~ truth(isa(other,B))
    | ~ says(asked,C) ),
    file('PUZ035-3.p',unknown),
    [] ).

cnf(15,axiom,
    ( says(asked,or(isa(asked,knight),isa(other,knight)))
    | says(asked,not(or(isa(asked,knight),isa(other,knight)))) ),
    file('PUZ035-3.p',unknown),
    [] ).

cnf(16,axiom,
    person(asked),
    file('PUZ035-3.p',unknown),
    [] ).

cnf(17,axiom,
    person(other),
    file('PUZ035-3.p',unknown),
    [] ).

cnf(21,plain,
    ( truth(isa(asked,knight))
    | truth(isa(asked,knave)) ),
    inference(hyper,[status(thm)],[16,1]),
    [iquote('hyper,16,1')] ).

cnf(22,plain,
    ( truth(isa(other,knight))
    | truth(isa(other,knave)) ),
    inference(hyper,[status(thm)],[17,1]),
    [iquote('hyper,17,1')] ).

cnf(27,plain,
    ( truth(isa(other,knave))
    | truth(isa(asked,knight))
    | says(asked,or(isa(asked,knight),isa(other,knight))) ),
    inference(hyper,[status(thm)],[22,13,21,15]),
    [iquote('hyper,22,13,21,15')] ).

cnf(36,plain,
    ( truth(isa(asked,knight))
    | says(asked,or(isa(asked,knight),isa(other,knight))) ),
    inference(factor_simp,[status(thm)],[inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[27,13,21,15])])]),
    [iquote('hyper,27,13,21,15,factor_simp,factor_simp')] ).

cnf(37,plain,
    ( truth(isa(other,knave))
    | says(asked,or(isa(asked,knight),isa(other,knight))) ),
    inference(factor_simp,[status(thm)],[inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[27,13,22,15])])]),
    [iquote('hyper,27,13,22,15,factor_simp,factor_simp')] ).

cnf(40,plain,
    says(asked,or(isa(asked,knight),isa(other,knight))),
    inference(factor_simp,[status(thm)],[inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[37,13,36,15])])]),
    [iquote('hyper,37,13,36,15,factor_simp,factor_simp')] ).

cnf(41,plain,
    ( truth(isa(asked,knight))
    | truth(isa(other,knight)) ),
    inference(hyper,[status(thm)],[40,13,21,22]),
    [iquote('hyper,40,13,21,22')] ).

cnf(50,plain,
    truth(isa(other,knight)),
    inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[41,13,22,40])]),
    [iquote('hyper,41,13,22,40,factor_simp')] ).

cnf(51,plain,
    truth(isa(asked,knight)),
    inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[41,13,21,40])]),
    [iquote('hyper,41,13,21,40,factor_simp')] ).

cnf(53,plain,
    $false,
    inference(hyper,[status(thm)],[51,13,50,40]),
    [iquote('hyper,51,13,50,40')] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.06/0.12  % Problem  : PUZ035-3 : TPTP v8.1.0. Released v2.0.0.
% 0.06/0.12  % Command  : otter-tptp-script %s
% 0.13/0.33  % Computer : n006.cluster.edu
% 0.13/0.33  % Model    : x86_64 x86_64
% 0.13/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.33  % Memory   : 8042.1875MB
% 0.13/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.33  % CPULimit : 300
% 0.13/0.33  % WCLimit  : 300
% 0.13/0.33  % DateTime : Wed Jul 27 01:46:32 EDT 2022
% 0.13/0.33  % CPUTime  : 
% 1.98/2.17  ----- Otter 3.3f, August 2004 -----
% 1.98/2.17  The process was started by sandbox2 on n006.cluster.edu,
% 1.98/2.17  Wed Jul 27 01:46:32 2022
% 1.98/2.17  The command was "./otter".  The process ID is 14607.
% 1.98/2.17  
% 1.98/2.17  set(prolog_style_variables).
% 1.98/2.17  set(auto).
% 1.98/2.17     dependent: set(auto1).
% 1.98/2.17     dependent: set(process_input).
% 1.98/2.17     dependent: clear(print_kept).
% 1.98/2.17     dependent: clear(print_new_demod).
% 1.98/2.17     dependent: clear(print_back_demod).
% 1.98/2.17     dependent: clear(print_back_sub).
% 1.98/2.17     dependent: set(control_memory).
% 1.98/2.17     dependent: assign(max_mem, 12000).
% 1.98/2.17     dependent: assign(pick_given_ratio, 4).
% 1.98/2.17     dependent: assign(stats_level, 1).
% 1.98/2.17     dependent: assign(max_seconds, 10800).
% 1.98/2.17  clear(print_given).
% 1.98/2.17  
% 1.98/2.17  list(usable).
% 1.98/2.17  0 [] -person(P)|truth(isa(P,knight))|truth(isa(P,knave)).
% 1.98/2.17  0 [] -truth(isa(P,knight))| -truth(isa(P,knave)).
% 1.98/2.17  0 [] truth(S)| -says(P,S)| -truth(isa(P,knight)).
% 1.98/2.17  0 [] truth(isa(P,knight))| -says(P,S)| -truth(S).
% 1.98/2.17  0 [] truth(not(S))| -says(P,S)| -truth(isa(P,knave)).
% 1.98/2.17  0 [] truth(isa(P,knave))| -says(P,S)| -truth(not(S)).
% 1.98/2.17  0 [] says(asked,or(isa(asked,knight),isa(other,knight)))|says(asked,not(or(isa(asked,knight),isa(other,knight)))).
% 1.98/2.18  0 [] truth(S)|truth(not(S))| -says(Anyone,S).
% 1.98/2.18  0 [] truth(S)|truth(not(S))| -says(Anyone,not(S)).
% 1.98/2.18  0 [] -truth(S)| -truth(not(S)).
% 1.98/2.18  0 [] truth(S1)|truth(S2)| -truth(or(S1,S2)).
% 1.98/2.18  0 [] -truth(S1)| -truth(not(or(S1,Anything))).
% 1.98/2.18  0 [] -truth(S2)| -truth(not(or(Anything,S2))).
% 1.98/2.18  0 [] person(asked).
% 1.98/2.18  0 [] person(other).
% 1.98/2.18  0 [] -truth(isa(asked,P1))| -truth(isa(other,P2))| -says(asked,S).
% 1.98/2.18  end_of_list.
% 1.98/2.18  
% 1.98/2.18  SCAN INPUT: prop=0, horn=0, equality=0, symmetry=0, max_lits=3.
% 1.98/2.18  
% 1.98/2.18  This is a non-Horn set without equality.  The strategy will
% 1.98/2.18  be ordered hyper_res, unit deletion, and factoring, with
% 1.98/2.18  satellites in sos and with nuclei in usable.
% 1.98/2.18  
% 1.98/2.18     dependent: set(hyper_res).
% 1.98/2.18     dependent: set(factor).
% 1.98/2.18     dependent: set(unit_deletion).
% 1.98/2.18  
% 1.98/2.18  ------------> process usable:
% 1.98/2.18  ** KEPT (pick-wt=10): 1 [] -person(A)|truth(isa(A,knight))|truth(isa(A,knave)).
% 1.98/2.18  ** KEPT (pick-wt=8): 2 [] -truth(isa(A,knight))| -truth(isa(A,knave)).
% 1.98/2.18  ** KEPT (pick-wt=9): 3 [] truth(A)| -says(B,A)| -truth(isa(B,knight)).
% 1.98/2.18  ** KEPT (pick-wt=9): 4 [] truth(isa(A,knight))| -says(A,B)| -truth(B).
% 1.98/2.18  ** KEPT (pick-wt=10): 5 [] truth(not(A))| -says(B,A)| -truth(isa(B,knave)).
% 1.98/2.18  ** KEPT (pick-wt=10): 6 [] truth(isa(A,knave))| -says(A,B)| -truth(not(B)).
% 1.98/2.18  ** KEPT (pick-wt=8): 7 [] truth(A)|truth(not(A))| -says(B,A).
% 1.98/2.18  ** KEPT (pick-wt=9): 8 [] truth(A)|truth(not(A))| -says(B,not(A)).
% 1.98/2.18  ** KEPT (pick-wt=5): 9 [] -truth(A)| -truth(not(A)).
% 1.98/2.18  ** KEPT (pick-wt=8): 10 [] truth(A)|truth(B)| -truth(or(A,B)).
% 1.98/2.18  ** KEPT (pick-wt=7): 11 [] -truth(A)| -truth(not(or(A,B))).
% 1.98/2.18  ** KEPT (pick-wt=7): 12 [] -truth(A)| -truth(not(or(B,A))).
% 1.98/2.18  ** KEPT (pick-wt=11): 13 [] -truth(isa(asked,A))| -truth(isa(other,B))| -says(asked,C).
% 1.98/2.18  
% 1.98/2.18  ------------> process sos:
% 1.98/2.18  ** KEPT (pick-wt=19): 15 [] says(asked,or(isa(asked,knight),isa(other,knight)))|says(asked,not(or(isa(asked,knight),isa(other,knight)))).
% 1.98/2.18  ** KEPT (pick-wt=2): 16 [] person(asked).
% 1.98/2.18  ** KEPT (pick-wt=2): 17 [] person(other).
% 1.98/2.18  
% 1.98/2.18  ======= end of input processing =======
% 1.98/2.18  
% 1.98/2.18  =========== start of search ===========
% 1.98/2.18  
% 1.98/2.18  -------- PROOF -------- 
% 1.98/2.18  
% 1.98/2.18  -----> EMPTY CLAUSE at   0.00 sec ----> 53 [hyper,51,13,50,40] $F.
% 1.98/2.18  
% 1.98/2.18  Length of proof is 9.  Level of proof is 6.
% 1.98/2.18  
% 1.98/2.18  ---------------- PROOF ----------------
% 1.98/2.18  % SZS status Unsatisfiable
% 1.98/2.18  % SZS output start Refutation
% See solution above
% 1.98/2.18  ------------ end of proof -------------
% 1.98/2.18  
% 1.98/2.18  
% 1.98/2.18  Search stopped by max_proofs option.
% 1.98/2.18  
% 1.98/2.18  
% 1.98/2.18  Search stopped by max_proofs option.
% 1.98/2.18  
% 1.98/2.18  ============ end of search ============
% 1.98/2.18  
% 1.98/2.18  -------------- statistics -------------
% 1.98/2.18  clauses given                 14
% 1.98/2.18  clauses generated             89
% 1.98/2.18  clauses kept                  52
% 1.98/2.18  clauses forward subsumed      52
% 1.98/2.18  clauses back subsumed         29
% 1.98/2.18  Kbytes malloced              976
% 1.98/2.18  
% 1.98/2.18  ----------- times (seconds) -----------
% 1.98/2.18  user CPU time          0.00          (0 hr, 0 min, 0 sec)
% 1.98/2.18  system CPU time        0.00          (0 hr, 0 min, 0 sec)
% 1.98/2.18  wall-clock time        1             (0 hr, 0 min, 1 sec)
% 1.98/2.18  
% 1.98/2.18  That finishes the proof of the theorem.
% 1.98/2.18  
% 1.98/2.18  Process 14607 finished Wed Jul 27 01:46:33 2022
% 1.98/2.18  Otter interrupted
% 1.98/2.18  PROOF FOUND
%------------------------------------------------------------------------------