%------------------------------------------------------------------------------
% File : E---3.5.1
% Problem : KRS157+1 : TPTP v9.3.1. Released v3.1.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 01:01:03 PM UTC 2026
% Result : Theorem 0.25s 0.46s
% Output : CNFRefutation 0.25s
% Verified :
% SZS Type : Refutation
% Derivation depth : 8
% Number of leaves : 13
% Syntax : Number of formulae : 53 ( 22 unt; 0 def)
% Number of atoms : 190 ( 0 equ)
% Maximal formula atoms : 24 ( 3 avg)
% Number of connectives : 224 ( 87 ~; 77 |; 50 &)
% ( 10 <=>; 0 =>; 0 <=; 0 <~>)
% Maximal formula depth : 14 ( 4 avg)
% Maximal term depth : 1 ( 1 avg)
% Number of predicates : 17 ( 16 usr; 1 prp; 0-1 aty)
% Number of functors : 3 ( 3 usr; 3 con; 0-0 aty)
% Number of variables : 33 ( 2 sgn 22 !; 0 ?)
% Comments :
%------------------------------------------------------------------------------
fof(axiom_201,axiom,
! [X1] :
( cTEST(X1)
<=> ( cC46(X1)
& cC216(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_201) ).
fof(the_axiom,conjecture,
( cC30(iV3102)
& cowlThing(iV3102)
& cC28(iV3102)
& cC46(iV3102)
& cC64(iV3102)
& cC216(iV3102)
& cC44(iV3102)
& cC14(iV3102)
& ! [X1] :
( xsd_string(X1)
<=> ~ xsd_integer(X1) )
& ! [X1] :
( ~ cowlNothing(X1)
& cowlThing(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',the_axiom) ).
fof(axiom_148,axiom,
! [X1] :
( cC46(X1)
<=> ( cC44(X1)
& cC30(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_148) ).
fof(axiom_202,axiom,
cTEST(iV3102),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_202) ).
fof(axiom_0,axiom,
! [X1] :
( ~ cowlNothing(X1)
& cowlThing(X1) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_0) ).
fof(axiom_132,axiom,
! [X1] :
( cC30(X1)
<=> ( cC14(X1)
& cC28(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_132) ).
fof(axiom_166,axiom,
! [X1] :
( cC64(X1)
<=> ( cTOP(X1)
& cC62xcomp(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_166) ).
fof(axiom_147,axiom,
! [X1] :
( cC44(X1)
<=> ( cC32xcomp(X1)
& cC42xcomp(X1) ) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_147) ).
fof(axiom_1,axiom,
! [X1] :
( xsd_string(X1)
<=> ~ xsd_integer(X1) ),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_1) ).
fof(axiom_205,axiom,
cTOP(iV3102),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_205) ).
fof(axiom_212,axiom,
cC62xcomp(iV3102),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_212) ).
fof(axiom_207,axiom,
cC32xcomp(iV3102),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_207) ).
fof(axiom_211,axiom,
cC42xcomp(iV3102),
file('/export/starexec/sandbox2/benchmark/theBenchmark.p',axiom_211) ).
fof(c_0_13,plain,
! [X10] :
( ( cTEST(X10)
| ~ cC46(X10)
| ~ cC216(X10) )
& ( ~ cTEST(X10)
| cC46(X10) )
& ( ~ cTEST(X10)
| cC216(X10) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[axiom_201])])])]) ).
fof(c_0_14,negated_conjecture,
~ ( cC30(iV3102)
& cowlThing(iV3102)
& cC28(iV3102)
& cC46(iV3102)
& cC64(iV3102)
& cC216(iV3102)
& cC44(iV3102)
& cC14(iV3102)
& ! [X1] :
( xsd_string(X1)
<=> ~ xsd_integer(X1) )
& ! [X1] :
( ~ cowlNothing(X1)
& cowlThing(X1) ) ),
inference(assume_negation,[status(cth)],[the_axiom]) ).
fof(c_0_15,plain,
! [X7] :
( ( cC46(X7)
| ~ cC44(X7)
| ~ cC30(X7) )
& ( ~ cC46(X7)
| cC44(X7) )
& ( ~ cC46(X7)
| cC30(X7) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[axiom_148])])])]) ).
cnf(c_0_16,plain,
( ~ cTEST(X1)
| cC46(X1) ),
inference(split_conjunct,[status(thm)],[c_0_13]) ).
cnf(c_0_17,plain,
cTEST(iV3102),
inference(split_conjunct,[status(thm)],[axiom_202]) ).
fof(c_0_18,negated_conjecture,
~ ( cC30(iV3102)
& cowlThing(iV3102)
& cC28(iV3102)
& cC46(iV3102)
& cC64(iV3102)
& cC216(iV3102)
& cC44(iV3102)
& cC14(iV3102)
& ! [X1] :
( xsd_string(X1)
<=> ~ xsd_integer(X1) )
& ! [X1] :
( ~ cowlNothing(X1)
& cowlThing(X1) ) ),
inference(fof_simplification,[status(thm)],[c_0_14]) ).
fof(c_0_19,plain,
! [X1] :
( ~ cowlNothing(X1)
& cowlThing(X1) ),
inference(fof_simplification,[status(thm)],[axiom_0]) ).
fof(c_0_20,plain,
! [X6] :
( ( cC30(X6)
| ~ cC14(X6)
| ~ cC28(X6) )
& ( ~ cC30(X6)
| cC14(X6) )
& ( ~ cC30(X6)
| cC28(X6) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[axiom_132])])])]) ).
cnf(c_0_21,plain,
( ~ cC46(X1)
| cC30(X1) ),
inference(split_conjunct,[status(thm)],[c_0_15]) ).
cnf(c_0_22,plain,
cC46(iV3102),
inference(spm,[status(thm)],[c_0_16,c_0_17]) ).
fof(c_0_23,plain,
! [X12] :
( ( cC64(X12)
| ~ cTOP(X12)
| ~ cC62xcomp(X12) )
& ( ~ cC64(X12)
| cTOP(X12) )
& ( ~ cC64(X12)
| cC62xcomp(X12) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[axiom_166])])])]) ).
fof(c_0_24,plain,
! [X13] :
( ( cC44(X13)
| ~ cC32xcomp(X13)
| ~ cC42xcomp(X13) )
& ( ~ cC44(X13)
| cC32xcomp(X13) )
& ( ~ cC44(X13)
| cC42xcomp(X13) ) ),
inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[axiom_147])])])]) ).
fof(c_0_25,plain,
! [X1] :
( xsd_string(X1)
<=> ~ xsd_integer(X1) ),
inference(fof_simplification,[status(thm)],[axiom_1]) ).
fof(c_0_26,negated_conjecture,
( ( ~ cC30(iV3102)
| ~ cowlThing(iV3102)
| ~ cC28(iV3102)
| ~ cC46(iV3102)
| ~ cC64(iV3102)
| ~ cC216(iV3102)
| ~ cC44(iV3102)
| ~ cC14(iV3102)
| cowlNothing(esk1_0)
| ~ cowlThing(esk1_0)
| ~ xsd_integer(esk2_0)
| xsd_string(esk2_0) )
& ( ~ cC30(iV3102)
| ~ cowlThing(iV3102)
| ~ cC28(iV3102)
| ~ cC46(iV3102)
| ~ cC64(iV3102)
| ~ cC216(iV3102)
| ~ cC44(iV3102)
| ~ cC14(iV3102)
| cowlNothing(esk1_0)
| ~ cowlThing(esk1_0)
| xsd_integer(esk2_0)
| ~ xsd_string(esk2_0) ) ),
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_18])])])])]) ).
fof(c_0_27,plain,
! [X8] :
( ~ cowlNothing(X8)
& cowlThing(X8) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[c_0_19])]) ).
cnf(c_0_28,plain,
( ~ cC30(X1)
| cC14(X1) ),
inference(split_conjunct,[status(thm)],[c_0_20]) ).
cnf(c_0_29,plain,
cC30(iV3102),
inference(spm,[status(thm)],[c_0_21,c_0_22]) ).
cnf(c_0_30,plain,
( ~ cTEST(X1)
| cC216(X1) ),
inference(split_conjunct,[status(thm)],[c_0_13]) ).
cnf(c_0_31,plain,
( ~ cTOP(X1)
| ~ cC62xcomp(X1)
| cC64(X1) ),
inference(split_conjunct,[status(thm)],[c_0_23]) ).
cnf(c_0_32,plain,
cTOP(iV3102),
inference(split_conjunct,[status(thm)],[axiom_205]) ).
cnf(c_0_33,plain,
cC62xcomp(iV3102),
inference(split_conjunct,[status(thm)],[axiom_212]) ).
cnf(c_0_34,plain,
( ~ cC30(X1)
| cC28(X1) ),
inference(split_conjunct,[status(thm)],[c_0_20]) ).
cnf(c_0_35,plain,
( ~ cC32xcomp(X1)
| ~ cC42xcomp(X1)
| cC44(X1) ),
inference(split_conjunct,[status(thm)],[c_0_24]) ).
cnf(c_0_36,plain,
cC32xcomp(iV3102),
inference(split_conjunct,[status(thm)],[axiom_207]) ).
cnf(c_0_37,plain,
cC42xcomp(iV3102),
inference(split_conjunct,[status(thm)],[axiom_211]) ).
fof(c_0_38,plain,
! [X15] :
( ( xsd_string(X15)
| xsd_integer(X15) )
& ( ~ xsd_integer(X15)
| ~ xsd_string(X15) ) ),
inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_25])])]) ).
cnf(c_0_39,negated_conjecture,
( ~ cC30(iV3102)
| ~ cowlThing(iV3102)
| ~ cC28(iV3102)
| ~ cC46(iV3102)
| ~ cC64(iV3102)
| ~ cC216(iV3102)
| ~ cC44(iV3102)
| ~ cC14(iV3102)
| ~ cowlThing(esk1_0)
| ~ xsd_integer(esk2_0)
| cowlNothing(esk1_0)
| xsd_string(esk2_0) ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
cnf(c_0_40,plain,
cowlThing(X1),
inference(split_conjunct,[status(thm)],[c_0_27]) ).
cnf(c_0_41,plain,
cC14(iV3102),
inference(spm,[status(thm)],[c_0_28,c_0_29]) ).
cnf(c_0_42,plain,
cC216(iV3102),
inference(spm,[status(thm)],[c_0_30,c_0_17]) ).
cnf(c_0_43,plain,
cC64(iV3102),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_31,c_0_32]),c_0_33])]) ).
cnf(c_0_44,plain,
cC28(iV3102),
inference(spm,[status(thm)],[c_0_34,c_0_29]) ).
cnf(c_0_45,plain,
cC44(iV3102),
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_35,c_0_36]),c_0_37])]) ).
cnf(c_0_46,plain,
~ cowlNothing(X1),
inference(split_conjunct,[status(thm)],[c_0_27]) ).
cnf(c_0_47,plain,
( xsd_string(X1)
| xsd_integer(X1) ),
inference(split_conjunct,[status(thm)],[c_0_38]) ).
cnf(c_0_48,negated_conjecture,
( ~ cC30(iV3102)
| ~ cowlThing(iV3102)
| ~ cC28(iV3102)
| ~ cC46(iV3102)
| ~ cC64(iV3102)
| ~ cC216(iV3102)
| ~ cC44(iV3102)
| ~ cC14(iV3102)
| ~ cowlThing(esk1_0)
| ~ xsd_string(esk2_0)
| cowlNothing(esk1_0)
| xsd_integer(esk2_0) ),
inference(split_conjunct,[status(thm)],[c_0_26]) ).
cnf(c_0_49,negated_conjecture,
xsd_string(esk2_0),
inference(csr,[status(thm)],[inference(sr,[status(thm)],[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(rw,[status(thm)],[c_0_39,c_0_40]),c_0_40]),c_0_41]),c_0_42]),c_0_43]),c_0_44]),c_0_29]),c_0_45]),c_0_22])]),c_0_46]),c_0_47]) ).
cnf(c_0_50,plain,
( ~ xsd_integer(X1)
| ~ xsd_string(X1) ),
inference(split_conjunct,[status(thm)],[c_0_38]) ).
cnf(c_0_51,negated_conjecture,
xsd_integer(esk2_0),
inference(sr,[status(thm)],[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(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_48,c_0_40]),c_0_40]),c_0_49]),c_0_41]),c_0_42]),c_0_43]),c_0_44]),c_0_29]),c_0_45]),c_0_22])]),c_0_46]) ).
cnf(c_0_52,negated_conjecture,
$false,
inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_50,c_0_51]),c_0_49])]),
[proof] ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03 % Problem : KRS157+1 : TPTP v9.3.1. Released v3.1.0.
% 0.00/0.05 % Command : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.12/0.38 % Computer : n006.cluster.edu
% 0.12/0.38 % Model : x86_64 x86_64
% 0.12/0.38 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.38 % Memory : 8046.5625MB
% 0.12/0.38 % OS : Linux 6.8.0-71-generic
% 0.12/0.38 % CPULimit : 300
% 0.12/0.38 % WCLimit : 300
% 0.12/0.38 % DateTime : Sun Sep 20 22:54:58 UTC 2026
% 0.12/0.38 % CPUTime :
% 0.12/0.38 Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.12/0.43 Running first-order theorem proving
% 0.12/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.25/0.46 % Version: 3.5.1
% 0.25/0.46 % Preprocessing class: FSLMSMSSSSSNFFN.
% 0.25/0.46 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.25/0.46 % Starting G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with 900s (3) cores
% 0.25/0.46 % Starting new_bool_3 with 600s (2) cores
% 0.25/0.46 % Starting new_bool_1 with 600s (2) cores
% 0.25/0.46 % Starting sh5l with 300s (1) cores
% 0.25/0.46 % new_bool_3 with pid 1437026 completed with status 0
% 0.25/0.46 % Result found by new_bool_3
% 0.25/0.46 % Preprocessing class: FSLMSMSSSSSNFFN.
% 0.25/0.46 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.25/0.46 % Starting G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with 900s (3) cores
% 0.25/0.46 % Starting new_bool_3 with 600s (2) cores
% 0.25/0.46 % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.25/0.46 % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.25/0.46 % Search class: FGHNF-FFMM11-SFFFFFNN
% 0.25/0.46 % Scheduled 5 strats onto 2 cores with 600 seconds (600 total)
% 0.25/0.46 % Starting SubtermCWHack with 61s (1) cores
% 0.25/0.46 % Starting SAT001_MinMin_p005000_rr_RG with 361s (1) cores
% 0.25/0.46 % SubtermCWHack with pid 1437030 completed with status 0
% 0.25/0.46 % Result found by SubtermCWHack
% 0.25/0.46 % Preprocessing class: FSLMSMSSSSSNFFN.
% 0.25/0.46 % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.25/0.46 % Starting G-E--_208_B07_F1_S5PRR_SE_CS_SP_PS_S0Y with 900s (3) cores
% 0.25/0.46 % Starting new_bool_3 with 600s (2) cores
% 0.25/0.46 % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.25/0.46 % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.25/0.46 % Search class: FGHNF-FFMM11-SFFFFFNN
% 0.25/0.46 % Scheduled 5 strats onto 2 cores with 600 seconds (600 total)
% 0.25/0.46 % Starting SubtermCWHack with 61s (1) cores
% 0.25/0.46 % Preprocessing time : 0.002 s
% 0.25/0.46
% 0.25/0.46 % Proof found!
% 0.25/0.46 % SZS status Theorem
% 0.25/0.46 % SZS output start CNFRefutation
% See solution above
% 0.25/0.46 % Parsed axioms : 220
% 0.25/0.46 % Removed by relevancy pruning/SinE : 188
% 0.25/0.46 % Initial clauses : 61
% 0.25/0.46 % Removed in clause preprocessing : 0
% 0.25/0.46 % Initial clauses in saturation : 61
% 0.25/0.46 % Processed clauses : 78
% 0.25/0.46 % ...of these trivial : 0
% 0.25/0.46 % ...subsumed : 0
% 0.25/0.46 % ...remaining for further processing : 78
% 0.25/0.46 % Other redundant clauses eliminated : 0
% 0.25/0.46 % Clauses deleted for lack of memory : 0
% 0.25/0.46 % Backward-subsumed : 0
% 0.25/0.46 % Backward-rewritten : 1
% 0.25/0.46 % Generated clauses : 48
% 0.25/0.46 % ...of the previous two non-redundant : 17
% 0.25/0.46 % ...aggressively subsumed : 0
% 0.25/0.46 % Contextual simplify-reflections : 1
% 0.25/0.46 % Paramodulations : 48
% 0.25/0.46 % Factorizations : 0
% 0.25/0.46 % NegExts : 0
% 0.25/0.46 % Equation resolutions : 0
% 0.25/0.46 % Disequality decompositions : 0
% 0.25/0.46 % Total rewrite steps : 30
% 0.25/0.46 % ...of those cached : 16
% 0.25/0.46 % Propositional unsat checks : 0
% 0.25/0.46 % Propositional check models : 0
% 0.25/0.46 % Propositional check unsatisfiable : 0
% 0.25/0.46 % Propositional clauses : 0
% 0.25/0.46 % Propositional clauses after purity: 0
% 0.25/0.46 % Propositional unsat core size : 0
% 0.25/0.46 % Propositional preprocessing time : 0.000
% 0.25/0.46 % Propositional encoding time : 0.000
% 0.25/0.46 % Propositional solver time : 0.000
% 0.25/0.46 % Success case prop preproc time : 0.000
% 0.25/0.46 % Success case prop encoding time : 0.000
% 0.25/0.46 % Success case prop solver time : 0.000
% 0.25/0.46 % Current number of processed clauses : 77
% 0.25/0.46 % Positive orientable unit clauses : 20
% 0.25/0.46 % Positive unorientable unit clauses: 0
% 0.25/0.46 % Negative unit clauses : 1
% 0.25/0.46 % Non-unit-clauses : 56
% 0.25/0.46 % Current number of unprocessed clauses: 0
% 0.25/0.46 % ...number of literals in the above : 0
% 0.25/0.46 % Current number of archived formulas : 0
% 0.25/0.46 % Current number of archived clauses : 1
% 0.25/0.46 % Clause-clause subsumption calls (NU) : 650
% 0.25/0.46 % Rec. Clause-clause subsumption calls : 538
% 0.25/0.46 % Non-unit clause-clause subsumptions : 1
% 0.25/0.46 % Unit Clause-clause subsumption calls : 1
% 0.25/0.46 % Rewrite failures with RHS unbound : 0
% 0.25/0.46 % BW rewrite match attempts : 1
% 0.25/0.46 % BW rewrite match successes : 1
% 0.25/0.46 % Condensation attempts : 0
% 0.25/0.46 % Condensation successes : 0
% 0.25/0.46 % Termbank termtop insertions : 5277
% 0.25/0.46 % Search garbage collected termcells : 1910
% 0.25/0.46
% 0.25/0.46 % -------------------------------------------------
% 0.25/0.46 % User time : 0.004 s
% 0.25/0.46 % System time : 0.005 s
% 0.25/0.46 % Total time : 0.010 s
% 0.25/0.46 % Maximum resident set size: 4388 pages
% 0.25/0.46
% 0.25/0.46 % -------------------------------------------------
% 0.25/0.46 % User time : 0.015 s
% 0.25/0.46 % System time : 0.012 s
% 0.25/0.46 % Total time : 0.026 s
% 0.25/0.46 % Maximum resident set size: 4864 pages
% 0.25/0.46 % E exiting
%------------------------------------------------------------------------------