↑ Up

E---3.5.1.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : E---3.5.1
% Problem  : SEU178+1 : TPTP v9.3.1. Released v3.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM

% Computer : n001.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:24:08 PM UTC 2026

% Result   : Theorem 263.54s 34.30s
% Output   : CNFRefutation 263.54s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   11
%            Number of leaves      :    6
% Syntax   : Number of formulae    :   36 (   3 unt;   0 def)
%            Number of atoms       :  152 (  23 equ)
%            Maximal formula atoms :   16 (   4 avg)
%            Number of connectives :  193 (  77   ~;  87   |;  16   &)
%                                         (   8 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   6 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    5 (   3 usr;   1 prp; 0-2 aty)
%            Number of functors    :   15 (  15 usr;   1 con; 0-3 aty)
%            Number of variables   :  106 (   2 sgn  51   !;   2   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(d1_relat_1,axiom,
    ! [X1] :
      ( relation(X1)
    <=> ! [X2] :
          ~ ( ! [X3,X4] : X2 != ordered_pair(X3,X4)
            & in(X2,X1) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d1_relat_1) ).

fof(d5_relat_1,axiom,
    ! [X1] :
      ( relation(X1)
     => ! [X2] :
          ( X2 = relation_rng(X1)
        <=> ! [X3] :
              ( in(X3,X2)
            <=> ? [X4] : in(ordered_pair(X4,X3),X1) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d5_relat_1) ).

fof(d3_tarski,axiom,
    ! [X1,X2] :
      ( subset(X1,X2)
    <=> ! [X3] :
          ( in(X3,X1)
         => in(X3,X2) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d3_tarski) ).

fof(d4_relat_1,axiom,
    ! [X1] :
      ( relation(X1)
     => ! [X2] :
          ( X2 = relation_dom(X1)
        <=> ! [X3] :
              ( in(X3,X2)
            <=> ? [X4] : in(ordered_pair(X3,X4),X1) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d4_relat_1) ).

fof(t21_relat_1,conjecture,
    ! [X1] :
      ( relation(X1)
     => subset(X1,cartesian_product2(relation_dom(X1),relation_rng(X1))) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',t21_relat_1) ).

fof(t106_zfmisc_1,axiom,
    ! [X1,X2,X3,X4] :
      ( in(ordered_pair(X1,X2),cartesian_product2(X3,X4))
    <=> ( in(X2,X4)
        & in(X1,X3) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',t106_zfmisc_1) ).

fof(c_0_6,plain,
    ! [X1] :
      ( relation(X1)
    <=> ! [X2] :
          ~ ( ! [X3,X4] : X2 != ordered_pair(X3,X4)
            & in(X2,X1) ) ),
    inference(fof_simplification,[status(thm)],[d1_relat_1]) ).

fof(c_0_7,plain,
    ! [X21,X22,X23,X25,X26,X27,X29] :
      ( ( ~ relation(X21)
        | X27 = relation_rng(X21)
        | in(ordered_pair(esk5_2(X21,X27),esk4_2(X21,X27)),X21)
        | in(esk4_2(X21,X27),X27) )
      & ( ~ relation(X21)
        | X27 = relation_rng(X21)
        | ~ in(ordered_pair(X29,esk4_2(X21,X27)),X21)
        | ~ in(esk4_2(X21,X27),X27) )
      & ( ~ relation(X21)
        | X22 != relation_rng(X21)
        | in(X25,X22)
        | ~ in(ordered_pair(X26,X25),X21) )
      & ( ~ relation(X21)
        | X22 != relation_rng(X21)
        | in(ordered_pair(esk3_3(X21,X22,X23),X23),X21)
        | ~ in(X23,X22) ) ),
    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)],[d5_relat_1])])])])])])]) ).

fof(c_0_8,plain,
    ! [X41,X42,X45,X47,X48] :
      ( ( relation(X45)
        | esk11_1(X45) != ordered_pair(X47,X48) )
      & ( relation(X45)
        | in(esk11_1(X45),X45) )
      & ( X42 = ordered_pair(esk9_2(X41,X42),esk10_2(X41,X42))
        | ~ in(X42,X41)
        | ~ relation(X41) ) ),
    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)],[c_0_6])])])])])])]) ).

cnf(c_0_9,plain,
    ( ~ relation(X3)
    | X4 != relation_rng(X3)
    | ~ in(ordered_pair(X1,X2),X3)
    | in(X2,X4) ),
    inference(split_conjunct,[status(thm)],[c_0_7]) ).

cnf(c_0_10,plain,
    ( ~ in(X2,X1)
    | ~ relation(X1)
    | X2 = ordered_pair(esk9_2(X1,X2),esk10_2(X1,X2)) ),
    inference(split_conjunct,[status(thm)],[c_0_8]) ).

fof(c_0_11,plain,
    ! [X6,X7,X8,X9,X10] :
      ( ( subset(X9,X10)
        | ~ in(esk2_2(X9,X10),X10) )
      & ( subset(X9,X10)
        | in(esk2_2(X9,X10),X9) )
      & ( in(X8,X7)
        | ~ in(X8,X6)
        | ~ subset(X6,X7) ) ),
    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)],[d3_tarski])])])])])])]) ).

fof(c_0_12,plain,
    ! [X31,X32,X33,X35,X36,X37,X39] :
      ( ( ~ relation(X31)
        | X37 = relation_dom(X31)
        | in(ordered_pair(esk7_2(X31,X37),esk8_2(X31,X37)),X31)
        | in(esk7_2(X31,X37),X37) )
      & ( ~ relation(X31)
        | X37 = relation_dom(X31)
        | ~ in(ordered_pair(esk7_2(X31,X37),X39),X31)
        | ~ in(esk7_2(X31,X37),X37) )
      & ( ~ relation(X31)
        | X32 != relation_dom(X31)
        | in(X35,X32)
        | ~ in(ordered_pair(X35,X36),X31) )
      & ( ~ relation(X31)
        | X32 != relation_dom(X31)
        | in(ordered_pair(X33,esk6_3(X31,X32,X33)),X31)
        | ~ in(X33,X32) ) ),
    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)],[d4_relat_1])])])])])])]) ).

cnf(c_0_13,plain,
    ( ~ in(X2,X1)
    | ~ in(X2,X4)
    | ~ relation(X1)
    | ~ relation(X4)
    | X3 != relation_rng(X4)
    | in(esk10_2(X1,X2),X3) ),
    inference(spm,[status(thm)],[c_0_9,c_0_10]) ).

cnf(c_0_14,plain,
    ( subset(X1,X2)
    | in(esk2_2(X1,X2),X1) ),
    inference(split_conjunct,[status(thm)],[c_0_11]) ).

cnf(c_0_15,plain,
    ( ~ relation(X3)
    | X4 != relation_dom(X3)
    | ~ in(ordered_pair(X1,X2),X3)
    | in(X1,X4) ),
    inference(split_conjunct,[status(thm)],[c_0_12]) ).

cnf(c_0_16,plain,
    ( ~ in(esk2_2(X1,X2),X3)
    | ~ relation(X3)
    | ~ relation(X1)
    | X4 != relation_rng(X1)
    | in(esk10_2(X3,esk2_2(X1,X2)),X4)
    | subset(X1,X2) ),
    inference(spm,[status(thm)],[c_0_13,c_0_14]) ).

fof(c_0_17,negated_conjecture,
    ~ ! [X1] :
        ( relation(X1)
       => subset(X1,cartesian_product2(relation_dom(X1),relation_rng(X1))) ),
    inference(assume_negation,[status(cth)],[t21_relat_1]) ).

cnf(c_0_18,plain,
    ( ~ in(X2,X1)
    | ~ in(X2,X4)
    | ~ relation(X1)
    | ~ relation(X4)
    | X3 != relation_dom(X4)
    | in(esk9_2(X1,X2),X3) ),
    inference(spm,[status(thm)],[c_0_15,c_0_10]) ).

fof(c_0_19,plain,
    ! [X17,X18,X19,X20] :
      ( ( in(ordered_pair(X17,X18),cartesian_product2(X19,X20))
        | ~ in(X18,X20)
        | ~ in(X17,X19) )
      & ( ~ in(ordered_pair(X17,X18),cartesian_product2(X19,X20))
        | in(X18,X20) )
      & ( ~ in(ordered_pair(X17,X18),cartesian_product2(X19,X20))
        | in(X17,X19) ) ),
    inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[t106_zfmisc_1])])])]) ).

cnf(c_0_20,plain,
    ( ~ relation(X1)
    | X3 != relation_rng(X1)
    | in(esk10_2(X1,esk2_2(X1,X2)),X3)
    | subset(X1,X2) ),
    inference(spm,[status(thm)],[c_0_16,c_0_14]) ).

fof(c_0_21,negated_conjecture,
    ( ~ subset(esk1_0,cartesian_product2(relation_dom(esk1_0),relation_rng(esk1_0)))
    & relation(esk1_0) ),
    inference(fof_nnf,[status(thm)],[inference(skolemize,[status(esa)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_17])])])]) ).

cnf(c_0_22,plain,
    ( ~ in(esk2_2(X1,X2),X3)
    | ~ relation(X3)
    | ~ relation(X1)
    | X4 != relation_dom(X1)
    | in(esk9_2(X3,esk2_2(X1,X2)),X4)
    | subset(X1,X2) ),
    inference(spm,[status(thm)],[c_0_18,c_0_14]) ).

cnf(c_0_23,plain,
    ( ~ in(X3,X4)
    | ~ in(X1,X2)
    | in(ordered_pair(X1,X3),cartesian_product2(X2,X4)) ),
    inference(split_conjunct,[status(thm)],[c_0_19]) ).

cnf(c_0_24,plain,
    ( ~ relation(X1)
    | in(esk10_2(X1,esk2_2(X1,X2)),relation_rng(X1))
    | subset(X1,X2) ),
    inference(er,[status(thm)],[c_0_20]) ).

cnf(c_0_25,negated_conjecture,
    relation(esk1_0),
    inference(split_conjunct,[status(thm)],[c_0_21]) ).

cnf(c_0_26,plain,
    ( ~ relation(X1)
    | X3 != relation_dom(X1)
    | in(esk9_2(X1,esk2_2(X1,X2)),X3)
    | subset(X1,X2) ),
    inference(spm,[status(thm)],[c_0_22,c_0_14]) ).

cnf(c_0_27,plain,
    ( ~ in(X1,X4)
    | ~ in(esk9_2(X4,X1),X2)
    | ~ in(esk10_2(X4,X1),X3)
    | ~ relation(X4)
    | in(X1,cartesian_product2(X2,X3)) ),
    inference(spm,[status(thm)],[c_0_23,c_0_10]) ).

cnf(c_0_28,negated_conjecture,
    ( in(esk10_2(esk1_0,esk2_2(esk1_0,X1)),relation_rng(esk1_0))
    | subset(esk1_0,X1) ),
    inference(spm,[status(thm)],[c_0_24,c_0_25]) ).

cnf(c_0_29,plain,
    ( ~ relation(X1)
    | in(esk9_2(X1,esk2_2(X1,X2)),relation_dom(X1))
    | subset(X1,X2) ),
    inference(er,[status(thm)],[c_0_26]) ).

cnf(c_0_30,negated_conjecture,
    ( ~ in(esk9_2(esk1_0,esk2_2(esk1_0,X1)),X2)
    | in(esk2_2(esk1_0,X1),cartesian_product2(X2,relation_rng(esk1_0)))
    | subset(esk1_0,X1) ),
    inference(csr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_27,c_0_28]),c_0_25])]),c_0_14]) ).

cnf(c_0_31,negated_conjecture,
    ( in(esk9_2(esk1_0,esk2_2(esk1_0,X1)),relation_dom(esk1_0))
    | subset(esk1_0,X1) ),
    inference(spm,[status(thm)],[c_0_29,c_0_25]) ).

cnf(c_0_32,plain,
    ( ~ in(esk2_2(X1,X2),X2)
    | subset(X1,X2) ),
    inference(split_conjunct,[status(thm)],[c_0_11]) ).

cnf(c_0_33,negated_conjecture,
    ( in(esk2_2(esk1_0,X1),cartesian_product2(relation_dom(esk1_0),relation_rng(esk1_0)))
    | subset(esk1_0,X1) ),
    inference(spm,[status(thm)],[c_0_30,c_0_31]) ).

cnf(c_0_34,negated_conjecture,
    ~ subset(esk1_0,cartesian_product2(relation_dom(esk1_0),relation_rng(esk1_0))),
    inference(split_conjunct,[status(thm)],[c_0_21]) ).

cnf(c_0_35,negated_conjecture,
    $false,
    inference(sr,[status(thm)],[inference(spm,[status(thm)],[c_0_32,c_0_33]),c_0_34]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : SEU178+1 : TPTP v9.3.1. Released v3.3.0.
% 0.00/0.05  % Command  : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.10/0.52  % Computer : n001.cluster.edu
% 0.10/0.52  % Model    : x86_64 x86_64
% 0.10/0.52  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.10/0.52  % Memory   : 8046.5625MB
% 0.10/0.52  % OS       : Linux 6.8.0-71-generic
% 0.10/0.52  % CPULimit : 300
% 0.10/0.52  % WCLimit  : 300
% 0.10/0.52  % DateTime : Mon Sep 21 06:00:58 UTC 2026
% 0.10/0.53  % CPUTime  : 
% 0.10/0.53  Running run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.14/0.57  Running first-order theorem proving
% 0.14/0.57  Running: /export/starexec/sandbox/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/sandbox/benchmark/theBenchmark.p
% 263.54/34.30  % Version: 3.5.1
% 263.54/34.30  % Preprocessing class: FSMSSMSSSSSNFFN.
% 263.54/34.30  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 263.54/34.30  % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 263.54/34.30  % Starting new_bool_3 with 300s (1) cores
% 263.54/34.30  % Starting new_bool_1 with 300s (1) cores
% 263.54/34.30  % Starting sh5l with 300s (1) cores
% 263.54/34.30  % new_bool_3 with pid 2340683 completed with status 0
% 263.54/34.30  % Result found by new_bool_3
% 263.54/34.30  % Preprocessing class: FSMSSMSSSSSNFFN.
% 263.54/34.30  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 263.54/34.30  % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 263.54/34.30  % Starting new_bool_3 with 300s (1) cores
% 263.54/34.30  % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 263.54/34.30  % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 263.54/34.30  % Search class: FGHSM-FFMS31-SFFFFFNN
% 263.54/34.30  % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 263.54/34.30  % Starting SubtermCWHack with 31s (1) cores
% 263.54/34.30  % SubtermCWHack with pid 2340689 completed with status 8
% 263.54/34.30  % Starting G-E--_302_C18_F1_URBAN_S5PRR_RG_S04BN with 181s (1) cores
% 263.54/34.30  % G-E--_302_C18_F1_URBAN_S5PRR_RG_S04BN with pid 2340787 completed with status 0
% 263.54/34.30  % Result found by G-E--_302_C18_F1_URBAN_S5PRR_RG_S04BN
% 263.54/34.30  % Preprocessing class: FSMSSMSSSSSNFFN.
% 263.54/34.30  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 263.54/34.30  % Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 263.54/34.30  % Starting new_bool_3 with 300s (1) cores
% 263.54/34.30  % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 263.54/34.30  % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 263.54/34.30  % Search class: FGHSM-FFMS31-SFFFFFNN
% 263.54/34.30  % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 263.54/34.30  % Starting SubtermCWHack with 31s (1) cores
% 263.54/34.30  % SubtermCWHack with pid 2340689 completed with status 8
% 263.54/34.30  % Starting G-E--_302_C18_F1_URBAN_S5PRR_RG_S04BN with 181s (1) cores
% 263.54/34.30  % Preprocessing time       : 0.004 s
% 263.54/34.30  
% 263.54/34.30  % Proof found!
% 263.54/34.30  % SZS status Theorem
% 263.54/34.30  % SZS output start CNFRefutation
% See solution above
% 263.54/34.30  % Parsed axioms                        : 39
% 263.54/34.30  % Removed by relevancy pruning/SinE    : 15
% 263.54/34.30  % Initial clauses                      : 41
% 263.54/34.30  % Removed in clause preprocessing      : 0
% 263.54/34.30  % Initial clauses in saturation        : 41
% 263.54/34.30  % Processed clauses                    : 2438
% 263.54/34.30  % ...of these trivial                  : 7
% 263.54/34.30  % ...subsumed                          : 1318
% 263.54/34.30  % ...remaining for further processing  : 1113
% 263.54/34.30  % Other redundant clauses eliminated   : 0
% 263.54/34.30  % Clauses deleted for lack of memory   : 0
% 263.54/34.30  % Backward-subsumed                    : 71
% 263.54/34.30  % Backward-rewritten                   : 16
% 263.54/34.30  % Generated clauses                    : 26897
% 263.54/34.30  % ...of the previous two non-redundant : 25910
% 263.54/34.30  % ...aggressively subsumed             : 0
% 263.54/34.30  % Contextual simplify-reflections      : 82
% 263.54/34.30  % Paramodulations                      : 26665
% 263.54/34.30  % Factorizations                       : 18
% 263.54/34.30  % NegExts                              : 0
% 263.54/34.30  % Equation resolutions                 : 164
% 263.54/34.30  % Disequality decompositions           : 0
% 263.54/34.30  % Total rewrite steps                  : 1579
% 263.54/34.30  % ...of those cached                   : 1547
% 263.54/34.30  % Propositional unsat checks           : 0
% 263.54/34.30  %    Propositional check models        : 0
% 263.54/34.30  %    Propositional check unsatisfiable : 0
% 263.54/34.30  %    Propositional clauses             : 0
% 263.54/34.30  %    Propositional clauses after purity: 0
% 263.54/34.30  %    Propositional unsat core size     : 0
% 263.54/34.30  %    Propositional preprocessing time  : 0.000
% 263.54/34.30  %    Propositional encoding time       : 0.000
% 263.54/34.30  %    Propositional solver time         : 0.000
% 263.54/34.30  %    Success case prop preproc time    : 0.000
% 263.54/34.30  %    Success case prop encoding time   : 0.000
% 263.54/34.30  %    Success case prop solver time     : 0.000
% 263.54/34.30  % Current number of processed clauses  : 976
% 263.54/34.30  %    Positive orientable unit clauses  : 26
% 263.54/34.30  %    Positive unorientable unit clauses: 0
% 263.54/34.30  %    Negative unit clauses             : 29
% 263.54/34.30  %    Non-unit-clauses                  : 921
% 263.54/34.30  % Current number of unprocessed clauses: 23071
% 263.54/34.30  % ...number of literals in the above   : 150067
% 263.54/34.30  % Current number of archived formulas  : 0
% 263.54/34.30  % Current number of archived clauses   : 137
% 263.54/34.30  % Clause-clause subsumption calls (NU) : 207745
% 263.54/34.30  % Rec. Clause-clause subsumption calls : 45642
% 263.54/34.30  % Non-unit clause-clause subsumptions  : 1062
% 263.54/34.30  % Unit Clause-clause subsumption calls : 2117
% 263.54/34.30  % Rewrite failures with RHS unbound    : 0
% 263.54/34.30  % BW rewrite match attempts            : 72
% 263.54/34.30  % BW rewrite match successes           : 17
% 263.54/34.30  % Condensation attempts                : 0
% 263.54/34.30  % Condensation successes               : 0
% 263.54/34.30  % Termbank termtop insertions          : 539104
% 263.54/34.30  % Search garbage collected termcells   : 761
% 263.54/34.30  
% 263.54/34.30  % -------------------------------------------------
% 263.54/34.30  % User time                : 31.688 s
% 263.54/34.30  % System time              : 1.197 s
% 263.54/34.30  % Total time               : 32.885 s
% 263.54/34.30  % Maximum resident set size: 3660 pages
% 263.54/34.30  
% 263.54/34.30  % -------------------------------------------------
% 263.54/34.30  % User time                : 31.691 s
% 263.54/34.30  % System time              : 1.204 s
% 263.54/34.30  % Total time               : 32.895 s
% 263.54/34.30  % Maximum resident set size: 4864 pages
% 263.54/34.30  % E exiting
%------------------------------------------------------------------------------