%------------------------------------------------------------------------------
% File : E---3.5.1
% Problem : SWB071+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 : 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 02:38:36 PM UTC 2026
% Result : Theorem 7.49s 2.91s
% Output : CNFRefutation 7.49s
% Verified :
% SZS Type : Refutation
% Derivation depth : 9
% Number of leaves : 8
% Syntax : Number of formulae : 43 ( 12 unt; 0 def)
% Number of atoms : 138 ( 12 equ)
% Maximal formula atoms : 15 ( 3 avg)
% Number of connectives : 154 ( 59 ~; 61 |; 26 &)
% ( 4 <=>; 4 =>; 0 <=; 0 <~>)
% Maximal formula depth : 13 ( 4 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 6 ( 4 usr; 1 prp; 0-3 aty)
% Number of functors : 14 ( 14 usr; 10 con; 0-3 aty)
% Number of variables : 80 ( 3 sgn 37 !; 4 ?)
% Comments :
%------------------------------------------------------------------------------
fof(owl_npa_object_fi,axiom,
! [X2,X21,X22] :
( ( ~ iext(X2,X21,X22)
& ir(X22)
& ip(X2)
& ir(X21) )
=> ? [X11] :
( iext(uri_owl_targetIndividual,X11,X22)
& iext(uri_owl_assertionProperty,X11,X2)
& iext(uri_owl_sourceIndividual,X11,X21) ) ),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',owl_npa_object_fi) ).
fof(conclusion_rdfbased_sem_npa_ind_bw,conjecture,
? [X42] :
( iext(uri_owl_targetIndividual,X42,uri_ex_o2)
& iext(uri_owl_assertionProperty,X42,uri_ex_p)
& iext(uri_owl_sourceIndividual,X42,uri_ex_s) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',conclusion_rdfbased_sem_npa_ind_bw) ).
fof(simple_ir,axiom,
! [X4] : ir(X4),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',simple_ir) ).
fof(simple_iext_property,axiom,
! [X1,X2,X3] :
( iext(X2,X1,X3)
=> ip(X2) ),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',simple_iext_property) ).
fof(rdfs_cext_def,axiom,
! [X4,X5] :
( iext(uri_rdf_type,X4,X5)
<=> icext(X5,X4) ),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',rdfs_cext_def) ).
fof(premise_rdfbased_sem_npa_ind_bw,axiom,
( iext(uri_owl_differentFrom,uri_ex_o2,uri_ex_o1)
& iext(uri_ex_p,uri_ex_s,uri_ex_o1)
& iext(uri_rdf_type,uri_ex_p,uri_owl_FunctionalProperty) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',premise_rdfbased_sem_npa_ind_bw) ).
fof(owl_char_functional,axiom,
! [X2] :
( icext(uri_owl_FunctionalProperty,X2)
<=> ( ! [X4,X27,X28] :
( ( iext(X2,X4,X28)
& iext(X2,X4,X27) )
=> X27 = X28 )
& ip(X2) ) ),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',owl_char_functional) ).
fof(owl_eqdis_differentfrom,axiom,
! [X4,X7] :
( iext(uri_owl_differentFrom,X4,X7)
<=> X4 != X7 ),
file('/export/starexec/sandbox2/benchmark/Axioms/SWB001+0.ax',owl_eqdis_differentfrom) ).
fof(c_0_8,plain,
! [X2,X21,X22] :
( ( ~ iext(X2,X21,X22)
& ir(X22)
& ip(X2)
& ir(X21) )
=> ? [X11] :
( iext(uri_owl_targetIndividual,X11,X22)
& iext(uri_owl_assertionProperty,X11,X2)
& iext(uri_owl_sourceIndividual,X11,X21) ) ),
inference(fof_simplification,[status(thm)],[owl_npa_object_fi]) ).
fof(c_0_9,negated_conjecture,
~ ? [X42] :
( iext(uri_owl_targetIndividual,X42,uri_ex_o2)
& iext(uri_owl_assertionProperty,X42,uri_ex_p)
& iext(uri_owl_sourceIndividual,X42,uri_ex_s) ),
inference(assume_negation,[status(cth)],[conclusion_rdfbased_sem_npa_ind_bw]) ).
fof(c_0_10,plain,
! [X1122,X1123,X1124] :
( ( iext(X1122,X1123,X1124)
| ~ ir(X1124)
| ~ ip(X1122)
| ~ ir(X1123)
| iext(uri_owl_targetIndividual,esk191_3(X1122,X1123,X1124),X1124) )
& ( iext(X1122,X1123,X1124)
| ~ ir(X1124)
| ~ ip(X1122)
| ~ ir(X1123)
| iext(uri_owl_assertionProperty,esk191_3(X1122,X1123,X1124),X1122) )
& ( iext(X1122,X1123,X1124)
| ~ ir(X1124)
| ~ ip(X1122)
| ~ ir(X1123)
| iext(uri_owl_sourceIndividual,esk191_3(X1122,X1123,X1124),X1123) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(skolemize,[status(esa)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_8])])])])]) ).
fof(c_0_11,plain,
! [X46] : ir(X46),
inference(variable_rename,[status(thm)],[simple_ir]) ).
fof(c_0_12,plain,
! [X43,X44,X45] :
( ip(X44)
| ~ iext(X44,X43,X45) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[simple_iext_property])])]) ).
fof(c_0_13,plain,
! [X49,X50] :
( ( iext(uri_rdf_type,X49,X50)
| ~ icext(X50,X49) )
& ( icext(X50,X49)
| ~ iext(uri_rdf_type,X49,X50) ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[rdfs_cext_def])])]) ).
fof(c_0_14,negated_conjecture,
! [X1249] :
( ~ iext(uri_owl_targetIndividual,X1249,uri_ex_o2)
| ~ iext(uri_owl_assertionProperty,X1249,uri_ex_p)
| ~ iext(uri_owl_sourceIndividual,X1249,uri_ex_s) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_9])])]) ).
cnf(c_0_15,plain,
( ~ ir(X3)
| ~ ip(X1)
| ~ ir(X2)
| iext(X1,X2,X3)
| iext(uri_owl_assertionProperty,esk191_3(X1,X2,X3),X1) ),
inference(split_conjunct,[status(thm)],[c_0_10]) ).
cnf(c_0_16,plain,
ir(X1),
inference(split_conjunct,[status(thm)],[c_0_11]) ).
cnf(c_0_17,plain,
( ~ iext(X1,X2,X3)
| ip(X1) ),
inference(split_conjunct,[status(thm)],[c_0_12]) ).
cnf(c_0_18,plain,
iext(uri_ex_p,uri_ex_s,uri_ex_o1),
inference(split_conjunct,[status(thm)],[premise_rdfbased_sem_npa_ind_bw]) ).
fof(c_0_19,plain,
! [X1031,X1032,X1033,X1034,X1035] :
( ( icext(uri_owl_FunctionalProperty,X1035)
| ~ ip(X1035)
| esk164_1(X1035) != esk165_1(X1035) )
& ( icext(uri_owl_FunctionalProperty,X1035)
| ~ ip(X1035)
| iext(X1035,esk163_1(X1035),esk165_1(X1035)) )
& ( icext(uri_owl_FunctionalProperty,X1035)
| ~ ip(X1035)
| iext(X1035,esk163_1(X1035),esk164_1(X1035)) )
& ( ~ icext(uri_owl_FunctionalProperty,X1031)
| X1033 = X1034
| ~ iext(X1031,X1032,X1034)
| ~ iext(X1031,X1032,X1033) )
& ( ~ icext(uri_owl_FunctionalProperty,X1031)
| ip(X1031) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(skolemize,[status(esa)],[inference(variable_rename,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(fof_nnf,[status(thm)],[owl_char_functional])])])])])])]) ).
cnf(c_0_20,plain,
( ~ iext(uri_rdf_type,X1,X2)
| icext(X2,X1) ),
inference(split_conjunct,[status(thm)],[c_0_13]) ).
cnf(c_0_21,plain,
iext(uri_rdf_type,uri_ex_p,uri_owl_FunctionalProperty),
inference(split_conjunct,[status(thm)],[premise_rdfbased_sem_npa_ind_bw]) ).
cnf(c_0_22,negated_conjecture,
( ~ iext(uri_owl_targetIndividual,X1,uri_ex_o2)
| ~ iext(uri_owl_assertionProperty,X1,uri_ex_p)
| ~ iext(uri_owl_sourceIndividual,X1,uri_ex_s) ),
inference(split_conjunct,[status(thm)],[c_0_14]) ).
cnf(c_0_23,plain,
( ~ ip(X1)
| iext(uri_owl_assertionProperty,esk191_3(X1,X2,X3),X1)
| iext(X1,X2,X3) ),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_15,c_0_16]),c_0_16])]) ).
cnf(c_0_24,plain,
ip(uri_ex_p),
inference(spm,[status(thm)],[c_0_17,c_0_18]) ).
cnf(c_0_25,plain,
( ~ ir(X3)
| ~ ip(X1)
| ~ ir(X2)
| iext(X1,X2,X3)
| iext(uri_owl_sourceIndividual,esk191_3(X1,X2,X3),X2) ),
inference(split_conjunct,[status(thm)],[c_0_10]) ).
cnf(c_0_26,plain,
( ~ icext(uri_owl_FunctionalProperty,X1)
| ~ iext(X1,X2,X4)
| ~ iext(X1,X2,X3)
| X3 = X4 ),
inference(split_conjunct,[status(thm)],[c_0_19]) ).
cnf(c_0_27,plain,
icext(uri_owl_FunctionalProperty,uri_ex_p),
inference(spm,[status(thm)],[c_0_20,c_0_21]) ).
cnf(c_0_28,negated_conjecture,
( ~ iext(uri_owl_targetIndividual,esk191_3(uri_ex_p,X1,X2),uri_ex_o2)
| ~ iext(uri_owl_sourceIndividual,esk191_3(uri_ex_p,X1,X2),uri_ex_s)
| iext(uri_ex_p,X1,X2) ),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_22,c_0_23]),c_0_24])]) ).
cnf(c_0_29,plain,
( ~ ip(X1)
| iext(uri_owl_sourceIndividual,esk191_3(X1,X2,X3),X2)
| iext(X1,X2,X3) ),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_25,c_0_16]),c_0_16])]) ).
cnf(c_0_30,plain,
( ~ ir(X3)
| ~ ip(X1)
| ~ ir(X2)
| iext(X1,X2,X3)
| iext(uri_owl_targetIndividual,esk191_3(X1,X2,X3),X3) ),
inference(split_conjunct,[status(thm)],[c_0_10]) ).
fof(c_0_31,plain,
! [X4,X7] :
( iext(uri_owl_differentFrom,X4,X7)
<=> X4 != X7 ),
inference(fof_simplification,[status(thm)],[owl_eqdis_differentfrom]) ).
cnf(c_0_32,plain,
( ~ iext(uri_ex_p,X3,X1)
| ~ iext(uri_ex_p,X3,X2)
| X1 = X2 ),
inference(spm,[status(thm)],[c_0_26,c_0_27]) ).
cnf(c_0_33,negated_conjecture,
( ~ iext(uri_owl_targetIndividual,esk191_3(uri_ex_p,uri_ex_s,X1),uri_ex_o2)
| iext(uri_ex_p,uri_ex_s,X1) ),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_28,c_0_29]),c_0_24])]) ).
cnf(c_0_34,plain,
( ~ ip(X1)
| iext(uri_owl_targetIndividual,esk191_3(X1,X2,X3),X3)
| iext(X1,X2,X3) ),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_30,c_0_16]),c_0_16])]) ).
fof(c_0_35,plain,
! [X782,X783] :
( ( iext(uri_owl_differentFrom,X782,X783)
| X782 = X783 )
& ( X782 != X783
| ~ iext(uri_owl_differentFrom,X782,X783) ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_31])])]) ).
cnf(c_0_36,plain,
( ~ iext(uri_ex_p,uri_ex_s,X1)
| X1 = uri_ex_o1 ),
inference(spm,[status(thm)],[c_0_32,c_0_18]) ).
cnf(c_0_37,negated_conjecture,
iext(uri_ex_p,uri_ex_s,uri_ex_o2),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_33,c_0_34]),c_0_24])]) ).
cnf(c_0_38,plain,
( X1 != X2
| ~ iext(uri_owl_differentFrom,X1,X2) ),
inference(split_conjunct,[status(thm)],[c_0_35]) ).
cnf(c_0_39,plain,
iext(uri_owl_differentFrom,uri_ex_o2,uri_ex_o1),
inference(split_conjunct,[status(thm)],[premise_rdfbased_sem_npa_ind_bw]) ).
cnf(c_0_40,negated_conjecture,
uri_ex_o2 = uri_ex_o1,
inference(spm,[status(thm)],[c_0_36,c_0_37]) ).
cnf(c_0_41,plain,
~ iext(uri_owl_differentFrom,X1,X1),
inference(er,[status(thm)],[c_0_38]) ).
cnf(c_0_42,plain,
$false,
inference(sr,[status(thm)],[inference(rw,[status(thm)],[c_0_39,c_0_40]),c_0_41]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : SWB071+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.38 % Computer : n006.cluster.edu
% 0.11/0.38 % Model : x86_64 x86_64
% 0.11/0.38 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.38 % Memory : 8046.5625MB
% 0.11/0.38 % OS : Linux 6.8.0-71-generic
% 0.11/0.38 % CPULimit : 300
% 0.11/0.38 % WCLimit : 300
% 0.11/0.38 % DateTime : Mon Sep 21 07:44:42 UTC 2026
% 0.11/0.38 % CPUTime :
% 0.11/0.38 Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.15/0.46 Running first-order theorem proving
% 0.15/0.46 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
% 7.49/2.91 % Version: 3.5.1
% 7.49/2.91 % Preprocessing class: FSLMSMSLSSSNFFN.
% 7.49/2.91 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 7.49/2.91 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 900s (3) cores
% 7.49/2.91 % Starting new_bool_3 with 600s (2) cores
% 7.49/2.91 % Starting new_bool_1 with 600s (2) cores
% 7.49/2.91 % Starting sh5l with 300s (1) cores
% 7.49/2.91 % new_bool_1 with pid 2347234 completed with status 9
% 7.49/2.91 % new_bool_3 with pid 2347233 completed with status 9
% 7.49/2.91 % G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with pid 2347232 completed with status 0
% 7.49/2.91 % Result found by G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI
% 7.49/2.91 % Preprocessing class: FSLMSMSLSSSNFFN.
% 7.49/2.91 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 7.49/2.91 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 900s (3) cores
% 7.49/2.91 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 7.49/2.91 % No SInE strategy applied
% 7.49/2.91 % Search class: FGHSM-SMLM33-SFFFFFNN
% 7.49/2.91 % partial match(1): FGHSM-SMLM33-DFFFFFNN
% 7.49/2.91 % Scheduled 7 strats onto 3 cores with 900 seconds (900 total)
% 7.49/2.91 % Starting SubtermCWHack with 82s (1) cores
% 7.49/2.91 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 91s (1) cores
% 7.49/2.91 % Starting U----_206e_00_B11_00_F1_SE_PI_CS_SP_PS_S5PRR_RG_S04AN with 82s (1) cores
% 7.49/2.91 % G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with pid 2347254 completed with status 0
% 7.49/2.91 % Result found by G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI
% 7.49/2.91 % Preprocessing class: FSLMSMSLSSSNFFN.
% 7.49/2.91 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 7.49/2.91 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 900s (3) cores
% 7.49/2.91 % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 7.49/2.91 % No SInE strategy applied
% 7.49/2.91 % Search class: FGHSM-SMLM33-SFFFFFNN
% 7.49/2.91 % partial match(1): FGHSM-SMLM33-DFFFFFNN
% 7.49/2.91 % Scheduled 7 strats onto 3 cores with 900 seconds (900 total)
% 7.49/2.91 % Starting SubtermCWHack with 82s (1) cores
% 7.49/2.91 % Starting G-E--_008_C45_F1_PI_SE_Q4_CS_SP_S4SI with 91s (1) cores
% 7.49/2.91 % Preprocessing time : 0.030 s
% 7.49/2.91
% 7.49/2.91 % Proof found!
% 7.49/2.91 % SZS status Theorem
% 7.49/2.91 % SZS output start CNFRefutation
% See solution above
% 7.49/2.91 % Parsed axioms : 560
% 7.49/2.91 % Removed by relevancy pruning/SinE : 0
% 7.49/2.91 % Initial clauses : 1270
% 7.49/2.91 % Removed in clause preprocessing : 111
% 7.49/2.91 % Initial clauses in saturation : 1159
% 7.49/2.91 % Processed clauses : 10774
% 7.49/2.91 % ...of these trivial : 1512
% 7.49/2.91 % ...subsumed : 3789
% 7.49/2.91 % ...remaining for further processing : 5473
% 7.49/2.91 % Other redundant clauses eliminated : 16
% 7.49/2.91 % Clauses deleted for lack of memory : 0
% 7.49/2.91 % Backward-subsumed : 38
% 7.49/2.91 % Backward-rewritten : 6
% 7.49/2.91 % Generated clauses : 28680
% 7.49/2.91 % ...of the previous two non-redundant : 21971
% 7.49/2.91 % ...aggressively subsumed : 0
% 7.49/2.91 % Contextual simplify-reflections : 31
% 7.49/2.91 % Paramodulations : 28662
% 7.49/2.91 % Factorizations : 2
% 7.49/2.91 % NegExts : 0
% 7.49/2.91 % Equation resolutions : 16
% 7.49/2.91 % Disequality decompositions : 0
% 7.49/2.91 % Total rewrite steps : 20756
% 7.49/2.91 % ...of those cached : 19339
% 7.49/2.91 % Propositional unsat checks : 0
% 7.49/2.91 % Propositional check models : 0
% 7.49/2.91 % Propositional check unsatisfiable : 0
% 7.49/2.91 % Propositional clauses : 0
% 7.49/2.91 % Propositional clauses after purity: 0
% 7.49/2.91 % Propositional unsat core size : 0
% 7.49/2.91 % Propositional preprocessing time : 0.000
% 7.49/2.91 % Propositional encoding time : 0.000
% 7.49/2.91 % Propositional solver time : 0.000
% 7.49/2.91 % Success case prop preproc time : 0.000
% 7.49/2.91 % Success case prop encoding time : 0.000
% 7.49/2.91 % Success case prop solver time : 0.000
% 7.49/2.91 % Current number of processed clauses : 5413
% 7.49/2.91 % Positive orientable unit clauses : 2265
% 7.49/2.91 % Positive unorientable unit clauses: 0
% 7.49/2.91 % Negative unit clauses : 7
% 7.49/2.91 % Non-unit-clauses : 3141
% 7.49/2.91 % Current number of unprocessed clauses: 12352
% 7.49/2.91 % ...number of literals in the above : 59691
% 7.49/2.91 % Current number of archived formulas : 0
% 7.49/2.91 % Current number of archived clauses : 45
% 7.49/2.91 % Clause-clause subsumption calls (NU) : 1805373
% 7.49/2.91 % Rec. Clause-clause subsumption calls : 1052241
% 7.49/2.91 % Non-unit clause-clause subsumptions : 3831
% 7.49/2.91 % Unit Clause-clause subsumption calls : 464583
% 7.49/2.91 % Rewrite failures with RHS unbound : 0
% 7.49/2.91 % BW rewrite match attempts : 1588
% 7.49/2.91 % BW rewrite match successes : 1
% 7.49/2.91 % Condensation attempts : 0
% 7.49/2.91 % Condensation successes : 0
% 7.49/2.91 % Termbank termtop insertions : 489148
% 7.49/2.91 % Search garbage collected termcells : 19111
% 7.49/2.91
% 7.49/2.91 % -------------------------------------------------
% 7.49/2.91 % User time : 2.266 s
% 7.49/2.91 % System time : 0.063 s
% 7.49/2.91 % Total time : 2.328 s
% 7.49/2.91 % Maximum resident set size: 7460 pages
% 7.49/2.91
% 7.49/2.91 % -------------------------------------------------
% 7.49/2.91 % User time : 6.870 s
% 7.49/2.91 % System time : 0.332 s
% 7.49/2.91 % Total time : 7.203 s
% 7.49/2.91 % Maximum resident set size: 5376 pages
% 7.49/2.91 % E exiting
%------------------------------------------------------------------------------