%------------------------------------------------------------------------------
% File : E-SAT---3.5.1
% Problem : KLE027+2 : TPTP v9.3.1. Released v4.0.0.
% Transfm : none
% Format : tptp:raw
% Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% Computer : n005.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:59:09 PM UTC 2026
% Result : Theorem 0.64s 0.61s
% Output : CNFRefutation 0.64s
% Verified :
% SZS Type : Refutation
% Derivation depth : 10
% Number of leaves : 12
% Syntax : Number of formulae : 53 ( 35 unt; 0 def)
% Number of atoms : 95 ( 53 equ)
% Maximal formula atoms : 10 ( 1 avg)
% Number of connectives : 70 ( 28 ~; 23 |; 13 &)
% ( 3 <=>; 3 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 3 avg)
% Maximal term depth : 6 ( 2 avg)
% Number of predicates : 5 ( 3 usr; 1 prp; 0-2 aty)
% Number of functors : 10 ( 10 usr; 7 con; 0-2 aty)
% Number of variables : 87 ( 3 sgn 52 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(test_3,axiom,
! [X4,X5] :
( test(X4)
=> ( c(X4) = X5
<=> complement(X4,X5) ) ),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+1.ax',test_3) ).
fof(test_2,axiom,
! [X4,X5] :
( complement(X5,X4)
<=> ( addition(X4,X5) = one
& multiplication(X5,X4) = zero
& multiplication(X4,X5) = zero ) ),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+1.ax',test_2) ).
fof(goals,conjecture,
! [X4,X5,X6,X7,X8] :
( ( test(X8)
& test(X7) )
=> ( leq(addition(multiplication(X7,X4),multiplication(c(X7),X6)),addition(multiplication(X7,addition(multiplication(X7,X4),multiplication(c(X7),X5))),multiplication(c(X7),X6)))
& leq(addition(multiplication(X7,addition(multiplication(X7,X4),multiplication(c(X7),X5))),multiplication(c(X7),X6)),addition(multiplication(X7,X4),multiplication(c(X7),X6))) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',goals) ).
fof(right_distributivity,axiom,
! [X1,X2,X3] : multiplication(X1,addition(X2,X3)) = addition(multiplication(X1,X2),multiplication(X1,X3)),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',right_distributivity) ).
fof(additive_identity,axiom,
! [X1] : addition(X1,zero) = X1,
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',additive_identity) ).
fof(additive_commutativity,axiom,
! [X1,X2] : addition(X1,X2) = addition(X2,X1),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',additive_commutativity) ).
fof(multiplicative_associativity,axiom,
! [X1,X2,X3] : multiplication(X1,multiplication(X2,X3)) = multiplication(multiplication(X1,X2),X3),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',multiplicative_associativity) ).
fof(left_annihilation,axiom,
! [X1] : multiplication(zero,X1) = zero,
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',left_annihilation) ).
fof(multiplicative_right_identity,axiom,
! [X1] : multiplication(X1,one) = X1,
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',multiplicative_right_identity) ).
fof(additive_associativity,axiom,
! [X3,X2,X1] : addition(X1,addition(X2,X3)) = addition(addition(X1,X2),X3),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',additive_associativity) ).
fof(additive_idempotence,axiom,
! [X1] : addition(X1,X1) = X1,
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',additive_idempotence) ).
fof(order,axiom,
! [X1,X2] :
( leq(X1,X2)
<=> addition(X1,X2) = X2 ),
file('/export/starexec/sandbox2/benchmark/Axioms/KLE001+0.ax',order) ).
fof(c_0_12,plain,
! [X31,X32] :
( ( ~ test(X31)
| c(X31) = X32
| ~ complement(X31,X32) )
& ( ~ test(X31)
| complement(X31,X32)
| c(X31) != X32 ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[test_3])])])]) ).
fof(c_0_13,plain,
! [X38,X39] :
( ( complement(X39,X38)
| addition(X38,X39) != one
| multiplication(X39,X38) != zero
| multiplication(X38,X39) != zero )
& ( ~ complement(X39,X38)
| addition(X38,X39) = one )
& ( ~ complement(X39,X38)
| multiplication(X39,X38) = zero )
& ( ~ complement(X39,X38)
| multiplication(X38,X39) = zero ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[test_2])])])]) ).
cnf(c_0_14,plain,
( ~ test(X1)
| c(X1) != X2
| complement(X1,X2) ),
inference(split_conjunct,[status(thm)],[c_0_12]) ).
fof(c_0_15,negated_conjecture,
~ ! [X4,X5,X6,X7,X8] :
( ( test(X8)
& test(X7) )
=> ( leq(addition(multiplication(X7,X4),multiplication(c(X7),X6)),addition(multiplication(X7,addition(multiplication(X7,X4),multiplication(c(X7),X5))),multiplication(c(X7),X6)))
& leq(addition(multiplication(X7,addition(multiplication(X7,X4),multiplication(c(X7),X5))),multiplication(c(X7),X6)),addition(multiplication(X7,X4),multiplication(c(X7),X6))) ) ),
inference(assume_negation,[status(cth)],[goals]) ).
cnf(c_0_16,plain,
( ~ complement(X1,X2)
| multiplication(X1,X2) = zero ),
inference(split_conjunct,[status(thm)],[c_0_13]) ).
cnf(c_0_17,plain,
( ~ test(X1)
| complement(X1,c(X1)) ),
inference(er,[status(thm)],[c_0_14]) ).
fof(c_0_18,negated_conjecture,
( ( ~ leq(addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0)),addition(multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0))),multiplication(c(esk4_0),esk3_0)))
| ~ leq(addition(multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0))),multiplication(c(esk4_0),esk3_0)),addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0))) )
& test(esk5_0)
& test(esk4_0) ),
inference(fof_nnf,[status(thm)],[inference(skolemize,[status(esa)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_15])])])]) ).
fof(c_0_19,plain,
! [X22,X23,X24] : multiplication(X22,addition(X23,X24)) = addition(multiplication(X22,X23),multiplication(X22,X24)),
inference(variable_rename,[status(thm)],[right_distributivity]) ).
cnf(c_0_20,plain,
( ~ test(X1)
| multiplication(X1,c(X1)) = zero ),
inference(spm,[status(thm)],[c_0_16,c_0_17]) ).
cnf(c_0_21,negated_conjecture,
test(esk4_0),
inference(split_conjunct,[status(thm)],[c_0_18]) ).
fof(c_0_22,plain,
! [X40] : addition(X40,zero) = X40,
inference(variable_rename,[status(thm)],[additive_identity]) ).
fof(c_0_23,plain,
! [X16,X17] : addition(X16,X17) = addition(X17,X16),
inference(variable_rename,[status(thm)],[additive_commutativity]) ).
fof(c_0_24,plain,
! [X28,X29,X30] : multiplication(X28,multiplication(X29,X30)) = multiplication(multiplication(X28,X29),X30),
inference(variable_rename,[status(thm)],[multiplicative_associativity]) ).
fof(c_0_25,plain,
! [X42] : multiplication(zero,X42) = zero,
inference(variable_rename,[status(thm)],[left_annihilation]) ).
cnf(c_0_26,plain,
multiplication(X1,addition(X2,X3)) = addition(multiplication(X1,X2),multiplication(X1,X3)),
inference(split_conjunct,[status(thm)],[c_0_19]) ).
cnf(c_0_27,negated_conjecture,
multiplication(esk4_0,c(esk4_0)) = zero,
inference(spm,[status(thm)],[c_0_20,c_0_21]) ).
cnf(c_0_28,plain,
addition(X1,zero) = X1,
inference(split_conjunct,[status(thm)],[c_0_22]) ).
cnf(c_0_29,plain,
( ~ complement(X2,X1)
| addition(X1,X2) = one ),
inference(split_conjunct,[status(thm)],[c_0_13]) ).
cnf(c_0_30,plain,
addition(X1,X2) = addition(X2,X1),
inference(split_conjunct,[status(thm)],[c_0_23]) ).
fof(c_0_31,plain,
! [X43] : multiplication(X43,one) = X43,
inference(variable_rename,[status(thm)],[multiplicative_right_identity]) ).
fof(c_0_32,plain,
! [X18,X19,X20] : addition(X20,addition(X19,X18)) = addition(addition(X20,X19),X18),
inference(variable_rename,[status(thm)],[additive_associativity]) ).
fof(c_0_33,plain,
! [X21] : addition(X21,X21) = X21,
inference(variable_rename,[status(thm)],[additive_idempotence]) ).
cnf(c_0_34,plain,
multiplication(X1,multiplication(X2,X3)) = multiplication(multiplication(X1,X2),X3),
inference(split_conjunct,[status(thm)],[c_0_24]) ).
cnf(c_0_35,plain,
multiplication(zero,X1) = zero,
inference(split_conjunct,[status(thm)],[c_0_25]) ).
cnf(c_0_36,negated_conjecture,
multiplication(esk4_0,addition(X1,c(esk4_0))) = multiplication(esk4_0,X1),
inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_26,c_0_27]),c_0_28]) ).
cnf(c_0_37,plain,
( ~ test(X1)
| addition(X1,c(X1)) = one ),
inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_29,c_0_17]),c_0_30]) ).
cnf(c_0_38,plain,
multiplication(X1,one) = X1,
inference(split_conjunct,[status(thm)],[c_0_31]) ).
cnf(c_0_39,plain,
addition(X1,addition(X2,X3)) = addition(addition(X1,X2),X3),
inference(split_conjunct,[status(thm)],[c_0_32]) ).
cnf(c_0_40,plain,
addition(X1,X1) = X1,
inference(split_conjunct,[status(thm)],[c_0_33]) ).
cnf(c_0_41,negated_conjecture,
( ~ leq(addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0)),addition(multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0))),multiplication(c(esk4_0),esk3_0)))
| ~ leq(addition(multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0))),multiplication(c(esk4_0),esk3_0)),addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0))) ),
inference(split_conjunct,[status(thm)],[c_0_18]) ).
fof(c_0_42,plain,
! [X14,X15] :
( ( leq(X14,X15)
| addition(X14,X15) != X15 )
& ( addition(X14,X15) = X15
| ~ leq(X14,X15) ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[order])])]) ).
cnf(c_0_43,negated_conjecture,
multiplication(esk4_0,multiplication(c(esk4_0),X1)) = zero,
inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_34,c_0_27]),c_0_35]) ).
cnf(c_0_44,negated_conjecture,
multiplication(esk4_0,esk4_0) = esk4_0,
inference(cn,[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_21])]) ).
cnf(c_0_45,plain,
addition(X1,addition(X1,X2)) = addition(X1,X2),
inference(spm,[status(thm)],[c_0_39,c_0_40]) ).
cnf(c_0_46,negated_conjecture,
( ~ leq(addition(multiplication(c(esk4_0),esk3_0),multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0)))),addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0)))
| ~ leq(addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0)),addition(multiplication(c(esk4_0),esk3_0),multiplication(esk4_0,addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk2_0))))) ),
inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_41,c_0_30]),c_0_30]) ).
cnf(c_0_47,plain,
( addition(X1,X2) != X2
| leq(X1,X2) ),
inference(split_conjunct,[status(thm)],[c_0_42]) ).
cnf(c_0_48,negated_conjecture,
multiplication(esk4_0,addition(X1,multiplication(c(esk4_0),X2))) = multiplication(esk4_0,X1),
inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_26,c_0_43]),c_0_28]) ).
cnf(c_0_49,negated_conjecture,
multiplication(esk4_0,multiplication(esk4_0,X1)) = multiplication(esk4_0,X1),
inference(spm,[status(thm)],[c_0_34,c_0_44]) ).
cnf(c_0_50,plain,
addition(X1,addition(X2,X1)) = addition(X2,X1),
inference(spm,[status(thm)],[c_0_45,c_0_30]) ).
cnf(c_0_51,negated_conjecture,
~ leq(addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0)),addition(multiplication(esk4_0,esk1_0),multiplication(c(esk4_0),esk3_0))),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_46,c_0_47]),c_0_39]),c_0_48]),c_0_49]),c_0_30]),c_0_48]),c_0_49]),c_0_45]),c_0_50])]) ).
cnf(c_0_52,negated_conjecture,
$false,
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_51,c_0_47]),c_0_40])]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02 % Problem : KLE027+2 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.04 % Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.09/0.35 % Computer : n005.cluster.edu
% 0.09/0.35 % Model : x86_64 x86_64
% 0.09/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.35 % Memory : 8046.5625MB
% 0.09/0.35 % OS : Linux 6.8.0-71-generic
% 0.09/0.35 % CPULimit : 300
% 0.09/0.35 % WCLimit : 300
% 0.09/0.35 % DateTime : Sun Sep 20 22:39:18 UTC 2026
% 0.09/0.35 % CPUTime :
% 0.09/0.35 Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.18/0.43 Running first-order theorem proving
% 0.18/0.43 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
% 0.64/0.61 % Version: 3.5.1
% 0.64/0.61 % Preprocessing class: FSMSSMSSSSSNFFN.
% 0.64/0.61 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.64/0.61 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.64/0.61 % Starting new_bool_3 with 300s (1) cores
% 0.64/0.61 % Starting new_bool_1 with 300s (1) cores
% 0.64/0.61 % Starting sh5l with 300s (1) cores
% 0.64/0.61 % new_bool_3 with pid 1911514 completed with status 0
% 0.64/0.61 % Result found by new_bool_3
% 0.64/0.61 % Preprocessing class: FSMSSMSSSSSNFFN.
% 0.64/0.61 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.64/0.61 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.64/0.61 % Starting new_bool_3 with 300s (1) cores
% 0.64/0.61 % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.64/0.61 % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.64/0.61 % Search class: FGHSM-FFMF21-MFFFFFNN
% 0.64/0.61 % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 0.64/0.61 % Starting SubtermCWHack with 31s (1) cores
% 0.64/0.61 % SubtermCWHack with pid 1911519 completed with status 0
% 0.64/0.61 % Result found by SubtermCWHack
% 0.64/0.61 % Preprocessing class: FSMSSMSSSSSNFFN.
% 0.64/0.61 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.64/0.61 % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.64/0.61 % Starting new_bool_3 with 300s (1) cores
% 0.64/0.61 % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.64/0.61 % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.64/0.61 % Search class: FGHSM-FFMF21-MFFFFFNN
% 0.64/0.61 % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 0.64/0.61 % Starting SubtermCWHack with 31s (1) cores
% 0.64/0.61 % Preprocessing time : 0.002 s
% 0.64/0.61
% 0.64/0.61 % Proof found!
% 0.64/0.61 % SZS status Theorem
% 0.64/0.61 % SZS output start CNFRefutation
% See solution above
% 0.64/0.61 % Parsed axioms : 17
% 0.64/0.61 % Removed by relevancy pruning/SinE : 0
% 0.64/0.61 % Initial clauses : 25
% 0.64/0.61 % Removed in clause preprocessing : 0
% 0.64/0.61 % Initial clauses in saturation : 25
% 0.64/0.61 % Processed clauses : 858
% 0.64/0.61 % ...of these trivial : 65
% 0.64/0.61 % ...subsumed : 524
% 0.64/0.61 % ...remaining for further processing : 269
% 0.64/0.61 % Other redundant clauses eliminated : 18
% 0.64/0.61 % Clauses deleted for lack of memory : 0
% 0.64/0.61 % Backward-subsumed : 11
% 0.64/0.61 % Backward-rewritten : 20
% 0.64/0.61 % Generated clauses : 7130
% 0.64/0.61 % ...of the previous two non-redundant : 4299
% 0.64/0.61 % ...aggressively subsumed : 0
% 0.64/0.61 % Contextual simplify-reflections : 2
% 0.64/0.61 % Paramodulations : 7111
% 0.64/0.61 % Factorizations : 1
% 0.64/0.61 % NegExts : 0
% 0.64/0.61 % Equation resolutions : 18
% 0.64/0.61 % Disequality decompositions : 0
% 0.64/0.61 % Total rewrite steps : 9316
% 0.64/0.61 % ...of those cached : 7649
% 0.64/0.61 % Propositional unsat checks : 0
% 0.64/0.61 % Propositional check models : 0
% 0.64/0.61 % Propositional check unsatisfiable : 0
% 0.64/0.61 % Propositional clauses : 0
% 0.64/0.61 % Propositional clauses after purity: 0
% 0.64/0.61 % Propositional unsat core size : 0
% 0.64/0.61 % Propositional preprocessing time : 0.000
% 0.64/0.61 % Propositional encoding time : 0.000
% 0.64/0.61 % Propositional solver time : 0.000
% 0.64/0.61 % Success case prop preproc time : 0.000
% 0.64/0.61 % Success case prop encoding time : 0.000
% 0.64/0.61 % Success case prop solver time : 0.000
% 0.64/0.61 % Current number of processed clauses : 237
% 0.64/0.61 % Positive orientable unit clauses : 135
% 0.64/0.61 % Positive unorientable unit clauses: 3
% 0.64/0.61 % Negative unit clauses : 1
% 0.64/0.61 % Non-unit-clauses : 98
% 0.64/0.61 % Current number of unprocessed clauses: 3454
% 0.64/0.61 % ...number of literals in the above : 5777
% 0.64/0.61 % Current number of archived formulas : 0
% 0.64/0.61 % Current number of archived clauses : 31
% 0.64/0.61 % Clause-clause subsumption calls (NU) : 4968
% 0.64/0.61 % Rec. Clause-clause subsumption calls : 3613
% 0.64/0.61 % Non-unit clause-clause subsumptions : 452
% 0.64/0.61 % Unit Clause-clause subsumption calls : 533
% 0.64/0.61 % Rewrite failures with RHS unbound : 0
% 0.64/0.61 % BW rewrite match attempts : 100
% 0.64/0.61 % BW rewrite match successes : 63
% 0.64/0.61 % Condensation attempts : 0
% 0.64/0.61 % Condensation successes : 0
% 0.64/0.61 % Termbank termtop insertions : 76063
% 0.64/0.61 % Search garbage collected termcells : 204
% 0.64/0.61
% 0.64/0.61 % -------------------------------------------------
% 0.64/0.61 % User time : 0.125 s
% 0.64/0.61 % System time : 0.008 s
% 0.64/0.61 % Total time : 0.133 s
% 0.64/0.61 % Maximum resident set size: 3624 pages
% 0.64/0.61
% 0.64/0.61 % -------------------------------------------------
% 0.64/0.61 % User time : 0.127 s
% 0.64/0.61 % System time : 0.015 s
% 0.64/0.61 % Total time : 0.142 s
% 0.64/0.61 % Maximum resident set size: 4864 pages
% 0.64/0.61 % E exiting
%------------------------------------------------------------------------------