↑ Up

E-SAT---3.5.1.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : E-SAT---3.5.1
% Problem  : NUM925^3 : TPTP v9.3.1. Released v5.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM

% Computer : n026.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 : Wed Sep 30 08:17:48 AM UTC 2026

% Result   : Theorem 1.09s 0.75s
% Output   : CNFRefutation 1.09s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :   11
% Syntax   : Number of formulae    :   41 (  33 unt;   0 typ;   0 def)
%            Number of atoms       :   56 (  41 equ;   0 cnn)
%            Maximal formula atoms :    7 (   1 avg)
%            Number of connectives :  188 (  18   ~;   7   |;   4   &; 155   @)
%                                         (   2 <=>;   2  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    9 (   3 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :    0 (   0   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   18 (  16 usr;   6 con; 0-2 aty)
%            Number of variables   :   23 (   0   ^;  23   !;   0   ?;  23   :)

% Comments : 
%------------------------------------------------------------------------------
thf(decl_sort1,type,
    nat: $tType ).

thf(decl_sort2,type,
    int: $tType ).

thf(decl_30,type,
    one_one_int: int ).

thf(decl_31,type,
    one_one_nat: nat ).

thf(decl_33,type,
    plus_plus_int: int > int > int ).

thf(decl_34,type,
    plus_plus_nat: nat > nat > nat ).

thf(decl_39,type,
    zero_zero_int: int ).

thf(decl_46,type,
    bit0: int > int ).

thf(decl_47,type,
    bit1: int > int ).

thf(decl_49,type,
    pls: int ).

thf(decl_50,type,
    nat_1: int > nat ).

thf(decl_51,type,
    number_number_of_int: int > int ).

thf(decl_52,type,
    number_number_of_nat: int > nat ).

thf(decl_55,type,
    semiri1621563631at_int: nat > int ).

thf(decl_58,type,
    ord_less_int: int > int > $o ).

thf(decl_61,type,
    ord_less_eq_int: int > int > $o ).

thf(decl_64,type,
    power_power_int: int > nat > int ).

thf(decl_74,type,
    n: nat ).

thf(fact_25_semiring__norm_I110_J,axiom,
    ( one_one_int
    = ( number_number_of_int @ ( bit1 @ pls ) ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_25_semiring__norm_I110_J) ).

thf(fact_98_Pls__def,axiom,
    pls = zero_zero_int,
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_98_Pls__def) ).

thf(fact_177_number__of__is__id,axiom,
    ! [X10: int] :
      ( ( number_number_of_int @ X10 )
      = X10 ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_177_number__of__is__id) ).

thf(conj_0,conjecture,
    ( ( power_power_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ) @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
   != zero_zero_int ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',conj_0) ).

thf(fact_55_Numeral1__eq1__nat,axiom,
    ( one_one_nat
    = ( number_number_of_nat @ ( bit1 @ pls ) ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_55_Numeral1__eq1__nat) ).

thf(fact_768_transfer__nat__int__numerals_I2_J,axiom,
    ( one_one_nat
    = ( nat_1 @ one_one_int ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_768_transfer__nat__int__numerals_I2_J) ).

thf(fact_103_Bit0__def,axiom,
    ! [X10: int] :
      ( ( bit0 @ X10 )
      = ( plus_plus_int @ X10 @ X10 ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_103_Bit0__def) ).

thf(fact_231_field__power__not__zero,axiom,
    ! [X141: nat,X142: int] :
      ( ( X142 != zero_zero_int )
     => ( ( power_power_int @ X142 @ X141 )
       != zero_zero_int ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_231_field__power__not__zero) ).

thf(fact_19_semiring__one__add__one__is__two,axiom,
    ( ( plus_plus_nat @ one_one_nat @ one_one_nat )
    = ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_19_semiring__one__add__one__is__two) ).

thf(fact_718_zless__le,axiom,
    ! [X18: int,X13: int] :
      ( ( ord_less_int @ X18 @ X13 )
    <=> ( ( ord_less_eq_int @ X18 @ X13 )
        & ( X18 != X13 ) ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_718_zless__le) ).

thf(fact_0_n1pos,axiom,
    ord_less_int @ zero_zero_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ),
    file('/export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p',fact_0_n1pos) ).

thf(c_0_11,plain,
    ( one_one_int
    = ( number_number_of_int @ ( bit1 @ pls ) ) ),
    inference(split_conjunct,[status(thm)],[fact_25_semiring__norm_I110_J]) ).

thf(c_0_12,plain,
    pls = zero_zero_int,
    inference(split_conjunct,[status(thm)],[fact_98_Pls__def]) ).

thf(c_0_13,plain,
    ! [X4358: int] :
      ( ( number_number_of_int @ X4358 )
      = X4358 ),
    inference(variable_rename,[status(thm)],[fact_177_number__of__is__id]) ).

thf(c_0_14,negated_conjecture,
    ~ ( ( ( power_power_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ) @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
       != zero_zero_int ) ),
    inference(assume_negation,[status(cth)],[conj_0]) ).

thf(c_0_15,plain,
    ( one_one_nat
    = ( number_number_of_nat @ ( bit1 @ pls ) ) ),
    inference(split_conjunct,[status(thm)],[fact_55_Numeral1__eq1__nat]) ).

thf(c_0_16,plain,
    ( one_one_nat
    = ( nat_1 @ one_one_int ) ),
    inference(split_conjunct,[status(thm)],[fact_768_transfer__nat__int__numerals_I2_J]) ).

thf(c_0_17,plain,
    ( ( number_number_of_int @ ( bit1 @ zero_zero_int ) )
    = one_one_int ),
    inference(rw,[status(thm)],[c_0_11,c_0_12]) ).

thf(c_0_18,plain,
    ! [X1: int] :
      ( ( number_number_of_int @ X1 )
      = X1 ),
    inference(split_conjunct,[status(thm)],[c_0_13]) ).

thf(c_0_19,negated_conjecture,
    ( ( power_power_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ) @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
    = zero_zero_int ),
    inference(fof_simplification,[status(thm)],[c_0_14]) ).

thf(c_0_20,plain,
    ( ( nat_1 @ one_one_int )
    = ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_15,c_0_16]),c_0_12]) ).

thf(c_0_21,plain,
    ( one_one_int
    = ( bit1 @ zero_zero_int ) ),
    inference(rw,[status(thm)],[c_0_17,c_0_18]) ).

thf(c_0_22,plain,
    ! [X4271: int] :
      ( ( bit0 @ X4271 )
      = ( plus_plus_int @ X4271 @ X4271 ) ),
    inference(variable_rename,[status(thm)],[fact_103_Bit0__def]) ).

thf(c_0_23,plain,
    ! [X141: nat,X142: int] :
      ( ( X142 != zero_zero_int )
     => ( ( power_power_int @ X142 @ X141 )
       != zero_zero_int ) ),
    inference(fof_simplification,[status(thm)],[fact_231_field__power__not__zero]) ).

thf(c_0_24,negated_conjecture,
    ( ( power_power_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ) @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) )
    = zero_zero_int ),
    inference(split_conjunct,[status(thm)],[c_0_19]) ).

thf(c_0_25,plain,
    ( ( plus_plus_nat @ one_one_nat @ one_one_nat )
    = ( number_number_of_nat @ ( bit0 @ ( bit1 @ pls ) ) ) ),
    inference(split_conjunct,[status(thm)],[fact_19_semiring__one__add__one__is__two]) ).

thf(c_0_26,plain,
    ( ( nat_1 @ ( bit1 @ zero_zero_int ) )
    = ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) ),
    inference(rw,[status(thm)],[c_0_20,c_0_21]) ).

thf(c_0_27,plain,
    ! [X1: int] :
      ( ( bit0 @ X1 )
      = ( plus_plus_int @ X1 @ X1 ) ),
    inference(split_conjunct,[status(thm)],[c_0_22]) ).

thf(c_0_28,plain,
    ! [X18: int,X13: int] :
      ( ( ord_less_int @ X18 @ X13 )
    <=> ( ( ord_less_eq_int @ X18 @ X13 )
        & ( X18 != X13 ) ) ),
    inference(fof_simplification,[status(thm)],[fact_718_zless__le]) ).

thf(c_0_29,plain,
    ! [X4457: nat,X4458: int] :
      ( ( X4458 = zero_zero_int )
      | ( ( power_power_int @ X4458 @ X4457 )
       != zero_zero_int ) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_23])])]) ).

thf(c_0_30,negated_conjecture,
    ( ( power_power_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ) @ ( number_number_of_nat @ ( bit0 @ ( bit1 @ zero_zero_int ) ) ) )
    = zero_zero_int ),
    inference(rw,[status(thm)],[c_0_24,c_0_12]) ).

thf(c_0_31,plain,
    ( ( number_number_of_nat @ ( plus_plus_int @ ( bit1 @ zero_zero_int ) @ ( bit1 @ zero_zero_int ) ) )
    = ( plus_plus_nat @ ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) @ ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) ) ),
    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_25,c_0_16]),c_0_21]),c_0_26]),c_0_16]),c_0_21]),c_0_26]),c_0_12]),c_0_27]) ).

thf(c_0_32,plain,
    ! [X5614: int,X5615: int] :
      ( ( ( ord_less_eq_int @ X5614 @ X5615 )
        | ~ ( ord_less_int @ X5614 @ X5615 ) )
      & ( ( X5614 != X5615 )
        | ~ ( ord_less_int @ X5614 @ X5615 ) )
      & ( ~ ( ord_less_eq_int @ X5614 @ X5615 )
        | ( X5614 = X5615 )
        | ( ord_less_int @ X5614 @ X5615 ) ) ),
    inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_28])])])]) ).

thf(c_0_33,plain,
    ord_less_int @ zero_zero_int @ ( plus_plus_int @ one_one_int @ ( semiri1621563631at_int @ n ) ),
    inference(split_conjunct,[status(thm)],[fact_0_n1pos]) ).

thf(c_0_34,plain,
    ! [X1: int,X16: nat] :
      ( ( X1 = zero_zero_int )
      | ( ( power_power_int @ X1 @ X16 )
       != zero_zero_int ) ),
    inference(split_conjunct,[status(thm)],[c_0_29]) ).

thf(c_0_35,negated_conjecture,
    ( ( power_power_int @ ( plus_plus_int @ ( bit1 @ zero_zero_int ) @ ( semiri1621563631at_int @ n ) ) @ ( plus_plus_nat @ ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) @ ( number_number_of_nat @ ( bit1 @ zero_zero_int ) ) ) )
    = zero_zero_int ),
    inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_30,c_0_21]),c_0_27]),c_0_31]) ).

thf(c_0_36,plain,
    ! [X1: int,X2: int] :
      ( ( X1 != X2 )
      | ~ ( ord_less_int @ X1 @ X2 ) ),
    inference(split_conjunct,[status(thm)],[c_0_32]) ).

thf(c_0_37,plain,
    ord_less_int @ zero_zero_int @ ( plus_plus_int @ ( bit1 @ zero_zero_int ) @ ( semiri1621563631at_int @ n ) ),
    inference(rw,[status(thm)],[c_0_33,c_0_21]) ).

thf(c_0_38,negated_conjecture,
    ( ( plus_plus_int @ ( bit1 @ zero_zero_int ) @ ( semiri1621563631at_int @ n ) )
    = zero_zero_int ),
    inference(spm,[status(thm)],[c_0_34,c_0_35]) ).

thf(c_0_39,plain,
    ! [X1: int] :
      ~ ( ord_less_int @ X1 @ X1 ),
    inference(er,[status(thm)],[c_0_36]) ).

thf(c_0_40,plain,
    $false,
    inference(sr,[status(thm)],[inference(rw,[status(thm)],[c_0_37,c_0_38]),c_0_39]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : NUM925^3 : TPTP v9.3.1. Released v5.3.0.
% 0.00/0.05  % Command  : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.08/0.19  % Computer : n026.cluster.edu
% 0.08/0.19  % Model    : x86_64 x86_64
% 0.08/0.19  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.08/0.19  % Memory   : 8046.5625MB
% 0.08/0.19  % OS       : Linux 6.8.0-71-generic
% 0.08/0.19  % CPULimit : 300
% 0.08/0.19  % WCLimit  : 300
% 0.08/0.19  % DateTime : Tue Sep 29 13:08:27 UTC 2026
% 0.08/0.20  % CPUTime  : 
% 0.08/0.20  Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.08/0.24  Running higher-order theorem proving
% 0.31/0.39  Running: /export/starexec/sandbox2/solver/bin/eprover-ho --delete-bad-limit=2000000000 --definitional-cnf=24 -s --print-statistics -R --print-version --proof-object --auto-schedule=8 --cpu-limit=300 /export/starexec/sandbox2/tmp/tmp.OB5HQtBO9O/E---3.1_557968.p
% 1.09/0.75  % Version: 3.5.1-ho
% 1.09/0.75  % Preprocessing class: HMLSSMSMSSSNSFA.
% 1.09/0.75  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.09/0.75  % Starting sh3 with 1500s (5) cores
% 1.09/0.75  % Starting lpo1_def_fix with 300s (1) cores
% 1.09/0.75  % Starting lpo8_s with 300s (1) cores
% 1.09/0.75  % Starting lpo1_lambda_fix with 300s (1) cores
% 1.09/0.75  % sh3 with pid 558051 completed with status 0
% 1.09/0.75  % Result found by sh3
% 1.09/0.75  % Preprocessing class: HMLSSMSMSSSNSFA.
% 1.09/0.75  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.09/0.75  % Starting sh3 with 1500s (5) cores
% 1.09/0.75  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 1.09/0.75  % No SInE strategy applied
% 1.09/0.75  % Search class: HGHSM-SSLM31-DSFFFFBN
% 1.09/0.75  % partial match(1): HGHSM-FSLM31-DSFFFFBN
% 1.09/0.75  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 1.09/0.75  % Starting SubtermCWHack with 136s (1) cores
% 1.09/0.75  % Starting sh3 with 151s (1) cores
% 1.09/0.75  % Starting lpo5_fix with 226s (1) cores
% 1.09/0.75  % Starting new_ho_2_cnf4 with 226s (1) cores
% 1.09/0.75  % Starting full_lambda_5 with 226s (1) cores
% 1.09/0.75  % new_ho_2_cnf4 with pid 558076 completed with status 0
% 1.09/0.75  % Result found by new_ho_2_cnf4
% 1.09/0.75  % Preprocessing class: HMLSSMSMSSSNSFA.
% 1.09/0.75  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 1.09/0.75  % Starting sh3 with 1500s (5) cores
% 1.09/0.75  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 1.09/0.75  % No SInE strategy applied
% 1.09/0.75  % Search class: HGHSM-SSLM31-DSFFFFBN
% 1.09/0.75  % partial match(1): HGHSM-FSLM31-DSFFFFBN
% 1.09/0.75  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 1.09/0.75  % Starting SubtermCWHack with 136s (1) cores
% 1.09/0.75  % Starting sh3 with 151s (1) cores
% 1.09/0.75  % Starting lpo5_fix with 226s (1) cores
% 1.09/0.75  % Starting new_ho_2_cnf4 with 226s (1) cores
% 1.09/0.75  % Preprocessing time       : 0.015 s
% 1.09/0.75  % Presaturation interreduction done
% 1.09/0.75  
% 1.09/0.75  % Proof found!
% 1.09/0.75  % SZS status Theorem
% 1.09/0.75  % SZS output start CNFRefutation
% See solution above
% 1.09/0.75  % Parsed axioms                        : 1266
% 1.09/0.75  % Removed by relevancy pruning/SinE    : 0
% 1.09/0.75  % Initial clauses                      : 1827
% 1.09/0.75  % Removed in clause preprocessing      : 185
% 1.09/0.75  % Initial clauses in saturation        : 1642
% 1.09/0.75  % Processed clauses                    : 1864
% 1.09/0.75  % ...of these trivial                  : 216
% 1.09/0.75  % ...subsumed                          : 388
% 1.09/0.75  % ...remaining for further processing  : 1259
% 1.09/0.75  % Other redundant clauses eliminated   : 162
% 1.09/0.75  % Clauses deleted for lack of memory   : 0
% 1.09/0.75  % Backward-subsumed                    : 13
% 1.09/0.75  % Backward-rewritten                   : 104
% 1.09/0.75  % Generated clauses                    : 171
% 1.09/0.75  % ...of the previous two non-redundant : 158
% 1.09/0.75  % ...aggressively subsumed             : 0
% 1.09/0.75  % Contextual simplify-reflections      : 2
% 1.09/0.75  % Paramodulations                      : 26
% 1.09/0.75  % Factorizations                       : 0
% 1.09/0.75  % NegExts                              : 0
% 1.09/0.75  % Equation resolutions                 : 162
% 1.09/0.75  % Disequality decompositions           : 0
% 1.09/0.75  % Total rewrite steps                  : 2543
% 1.09/0.75  % ...of those cached                   : 2115
% 1.09/0.75  % Propositional unsat checks           : 0
% 1.09/0.75  %    Propositional check models        : 0
% 1.09/0.75  %    Propositional check unsatisfiable : 0
% 1.09/0.75  %    Propositional clauses             : 0
% 1.09/0.75  %    Propositional clauses after purity: 0
% 1.09/0.75  %    Propositional unsat core size     : 0
% 1.09/0.75  %    Propositional preprocessing time  : 0.000
% 1.09/0.75  %    Propositional encoding time       : 0.000
% 1.09/0.75  %    Propositional solver time         : 0.000
% 1.09/0.75  %    Success case prop preproc time    : 0.000
% 1.09/0.75  %    Success case prop encoding time   : 0.000
% 1.09/0.75  %    Success case prop solver time     : 0.000
% 1.09/0.75  % Current number of processed clauses  : 68
% 1.09/0.75  %    Positive orientable unit clauses  : 37
% 1.09/0.75  %    Positive unorientable unit clauses: 0
% 1.09/0.75  %    Negative unit clauses             : 25
% 1.09/0.75  %    Non-unit-clauses                  : 6
% 1.09/0.75  % Current number of unprocessed clauses: 866
% 1.09/0.75  % ...number of literals in the above   : 1972
% 1.09/0.75  % Current number of archived formulas  : 0
% 1.09/0.75  % Current number of archived clauses   : 1047
% 1.09/0.75  % Clause-clause subsumption calls (NU) : 141778
% 1.09/0.75  % Rec. Clause-clause subsumption calls : 94344
% 1.09/0.75  % Non-unit clause-clause subsumptions  : 331
% 1.09/0.75  % Unit Clause-clause subsumption calls : 1290
% 1.09/0.75  % Rewrite failures with RHS unbound    : 0
% 1.09/0.75  % BW rewrite match attempts            : 450
% 1.09/0.75  % BW rewrite match successes           : 330
% 1.09/0.75  % Condensation attempts                : 0
% 1.09/0.75  % Condensation successes               : 0
% 1.09/0.75  % Termbank termtop insertions          : 160505
% 1.09/0.75  % Search garbage collected termcells   : 28795
% 1.09/0.75  
% 1.09/0.75  % -------------------------------------------------
% 1.09/0.75  % User time                : 0.256 s
% 1.09/0.75  % System time              : 0.026 s
% 1.09/0.75  % Total time               : 0.282 s
% 1.09/0.75  % Maximum resident set size: 10848 pages
% 1.09/0.75  
% 1.09/0.75  % -------------------------------------------------
% 1.09/0.75  % User time                : 0.711 s
% 1.09/0.75  % System time              : 0.091 s
% 1.09/0.75  % Total time               : 0.802 s
% 1.09/0.75  % Maximum resident set size: 7168 pages
% 1.09/0.75  % E exiting
%------------------------------------------------------------------------------