%------------------------------------------------------------------------------
% File : ET---2.0
% Problem : KRS251+1 : TPTP v8.1.0. Bugfixed v5.4.0.
% Transfm : none
% Format : tptp:raw
% Command : run_ET %s %d
% Computer : n018.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 600s
% DateTime : Sun Jul 17 03:00:11 EDT 2022
% Result : Theorem 0.32s 24.51s
% Output : CNFRefutation 0.32s
% Verified :
% SZS Type : Refutation
% Derivation depth : 10
% Number of leaves : 5
% Syntax : Number of formulae : 32 ( 7 unt; 0 def)
% Number of atoms : 89 ( 0 equ)
% Maximal formula atoms : 12 ( 2 avg)
% Number of connectives : 92 ( 35 ~; 42 |; 9 &)
% ( 3 <=>; 1 =>; 0 <=; 2 <~>)
% Maximal formula depth : 15 ( 4 avg)
% Maximal term depth : 3 ( 1 avg)
% Number of predicates : 4 ( 3 usr; 1 prp; 0-3 aty)
% Number of functors : 7 ( 7 usr; 2 con; 0-2 aty)
% Number of variables : 69 ( 10 sgn 33 !; 1 ?)
% Comments :
%------------------------------------------------------------------------------
fof(csa,axiom,
! [X1,X2] :
( ? [X3] :
( model(X3,X1)
& model(X3,not(X2)) )
<=> status(X1,X2,csa) ),
file('/export/starexec/sandbox/benchmark/Axioms/KRS001+0.ax',csa) ).
fof(completeness,axiom,
! [X9,X10] :
( model(X9,X10)
<~> model(X9,not(X10)) ),
file('/export/starexec/sandbox/benchmark/Axioms/KRS001+1.ax',completeness) ).
fof(thm,axiom,
! [X1,X2] :
( ! [X3] :
( model(X3,X1)
=> model(X3,X2) )
<=> status(X1,X2,thm) ),
file('/export/starexec/sandbox/benchmark/Axioms/KRS001+0.ax',thm) ).
fof(xora,axiom,
! [X7,X8] :
( ! [X1,X2] :
( status(X1,X2,X7)
<~> status(X1,X2,X8) )
<=> xora(X7,X8) ),
file('/export/starexec/sandbox/benchmark/Axioms/KRS001+1.ax',xora) ).
fof(xora_csa_thm,conjecture,
xora(csa,thm),
file('/export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p',xora_csa_thm) ).
fof(c_0_5,plain,
! [X4,X5,X6,X4,X5] :
( ( ~ model(X6,X4)
| ~ model(X6,not(X5))
| status(X4,X5,csa) )
& ( model(esk4_2(X4,X5),X4)
| ~ status(X4,X5,csa) )
& ( model(esk4_2(X4,X5),not(X5))
| ~ status(X4,X5,csa) ) ),
inference(distribute,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(skolemize,[status(esa)],[inference(shift_quantors,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[csa])])])])])])]) ).
fof(c_0_6,plain,
! [X11,X12,X11,X12] :
( ( ~ model(X11,X12)
| ~ model(X11,not(X12)) )
& ( model(X11,X12)
| model(X11,not(X12)) ) ),
inference(shift_quantors,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(fof_simplification,[status(thm)],[completeness])])])])]) ).
cnf(c_0_7,plain,
( status(X1,X2,csa)
| ~ model(X3,not(X2))
| ~ model(X3,X1) ),
inference(split_conjunct,[status(thm)],[c_0_5]) ).
cnf(c_0_8,plain,
( model(X1,not(X2))
| model(X1,X2) ),
inference(split_conjunct,[status(thm)],[c_0_6]) ).
fof(c_0_9,plain,
! [X4,X5,X4,X5,X7] :
( ( model(esk3_2(X4,X5),X4)
| status(X4,X5,thm) )
& ( ~ model(esk3_2(X4,X5),X5)
| status(X4,X5,thm) )
& ( ~ status(X4,X5,thm)
| ~ model(X7,X4)
| model(X7,X5) ) ),
inference(distribute,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(skolemize,[status(esa)],[inference(shift_quantors,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[thm])])])])])])]) ).
cnf(c_0_10,plain,
( status(X1,X2,csa)
| model(X3,X2)
| ~ model(X3,X1) ),
inference(pm,[status(thm)],[c_0_7,c_0_8]) ).
cnf(c_0_11,plain,
( status(X1,X2,thm)
| model(esk3_2(X1,X2),X1) ),
inference(split_conjunct,[status(thm)],[c_0_9]) ).
fof(c_0_12,plain,
! [X9,X10,X9,X10,X13,X14,X13,X14] :
( ( ~ status(esk1_2(X9,X10),esk2_2(X9,X10),X9)
| status(esk1_2(X9,X10),esk2_2(X9,X10),X10)
| xora(X9,X10) )
& ( ~ status(esk1_2(X9,X10),esk2_2(X9,X10),X10)
| status(esk1_2(X9,X10),esk2_2(X9,X10),X9)
| xora(X9,X10) )
& ( ~ status(X13,X14,X9)
| ~ status(X13,X14,X10)
| ~ xora(X9,X10) )
& ( status(X13,X14,X9)
| status(X13,X14,X10)
| ~ xora(X9,X10) ) ),
inference(distribute,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(skolemize,[status(esa)],[inference(shift_quantors,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(fof_simplification,[status(thm)],[xora])])])])])])])]) ).
cnf(c_0_13,plain,
( status(X1,X2,thm)
| ~ model(esk3_2(X1,X2),X2) ),
inference(split_conjunct,[status(thm)],[c_0_9]) ).
cnf(c_0_14,plain,
( status(X1,X2,thm)
| status(X1,X3,csa)
| model(esk3_2(X1,X2),X3) ),
inference(pm,[status(thm)],[c_0_10,c_0_11]) ).
fof(c_0_15,negated_conjecture,
~ xora(csa,thm),
inference(assume_negation,[status(cth)],[xora_csa_thm]) ).
cnf(c_0_16,plain,
( xora(X1,X2)
| status(esk1_2(X1,X2),esk2_2(X1,X2),X2)
| ~ status(esk1_2(X1,X2),esk2_2(X1,X2),X1) ),
inference(split_conjunct,[status(thm)],[c_0_12]) ).
cnf(c_0_17,plain,
( status(X1,X2,csa)
| status(X1,X2,thm) ),
inference(pm,[status(thm)],[c_0_13,c_0_14]) ).
fof(c_0_18,negated_conjecture,
~ xora(csa,thm),
inference(fof_simplification,[status(thm)],[c_0_15]) ).
cnf(c_0_19,plain,
( xora(csa,X1)
| status(esk1_2(csa,X1),esk2_2(csa,X1),thm)
| status(esk1_2(csa,X1),esk2_2(csa,X1),X1) ),
inference(pm,[status(thm)],[c_0_16,c_0_17]) ).
cnf(c_0_20,negated_conjecture,
~ xora(csa,thm),
inference(split_conjunct,[status(thm)],[c_0_18]) ).
cnf(c_0_21,plain,
( ~ model(X1,not(X2))
| ~ model(X1,X2) ),
inference(split_conjunct,[status(thm)],[c_0_6]) ).
cnf(c_0_22,plain,
( model(esk4_2(X1,X2),not(X2))
| ~ status(X1,X2,csa) ),
inference(split_conjunct,[status(thm)],[c_0_5]) ).
cnf(c_0_23,plain,
( model(X1,X2)
| ~ model(X1,X3)
| ~ status(X3,X2,thm) ),
inference(split_conjunct,[status(thm)],[c_0_9]) ).
cnf(c_0_24,plain,
status(esk1_2(csa,thm),esk2_2(csa,thm),thm),
inference(sr,[status(thm)],[inference(ef,[status(thm)],[c_0_19]),c_0_20]) ).
cnf(c_0_25,plain,
( ~ status(X1,X2,csa)
| ~ model(esk4_2(X1,X2),X2) ),
inference(pm,[status(thm)],[c_0_21,c_0_22]) ).
cnf(c_0_26,plain,
( model(X1,esk2_2(csa,thm))
| ~ model(X1,esk1_2(csa,thm)) ),
inference(pm,[status(thm)],[c_0_23,c_0_24]) ).
cnf(c_0_27,plain,
( xora(X1,X2)
| status(esk1_2(X1,X2),esk2_2(X1,X2),X1)
| ~ status(esk1_2(X1,X2),esk2_2(X1,X2),X2) ),
inference(split_conjunct,[status(thm)],[c_0_12]) ).
cnf(c_0_28,plain,
( ~ status(X1,esk2_2(csa,thm),csa)
| ~ model(esk4_2(X1,esk2_2(csa,thm)),esk1_2(csa,thm)) ),
inference(pm,[status(thm)],[c_0_25,c_0_26]) ).
cnf(c_0_29,plain,
( model(esk4_2(X1,X2),X1)
| ~ status(X1,X2,csa) ),
inference(split_conjunct,[status(thm)],[c_0_5]) ).
cnf(c_0_30,plain,
status(esk1_2(csa,thm),esk2_2(csa,thm),csa),
inference(sr,[status(thm)],[inference(pm,[status(thm)],[c_0_27,c_0_24]),c_0_20]) ).
cnf(c_0_31,plain,
$false,
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(pm,[status(thm)],[c_0_28,c_0_29]),c_0_30])]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12 % Problem : KRS251+1 : TPTP v8.1.0. Bugfixed v5.4.0.
% 0.12/0.12 % Command : run_ET %s %d
% 0.12/0.31 % Computer : n018.cluster.edu
% 0.12/0.31 % Model : x86_64 x86_64
% 0.12/0.31 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.31 % Memory : 8042.1875MB
% 0.12/0.31 % OS : Linux 3.10.0-693.el7.x86_64
% 0.12/0.32 % CPULimit : 300
% 0.12/0.32 % WCLimit : 600
% 0.12/0.32 % DateTime : Tue Jun 7 16:42:51 EDT 2022
% 0.12/0.32 % CPUTime :
% 0.32/23.38 eprover: CPU time limit exceeded, terminating
% 0.32/23.39 eprover: CPU time limit exceeded, terminating
% 0.32/23.40 eprover: CPU time limit exceeded, terminating
% 0.32/23.40 eprover: CPU time limit exceeded, terminating
% 0.32/24.51 # Running protocol protocol_eprover_2d86bd69119e7e9cc4417c0ee581499eaf828bb2 for 23 seconds:
% 0.32/24.51
% 0.32/24.51 # Failure: Resource limit exceeded (time)
% 0.32/24.51 # OLD status Res
% 0.32/24.51 # SinE strategy is GSinE(CountFormulas,,1.1,,02,500,1.0)
% 0.32/24.51 # Preprocessing time : 0.017 s
% 0.32/24.51 # Running protocol protocol_eprover_230b6c199cce1dcf6700db59e75a93feb83d1bd9 for 23 seconds:
% 0.32/24.51 # SinE strategy is GSinE(CountFormulas,hypos,1.1,,01,20000,1.0)
% 0.32/24.51 # Preprocessing time : 0.008 s
% 0.32/24.51
% 0.32/24.51 # Failure: Out of unprocessed clauses!
% 0.32/24.51 # OLD status GaveUp
% 0.32/24.51 # Parsed axioms : 33
% 0.32/24.51 # Removed by relevancy pruning/SinE : 29
% 0.32/24.51 # Initial clauses : 11
% 0.32/24.51 # Removed in clause preprocessing : 0
% 0.32/24.51 # Initial clauses in saturation : 11
% 0.32/24.51 # Processed clauses : 41
% 0.32/24.51 # ...of these trivial : 0
% 0.32/24.51 # ...subsumed : 14
% 0.32/24.51 # ...remaining for further processing : 27
% 0.32/24.51 # Other redundant clauses eliminated : 0
% 0.32/24.51 # Clauses deleted for lack of memory : 0
% 0.32/24.51 # Backward-subsumed : 0
% 0.32/24.51 # Backward-rewritten : 0
% 0.32/24.51 # Generated clauses : 32
% 0.32/24.51 # ...of the previous two non-trivial : 30
% 0.32/24.51 # Contextual simplify-reflections : 7
% 0.32/24.51 # Paramodulations : 32
% 0.32/24.51 # Factorizations : 0
% 0.32/24.51 # Equation resolutions : 0
% 0.32/24.51 # Current number of processed clauses : 27
% 0.32/24.51 # Positive orientable unit clauses : 1
% 0.32/24.51 # Positive unorientable unit clauses: 0
% 0.32/24.51 # Negative unit clauses : 1
% 0.32/24.51 # Non-unit-clauses : 25
% 0.32/24.51 # Current number of unprocessed clauses: 0
% 0.32/24.51 # ...number of literals in the above : 0
% 0.32/24.51 # Current number of archived formulas : 0
% 0.32/24.51 # Current number of archived clauses : 0
% 0.32/24.51 # Clause-clause subsumption calls (NU) : 79
% 0.32/24.51 # Rec. Clause-clause subsumption calls : 71
% 0.32/24.51 # Non-unit clause-clause subsumptions : 21
% 0.32/24.51 # Unit Clause-clause subsumption calls : 2
% 0.32/24.51 # Rewrite failures with RHS unbound : 0
% 0.32/24.51 # BW rewrite match attempts : 9
% 0.32/24.51 # BW rewrite match successes : 0
% 0.32/24.51 # Condensation attempts : 0
% 0.32/24.51 # Condensation successes : 0
% 0.32/24.51 # Termbank termtop insertions : 1710
% 0.32/24.51
% 0.32/24.51 # -------------------------------------------------
% 0.32/24.51 # User time : 0.008 s
% 0.32/24.51 # System time : 0.001 s
% 0.32/24.51 # Total time : 0.009 s
% 0.32/24.51 # Maximum resident set size: 2748 pages
% 0.32/24.51 # Running protocol protocol_eprover_48e494e00e0717ec2eabf59b73b2d711334607de for 23 seconds:
% 0.32/24.51 # SinE strategy is GSinE(CountFormulas,hypos,1.1,,03,20000,1.0)
% 0.32/24.51 # Preprocessing time : 0.008 s
% 0.32/24.51
% 0.32/24.51 # Proof found!
% 0.32/24.51 # SZS status Theorem
% 0.32/24.51 # SZS output start CNFRefutation
% See solution above
% 0.32/24.51 # Proof object total steps : 32
% 0.32/24.51 # Proof object clause steps : 21
% 0.32/24.51 # Proof object formula steps : 11
% 0.32/24.51 # Proof object conjectures : 4
% 0.32/24.51 # Proof object clause conjectures : 1
% 0.32/24.51 # Proof object formula conjectures : 3
% 0.32/24.51 # Proof object initial clauses used : 11
% 0.32/24.51 # Proof object initial formulas used : 5
% 0.32/24.51 # Proof object generating inferences : 10
% 0.32/24.51 # Proof object simplifying inferences : 4
% 0.32/24.51 # Training examples: 0 positive, 0 negative
% 0.32/24.51 # Parsed axioms : 33
% 0.32/24.51 # Removed by relevancy pruning/SinE : 21
% 0.32/24.51 # Initial clauses : 30
% 0.32/24.51 # Removed in clause preprocessing : 0
% 0.32/24.51 # Initial clauses in saturation : 30
% 0.32/24.51 # Processed clauses : 2973
% 0.32/24.51 # ...of these trivial : 94
% 0.32/24.51 # ...subsumed : 2303
% 0.32/24.51 # ...remaining for further processing : 576
% 0.32/24.51 # Other redundant clauses eliminated : 0
% 0.32/24.51 # Clauses deleted for lack of memory : 0
% 0.32/24.51 # Backward-subsumed : 28
% 0.32/24.51 # Backward-rewritten : 9
% 0.32/24.51 # Generated clauses : 20504
% 0.32/24.51 # ...of the previous two non-trivial : 18697
% 0.32/24.51 # Contextual simplify-reflections : 76
% 0.32/24.51 # Paramodulations : 20445
% 0.32/24.51 # Factorizations : 50
% 0.32/24.51 # Equation resolutions : 0
% 0.32/24.51 # Current number of processed clauses : 530
% 0.32/24.51 # Positive orientable unit clauses : 110
% 0.32/24.51 # Positive unorientable unit clauses: 0
% 0.32/24.51 # Negative unit clauses : 86
% 0.32/24.51 # Non-unit-clauses : 334
% 0.32/24.51 # Current number of unprocessed clauses: 14131
% 0.32/24.51 # ...number of literals in the above : 46567
% 0.32/24.51 # Current number of archived formulas : 0
% 0.32/24.51 # Current number of archived clauses : 46
% 0.32/24.51 # Clause-clause subsumption calls (NU) : 62967
% 0.32/24.51 # Rec. Clause-clause subsumption calls : 39726
% 0.32/24.51 # Non-unit clause-clause subsumptions : 798
% 0.32/24.51 # Unit Clause-clause subsumption calls : 4037
% 0.32/24.51 # Rewrite failures with RHS unbound : 0
% 0.32/24.51 # BW rewrite match attempts : 336
% 0.32/24.51 # BW rewrite match successes : 12
% 0.32/24.51 # Condensation attempts : 0
% 0.32/24.51 # Condensation successes : 0
% 0.32/24.51 # Termbank termtop insertions : 160332
% 0.32/24.51
% 0.32/24.51 # -------------------------------------------------
% 0.32/24.51 # User time : 0.186 s
% 0.32/24.51 # System time : 0.006 s
% 0.32/24.51 # Total time : 0.192 s
% 0.32/24.51 # Maximum resident set size: 14228 pages
% 0.32/46.41 eprover: CPU time limit exceeded, terminating
% 0.32/46.41 eprover: CPU time limit exceeded, terminating
% 0.32/46.42 eprover: CPU time limit exceeded, terminating
% 0.32/46.42 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.42 eprover: No such file or directory
% 0.32/46.42 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.42 eprover: No such file or directory
% 0.32/46.43 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.43 eprover: No such file or directory
% 0.32/46.43 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.43 eprover: No such file or directory
% 0.32/46.43 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.43 eprover: No such file or directory
% 0.32/46.43 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.43 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.44 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.44 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.45 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.45 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.46 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.46 eprover: No such file or directory
% 0.32/46.47 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p
% 0.32/46.47 eprover: No such file or directory
% 0.32/46.47 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.47 eprover: No such file or directory
% 0.32/46.47 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.47 eprover: No such file or directory
% 0.32/46.48 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.48 eprover: No such file or directory
% 0.32/46.48 eprover: Cannot stat file /export/starexec/sandbox/solver/bin/../tmp/theBenchmark.p.mepo_128.in
% 0.32/46.48 eprover: No such file or directory
%------------------------------------------------------------------------------