%------------------------------------------------------------------------------
% File : ConnectPP---0.7.2
% Problem : PUZ020-1 : TPTP v9.3.1. Released v1.0.0.
% Transfm : none
% Format : tptp:raw
% Command : /export/starexec/sandbox/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% Computer : n007.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8046.5625MB
% OS : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Thu Sep 24 08:54:19 AM UTC 2026
% Result : Unsatisfiable 0.12s 0.37s
% Output : Proof 0.12s
% Verified :
% SZS Type : ERROR: Analysing output (MakeTreeStats fails)
% Comments :
%------------------------------------------------------------------------------
cnf(everyone_a_knight_or_knave,axiom,
( knave(X)
| knight(X)
| ~ person(X) ),
file('theBenchmark.p',everyone_a_knight_or_knave) ).
cnf(not_both_a_knight_and_knave,axiom,
( ~ knave(X)
| ~ knight(X)
| ~ person(X) ),
file('theBenchmark.p',not_both_a_knight_and_knave) ).
cnf(statements_are_true_or_false,axiom,
( ~ a_truth(Y)
| a_truth(Y)
| ~ says(X,Y) ),
file('theBenchmark.p',statements_are_true_or_false) ).
cnf(people_do_not_equal_their_statements1,axiom,
( X != Y
| ~ says(X,Y) ),
file('theBenchmark.p',people_do_not_equal_their_statements1) ).
cnf(peoples_statements,axiom,
( Y = statement_by(X)
| ~ says(X,Y) ),
file('theBenchmark.p',peoples_statements) ).
cnf(people_do_not_equal_their_statement2,axiom,
( X != statement_by(Y)
| ~ person(X) ),
file('theBenchmark.p',people_do_not_equal_their_statement2) ).
cnf(knights_make_true_statements,axiom,
( knight(X)
| ~ a_truth(statement_by(X))
| ~ person(X) ),
file('theBenchmark.p',knights_make_true_statements) ).
cnf(knaves_make_false_statements,axiom,
( knave(X)
| a_truth(statement_by(X))
| ~ person(X) ),
file('theBenchmark.p',knaves_make_false_statements) ).
cnf(knights_say_the_truth,axiom,
( a_truth(Y)
| ~ says(X,Y)
| ~ knight(X) ),
file('theBenchmark.p',knights_say_the_truth) ).
cnf(knaves_do_not_say_the_truth,axiom,
( ~ a_truth(Y)
| ~ says(X,Y)
| ~ knave(X) ),
file('theBenchmark.p',knaves_do_not_say_the_truth) ).
cnf(husband,hypothesis,
person(husband),
file('theBenchmark.p',husband) ).
cnf(wife,hypothesis,
person(wife),
file('theBenchmark.p',wife) ).
cnf(husband_not_wife,hypothesis,
husband != wife,
file('theBenchmark.p',husband_not_wife) ).
cnf(husband_makes_statements,hypothesis,
says(husband,statement_by(husband)),
file('theBenchmark.p',husband_makes_statements) ).
cnf(truthful_knight_husband_means_knight_wife,hypothesis,
( knight(wife)
| ~ knight(husband)
| ~ a_truth(statement_by(husband)) ),
file('theBenchmark.p',truthful_knight_husband_means_knight_wife) ).
cnf(knight_husband_makes_true_statements,hypothesis,
( ~ knight(husband)
| a_truth(statement_by(husband)) ),
file('theBenchmark.p',knight_husband_makes_true_statements) ).
cnf(knight_wife_or_truthful_husband,hypothesis,
( knight(wife)
| a_truth(statement_by(husband)) ),
file('theBenchmark.p',knight_wife_or_truthful_husband) ).
cnf(knight_wife_means_truthful_husband,hypothesis,
( a_truth(statement_by(husband))
| ~ knight(wife) ),
file('theBenchmark.p',knight_wife_means_truthful_husband) ).
cnf(prove_knight_husband,negated_conjecture,
~ knight(husband),
file('theBenchmark.p',prove_knight_husband) ).
cnf(statements_are_true_or_false_true,plain,
$true,
inference(clause_is_true,[status(thm)],[statements_are_true_or_false]) ).
cnf(equality_1,axiom,
Eq_x_0 = Eq_x_0,
theory(equality,[reflexivity]) ).
cnf(equality_2,axiom,
( Eq_x_1 = Eq_x_0
| Eq_x_0 != Eq_x_1 ),
theory(equality,[symmetry]) ).
cnf(equality_3,axiom,
( Eq_x_0 = Eq_x_2
| Eq_x_1 != Eq_x_2
| Eq_x_0 != Eq_x_1 ),
theory(equality,[transitivity]) ).
cnf(equality_4,axiom,
( statement_by(Eq_x_0) = statement_by(Eq_y_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_functions]) ).
cnf(equality_5,axiom,
( person(Eq_y_0)
| ~ person(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_6,axiom,
( knight(Eq_y_0)
| ~ knight(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_7,axiom,
( knave(Eq_y_0)
| ~ knave(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_8,axiom,
( says(Eq_y_0,Eq_y_1)
| ~ says(Eq_x_0,Eq_x_1)
| Eq_x_1 != Eq_y_1
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(equality_9,axiom,
( a_truth(Eq_y_0)
| ~ a_truth(Eq_x_0)
| Eq_x_0 != Eq_y_0 ),
theory(equality,[substitution_predicates]) ).
cnf(sat_proved,plain,
$false,
inference(cadical,[status(thm)],[]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : PUZ020-1 : TPTP v9.3.1. Released v1.0.0.
% 0.00/0.03 This is a CNF_UNS_RFO_SEQ_NHN problem
% 0.00/0.04 % Command : /export/starexec/sandbox/solver/bin/connect++ --verbosity 1 --no-colour --tptp-proof --schedule default --timeout 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.08/0.35 % Computer : n007.cluster.edu
% 0.08/0.35 % Model : x86_64 x86_64
% 0.08/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.08/0.35 % Memory : 8046.5625MB
% 0.08/0.35 % OS : Linux 6.8.0-71-generic
% 0.08/0.35 % CPULimit : 300
% 0.08/0.35 % WCLimit : 300
% 0.08/0.35 % DateTime : Sat Sep 19 19:53:49 UTC 2026
% 0.08/0.35 % CPUTime :
% 0.12/0.37 % SZS status Unsatisfiable for theBenchmark
% 0.12/0.37 % SZS output start Proof for theBenchmark
% See solution above
%------------------------------------------------------------------------------