%------------------------------------------------------------------------------
% File : E---3.5.1
% Problem : ANA043-1 : TPTP v9.3.1. Released v3.2.0.
% Transfm : none
% Format : tptp:raw
% Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% Computer : n006.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 12:02:52 PM UTC 2026
% Result : Unsatisfiable 210.28s 32.50s
% Output : CNFRefutation 210.28s
% Verified :
% SZS Type : Refutation
% Derivation depth : 8
% Number of leaves : 12
% Syntax : Number of clauses : 44 ( 16 unt; 0 nHn; 27 RR)
% Number of literals : 81 ( 11 equ; 41 neg)
% Maximal clause size : 5 ( 1 avg)
% Maximal term depth : 7 ( 2 avg)
% Number of predicates : 8 ( 6 usr; 1 prp; 0-3 aty)
% Number of functors : 12 ( 12 usr; 3 con; 0-3 aty)
% Number of variables : 68 ( 4 sgn)
% Comments :
%------------------------------------------------------------------------------
cnf(clsrel_Ring__and__Field_Oordered__idom_4,axiom,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__group__add(X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-0.ax',clsrel_Ring__and__Field_Oordered__idom_4) ).
cnf(cls_OrderedGroup_Ominus__minus_0,axiom,
( ~ class_OrderedGroup_Oab__group__add(X1)
| c_uminus(c_uminus(X2,X1),X1) = X2 ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-1.ax',cls_OrderedGroup_Ominus__minus_0) ).
cnf(tfree_tcs,negated_conjecture,
class_Ring__and__Field_Oordered__idom(t_b),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',tfree_tcs) ).
cnf(clsrel_Ring__and__Field_Oordered__idom_50,axiom,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Olordered__ab__group__abs(X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-0.ax',clsrel_Ring__and__Field_Oordered__idom_50) ).
cnf(cls_OrderedGroup_Oabs__minus__cancel_0,axiom,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_HOL_Oabs(c_uminus(X2,X1),X1) = c_HOL_Oabs(X2,X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-1.ax',cls_OrderedGroup_Oabs__minus__cancel_0) ).
cnf(cls_Ring__and__Field_Opordered__semiring__class_Omult__left__mono_0,axiom,
( ~ c_lessequals(c_0,X4,X1)
| ~ c_lessequals(X2,X3,X1)
| ~ class_Ring__and__Field_Opordered__semiring(X1)
| c_lessequals(c_times(X4,X2,X1),c_times(X4,X3,X1),X1) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_Ring__and__Field_Opordered__semiring__class_Omult__left__mono_0) ).
cnf(cls_OrderedGroup_Omult__left__commute_0,axiom,
( ~ class_OrderedGroup_Oab__semigroup__mult(X1)
| c_times(X2,c_times(X3,X4,X1),X1) = c_times(X3,c_times(X2,X4,X1),X1) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_OrderedGroup_Omult__left__commute_0) ).
cnf(clsrel_Ring__and__Field_Oordered__idom_42,axiom,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_Ring__and__Field_Opordered__semiring(X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-0.ax',clsrel_Ring__and__Field_Oordered__idom_42) ).
cnf(clsrel_Ring__and__Field_Oordered__idom_17,axiom,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__semigroup__mult(X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-0.ax',clsrel_Ring__and__Field_Oordered__idom_17) ).
cnf(cls_OrderedGroup_Oabs__ge__zero_0,axiom,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_lessequals(c_0,c_HOL_Oabs(X2,X1),X1) ),
file('/export/starexec/sandbox2/benchmark/Axioms/MSC001-1.ax',cls_OrderedGroup_Oabs__ge__zero_0) ).
cnf(cls_conjecture_1,negated_conjecture,
~ c_lessequals(c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_f(v_k(v_x(X1),v_xa(X1))),t_b),t_b),c_times(X1,c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_h(v_k(v_x(X1),v_xa(X1))),t_b),t_b),t_b),t_b),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_conjecture_1) ).
cnf(cls_conjecture_0,negated_conjecture,
c_lessequals(c_HOL_Oabs(v_f(X1),t_b),c_times(v_c,c_HOL_Oabs(v_h(X1),t_b),t_b),t_b),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_conjecture_0) ).
cnf(c_0_12,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__group__add(X1) ),
inference(fof_simplification,[status(thm)],[clsrel_Ring__and__Field_Oordered__idom_4]) ).
cnf(c_0_13,plain,
( ~ class_OrderedGroup_Oab__group__add(X1)
| c_uminus(c_uminus(X2,X1),X1) = X2 ),
inference(fof_simplification,[status(thm)],[cls_OrderedGroup_Ominus__minus_0]) ).
cnf(c_0_14,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__group__add(X1) ),
c_0_12 ).
cnf(c_0_15,negated_conjecture,
class_Ring__and__Field_Oordered__idom(t_b),
tfree_tcs ).
cnf(c_0_16,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Olordered__ab__group__abs(X1) ),
inference(fof_simplification,[status(thm)],[clsrel_Ring__and__Field_Oordered__idom_50]) ).
cnf(c_0_17,plain,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_HOL_Oabs(c_uminus(X2,X1),X1) = c_HOL_Oabs(X2,X1) ),
inference(fof_simplification,[status(thm)],[cls_OrderedGroup_Oabs__minus__cancel_0]) ).
cnf(c_0_18,plain,
( ~ class_OrderedGroup_Oab__group__add(X1)
| c_uminus(c_uminus(X2,X1),X1) = X2 ),
c_0_13 ).
cnf(c_0_19,negated_conjecture,
class_OrderedGroup_Oab__group__add(t_b),
inference(spm,[status(thm)],[c_0_14,c_0_15]) ).
cnf(c_0_20,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Olordered__ab__group__abs(X1) ),
c_0_16 ).
cnf(c_0_21,plain,
( ~ c_lessequals(c_0,X4,X1)
| ~ c_lessequals(X2,X3,X1)
| ~ class_Ring__and__Field_Opordered__semiring(X1)
| c_lessequals(c_times(X4,X2,X1),c_times(X4,X3,X1),X1) ),
inference(fof_simplification,[status(thm)],[cls_Ring__and__Field_Opordered__semiring__class_Omult__left__mono_0]) ).
cnf(c_0_22,plain,
( ~ class_OrderedGroup_Oab__semigroup__mult(X1)
| c_times(X2,c_times(X3,X4,X1),X1) = c_times(X3,c_times(X2,X4,X1),X1) ),
inference(fof_simplification,[status(thm)],[cls_OrderedGroup_Omult__left__commute_0]) ).
cnf(c_0_23,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_Ring__and__Field_Opordered__semiring(X1) ),
inference(fof_simplification,[status(thm)],[clsrel_Ring__and__Field_Oordered__idom_42]) ).
cnf(c_0_24,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__semigroup__mult(X1) ),
inference(fof_simplification,[status(thm)],[clsrel_Ring__and__Field_Oordered__idom_17]) ).
cnf(c_0_25,plain,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_lessequals(c_0,c_HOL_Oabs(X2,X1),X1) ),
inference(fof_simplification,[status(thm)],[cls_OrderedGroup_Oabs__ge__zero_0]) ).
cnf(c_0_26,plain,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_HOL_Oabs(c_uminus(X2,X1),X1) = c_HOL_Oabs(X2,X1) ),
c_0_17 ).
cnf(c_0_27,negated_conjecture,
c_uminus(c_uminus(X1,t_b),t_b) = X1,
inference(spm,[status(thm)],[c_0_18,c_0_19]) ).
cnf(c_0_28,negated_conjecture,
class_OrderedGroup_Olordered__ab__group__abs(t_b),
inference(spm,[status(thm)],[c_0_20,c_0_15]) ).
cnf(c_0_29,negated_conjecture,
~ c_lessequals(c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_f(v_k(v_x(X1),v_xa(X1))),t_b),t_b),c_times(X1,c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_h(v_k(v_x(X1),v_xa(X1))),t_b),t_b),t_b),t_b),
inference(fof_simplification,[status(thm)],[cls_conjecture_1]) ).
cnf(c_0_30,plain,
( ~ c_lessequals(c_0,X4,X1)
| ~ c_lessequals(X2,X3,X1)
| ~ class_Ring__and__Field_Opordered__semiring(X1)
| c_lessequals(c_times(X4,X2,X1),c_times(X4,X3,X1),X1) ),
c_0_21 ).
cnf(c_0_31,plain,
( ~ class_OrderedGroup_Oab__semigroup__mult(X1)
| c_times(X2,c_times(X3,X4,X1),X1) = c_times(X3,c_times(X2,X4,X1),X1) ),
c_0_22 ).
cnf(c_0_32,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_Ring__and__Field_Opordered__semiring(X1) ),
c_0_23 ).
cnf(c_0_33,plain,
( ~ class_Ring__and__Field_Oordered__idom(X1)
| class_OrderedGroup_Oab__semigroup__mult(X1) ),
c_0_24 ).
cnf(c_0_34,plain,
( ~ class_OrderedGroup_Olordered__ab__group__abs(X1)
| c_lessequals(c_0,c_HOL_Oabs(X2,X1),X1) ),
c_0_25 ).
cnf(c_0_35,negated_conjecture,
c_HOL_Oabs(c_uminus(X1,t_b),t_b) = c_HOL_Oabs(X1,t_b),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_26,c_0_27]),c_0_28])]) ).
cnf(c_0_36,negated_conjecture,
~ c_lessequals(c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_f(v_k(v_x(X1),v_xa(X1))),t_b),t_b),c_times(X1,c_times(c_HOL_Oabs(v_l(v_x(X1),v_xa(X1)),t_b),c_HOL_Oabs(v_h(v_k(v_x(X1),v_xa(X1))),t_b),t_b),t_b),t_b),
c_0_29 ).
cnf(c_0_37,plain,
( ~ c_lessequals(c_0,X1,X3)
| ~ c_lessequals(X2,c_times(X4,X5,X3),X3)
| ~ class_OrderedGroup_Oab__semigroup__mult(X3)
| ~ class_Ring__and__Field_Opordered__semiring(X3)
| c_lessequals(c_times(X1,X2,X3),c_times(X4,c_times(X1,X5,X3),X3),X3) ),
inference(spm,[status(thm)],[c_0_30,c_0_31]) ).
cnf(c_0_38,negated_conjecture,
class_Ring__and__Field_Opordered__semiring(t_b),
inference(spm,[status(thm)],[c_0_32,c_0_15]) ).
cnf(c_0_39,negated_conjecture,
class_OrderedGroup_Oab__semigroup__mult(t_b),
inference(spm,[status(thm)],[c_0_33,c_0_15]) ).
cnf(c_0_40,negated_conjecture,
c_lessequals(c_0,c_HOL_Oabs(X1,t_b),t_b),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_34,c_0_35]),c_0_28])]) ).
cnf(c_0_41,negated_conjecture,
~ c_lessequals(c_HOL_Oabs(v_f(v_k(v_x(X1),v_xa(X1))),t_b),c_times(X1,c_HOL_Oabs(v_h(v_k(v_x(X1),v_xa(X1))),t_b),t_b),t_b),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_36,c_0_37]),c_0_38]),c_0_39]),c_0_40])]) ).
cnf(c_0_42,negated_conjecture,
c_lessequals(c_HOL_Oabs(v_f(X1),t_b),c_times(v_c,c_HOL_Oabs(v_h(X1),t_b),t_b),t_b),
cls_conjecture_0 ).
cnf(c_0_43,negated_conjecture,
$false,
inference(spm,[status(thm)],[c_0_41,c_0_42]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : ANA043-1 : TPTP v9.3.1. Released v3.2.0.
% 0.00/0.04 % Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.11/5.70 % Computer : n006.cluster.edu
% 0.11/5.70 % Model : x86_64 x86_64
% 0.11/5.70 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/5.70 % Memory : 8046.5625MB
% 0.11/5.70 % OS : Linux 6.8.0-71-generic
% 0.11/5.70 % CPULimit : 300
% 0.11/5.71 % WCLimit : 300
% 0.11/5.71 % DateTime : Mon Sep 21 13:25:49 UTC 2026
% 0.11/5.71 % CPUTime :
% 0.11/5.71 Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.11/5.75 Running first-order theorem proving
% 0.11/5.75 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
% 210.28/32.50 % Version: 3.5.1
% 210.28/32.50 % Preprocessing class: FMLMSMSMSSSNFFN.
% 210.28/32.50 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 210.28/32.50 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 210.28/32.50 % Starting new_bool_3 with 300s (1) cores
% 210.28/32.50 % Starting new_bool_1 with 300s (1) cores
% 210.28/32.50 % Starting sh5l with 300s (1) cores
% 210.28/32.50 % G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with pid 2942071 completed with status 0
% 210.28/32.50 % Result found by G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN
% 210.28/32.50 % Preprocessing class: FMLMSMSMSSSNFFN.
% 210.28/32.50 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 210.28/32.50 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 210.28/32.50 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 210.28/32.50 % No SInE strategy applied
% 210.28/32.50 % Search class: FGHSM-SMLM32-DFFFFFNN
% 210.28/32.50 % Scheduled 13 strats onto 5 cores with 1500 seconds (1500 total)
% 210.28/32.50 % Starting SubtermCWHack with 136s (1) cores
% 210.28/32.50 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 151s (1) cores
% 210.28/32.50 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 113s (1) cores
% 210.28/32.50 % Starting G-E--_207_C01_F1_SE_CS_SP_PI_S5PRR_S0Y with 113s (1) cores
% 210.28/32.50 % Starting G-E--_208_B07CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN with 113s (1) cores
% 210.28/32.50 % G-E--_208_B07CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN with pid 2942082 completed with status 0
% 210.28/32.50 % Result found by G-E--_208_B07CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN
% 210.28/32.50 % Preprocessing class: FMLMSMSMSSSNFFN.
% 210.28/32.50 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 210.28/32.50 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 210.28/32.50 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 210.28/32.50 % No SInE strategy applied
% 210.28/32.50 % Search class: FGHSM-SMLM32-DFFFFFNN
% 210.28/32.50 % Scheduled 13 strats onto 5 cores with 1500 seconds (1500 total)
% 210.28/32.50 % Starting SubtermCWHack with 136s (1) cores
% 210.28/32.50 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 151s (1) cores
% 210.28/32.50 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 113s (1) cores
% 210.28/32.50 % Starting G-E--_207_C01_F1_SE_CS_SP_PI_S5PRR_S0Y with 113s (1) cores
% 210.28/32.50 % Starting G-E--_208_B07CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN with 113s (1) cores
% 210.28/32.50 % Preprocessing time : 0.031 s
% 210.28/32.50 % Presaturation interreduction done
% 210.28/32.50
% 210.28/32.50 % Proof found!
% 210.28/32.50 % SZS status Unsatisfiable
% 210.28/32.50 % SZS output start CNFRefutation
% See solution above
% 210.28/32.50 % Parsed axioms : 2787
% 210.28/32.50 % Removed by relevancy pruning/SinE : 0
% 210.28/32.50 % Initial clauses : 2787
% 210.28/32.50 % Removed in clause preprocessing : 9
% 210.28/32.50 % Initial clauses in saturation : 2778
% 210.28/32.50 % Processed clauses : 102962
% 210.28/32.50 % ...of these trivial : 855
% 210.28/32.50 % ...subsumed : 85835
% 210.28/32.50 % ...remaining for further processing : 16272
% 210.28/32.50 % Other redundant clauses eliminated : 5571
% 210.28/32.50 % Clauses deleted for lack of memory : 0
% 210.28/32.50 % Backward-subsumed : 510
% 210.28/32.50 % Backward-rewritten : 793
% 210.28/32.50 % Generated clauses : 867260
% 210.28/32.50 % ...of the previous two non-redundant : 764910
% 210.28/32.50 % ...aggressively subsumed : 0
% 210.28/32.50 % Contextual simplify-reflections : 654
% 210.28/32.50 % Paramodulations : 861606
% 210.28/32.50 % Factorizations : 6
% 210.28/32.50 % NegExts : 0
% 210.28/32.50 % Equation resolutions : 5648
% 210.28/32.50 % Disequality decompositions : 0
% 210.28/32.50 % Total rewrite steps : 777441
% 210.28/32.50 % ...of those cached : 757663
% 210.28/32.50 % Propositional unsat checks : 3
% 210.28/32.50 % Propositional check models : 1
% 210.28/32.50 % Propositional check unsatisfiable : 0
% 210.28/32.50 % Propositional clauses : 0
% 210.28/32.50 % Propositional clauses after purity: 0
% 210.28/32.50 % Propositional unsat core size : 0
% 210.28/32.50 % Propositional preprocessing time : 0.000
% 210.28/32.50 % Propositional encoding time : 1.483
% 210.28/32.50 % Propositional solver time : 1.026
% 210.28/32.50 % Success case prop preproc time : 0.000
% 210.28/32.50 % Success case prop encoding time : 0.000
% 210.28/32.50 % Success case prop solver time : 0.000
% 210.28/32.50 % Current number of processed clauses : 12318
% 210.28/32.50 % Positive orientable unit clauses : 1674
% 210.28/32.50 % Positive unorientable unit clauses: 56
% 210.28/32.50 % Negative unit clauses : 1204
% 210.28/32.50 % Non-unit-clauses : 9384
% 210.28/32.50 % Current number of unprocessed clauses: 664068
% 210.28/32.50 % ...number of literals in the above : 2036206
% 210.28/32.50 % Current number of archived formulas : 0
% 210.28/32.50 % Current number of archived clauses : 3961
% 210.28/32.50 % Clause-clause subsumption calls (NU) : 17025815
% 210.28/32.50 % Rec. Clause-clause subsumption calls : 11332908
% 210.28/32.50 % Non-unit clause-clause subsumptions : 26360
% 210.28/32.50 % Unit Clause-clause subsumption calls : 577536
% 210.28/32.50 % Rewrite failures with RHS unbound : 0
% 210.28/32.50 % BW rewrite match attempts : 4460
% 210.28/32.50 % BW rewrite match successes : 507
% 210.28/32.50 % Condensation attempts : 0
% 210.28/32.50 % Condensation successes : 0
% 210.28/32.50 % Termbank termtop insertions : 19570152
% 210.28/32.50 % Search garbage collected termcells : 4072
% 210.28/32.50
% 210.28/32.50 % -------------------------------------------------
% 210.28/32.50 % User time : 25.373 s
% 210.28/32.50 % System time : 0.635 s
% 210.28/32.50 % Total time : 26.008 s
% 210.28/32.50 % Maximum resident set size: 8452 pages
% 210.28/32.50
% 210.28/32.50 % -------------------------------------------------
% 210.28/32.50 % User time : 127.617 s
% 210.28/32.50 % System time : 3.447 s
% 210.28/32.50 % Total time : 131.064 s
% 210.28/32.50 % Maximum resident set size: 6400 pages
% 210.28/32.50 % E exiting
%------------------------------------------------------------------------------