%------------------------------------------------------------------------------
% File : Leo-III---1.8.0
% Problem : NLP080+1 : TPTP v9.3.1. Released v2.4.0.
% Transfm : none
% Format : tptp:raw
% Command : java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39
% Computer : n011.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 : Sun Sep 27 08:04:48 AM UTC 2026
% Result : Theorem 8.80s 4.31s
% Output : Refutation 9.08s
% Verified :
% SZS Type : Refutation
% Derivation depth : 3
% Number of leaves : 1
% Syntax : Number of formulae : 4 ( 1 unt; 0 typ; 0 def)
% Number of atoms : 325 ( 0 equ; 0 cnn)
% Maximal formula atoms : 108 ( 81 avg)
% Number of connectives : 1071 ( 6 ~; 0 |; 291 &; 744 @)
% ( 0 <=>; 30 =>; 0 <=; 0 <~>)
% Maximal formula depth : 34 ( 25 avg)
% Number of types : 2 ( 0 usr)
% Number of type conns : 0 ( 0 >; 0 *; 0 +; 0 <<)
% Number of symbols : 20 ( 19 usr; 1 con; 0-3 aty)
% Number of variables : 120 ( 0 ^; 24 !; 96 ?; 120 :)
% Comments :
%------------------------------------------------------------------------------
thf(actual_world_decl,type,
actual_world: $i > $o ).
thf(male_decl,type,
male: $i > $i > $o ).
thf(man_decl,type,
man: $i > $i > $o ).
thf(of_decl,type,
of: $i > $i > $i > $o ).
thf(cannon_decl,type,
cannon: $i > $i > $o ).
thf(member_decl,type,
member: $i > $i > $i > $o ).
thf(event_decl,type,
event: $i > $i > $o ).
thf(agent_decl,type,
agent: $i > $i > $i > $o ).
thf(patient_decl,type,
patient: $i > $i > $i > $o ).
thf(present_decl,type,
present: $i > $i > $o ).
thf(nonreflexive_decl,type,
nonreflexive: $i > $i > $o ).
thf(fire_decl,type,
fire: $i > $i > $o ).
thf(from_loc_decl,type,
from_loc: $i > $i > $i > $o ).
thf(six_decl,type,
six: $i > $i > $o ).
thf(group_decl,type,
group: $i > $i > $o ).
thf(shot_decl,type,
shot: $i > $i > $o ).
thf(revenge_decl,type,
revenge: $i > $i > $o ).
thf(cry_decl,type,
cry: $i > $i > $o ).
thf(scream_decl,type,
scream: $i > $i > $o ).
thf(1,conjecture,
~ ~ ( ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) )
& ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',co1) ).
thf(2,negated_conjecture,
~ ~ ~ ( ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) )
& ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) ) ),
inference(neg_conjecture,[status(cth)],[1]) ).
thf(3,plain,
~ ( ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) )
& ( ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( E @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( F @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ cry ) )
& ( E @ ( A @ revenge ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) )
=> ? [A: $i] :
( ? [B: $i,C: $i,D: $i,E: $i,F: $i,G: $i] :
( ( F @ ( G @ ( A @ of ) ) )
& ( G @ ( A @ scream ) )
& ( G @ ( A @ nonreflexive ) )
& ( G @ ( A @ present ) )
& ( E @ ( G @ ( A @ patient ) ) )
& ( D @ ( G @ ( A @ agent ) ) )
& ( G @ ( A @ event ) )
& ( F @ ( A @ revenge ) )
& ( E @ ( A @ cry ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ( H @ ( A @ shot ) ) )
& ( D @ ( A @ group ) )
& ( D @ ( A @ six ) )
& ! [H: $i] :
( ( D @ ( H @ ( A @ member ) ) )
=> ? [I: $i] :
( ( C @ ( I @ ( A @ from_loc ) ) )
& ( I @ ( A @ fire ) )
& ( I @ ( A @ nonreflexive ) )
& ( I @ ( A @ present ) )
& ( H @ ( I @ ( A @ patient ) ) )
& ( B @ ( I @ ( A @ agent ) ) )
& ( I @ ( A @ event ) ) ) )
& ( C @ ( A @ cannon ) )
& ( B @ ( C @ ( A @ of ) ) )
& ( B @ ( A @ man ) )
& ( B @ ( A @ male ) )
& ( D @ ( A @ male ) ) )
& ( A @ actual_world ) ) ) ),
inference(defexp_and_simp_and_etaexpand,[status(thm)],[2]) ).
thf(94,plain,
$false,
inference(e,[status(thm)],[3]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.04 % Problem : NLP080+1 : TPTP v9.3.1. Released v2.4.0.
% 0.00/0.11 % Command : java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39
% 0.19/0.46 % Computer : n011.cluster.edu
% 0.19/0.46 % Model : x86_64 x86_64
% 0.19/0.46 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.19/0.46 % Memory : 8046.5625MB
% 0.19/0.46 % OS : Linux 6.8.0-71-generic
% 0.19/0.46 % CPULimit : 300
% 0.19/0.46 % WCLimit : 300
% 0.19/0.46 % DateTime : Sat Sep 26 00:45:59 UTC 2026
% 0.19/0.47 % CPUTime :
% 0.19/0.47 Running java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39
% 1.28/1.27 % [INFO] Parsing problem /export/starexec/sandbox2/benchmark/theBenchmark.p ...
% 1.82/1.56 % [INFO] Parsing done (284ms).
% 1.82/1.58 % [INFO] Running in sequential loop mode.
% 3.06/2.17 % [INFO] eprover registered as external prover.
% 3.06/2.18 % [INFO] Scanning for conjecture ...
% 3.61/2.41 % [INFO] Found a conjecture (or negated_conjecture) and 0 axioms. Running axiom selection ...
% 3.88/2.51 % [INFO] Axiom selection finished. Selected 0 axioms (removed 0 axioms).
% 3.88/2.51 % [INFO] Problem is first-order (TPTP FOF).
% 3.88/2.53 % [INFO] Type checking passed.
% 3.88/2.54 % [CONFIG] Using configuration: timeout(300) with strategy<name(default),share(1.0),primSubst(3),sos(false),unifierCount(4),uniDepth(8),boolExt(true),choice(true),renaming(true),funcspec(false), domConstr(0),specialInstances(39),restrictUniAttempts(true),termOrdering(CPO)>. Searching for refutation ...
% 8.80/4.31 % External prover 'e' found a proof!
% 8.80/4.31 % [INFO] Killing All external provers ...
% 8.80/4.31 % Time passed: 3642ms (effective reasoning time: 2723ms)
% 8.80/4.31 % Solved by strategy<name(default),share(1.0),primSubst(3),sos(false),unifierCount(4),uniDepth(8),boolExt(true),choice(true),renaming(true),funcspec(false), domConstr(0),specialInstances(39),restrictUniAttempts(true),termOrdering(CPO)>
% 8.80/4.31 % Axioms used in derivation (0):
% 8.80/4.31 % No. of inferences in proof: 4
% 8.80/4.31 % SZS status Theorem for /export/starexec/sandbox2/benchmark/theBenchmark.p : 3642 ms resp. 2723 ms w/o parsing
% 9.08/4.40 % SZS output start Refutation for /export/starexec/sandbox2/benchmark/theBenchmark.p
% See solution above
% 9.08/4.40 % [INFO] Killing All external provers ...
%------------------------------------------------------------------------------