TSTP Solution File: PUZ035-7 by Z3---4.8.9.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Z3---4.8.9.0
% Problem  : PUZ035-7 : TPTP v8.1.0. Released v2.0.0.
% Transfm  : none
% Format   : tptp
% Command  : z3_tptp -proof -model -t:%d -file:%s

% Computer : n013.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 : Sun Sep 18 14:11:02 EDT 2022

% Result   : Unsatisfiable 0.21s 0.46s
% Output   : Proof 0.21s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.04/0.12  % Problem  : PUZ035-7 : TPTP v8.1.0. Released v2.0.0.
% 0.13/0.13  % Command  : z3_tptp -proof -model -t:%d -file:%s
% 0.14/0.35  % Computer : n013.cluster.edu
% 0.14/0.35  % Model    : x86_64 x86_64
% 0.14/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35  % Memory   : 8042.1875MB
% 0.14/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35  % CPULimit : 300
% 0.14/0.35  % WCLimit  : 300
% 0.14/0.35  % DateTime : Fri Sep  2 18:21:17 EDT 2022
% 0.21/0.35  % CPUTime  : 
% 0.21/0.35  Z3tptp [4.8.9.0] (c) 2006-20**. Microsoft Corp.
% 0.21/0.35  Usage: tptp [options] [-file:]file
% 0.21/0.35    -h, -?       prints this message.
% 0.21/0.35    -smt2        print SMT-LIB2 benchmark.
% 0.21/0.35    -m, -model   generate model.
% 0.21/0.35    -p, -proof   generate proof.
% 0.21/0.35    -c, -core    generate unsat core of named formulas.
% 0.21/0.35    -st, -statistics display statistics.
% 0.21/0.35    -t:timeout   set timeout (in second).
% 0.21/0.35    -smt2status  display status in smt2 format instead of SZS.
% 0.21/0.35    -check_status check the status produced by Z3 against annotation in benchmark.
% 0.21/0.35    -<param>:<value> configuration parameter and value.
% 0.21/0.35    -o:<output-file> file to place output in.
% 0.21/0.46  % SZS status Unsatisfiable
% 0.21/0.46  % SZS output start Proof
% 0.21/0.46  tff(truth_type, type, (
% 0.21/0.46     truth: $i > $o)).
% 0.21/0.46  tff(isa_type, type, (
% 0.21/0.46     isa: ( $i * $i ) > $i)).
% 0.21/0.46  tff(knave_type, type, (
% 0.21/0.46     knave: $i)).
% 0.21/0.46  tff(other_type, type, (
% 0.21/0.46     other: $i)).
% 0.21/0.46  tff(knight_type, type, (
% 0.21/0.46     knight: $i)).
% 0.21/0.46  tff(asked_type, type, (
% 0.21/0.46     asked: $i)).
% 0.21/0.46  tff(or_type, type, (
% 0.21/0.46     or: ( $i * $i ) > $i)).
% 0.21/0.46  tff(reply_type, type, (
% 0.21/0.46     reply: ( $i * $i * $i ) > $o)).
% 0.21/0.46  tff(yes_type, type, (
% 0.21/0.46     yes: $i)).
% 0.21/0.46  tff(no_type, type, (
% 0.21/0.46     no: $i)).
% 0.21/0.46  tff(1,assumption,(~truth(isa(asked, knight))), introduced(assumption)).
% 0.21/0.46  tff(2,plain,
% 0.21/0.46      (^[P: $i] : refl((truth(isa(P, knave)) | truth(isa(P, knight))) <=> (truth(isa(P, knave)) | truth(isa(P, knight))))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(3,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight))) <=> ![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[2])).
% 0.21/0.46  tff(4,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight))) <=> ![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(5,plain,
% 0.21/0.46      (^[P: $i] : rewrite((truth(isa(P, knight)) | truth(isa(P, knave))) <=> (truth(isa(P, knave)) | truth(isa(P, knight))))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(6,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knight)) | truth(isa(P, knave))) <=> ![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[5])).
% 0.21/0.46  tff(7,axiom,(![P: $i] : (truth(isa(P, knight)) | truth(isa(P, knave)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','everyone_a_knight_or_knave')).
% 0.21/0.46  tff(8,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[7, 6])).
% 0.21/0.46  tff(9,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[8, 4])).
% 0.21/0.46  tff(10,plain,(
% 0.21/0.46      ![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(skolemize,[status(sab)],[9])).
% 0.21/0.46  tff(11,plain,
% 0.21/0.46      (![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[10, 3])).
% 0.21/0.46  tff(12,plain,
% 0.21/0.46      (((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | (truth(isa(asked, knave)) | truth(isa(asked, knight)))) <=> ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | truth(isa(asked, knave)) | truth(isa(asked, knight)))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(13,plain,
% 0.21/0.46      ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | (truth(isa(asked, knave)) | truth(isa(asked, knight)))),
% 0.21/0.46      inference(quant_inst,[status(thm)],[])).
% 0.21/0.46  tff(14,plain,
% 0.21/0.46      ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | truth(isa(asked, knave)) | truth(isa(asked, knight))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[13, 12])).
% 0.21/0.46  tff(15,plain,
% 0.21/0.46      (truth(isa(asked, knave)) | truth(isa(asked, knight))),
% 0.21/0.46      inference(unit_resolution,[status(thm)],[14, 11])).
% 0.21/0.46  tff(16,plain,
% 0.21/0.46      (truth(isa(asked, knave))),
% 0.21/0.46      inference(unit_resolution,[status(thm)],[15, 1])).
% 0.21/0.46  tff(17,assumption,(~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)), introduced(assumption)).
% 0.21/0.46  tff(18,plain,
% 0.21/0.46      (^[Q: $i, P: $i] : refl((reply(P, Q, no) | reply(P, Q, yes)) <=> (reply(P, Q, no) | reply(P, Q, yes)))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(19,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes)) <=> ![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[18])).
% 0.21/0.46  tff(20,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes)) <=> ![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(21,plain,
% 0.21/0.46      (^[Q: $i, P: $i] : rewrite((reply(P, Q, yes) | reply(P, Q, no)) <=> (reply(P, Q, no) | reply(P, Q, yes)))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(22,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, yes) | reply(P, Q, no)) <=> ![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[21])).
% 0.21/0.46  tff(23,axiom,(![Q: $i, P: $i] : (reply(P, Q, yes) | reply(P, Q, no))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','yes_or_no')).
% 0.21/0.46  tff(24,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[23, 22])).
% 0.21/0.46  tff(25,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[24, 20])).
% 0.21/0.46  tff(26,plain,(
% 0.21/0.46      ![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(skolemize,[status(sab)],[25])).
% 0.21/0.46  tff(27,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[26, 19])).
% 0.21/0.46  tff(28,plain,
% 0.21/0.46      (((~![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))) | (reply(asked, or(isa(asked, knight), isa(other, knight)), no) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))) | reply(asked, or(isa(asked, knight), isa(other, knight)), no) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(29,plain,
% 0.21/0.46      ((~![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))) | (reply(asked, or(isa(asked, knight), isa(other, knight)), no) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.46      inference(quant_inst,[status(thm)],[])).
% 0.21/0.46  tff(30,plain,
% 0.21/0.46      ((~![Q: $i, P: $i] : (reply(P, Q, no) | reply(P, Q, yes))) | reply(asked, or(isa(asked, knight), isa(other, knight)), no) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[29, 28])).
% 0.21/0.46  tff(31,plain,
% 0.21/0.46      (reply(asked, or(isa(asked, knight), isa(other, knight)), no)),
% 0.21/0.46      inference(unit_resolution,[status(thm)],[30, 27, 17])).
% 0.21/0.46  tff(32,plain,
% 0.21/0.46      (^[Q: $i, P: $i] : refl((truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q)) <=> (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q)))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(33,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q)) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[32])).
% 0.21/0.46  tff(34,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q)) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(35,plain,
% 0.21/0.46      (^[Q: $i, P: $i] : rewrite(((truth(Q) | truth(isa(P, knight))) | reply(P, Q, yes)) <=> (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q)))),
% 0.21/0.46      inference(bind,[status(th)],[])).
% 0.21/0.46  tff(36,plain,
% 0.21/0.46      (![Q: $i, P: $i] : ((truth(Q) | truth(isa(P, knight))) | reply(P, Q, yes)) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(quant_intro,[status(thm)],[35])).
% 0.21/0.46  tff(37,axiom,(![Q: $i, P: $i] : ((truth(Q) | truth(isa(P, knight))) | reply(P, Q, yes))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','knights_make_true_statements4')).
% 0.21/0.46  tff(38,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[37, 36])).
% 0.21/0.46  tff(39,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[38, 34])).
% 0.21/0.46  tff(40,plain,(
% 0.21/0.46      ![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(skolemize,[status(sab)],[39])).
% 0.21/0.46  tff(41,plain,
% 0.21/0.46      (![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))),
% 0.21/0.46      inference(modus_ponens,[status(thm)],[40, 33])).
% 0.21/0.46  tff(42,plain,
% 0.21/0.46      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | (truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.46      inference(rewrite,[status(thm)],[])).
% 0.21/0.46  tff(43,plain,
% 0.21/0.46      ((truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | truth(or(isa(asked, knight), isa(other, knight)))) <=> (truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(44,plain,
% 0.21/0.47      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | (truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | truth(or(isa(asked, knight), isa(other, knight))))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | (truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.47      inference(monotonicity,[status(thm)],[43])).
% 0.21/0.47  tff(45,plain,
% 0.21/0.47      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | (truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | truth(or(isa(asked, knight), isa(other, knight))))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.47      inference(transitivity,[status(thm)],[44, 42])).
% 0.21/0.47  tff(46,plain,
% 0.21/0.47      ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | (truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.47      inference(quant_inst,[status(thm)],[])).
% 0.21/0.47  tff(47,plain,
% 0.21/0.47      ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | reply(P, Q, yes) | truth(Q))) | truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[46, 45])).
% 0.21/0.47  tff(48,plain,
% 0.21/0.47      (truth(or(isa(asked, knight), isa(other, knight))) | truth(isa(asked, knight))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[47, 41, 17])).
% 0.21/0.47  tff(49,plain,
% 0.21/0.47      (truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[48, 1])).
% 0.21/0.47  tff(50,plain,
% 0.21/0.47      (^[B: $i, A: $i] : refl((truth(B) | truth(A) | (~truth(or(A, B)))) <=> (truth(B) | truth(A) | (~truth(or(A, B)))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(51,plain,
% 0.21/0.47      (![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B)))) <=> ![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[50])).
% 0.21/0.47  tff(52,plain,
% 0.21/0.47      (![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B)))) <=> ![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(53,plain,
% 0.21/0.47      (^[B: $i, A: $i] : rewrite(((truth(A) | truth(B)) | (~truth(or(A, B)))) <=> (truth(B) | truth(A) | (~truth(or(A, B)))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(54,plain,
% 0.21/0.47      (![B: $i, A: $i] : ((truth(A) | truth(B)) | (~truth(or(A, B)))) <=> ![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[53])).
% 0.21/0.47  tff(55,axiom,(![B: $i, A: $i] : ((truth(A) | truth(B)) | (~truth(or(A, B))))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','or1')).
% 0.21/0.47  tff(56,plain,
% 0.21/0.47      (![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[55, 54])).
% 0.21/0.47  tff(57,plain,
% 0.21/0.47      (![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[56, 52])).
% 0.21/0.47  tff(58,plain,(
% 0.21/0.47      ![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(skolemize,[status(sab)],[57])).
% 0.21/0.47  tff(59,plain,
% 0.21/0.47      (![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[58, 51])).
% 0.21/0.47  tff(60,plain,
% 0.21/0.47      (((~![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))) | (truth(isa(other, knight)) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))))) <=> ((~![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))) | truth(isa(other, knight)) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(61,plain,
% 0.21/0.47      ((~![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))) | (truth(isa(other, knight)) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))))),
% 0.21/0.47      inference(quant_inst,[status(thm)],[])).
% 0.21/0.47  tff(62,plain,
% 0.21/0.47      ((~![B: $i, A: $i] : (truth(B) | truth(A) | (~truth(or(A, B))))) | truth(isa(other, knight)) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[61, 60])).
% 0.21/0.47  tff(63,plain,
% 0.21/0.47      (truth(isa(other, knight)) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[62, 59])).
% 0.21/0.47  tff(64,plain,
% 0.21/0.47      (truth(isa(other, knight))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[63, 1, 49])).
% 0.21/0.47  tff(65,plain,
% 0.21/0.47      (^[R: $i, Y: $i, X: $i] : refl(((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))) <=> ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(66,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))) <=> ![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[65])).
% 0.21/0.47  tff(67,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))) <=> ![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(68,plain,
% 0.21/0.47      (^[R: $i, Y: $i, X: $i] : trans(monotonicity(rewrite(((~reply(asked, or(isa(asked, knight), isa(other, knight)), R)) | (~truth(isa(asked, X)))) <=> ((~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))), ((((~reply(asked, or(isa(asked, knight), isa(other, knight)), R)) | (~truth(isa(asked, X)))) | (~truth(isa(other, Y)))) <=> (((~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))) | (~truth(isa(other, Y)))))), rewrite((((~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R))) | (~truth(isa(other, Y)))) <=> ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))), ((((~reply(asked, or(isa(asked, knight), isa(other, knight)), R)) | (~truth(isa(asked, X)))) | (~truth(isa(other, Y)))) <=> ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(69,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : (((~reply(asked, or(isa(asked, knight), isa(other, knight)), R)) | (~truth(isa(asked, X)))) | (~truth(isa(other, Y)))) <=> ![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[68])).
% 0.21/0.47  tff(70,axiom,(![R: $i, Y: $i, X: $i] : (((~reply(asked, or(isa(asked, knight), isa(other, knight)), R)) | (~truth(isa(asked, X)))) | (~truth(isa(other, Y))))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','prove_answer')).
% 0.21/0.47  tff(71,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[70, 69])).
% 0.21/0.47  tff(72,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[71, 67])).
% 0.21/0.47  tff(73,plain,(
% 0.21/0.47      ![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(skolemize,[status(sab)],[72])).
% 0.21/0.47  tff(74,plain,
% 0.21/0.47      (![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[73, 66])).
% 0.21/0.47  tff(75,plain,
% 0.21/0.47      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave))))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave))))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(76,plain,
% 0.21/0.47      (((~truth(isa(other, knight))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no))) <=> ((~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave))))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(77,plain,
% 0.21/0.47      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave)))))),
% 0.21/0.47      inference(monotonicity,[status(thm)],[76])).
% 0.21/0.47  tff(78,plain,
% 0.21/0.47      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave))))),
% 0.21/0.47      inference(transitivity,[status(thm)],[77, 75])).
% 0.21/0.47  tff(79,plain,
% 0.21/0.47      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)))),
% 0.21/0.47      inference(quant_inst,[status(thm)],[])).
% 0.21/0.47  tff(80,plain,
% 0.21/0.47      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), no)) | (~truth(isa(other, knight))) | (~truth(isa(asked, knave)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[79, 78])).
% 0.21/0.47  tff(81,plain,
% 0.21/0.47      ($false),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[80, 74, 64, 31, 16])).
% 0.21/0.47  tff(82,plain,(truth(isa(asked, knight)) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)), inference(lemma,lemma(discharge,[]))).
% 0.21/0.47  tff(83,plain,
% 0.21/0.47      (truth(isa(asked, knight))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[82, 17])).
% 0.21/0.47  tff(84,plain,
% 0.21/0.47      (^[Q: $i, P: $i] : refl(((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q))) <=> ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(85,plain,
% 0.21/0.47      (![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q))) <=> ![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[84])).
% 0.21/0.47  tff(86,plain,
% 0.21/0.47      (![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q))) <=> ![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(87,plain,
% 0.21/0.47      (^[Q: $i, P: $i] : rewrite((((~truth(Q)) | (~truth(isa(P, knight)))) | reply(P, Q, yes)) <=> ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q))))),
% 0.21/0.47      inference(bind,[status(th)],[])).
% 0.21/0.47  tff(88,plain,
% 0.21/0.47      (![Q: $i, P: $i] : (((~truth(Q)) | (~truth(isa(P, knight)))) | reply(P, Q, yes)) <=> ![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(quant_intro,[status(thm)],[87])).
% 0.21/0.47  tff(89,axiom,(![Q: $i, P: $i] : (((~truth(Q)) | (~truth(isa(P, knight)))) | reply(P, Q, yes))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','knights_make_true_statements3')).
% 0.21/0.47  tff(90,plain,
% 0.21/0.47      (![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[89, 88])).
% 0.21/0.47  tff(91,plain,
% 0.21/0.47      (![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[90, 86])).
% 0.21/0.47  tff(92,plain,(
% 0.21/0.47      ![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(skolemize,[status(sab)],[91])).
% 0.21/0.47  tff(93,plain,
% 0.21/0.47      (![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[92, 85])).
% 0.21/0.47  tff(94,plain,
% 0.21/0.47      (((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | ((~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(95,plain,
% 0.21/0.47      (((~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | (~truth(or(isa(asked, knight), isa(other, knight))))) <=> ((~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.47      inference(rewrite,[status(thm)],[])).
% 0.21/0.47  tff(96,plain,
% 0.21/0.47      (((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | ((~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | (~truth(or(isa(asked, knight), isa(other, knight)))))) <=> ((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | ((~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.47      inference(monotonicity,[status(thm)],[95])).
% 0.21/0.47  tff(97,plain,
% 0.21/0.47      (((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | ((~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | (~truth(or(isa(asked, knight), isa(other, knight)))))) <=> ((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.47      inference(transitivity,[status(thm)],[96, 94])).
% 0.21/0.47  tff(98,plain,
% 0.21/0.47      ((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | ((~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes) | (~truth(or(isa(asked, knight), isa(other, knight)))))),
% 0.21/0.47      inference(quant_inst,[status(thm)],[])).
% 0.21/0.47  tff(99,plain,
% 0.21/0.47      ((~![Q: $i, P: $i] : ((~truth(isa(P, knight))) | reply(P, Q, yes) | (~truth(Q)))) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight))) | reply(asked, or(isa(asked, knight), isa(other, knight)), yes)),
% 0.21/0.47      inference(modus_ponens,[status(thm)],[98, 97])).
% 0.21/0.47  tff(100,plain,
% 0.21/0.47      ((~truth(or(isa(asked, knight), isa(other, knight)))) | (~truth(isa(asked, knight)))),
% 0.21/0.47      inference(unit_resolution,[status(thm)],[99, 93, 17])).
% 0.21/0.47  tff(101,plain,
% 0.21/0.48      (~truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[100, 83])).
% 0.21/0.48  tff(102,plain,
% 0.21/0.48      (^[B: $i, A: $i] : refl(((~truth(A)) | truth(or(A, B))) <=> ((~truth(A)) | truth(or(A, B))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(103,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B))) <=> ![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[102])).
% 0.21/0.48  tff(104,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B))) <=> ![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(105,plain,
% 0.21/0.48      (^[B: $i, A: $i] : rewrite((truth(or(A, B)) | (~truth(A))) <=> ((~truth(A)) | truth(or(A, B))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(106,plain,
% 0.21/0.48      (![B: $i, A: $i] : (truth(or(A, B)) | (~truth(A))) <=> ![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[105])).
% 0.21/0.48  tff(107,axiom,(![B: $i, A: $i] : (truth(or(A, B)) | (~truth(A)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','or2')).
% 0.21/0.48  tff(108,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[107, 106])).
% 0.21/0.48  tff(109,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[108, 104])).
% 0.21/0.48  tff(110,plain,(
% 0.21/0.48      ![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(skolemize,[status(sab)],[109])).
% 0.21/0.48  tff(111,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[110, 103])).
% 0.21/0.48  tff(112,plain,
% 0.21/0.48      (((~![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))) | ((~truth(isa(asked, knight))) | truth(or(isa(asked, knight), isa(other, knight))))) <=> ((~![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))) | (~truth(isa(asked, knight))) | truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(113,plain,
% 0.21/0.48      ((~![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))) | ((~truth(isa(asked, knight))) | truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.48      inference(quant_inst,[status(thm)],[])).
% 0.21/0.48  tff(114,plain,
% 0.21/0.48      ((~![B: $i, A: $i] : ((~truth(A)) | truth(or(A, B)))) | (~truth(isa(asked, knight))) | truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[113, 112])).
% 0.21/0.48  tff(115,plain,
% 0.21/0.48      ((~truth(isa(asked, knight))) | truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[114, 111])).
% 0.21/0.48  tff(116,plain,
% 0.21/0.48      ($false),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[115, 101, 83])).
% 0.21/0.48  tff(117,plain,(reply(asked, or(isa(asked, knight), isa(other, knight)), yes)), inference(lemma,lemma(discharge,[]))).
% 0.21/0.48  tff(118,plain,
% 0.21/0.48      (^[Q: $i, P: $i] : refl((truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q))) <=> (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(119,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q))) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[118])).
% 0.21/0.48  tff(120,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q))) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(121,plain,
% 0.21/0.48      (^[Q: $i, P: $i] : rewrite((((~truth(Q)) | truth(isa(P, knight))) | (~reply(P, Q, yes))) <=> (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(122,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (((~truth(Q)) | truth(isa(P, knight))) | (~reply(P, Q, yes))) <=> ![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[121])).
% 0.21/0.48  tff(123,axiom,(![Q: $i, P: $i] : (((~truth(Q)) | truth(isa(P, knight))) | (~reply(P, Q, yes)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','knights_make_true_statements2')).
% 0.21/0.48  tff(124,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[123, 122])).
% 0.21/0.48  tff(125,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[124, 120])).
% 0.21/0.48  tff(126,plain,(
% 0.21/0.48      ![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(skolemize,[status(sab)],[125])).
% 0.21/0.48  tff(127,plain,
% 0.21/0.48      (![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[126, 119])).
% 0.21/0.48  tff(128,plain,
% 0.21/0.48      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | (truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(129,plain,
% 0.21/0.48      ((truth(isa(asked, knight)) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(or(isa(asked, knight), isa(other, knight))))) <=> (truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(130,plain,
% 0.21/0.48      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | (truth(isa(asked, knight)) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(or(isa(asked, knight), isa(other, knight)))))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | (truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes))))),
% 0.21/0.48      inference(monotonicity,[status(thm)],[129])).
% 0.21/0.48  tff(131,plain,
% 0.21/0.48      (((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | (truth(isa(asked, knight)) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(or(isa(asked, knight), isa(other, knight)))))) <=> ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.48      inference(transitivity,[status(thm)],[130, 128])).
% 0.21/0.48  tff(132,plain,
% 0.21/0.48      ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | (truth(isa(asked, knight)) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(or(isa(asked, knight), isa(other, knight)))))),
% 0.21/0.48      inference(quant_inst,[status(thm)],[])).
% 0.21/0.48  tff(133,plain,
% 0.21/0.48      ((~![Q: $i, P: $i] : (truth(isa(P, knight)) | (~reply(P, Q, yes)) | (~truth(Q)))) | truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[132, 131])).
% 0.21/0.48  tff(134,plain,
% 0.21/0.48      (truth(isa(asked, knight)) | (~truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[133, 127, 117])).
% 0.21/0.48  tff(135,plain,
% 0.21/0.48      (~truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[134, 1])).
% 0.21/0.48  tff(136,plain,
% 0.21/0.48      (^[B: $i, A: $i] : refl(((~truth(B)) | truth(or(A, B))) <=> ((~truth(B)) | truth(or(A, B))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(137,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B))) <=> ![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[136])).
% 0.21/0.48  tff(138,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B))) <=> ![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(139,plain,
% 0.21/0.48      (^[B: $i, A: $i] : rewrite((truth(or(A, B)) | (~truth(B))) <=> ((~truth(B)) | truth(or(A, B))))),
% 0.21/0.48      inference(bind,[status(th)],[])).
% 0.21/0.48  tff(140,plain,
% 0.21/0.48      (![B: $i, A: $i] : (truth(or(A, B)) | (~truth(B))) <=> ![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(quant_intro,[status(thm)],[139])).
% 0.21/0.48  tff(141,axiom,(![B: $i, A: $i] : (truth(or(A, B)) | (~truth(B)))), file('/export/starexec/sandbox/benchmark/theBenchmark.p','or3')).
% 0.21/0.48  tff(142,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[141, 140])).
% 0.21/0.48  tff(143,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[142, 138])).
% 0.21/0.48  tff(144,plain,(
% 0.21/0.48      ![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(skolemize,[status(sab)],[143])).
% 0.21/0.48  tff(145,plain,
% 0.21/0.48      (![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[144, 137])).
% 0.21/0.48  tff(146,plain,
% 0.21/0.48      (((~![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))) | ((~truth(isa(other, knight))) | truth(or(isa(asked, knight), isa(other, knight))))) <=> ((~![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))) | (~truth(isa(other, knight))) | truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(147,plain,
% 0.21/0.48      ((~![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))) | ((~truth(isa(other, knight))) | truth(or(isa(asked, knight), isa(other, knight))))),
% 0.21/0.48      inference(quant_inst,[status(thm)],[])).
% 0.21/0.48  tff(148,plain,
% 0.21/0.48      ((~![B: $i, A: $i] : ((~truth(B)) | truth(or(A, B)))) | (~truth(isa(other, knight))) | truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[147, 146])).
% 0.21/0.48  tff(149,plain,
% 0.21/0.48      ((~truth(isa(other, knight))) | truth(or(isa(asked, knight), isa(other, knight)))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[148, 145])).
% 0.21/0.48  tff(150,plain,
% 0.21/0.48      (~truth(isa(other, knight))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[149, 135])).
% 0.21/0.48  tff(151,plain,
% 0.21/0.48      (((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | (truth(isa(other, knave)) | truth(isa(other, knight)))) <=> ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | truth(isa(other, knave)) | truth(isa(other, knight)))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(152,plain,
% 0.21/0.48      ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | (truth(isa(other, knave)) | truth(isa(other, knight)))),
% 0.21/0.48      inference(quant_inst,[status(thm)],[])).
% 0.21/0.48  tff(153,plain,
% 0.21/0.48      ((~![P: $i] : (truth(isa(P, knave)) | truth(isa(P, knight)))) | truth(isa(other, knave)) | truth(isa(other, knight))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[152, 151])).
% 0.21/0.48  tff(154,plain,
% 0.21/0.48      (truth(isa(other, knave)) | truth(isa(other, knight))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[153, 11])).
% 0.21/0.48  tff(155,plain,
% 0.21/0.48      (truth(isa(other, knave))),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[154, 150])).
% 0.21/0.48  tff(156,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave))))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(157,plain,
% 0.21/0.48      (((~truth(isa(other, knave))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(158,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave)))))),
% 0.21/0.48      inference(monotonicity,[status(thm)],[157])).
% 0.21/0.48  tff(159,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave))))),
% 0.21/0.48      inference(transitivity,[status(thm)],[158, 156])).
% 0.21/0.48  tff(160,plain,
% 0.21/0.48      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knave))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.48      inference(quant_inst,[status(thm)],[])).
% 0.21/0.48  tff(161,plain,
% 0.21/0.48      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(other, knave))) | (~truth(isa(asked, knave)))),
% 0.21/0.48      inference(modus_ponens,[status(thm)],[160, 159])).
% 0.21/0.48  tff(162,plain,
% 0.21/0.48      ($false),
% 0.21/0.48      inference(unit_resolution,[status(thm)],[161, 74, 117, 155, 16])).
% 0.21/0.48  tff(163,plain,(truth(isa(asked, knight))), inference(lemma,lemma(discharge,[]))).
% 0.21/0.48  tff(164,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight))))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(165,plain,
% 0.21/0.48      (((~truth(isa(other, knight))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight))))),
% 0.21/0.48      inference(rewrite,[status(thm)],[])).
% 0.21/0.48  tff(166,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight)))))),
% 0.21/0.48      inference(monotonicity,[status(thm)],[165])).
% 0.21/0.48  tff(167,plain,
% 0.21/0.48      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight))))),
% 0.21/0.48      inference(transitivity,[status(thm)],[166, 164])).
% 0.21/0.48  tff(168,plain,
% 0.21/0.48      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knight))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.49      inference(quant_inst,[status(thm)],[])).
% 0.21/0.49  tff(169,plain,
% 0.21/0.49      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight)))),
% 0.21/0.49      inference(modus_ponens,[status(thm)],[168, 167])).
% 0.21/0.49  tff(170,plain,
% 0.21/0.49      ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knight)))),
% 0.21/0.49      inference(unit_resolution,[status(thm)],[169, 74])).
% 0.21/0.49  tff(171,plain,
% 0.21/0.49      ((~truth(isa(asked, knight))) | (~truth(isa(other, knight)))),
% 0.21/0.49      inference(unit_resolution,[status(thm)],[170, 117])).
% 0.21/0.49  tff(172,plain,
% 0.21/0.49      (~truth(isa(other, knight))),
% 0.21/0.49      inference(unit_resolution,[status(thm)],[171, 163])).
% 0.21/0.49  tff(173,plain,
% 0.21/0.49      (truth(isa(other, knave))),
% 0.21/0.49      inference(unit_resolution,[status(thm)],[154, 172])).
% 0.21/0.49  tff(174,plain,
% 0.21/0.49      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave))))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave))))),
% 0.21/0.49      inference(rewrite,[status(thm)],[])).
% 0.21/0.49  tff(175,plain,
% 0.21/0.49      (((~truth(isa(other, knave))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes))) <=> ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave))))),
% 0.21/0.49      inference(rewrite,[status(thm)],[])).
% 0.21/0.49  tff(176,plain,
% 0.21/0.49      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave)))))),
% 0.21/0.49      inference(monotonicity,[status(thm)],[175])).
% 0.21/0.49  tff(177,plain,
% 0.21/0.49      (((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))) <=> ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave))))),
% 0.21/0.49      inference(transitivity,[status(thm)],[176, 174])).
% 0.21/0.49  tff(178,plain,
% 0.21/0.49      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | ((~truth(isa(other, knave))) | (~truth(isa(asked, knight))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)))),
% 0.21/0.49      inference(quant_inst,[status(thm)],[])).
% 0.21/0.49  tff(179,plain,
% 0.21/0.49      ((~![R: $i, Y: $i, X: $i] : ((~truth(isa(other, Y))) | (~truth(isa(asked, X))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), R)))) | (~reply(asked, or(isa(asked, knight), isa(other, knight)), yes)) | (~truth(isa(asked, knight))) | (~truth(isa(other, knave)))),
% 0.21/0.49      inference(modus_ponens,[status(thm)],[178, 177])).
% 0.21/0.49  tff(180,plain,
% 0.21/0.49      ($false),
% 0.21/0.49      inference(unit_resolution,[status(thm)],[179, 74, 117, 163, 173])).
% 0.21/0.49  % SZS output end Proof
%------------------------------------------------------------------------------