%------------------------------------------------------------------------------
% File : E---3.5.1
% Problem : SYO451^6 : TPTP v9.3.1. Released v4.0.0.
% Transfm : none
% Format : tptp:raw
% Command : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% Computer : n002.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 : Wed Sep 30 08:43:02 AM UTC 2026
% Result : Theorem 0.23s 0.28s
% Output : CNFRefutation 0.23s
% Verified :
% SZS Type : Refutation
% Derivation depth : 10
% Number of leaves : 11
% Syntax : Number of formulae : 42 ( 24 unt; 0 typ; 0 def)
% Number of atoms : 128 ( 18 equ; 0 cnn)
% Maximal formula atoms : 12 ( 3 avg)
% Number of connectives : 266 ( 43 ~; 36 |; 7 &; 174 @)
% ( 0 <=>; 6 =>; 0 <=; 0 <~>)
% Maximal formula depth : 14 ( 4 avg)
% Number of types : 2 ( 0 usr)
% Number of type conns : 27 ( 27 >; 0 *; 0 +; 0 <<)
% Number of symbols : 16 ( 14 usr; 3 con; 0-3 aty)
% Number of variables : 77 ( 33 ^; 44 !; 0 ?; 77 :)
% Comments :
%------------------------------------------------------------------------------
thf(decl_25,type,
mnot: ( $i > $o ) > $i > $o ).
thf(decl_26,type,
mor: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(decl_28,type,
mimplies: ( $i > $o ) > ( $i > $o ) > $i > $o ).
thf(decl_41,type,
msymmetric: ( $i > $i > $o ) > $o ).
thf(decl_43,type,
mtransitive: ( $i > $i > $o ) > $o ).
thf(decl_50,type,
mvalid: ( $i > $o ) > $o ).
thf(decl_54,type,
rel_s5: $i > $i > $o ).
thf(decl_55,type,
mbox_s5: ( $i > $o ) > $i > $o ).
thf(decl_56,type,
mdia_s5: ( $i > $o ) > $i > $o ).
thf(decl_57,type,
p: $i > $o ).
thf(decl_58,type,
q: $i > $o ).
thf(decl_59,type,
esk1_0: $i ).
thf(decl_60,type,
esk2_1: $i > $i ).
thf(decl_61,type,
esk3_0: $i ).
thf(mimplies,axiom,
( mimplies
= ( ^ [X6: $i > $o,X7: $i > $o] : ( mor @ ( mnot @ X6 ) @ X7 ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mimplies) ).
thf(mnot,axiom,
( mnot
= ( ^ [X6: $i > $o,X3: $i] :
~ ( X6 @ X3 ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mnot) ).
thf(mor,axiom,
( mor
= ( ^ [X6: $i > $o,X7: $i > $o,X3: $i] :
( ( X6 @ X3 )
| ( X7 @ X3 ) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mor) ).
thf(mdia_s5,axiom,
( mdia_s5
= ( ^ [X6: $i > $o] : ( mnot @ ( mbox_s5 @ ( mnot @ X6 ) ) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mdia_s5) ).
thf(mbox_s5,axiom,
( mbox_s5
= ( ^ [X6: $i > $o,X3: $i] :
! [X14: $i] :
( ~ ( rel_s5 @ X3 @ X14 )
| ( X6 @ X14 ) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mbox_s5) ).
thf(msymmetric,axiom,
( msymmetric
= ( ^ [X13: $i > $i > $o] :
! [X15: $i,X16: $i] :
( ( X13 @ X15 @ X16 )
=> ( X13 @ X16 @ X15 ) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',msymmetric) ).
thf(prove,conjecture,
mvalid @ ( mimplies @ ( mbox_s5 @ ( mor @ p @ ( mdia_s5 @ q ) ) ) @ ( mor @ ( mbox_s5 @ p ) @ ( mdia_s5 @ q ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',prove) ).
thf(mvalid,axiom,
( mvalid
= ( ^ [X6: $i > $o] :
! [X3: $i] : ( X6 @ X3 ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mvalid) ).
thf(mtransitive,axiom,
( mtransitive
= ( ^ [X13: $i > $i > $o] :
! [X15: $i,X16: $i,X17: $i] :
( ( ( X13 @ X15 @ X16 )
& ( X13 @ X16 @ X17 ) )
=> ( X13 @ X15 @ X17 ) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',mtransitive) ).
thf(a3,axiom,
msymmetric @ rel_s5,
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',a3) ).
thf(a2,axiom,
mtransitive @ rel_s5,
file('/export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p',a2) ).
thf(c_0_11,plain,
( mimplies
= ( ^ [Z0: $i > $o,Z1: $i > $o,Z2: $i] :
( ~ ( Z0 @ Z2 )
| ( Z1 @ Z2 ) ) ) ),
inference(fof_simplification,[status(thm)],[mimplies]) ).
thf(c_0_12,plain,
( mnot
= ( ^ [Z0: $i > $o,Z1: $i] :
~ ( Z0 @ Z1 ) ) ),
inference(fof_simplification,[status(thm)],[mnot]) ).
thf(c_0_13,plain,
( mor
= ( ^ [Z0: $i > $o,Z1: $i > $o,Z2: $i] :
( ( Z0 @ Z2 )
| ( Z1 @ Z2 ) ) ) ),
inference(fof_simplification,[status(thm)],[mor]) ).
thf(c_0_14,plain,
( mdia_s5
= ( ^ [Z0: $i > $o,Z1: $i] :
~ ! [X21: $i] :
( ~ ( rel_s5 @ Z1 @ X21 )
| ~ ( Z0 @ X21 ) ) ) ),
inference(fof_simplification,[status(thm)],[mdia_s5]) ).
thf(c_0_15,plain,
( mbox_s5
= ( ^ [Z0: $i > $o,Z1: $i] :
! [X14: $i] :
( ~ ( rel_s5 @ Z1 @ X14 )
| ( Z0 @ X14 ) ) ) ),
inference(fof_simplification,[status(thm)],[mbox_s5]) ).
thf(c_0_16,plain,
( msymmetric
= ( ^ [Z0: $i > $i > $o] :
! [X15: $i,X16: $i] :
( ( Z0 @ X15 @ X16 )
=> ( Z0 @ X16 @ X15 ) ) ) ),
inference(fof_simplification,[status(thm)],[msymmetric]) ).
thf(c_0_17,negated_conjecture,
~ ( mvalid @ ( mimplies @ ( mbox_s5 @ ( mor @ p @ ( mdia_s5 @ q ) ) ) @ ( mor @ ( mbox_s5 @ p ) @ ( mdia_s5 @ q ) ) ) ),
inference(assume_negation,[status(cth)],[prove]) ).
thf(c_0_18,plain,
( mimplies
= ( ^ [Z0: $i > $o,Z1: $i > $o,Z2: $i] :
( ~ ( Z0 @ Z2 )
| ( Z1 @ Z2 ) ) ) ),
inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[c_0_11,c_0_12]),c_0_13]) ).
thf(c_0_19,plain,
( mvalid
= ( ^ [Z0: $i > $o] :
! [X3: $i] : ( Z0 @ X3 ) ) ),
inference(fof_simplification,[status(thm)],[mvalid]) ).
thf(c_0_20,plain,
( mdia_s5
= ( ^ [Z0: $i > $o,Z1: $i] :
~ ! [X21: $i] :
( ~ ( rel_s5 @ Z1 @ X21 )
| ~ ( Z0 @ X21 ) ) ) ),
inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[c_0_14,c_0_12]),c_0_15]) ).
thf(c_0_21,plain,
( mtransitive
= ( ^ [Z0: $i > $i > $o] :
! [X15: $i,X16: $i,X17: $i] :
( ( ( Z0 @ X15 @ X16 )
& ( Z0 @ X16 @ X17 ) )
=> ( Z0 @ X15 @ X17 ) ) ) ),
inference(fof_simplification,[status(thm)],[mtransitive]) ).
thf(c_0_22,plain,
! [X26: $i,X27: $i] :
( ( rel_s5 @ X26 @ X27 )
=> ( rel_s5 @ X27 @ X26 ) ),
inference(apply_def,[status(thm)],[a3,c_0_16]) ).
thf(c_0_23,negated_conjecture,
~ ! [X32: $i] :
( ~ ! [X29: $i] :
( ~ ( rel_s5 @ X32 @ X29 )
| ( p @ X29 )
| ~ ! [X28: $i] :
( ~ ( rel_s5 @ X29 @ X28 )
| ~ ( q @ X28 ) ) )
| ! [X30: $i] :
( ~ ( rel_s5 @ X32 @ X30 )
| ( p @ X30 ) )
| ~ ! [X31: $i] :
( ~ ( rel_s5 @ X32 @ X31 )
| ~ ( q @ X31 ) ) ),
inference(fof_simplification,[status(thm)],[inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[inference(apply_def,[status(thm)],[c_0_17,c_0_13]),c_0_18]),c_0_19]),c_0_15]),c_0_20])]) ).
thf(c_0_24,plain,
! [X23: $i,X24: $i,X25: $i] :
( ( ( rel_s5 @ X23 @ X24 )
& ( rel_s5 @ X24 @ X25 ) )
=> ( rel_s5 @ X23 @ X25 ) ),
inference(apply_def,[status(thm)],[a2,c_0_21]) ).
thf(c_0_25,plain,
! [X37: $i,X38: $i] :
( ~ ( rel_s5 @ X37 @ X38 )
| ( rel_s5 @ X38 @ X37 ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_22])])]) ).
thf(c_0_26,negated_conjecture,
! [X40: $i,X43: $i] :
( ( ( rel_s5 @ X40 @ ( esk2_1 @ X40 ) )
| ( p @ X40 )
| ~ ( rel_s5 @ esk1_0 @ X40 ) )
& ( ( q @ ( esk2_1 @ X40 ) )
| ( p @ X40 )
| ~ ( rel_s5 @ esk1_0 @ X40 ) )
& ( rel_s5 @ esk1_0 @ esk3_0 )
& ~ ( p @ esk3_0 )
& ( ~ ( rel_s5 @ esk1_0 @ X43 )
| ~ ( q @ X43 ) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(skolemize,[status(esa)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_23])])])])])]) ).
thf(c_0_27,plain,
! [X34: $i,X35: $i,X36: $i] :
( ~ ( rel_s5 @ X34 @ X35 )
| ~ ( rel_s5 @ X35 @ X36 )
| ( rel_s5 @ X34 @ X36 ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_24])])]) ).
thf(c_0_28,plain,
! [X3: $i,X14: $i] :
( ( rel_s5 @ X14 @ X3 )
| ~ ( rel_s5 @ X3 @ X14 ) ),
inference(split_conjunct,[status(thm)],[c_0_25]) ).
thf(c_0_29,negated_conjecture,
rel_s5 @ esk1_0 @ esk3_0,
inference(split_conjunct,[status(thm)],[c_0_26]) ).
thf(c_0_30,plain,
! [X3: $i,X14: $i,X15: $i] :
( ( rel_s5 @ X3 @ X15 )
| ~ ( rel_s5 @ X3 @ X14 )
| ~ ( rel_s5 @ X14 @ X15 ) ),
inference(split_conjunct,[status(thm)],[c_0_27]) ).
thf(c_0_31,negated_conjecture,
rel_s5 @ esk3_0 @ esk1_0,
inference(spm,[status(thm)],[c_0_28,c_0_29]) ).
thf(c_0_32,negated_conjecture,
! [X3: $i] :
( ( rel_s5 @ X3 @ ( esk2_1 @ X3 ) )
| ( p @ X3 )
| ~ ( rel_s5 @ esk1_0 @ X3 ) ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
thf(c_0_33,negated_conjecture,
! [X3: $i] :
( ( rel_s5 @ X3 @ esk1_0 )
| ~ ( rel_s5 @ X3 @ esk3_0 ) ),
inference(spm,[status(thm)],[c_0_30,c_0_31]) ).
thf(c_0_34,negated_conjecture,
! [X3: $i] :
( ( rel_s5 @ ( esk2_1 @ X3 ) @ X3 )
| ( p @ X3 )
| ~ ( rel_s5 @ esk1_0 @ X3 ) ),
inference(spm,[status(thm)],[c_0_28,c_0_32]) ).
thf(c_0_35,negated_conjecture,
~ ( p @ esk3_0 ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
thf(c_0_36,negated_conjecture,
! [X3: $i] :
( ~ ( rel_s5 @ esk1_0 @ X3 )
| ~ ( q @ X3 ) ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
thf(c_0_37,negated_conjecture,
! [X3: $i] :
( ( q @ ( esk2_1 @ X3 ) )
| ( p @ X3 )
| ~ ( rel_s5 @ esk1_0 @ X3 ) ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
thf(c_0_38,negated_conjecture,
rel_s5 @ ( esk2_1 @ esk3_0 ) @ esk1_0,
inference(sr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_33,c_0_34]),c_0_29])]),c_0_35]) ).
thf(c_0_39,negated_conjecture,
! [X3: $i] :
( ( p @ X3 )
| ~ ( rel_s5 @ esk1_0 @ ( esk2_1 @ X3 ) )
| ~ ( rel_s5 @ esk1_0 @ X3 ) ),
inference(spm,[status(thm)],[c_0_36,c_0_37]) ).
thf(c_0_40,negated_conjecture,
rel_s5 @ esk1_0 @ ( esk2_1 @ esk3_0 ),
inference(spm,[status(thm)],[c_0_28,c_0_38]) ).
thf(c_0_41,negated_conjecture,
$false,
inference(sr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_39,c_0_40]),c_0_29])]),c_0_35]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : SYO451^6 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.04 % Command : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.08/0.19 % Computer : n002.cluster.edu
% 0.08/0.19 % Model : x86_64 x86_64
% 0.08/0.19 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.08/0.19 % Memory : 8046.5625MB
% 0.08/0.19 % OS : Linux 6.8.0-71-generic
% 0.08/0.19 % CPULimit : 300
% 0.08/0.19 % WCLimit : 300
% 0.08/0.19 % DateTime : Tue Sep 29 16:55:07 UTC 2026
% 0.08/0.19 % CPUTime :
% 0.08/0.19 Running run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.08/0.23 Running higher-order theorem proving
% 0.08/0.25 Running: /export/starexec/sandbox/solver/bin/eprover-ho --delete-bad-limit=2000000000 --definitional-cnf=24 -s --print-statistics -R --print-version --proof-object --auto-schedule=8 --cpu-limit=300 /export/starexec/sandbox/tmp/tmp.jxzwDyO4Tx/E---3.1_1556100.p
% 0.23/0.28 % Version: 3.5.1-ho
% 0.23/0.28 % Preprocessing class: HSMSSMSSMLMNHSN.
% 0.23/0.28 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.23/0.28 % Starting ho_unfolding_3 with 1500s (5) cores
% 0.23/0.28 % Starting ehoh_best2_full_lfho with 300s (1) cores
% 0.23/0.28 % Starting almost_fo_3_lam with 300s (1) cores
% 0.23/0.28 % Starting post_as_ho1 with 300s (1) cores
% 0.23/0.28 % almost_fo_3_lam with pid 1556135 completed with status 0
% 0.23/0.28 % Result found by almost_fo_3_lam
% 0.23/0.28 % Preprocessing class: HSMSSMSSMLMNHSN.
% 0.23/0.28 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.23/0.28 % Starting ho_unfolding_3 with 1500s (5) cores
% 0.23/0.28 % Starting ehoh_best2_full_lfho with 300s (1) cores
% 0.23/0.28 % Starting almost_fo_3_lam with 300s (1) cores
% 0.23/0.28 % (lift_lambdas = 0, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 0.23/0.28 % No SInE strategy applied
% 0.23/0.28 % Search class: HGHNF-FFSF11-SHSSMFNN
% 0.23/0.28 % Scheduled 7 strats onto 1 cores with 300 seconds (300 total)
% 0.23/0.28 % Starting SubtermCWHack with 28s (1) cores
% 0.23/0.28 % SubtermCWHack with pid 1556140 completed with status 0
% 0.23/0.28 % Result found by SubtermCWHack
% 0.23/0.28 % Preprocessing class: HSMSSMSSMLMNHSN.
% 0.23/0.28 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.23/0.28 % Starting ho_unfolding_3 with 1500s (5) cores
% 0.23/0.28 % Starting ehoh_best2_full_lfho with 300s (1) cores
% 0.23/0.28 % Starting almost_fo_3_lam with 300s (1) cores
% 0.23/0.28 % (lift_lambdas = 0, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 0.23/0.28 % No SInE strategy applied
% 0.23/0.28 % Search class: HGHNF-FFSF11-SHSSMFNN
% 0.23/0.28 % Scheduled 7 strats onto 1 cores with 300 seconds (300 total)
% 0.23/0.28 % Starting SubtermCWHack with 28s (1) cores
% 0.23/0.28 % Preprocessing time : 0.001 s
% 0.23/0.28
% 0.23/0.28 % Proof found!
% 0.23/0.28 % SZS status Theorem
% 0.23/0.28 % SZS output start CNFRefutation
% See solution above
% 0.23/0.28 % Parsed axioms : 74
% 0.23/0.28 % Removed by relevancy pruning/SinE : 0
% 0.23/0.28 % Initial clauses : 45
% 0.23/0.28 % Removed in clause preprocessing : 37
% 0.23/0.28 % Initial clauses in saturation : 8
% 0.23/0.28 % Processed clauses : 17
% 0.23/0.28 % ...of these trivial : 0
% 0.23/0.28 % ...subsumed : 0
% 0.23/0.28 % ...remaining for further processing : 17
% 0.23/0.28 % Other redundant clauses eliminated : 0
% 0.23/0.28 % Clauses deleted for lack of memory : 0
% 0.23/0.28 % Backward-subsumed : 0
% 0.23/0.28 % Backward-rewritten : 0
% 0.23/0.28 % Generated clauses : 27
% 0.23/0.28 % ...of the previous two non-redundant : 16
% 0.23/0.28 % ...aggressively subsumed : 0
% 0.23/0.28 % Contextual simplify-reflections : 0
% 0.23/0.28 % Paramodulations : 27
% 0.23/0.28 % Factorizations : 0
% 0.23/0.28 % NegExts : 0
% 0.23/0.28 % Equation resolutions : 0
% 0.23/0.28 % Disequality decompositions : 0
% 0.23/0.28 % Total rewrite steps : 12
% 0.23/0.28 % ...of those cached : 5
% 0.23/0.28 % Propositional unsat checks : 0
% 0.23/0.28 % Propositional check models : 0
% 0.23/0.28 % Propositional check unsatisfiable : 0
% 0.23/0.28 % Propositional clauses : 0
% 0.23/0.28 % Propositional clauses after purity: 0
% 0.23/0.28 % Propositional unsat core size : 0
% 0.23/0.28 % Propositional preprocessing time : 0.000
% 0.23/0.28 % Propositional encoding time : 0.000
% 0.23/0.28 % Propositional solver time : 0.000
% 0.23/0.28 % Success case prop preproc time : 0.000
% 0.23/0.28 % Success case prop encoding time : 0.000
% 0.23/0.28 % Success case prop solver time : 0.000
% 0.23/0.28 % Current number of processed clauses : 17
% 0.23/0.28 % Positive orientable unit clauses : 6
% 0.23/0.28 % Positive unorientable unit clauses: 0
% 0.23/0.28 % Negative unit clauses : 1
% 0.23/0.28 % Non-unit-clauses : 10
% 0.23/0.28 % Current number of unprocessed clauses: 6
% 0.23/0.28 % ...number of literals in the above : 17
% 0.23/0.28 % Current number of archived formulas : 0
% 0.23/0.28 % Current number of archived clauses : 0
% 0.23/0.28 % Clause-clause subsumption calls (NU) : 18
% 0.23/0.28 % Rec. Clause-clause subsumption calls : 18
% 0.23/0.28 % Non-unit clause-clause subsumptions : 0
% 0.23/0.28 % Unit Clause-clause subsumption calls : 0
% 0.23/0.28 % Rewrite failures with RHS unbound : 0
% 0.23/0.28 % BW rewrite match attempts : 1
% 0.23/0.28 % BW rewrite match successes : 0
% 0.23/0.28 % Condensation attempts : 0
% 0.23/0.28 % Condensation successes : 0
% 0.23/0.28 % Termbank termtop insertions : 2944
% 0.23/0.28 % Search garbage collected termcells : 557
% 0.23/0.28
% 0.23/0.28 % -------------------------------------------------
% 0.23/0.28 % User time : 0.006 s
% 0.23/0.28 % System time : 0.003 s
% 0.23/0.28 % Total time : 0.009 s
% 0.23/0.28 % Maximum resident set size: 3700 pages
% 0.23/0.28
% 0.23/0.28 % -------------------------------------------------
% 0.23/0.28 % User time : 0.007 s
% 0.23/0.28 % System time : 0.010 s
% 0.23/0.28 % Total time : 0.016 s
% 0.23/0.28 % Maximum resident set size: 4864 pages
% 0.23/0.28 % E exiting
%------------------------------------------------------------------------------