TSTP Solution File: PUZ020-1 by Otter---3.3

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Otter---3.3
% Problem  : PUZ020-1 : TPTP v8.1.0. Released v1.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : otter-tptp-script %s

% Computer : n024.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:23 EDT 2022

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

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

cnf(9,axiom,
    ( ~ knave(A)
    | ~ says(A,B)
    | ~ a_truth(B) ),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(14,axiom,
    ( ~ knight(wife)
    | a_truth(statement_by(husband)) ),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(15,axiom,
    ~ knight(husband),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(17,axiom,
    person(husband),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(19,axiom,
    says(husband,statement_by(husband)),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(20,axiom,
    ( a_truth(statement_by(husband))
    | knight(wife) ),
    file('PUZ020-1.p',unknown),
    [] ).

cnf(22,plain,
    knave(husband),
    inference(unit_del,[status(thm)],[inference(hyper,[status(thm)],[17,1]),15]),
    [iquote('hyper,17,1,unit_del,15')] ).

cnf(31,plain,
    a_truth(statement_by(husband)),
    inference(factor_simp,[status(thm)],[inference(hyper,[status(thm)],[20,14])]),
    [iquote('hyper,20,14,factor_simp')] ).

cnf(32,plain,
    $false,
    inference(hyper,[status(thm)],[31,9,22,19]),
    [iquote('hyper,31,9,22,19')] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : PUZ020-1 : TPTP v8.1.0. Released v1.0.0.
% 0.00/0.12  % Command  : otter-tptp-script %s
% 0.13/0.33  % Computer : n024.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:49:55 EDT 2022
% 0.13/0.33  % CPUTime  : 
% 1.62/1.80  ----- Otter 3.3f, August 2004 -----
% 1.62/1.80  The process was started by sandbox2 on n024.cluster.edu,
% 1.62/1.80  Wed Jul 27 01:49:55 2022
% 1.62/1.80  The command was "./otter".  The process ID is 20184.
% 1.62/1.80  
% 1.62/1.80  set(prolog_style_variables).
% 1.62/1.80  set(auto).
% 1.62/1.80     dependent: set(auto1).
% 1.62/1.80     dependent: set(process_input).
% 1.62/1.80     dependent: clear(print_kept).
% 1.62/1.80     dependent: clear(print_new_demod).
% 1.62/1.80     dependent: clear(print_back_demod).
% 1.62/1.80     dependent: clear(print_back_sub).
% 1.62/1.80     dependent: set(control_memory).
% 1.62/1.80     dependent: assign(max_mem, 12000).
% 1.62/1.80     dependent: assign(pick_given_ratio, 4).
% 1.62/1.80     dependent: assign(stats_level, 1).
% 1.62/1.80     dependent: assign(max_seconds, 10800).
% 1.62/1.80  clear(print_given).
% 1.62/1.80  
% 1.62/1.80  list(usable).
% 1.62/1.80  0 [] A=A.
% 1.62/1.80  0 [] -person(X)|knight(X)|knave(X).
% 1.62/1.80  0 [] -person(X)| -knight(X)| -knave(X).
% 1.62/1.80  0 [] -says(X,Y)|a_truth(Y)| -a_truth(Y).
% 1.62/1.80  0 [] -says(X,Y)|X!=Y.
% 1.62/1.80  0 [] -says(X,Y)|Y=statement_by(X).
% 1.62/1.80  0 [] -person(X)|X!=statement_by(Y).
% 1.62/1.80  0 [] -person(X)| -a_truth(statement_by(X))|knight(X).
% 1.62/1.80  0 [] -person(X)|a_truth(statement_by(X))|knave(X).
% 1.62/1.80  0 [] -knight(X)| -says(X,Y)|a_truth(Y).
% 1.62/1.80  0 [] -knave(X)| -says(X,Y)| -a_truth(Y).
% 1.62/1.80  0 [] person(husband).
% 1.62/1.80  0 [] person(wife).
% 1.62/1.80  0 [] husband!=wife.
% 1.62/1.80  0 [] says(husband,statement_by(husband)).
% 1.62/1.80  0 [] -a_truth(statement_by(husband))| -knight(husband)|knight(wife).
% 1.62/1.80  0 [] a_truth(statement_by(husband))| -knight(husband).
% 1.62/1.80  0 [] a_truth(statement_by(husband))|knight(wife).
% 1.62/1.80  0 [] -knight(wife)|a_truth(statement_by(husband)).
% 1.62/1.80  0 [] -knight(husband).
% 1.62/1.80  end_of_list.
% 1.62/1.80  
% 1.62/1.80  SCAN INPUT: prop=0, horn=0, equality=1, symmetry=0, max_lits=3.
% 1.62/1.80  
% 1.62/1.80  This ia a non-Horn set with equality.  The strategy will be
% 1.62/1.80  Knuth-Bendix, ordered hyper_res, factoring, and unit
% 1.62/1.80  deletion, with positive clauses in sos and nonpositive
% 1.62/1.80  clauses in usable.
% 1.62/1.80  
% 1.62/1.80     dependent: set(knuth_bendix).
% 1.62/1.80     dependent: set(anl_eq).
% 1.62/1.80     dependent: set(para_from).
% 1.62/1.80     dependent: set(para_into).
% 1.62/1.80     dependent: clear(para_from_right).
% 1.62/1.80     dependent: clear(para_into_right).
% 1.62/1.80     dependent: set(para_from_vars).
% 1.62/1.80     dependent: set(eq_units_both_ways).
% 1.62/1.80     dependent: set(dynamic_demod_all).
% 1.62/1.80     dependent: set(dynamic_demod).
% 1.62/1.80     dependent: set(order_eq).
% 1.62/1.80     dependent: set(back_demod).
% 1.62/1.80     dependent: set(lrpo).
% 1.62/1.80     dependent: set(hyper_res).
% 1.62/1.80     dependent: set(unit_deletion).
% 1.62/1.80     dependent: set(factor).
% 1.62/1.80  
% 1.62/1.80  ------------> process usable:
% 1.62/1.80  ** KEPT (pick-wt=6): 1 [] -person(A)|knight(A)|knave(A).
% 1.62/1.80  ** KEPT (pick-wt=6): 2 [] -person(A)| -knight(A)| -knave(A).
% 1.62/1.80  ** KEPT (pick-wt=6): 3 [] -says(A,B)|A!=B.
% 1.62/1.80  ** KEPT (pick-wt=7): 4 [] -says(A,B)|B=statement_by(A).
% 1.62/1.80  ** KEPT (pick-wt=6): 5 [] -person(A)|A!=statement_by(B).
% 1.62/1.80  ** KEPT (pick-wt=7): 6 [] -person(A)| -a_truth(statement_by(A))|knight(A).
% 1.62/1.80  ** KEPT (pick-wt=7): 7 [] -person(A)|a_truth(statement_by(A))|knave(A).
% 1.62/1.80  ** KEPT (pick-wt=7): 8 [] -knight(A)| -says(A,B)|a_truth(B).
% 1.62/1.80  ** KEPT (pick-wt=7): 9 [] -knave(A)| -says(A,B)| -a_truth(B).
% 1.62/1.80  ** KEPT (pick-wt=3): 11 [copy,10,flip.1] wife!=husband.
% 1.62/1.80  ** KEPT (pick-wt=7): 12 [] -a_truth(statement_by(husband))| -knight(husband)|knight(wife).
% 1.62/1.80  ** KEPT (pick-wt=5): 13 [] a_truth(statement_by(husband))| -knight(husband).
% 1.62/1.80  ** KEPT (pick-wt=5): 14 [] -knight(wife)|a_truth(statement_by(husband)).
% 1.62/1.80  ** KEPT (pick-wt=2): 15 [] -knight(husband).
% 1.62/1.80  15 back subsumes 13.
% 1.62/1.80  15 back subsumes 12.
% 1.62/1.80  
% 1.62/1.80  ------------> process sos:
% 1.62/1.80  ** KEPT (pick-wt=3): 16 [] A=A.
% 1.62/1.80  ** KEPT (pick-wt=2): 17 [] person(husband).
% 1.62/1.80  ** KEPT (pick-wt=2): 18 [] person(wife).
% 1.62/1.80  ** KEPT (pick-wt=4): 19 [] says(husband,statement_by(husband)).
% 1.62/1.80  ** KEPT (pick-wt=5): 20 [] a_truth(statement_by(husband))|knight(wife).
% 1.62/1.80    Following clause subsumed by 16 during input processing: 0 [copy,16,flip.1] A=A.
% 1.62/1.80  
% 1.62/1.80  ======= end of input processing =======
% 1.62/1.80  
% 1.62/1.80  =========== start of search ===========
% 1.62/1.80  
% 1.62/1.80  -------- PROOF -------- 
% 1.62/1.80  
% 1.62/1.80  -----> EMPTY CLAUSE at   0.00 sec ----> 32 [hyper,31,9,22,19] $F.
% 1.62/1.80  
% 1.62/1.80  Length of proof is 2.  Level of proof is 1.
% 1.62/1.80  
% 1.62/1.80  ---------------- PROOF ----------------
% 1.62/1.80  % SZS status Unsatisfiable
% 1.62/1.80  % SZS output start Refutation
% See solution above
% 1.62/1.80  ------------ end of proof -------------
% 1.62/1.80  
% 1.62/1.80  
% 1.62/1.80  Search stopped by max_proofs option.
% 1.62/1.80  
% 1.62/1.80  
% 1.62/1.80  Search stopped by max_proofs option.
% 1.62/1.80  
% 1.62/1.80  ============ end of search ============
% 1.62/1.80  
% 1.62/1.80  -------------- statistics -------------
% 1.62/1.80  clauses given                  7
% 1.62/1.80  clauses generated             13
% 1.62/1.80  clauses kept                  30
% 1.62/1.80  clauses forward subsumed       2
% 1.62/1.80  clauses back subsumed          5
% 1.62/1.80  Kbytes malloced              976
% 1.62/1.80  
% 1.62/1.80  ----------- times (seconds) -----------
% 1.62/1.80  user CPU time          0.00          (0 hr, 0 min, 0 sec)
% 1.62/1.80  system CPU time        0.00          (0 hr, 0 min, 0 sec)
% 1.62/1.80  wall-clock time        1             (0 hr, 0 min, 1 sec)
% 1.62/1.80  
% 1.62/1.80  That finishes the proof of the theorem.
% 1.62/1.80  
% 1.62/1.80  Process 20184 finished Wed Jul 27 01:49:56 2022
% 1.62/1.80  Otter interrupted
% 1.62/1.80  PROOF FOUND
%------------------------------------------------------------------------------