%------------------------------------------------------------------------------
% File : E-SAT---3.5.1
% Problem : SWW323+1 : TPTP v9.3.1. Released v5.2.0.
% Transfm : none
% Format : tptp:raw
% Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% Computer : n009.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 03:11:57 PM UTC 2026
% Result : Theorem 105.38s 17.09s
% Output : CNFRefutation 105.38s
% Verified :
% SZS Type : Refutation
% Derivation depth : 6
% Number of leaves : 5
% Syntax : Number of formulae : 21 ( 16 unt; 0 def)
% Number of atoms : 26 ( 7 equ)
% Maximal formula atoms : 2 ( 1 avg)
% Number of connectives : 13 ( 8 ~; 3 |; 1 &)
% ( 0 <=>; 1 =>; 0 <=; 0 <~>)
% Maximal formula depth : 4 ( 2 avg)
% Maximal term depth : 14 ( 2 avg)
% Number of predicates : 3 ( 1 usr; 1 prp; 0-3 aty)
% Number of functors : 24 ( 24 usr; 14 con; 0-3 aty)
% Number of variables : 18 ( 1 sgn 10 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(conj_5,conjecture,
c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',conj_5) ).
fof(fact_singleton__conv2,axiom,
! [X6,X5] : hAPP(c_Set_OCollect(X5),hAPP(c_fequal,X6)) = hAPP(hAPP(c_Set_Oinsert(X5),X6),c_Orderings_Obot__class_Obot(tc_fun(X5,tc_HOL_Obool))),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_singleton__conv2) ).
fof(fact_Collect__def,axiom,
! [X30,X5] : hAPP(c_Set_OCollect(X5),X30) = X30,
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',fact_Collect__def) ).
fof(conj_0,hypothesis,
! [X304] :
( c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,X304)),hAPP(v_c0,X304)),hAPP(v_Q_H,X304))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool))))
=> c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,X304)),hAPP(v_c0,X304)),hAPP(v_Q,X304))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',conj_0) ).
fof(conj_4,hypothesis,
( c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(c_Set_Oimage(t_a,tc_Hoare__Mirabelle_Otriple(t_b),hAPP(hAPP(c_COMBS(t_a,tc_fun(t_b,tc_fun(tc_Com_Ostate,tc_HOL_Obool)),tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(c_COMBS(t_a,tc_Com_Ocom,tc_fun(tc_fun(t_b,tc_fun(tc_Com_Ostate,tc_HOL_Obool)),tc_Hoare__Mirabelle_Otriple(t_b))),hAPP(hAPP(c_COMBB(tc_fun(t_b,tc_fun(tc_Com_Ostate,tc_HOL_Obool)),tc_fun(tc_Com_Ocom,tc_fun(tc_fun(t_b,tc_fun(tc_Com_Ostate,tc_HOL_Obool)),tc_Hoare__Mirabelle_Otriple(t_b))),t_a),c_Hoare__Mirabelle_Otriple_Otriple(t_b)),v_P_H)),v_c0)),v_Q_H)),v_F))
& c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q_H,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',conj_4) ).
fof(c_0_5,negated_conjecture,
~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
inference(assume_negation,[status(cth)],[conj_5]) ).
fof(c_0_6,negated_conjecture,
~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
inference(fof_simplification,[status(thm)],[c_0_5]) ).
fof(c_0_7,plain,
! [X8691,X8692] : hAPP(c_Set_OCollect(X8692),hAPP(c_fequal,X8691)) = hAPP(hAPP(c_Set_Oinsert(X8692),X8691),c_Orderings_Obot__class_Obot(tc_fun(X8692,tc_HOL_Obool))),
inference(variable_rename,[status(thm)],[fact_singleton__conv2]) ).
fof(c_0_8,plain,
! [X8660,X8661] : hAPP(c_Set_OCollect(X8661),X8660) = X8660,
inference(variable_rename,[status(thm)],[fact_Collect__def]) ).
fof(c_0_9,negated_conjecture,
~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
inference(fof_nnf,[status(thm)],[c_0_6]) ).
cnf(c_0_10,plain,
hAPP(c_Set_OCollect(X1),hAPP(c_fequal,X2)) = hAPP(hAPP(c_Set_Oinsert(X1),X2),c_Orderings_Obot__class_Obot(tc_fun(X1,tc_HOL_Obool))),
inference(split_conjunct,[status(thm)],[c_0_7]) ).
cnf(c_0_11,plain,
hAPP(c_Set_OCollect(X1),X2) = X2,
inference(split_conjunct,[status(thm)],[c_0_8]) ).
fof(c_0_12,hypothesis,
! [X17631] :
( c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,X17631)),hAPP(v_c0,X17631)),hAPP(v_Q,X17631))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool))))
| ~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,X17631)),hAPP(v_c0,X17631)),hAPP(v_Q_H,X17631))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[conj_0])])]) ).
cnf(c_0_13,negated_conjecture,
~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
inference(split_conjunct,[status(thm)],[c_0_9]) ).
cnf(c_0_14,plain,
hAPP(c_fequal,X1) = hAPP(hAPP(c_Set_Oinsert(X2),X1),c_Orderings_Obot__class_Obot(tc_fun(X2,tc_HOL_Obool))),
inference(rw,[status(thm)],[c_0_10,c_0_11]) ).
cnf(c_0_15,hypothesis,
( ~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,X1)),hAPP(v_c0,X1)),hAPP(v_Q_H,X1))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool))))
| c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,X1)),hAPP(v_c0,X1)),hAPP(v_Q,X1))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))) ),
inference(split_conjunct,[status(thm)],[c_0_12]) ).
cnf(c_0_16,hypothesis,
c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(hAPP(c_Set_Oinsert(tc_Hoare__Mirabelle_Otriple(t_b)),hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q_H,v_x))),c_Orderings_Obot__class_Obot(tc_fun(tc_Hoare__Mirabelle_Otriple(t_b),tc_HOL_Obool)))),
inference(split_conjunct,[status(thm)],[conj_4]) ).
cnf(c_0_17,negated_conjecture,
~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(c_fequal,hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q,v_x)))),
inference(rw,[status(thm)],[c_0_13,c_0_14]) ).
cnf(c_0_18,hypothesis,
( ~ c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(c_fequal,hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,X1)),hAPP(v_c0,X1)),hAPP(v_Q_H,X1))))
| c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(c_fequal,hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P,X1)),hAPP(v_c0,X1)),hAPP(v_Q,X1)))) ),
inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_15,c_0_14]),c_0_14]) ).
cnf(c_0_19,hypothesis,
c_Hoare__Mirabelle_Ohoare__derivs(t_b,v_G,hAPP(c_fequal,hAPP(hAPP(hAPP(c_Hoare__Mirabelle_Otriple_Otriple(t_b),hAPP(v_P_H,v_x)),hAPP(v_c0,v_x)),hAPP(v_Q_H,v_x)))),
inference(rw,[status(thm)],[c_0_16,c_0_14]) ).
cnf(c_0_20,negated_conjecture,
$false,
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_17,c_0_18]),c_0_19])]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : SWW323+1 : TPTP v9.3.1. Released v5.2.0.
% 0.00/0.05 % Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.11/0.37 % Computer : n009.cluster.edu
% 0.11/0.37 % Model : x86_64 x86_64
% 0.11/0.37 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.37 % Memory : 8046.5625MB
% 0.11/0.37 % OS : Linux 6.8.0-71-generic
% 0.11/0.37 % CPULimit : 300
% 0.11/0.37 % WCLimit : 300
% 0.11/0.37 % DateTime : Mon Sep 21 09:47:28 UTC 2026
% 0.11/0.37 % CPUTime :
% 0.11/0.37 Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.11/0.42 Running first-order theorem proving
% 0.11/0.42 Running: /export/starexec/sandbox2/solver/bin/eprover --delete-bad-limit=2000000000 --definitional-cnf=24 -s --print-statistics -R --print-version --proof-object --auto-schedule=8 --cpu-limit=300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 105.38/17.09 % Version: 3.5.1
% 105.38/17.09 % Preprocessing class: FMLMSMSMSSSNFFN.
% 105.38/17.09 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 105.38/17.09 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 105.38/17.09 % Starting new_bool_3 with 300s (1) cores
% 105.38/17.09 % Starting new_bool_1 with 300s (1) cores
% 105.38/17.09 % Starting sh5l with 300s (1) cores
% 105.38/17.09 % G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with pid 1449990 completed with status 0
% 105.38/17.09 % Result found by G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN
% 105.38/17.09 % Preprocessing class: FMLMSMSMSSSNFFN.
% 105.38/17.09 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 105.38/17.09 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 105.38/17.09 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 105.38/17.09 % No SInE strategy applied
% 105.38/17.09 % Search class: FGHSM-SMLM33-DFFFFFNN
% 105.38/17.09 % Scheduled 7 strats onto 5 cores with 1499 seconds (1499 total)
% 105.38/17.09 % Starting SubtermCWHack with 135s (1) cores
% 105.38/17.09 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 150s (1) cores
% 105.38/17.09 % Starting U----_206e_00_B11_00_F1_SE_PI_CS_SP_PS_S5PRR_RG_S04AN with 135s (1) cores
% 105.38/17.09 % Starting SAT001_CA_MinMin_p005000_rr with 135s (1) cores
% 105.38/17.09 % Starting G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with 135s (1) cores
% 105.38/17.09 % G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with pid 1450004 completed with status 0
% 105.38/17.09 % Result found by G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y
% 105.38/17.09 % Preprocessing class: FMLMSMSMSSSNFFN.
% 105.38/17.09 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 105.38/17.09 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 105.38/17.09 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 105.38/17.09 % No SInE strategy applied
% 105.38/17.09 % Search class: FGHSM-SMLM33-DFFFFFNN
% 105.38/17.09 % Scheduled 7 strats onto 5 cores with 1499 seconds (1499 total)
% 105.38/17.09 % Starting SubtermCWHack with 135s (1) cores
% 105.38/17.09 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 150s (1) cores
% 105.38/17.09 % Starting U----_206e_00_B11_00_F1_SE_PI_CS_SP_PS_S5PRR_RG_S04AN with 135s (1) cores
% 105.38/17.09 % Starting SAT001_CA_MinMin_p005000_rr with 135s (1) cores
% 105.38/17.09 % Starting G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with 135s (1) cores
% 105.38/17.09 % Preprocessing time : 0.144 s
% 105.38/17.09 % Presaturation interreduction done
% 105.38/17.09
% 105.38/17.09 % Proof found!
% 105.38/17.09 % SZS status Theorem
% 105.38/17.09 % SZS output start CNFRefutation
% See solution above
% 105.38/17.09 % Parsed axioms : 5233
% 105.38/17.09 % Removed by relevancy pruning/SinE : 0
% 105.38/17.09 % Initial clauses : 7586
% 105.38/17.09 % Removed in clause preprocessing : 228
% 105.38/17.09 % Initial clauses in saturation : 7358
% 105.38/17.09 % Processed clauses : 22336
% 105.38/17.09 % ...of these trivial : 473
% 105.38/17.09 % ...subsumed : 9642
% 105.38/17.09 % ...remaining for further processing : 12221
% 105.38/17.09 % Other redundant clauses eliminated : 1579
% 105.38/17.09 % Clauses deleted for lack of memory : 0
% 105.38/17.09 % Backward-subsumed : 177
% 105.38/17.09 % Backward-rewritten : 604
% 105.38/17.09 % Generated clauses : 246819
% 105.38/17.09 % ...of the previous two non-redundant : 236958
% 105.38/17.09 % ...aggressively subsumed : 0
% 105.38/17.09 % Contextual simplify-reflections : 55
% 105.38/17.09 % Paramodulations : 245258
% 105.38/17.09 % Factorizations : 6
% 105.38/17.09 % NegExts : 0
% 105.38/17.09 % Equation resolutions : 1620
% 105.38/17.09 % Disequality decompositions : 0
% 105.38/17.09 % Total rewrite steps : 70473
% 105.38/17.09 % ...of those cached : 51592
% 105.38/17.09 % Propositional unsat checks : 3
% 105.38/17.09 % Propositional check models : 2
% 105.38/17.09 % Propositional check unsatisfiable : 0
% 105.38/17.09 % Propositional clauses : 0
% 105.38/17.09 % Propositional clauses after purity: 0
% 105.38/17.09 % Propositional unsat core size : 0
% 105.38/17.09 % Propositional preprocessing time : 0.000
% 105.38/17.09 % Propositional encoding time : 0.297
% 105.38/17.09 % Propositional solver time : 0.128
% 105.38/17.09 % Success case prop preproc time : 0.000
% 105.38/17.09 % Success case prop encoding time : 0.000
% 105.38/17.09 % Success case prop solver time : 0.000
% 105.38/17.09 % Current number of processed clauses : 4974
% 105.38/17.09 % Positive orientable unit clauses : 1572
% 105.38/17.09 % Positive unorientable unit clauses: 290
% 105.38/17.09 % Negative unit clauses : 478
% 105.38/17.09 % Non-unit-clauses : 2634
% 105.38/17.09 % Current number of unprocessed clauses: 218171
% 105.38/17.09 % ...number of literals in the above : 411803
% 105.38/17.09 % Current number of archived formulas : 0
% 105.38/17.09 % Current number of archived clauses : 6794
% 105.38/17.09 % Clause-clause subsumption calls (NU) : 5212790
% 105.38/17.09 % Rec. Clause-clause subsumption calls : 2138009
% 105.38/17.09 % Non-unit clause-clause subsumptions : 7397
% 105.38/17.09 % Unit Clause-clause subsumption calls : 169858
% 105.38/17.09 % Rewrite failures with RHS unbound : 131069
% 105.38/17.09 % BW rewrite match attempts : 66004
% 105.38/17.09 % BW rewrite match successes : 18651
% 105.38/17.09 % Condensation attempts : 0
% 105.38/17.09 % Condensation successes : 0
% 105.38/17.09 % Termbank termtop insertions : 12453446
% 105.38/17.09 % Search garbage collected termcells : 102111
% 105.38/17.09
% 105.38/17.09 % -------------------------------------------------
% 105.38/17.09 % User time : 15.525 s
% 105.38/17.09 % System time : 0.419 s
% 105.38/17.09 % Total time : 15.944 s
% 105.38/17.09 % Maximum resident set size: 42364 pages
% 105.38/17.09
% 105.38/17.09 % -------------------------------------------------
% 105.38/17.09 % User time : 71.650 s
% 105.38/17.09 % System time : 1.942 s
% 105.38/17.09 % Total time : 73.592 s
% 105.38/17.09 % Maximum resident set size: 12288 pages
% 105.38/17.09 % E exiting
%------------------------------------------------------------------------------