↑ Up

E---3.5.1.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : E---3.5.1
% Problem  : RNG052+2 : TPTP v9.3.1. Released v4.0.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 : Thu Sep 24 02:05:38 PM UTC 2026

% Result   : Theorem 0.19s 0.53s
% Output   : CNFRefutation 0.19s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    7
%            Number of leaves      :   13
% Syntax   : Number of formulae    :   48 (  26 unt;   0 def)
%            Number of atoms       :  104 (  46 equ)
%            Maximal formula atoms :    5 (   2 avg)
%            Number of connectives :   89 (  33   ~;  24   |;  21   &)
%                                         (   0 <=>;  11  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    8 (   3 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    7 (   5 usr;   1 prp; 0-2 aty)
%            Number of functors    :   14 (  14 usr;   8 con; 0-2 aty)
%            Number of variables   :   25 (   0 sgn  18   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(mEqInit,axiom,
    ! [X1,X2] :
      ( ( aVector0(X2)
        & aVector0(X1) )
     => ( ( aDimensionOf0(X2) != sz00
          & aDimensionOf0(X1) = aDimensionOf0(X2) )
       => aDimensionOf0(sziznziztdt0(X1)) = aDimensionOf0(sziznziztdt0(X2)) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',mEqInit) ).

fof(m__1692,hypothesis,
    aDimensionOf0(xs) != sz00,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1692) ).

fof(m__1726,hypothesis,
    ( xq = sziznziztdt0(xt)
    & ! [X1] :
        ( aNaturalNumber0(X1)
       => sdtlbdtrb0(xq,X1) = sdtlbdtrb0(xt,X1) )
    & szszuzczcdt0(aDimensionOf0(xq)) = aDimensionOf0(xt)
    & aVector0(xq) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1726) ).

fof(m__,conjecture,
    sdtlseqdt0(sdtasdt0(xE,xE),sdtasdt0(xC,xD)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__) ).

fof(m__1678_01,hypothesis,
    aDimensionOf0(xs) = aDimensionOf0(xt),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1678_01) ).

fof(m__1678,hypothesis,
    ( aVector0(xt)
    & aVector0(xs) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1678) ).

fof(m__1709,hypothesis,
    ( xp = sziznziztdt0(xs)
    & ! [X1] :
        ( aNaturalNumber0(X1)
       => sdtlbdtrb0(xp,X1) = sdtlbdtrb0(xs,X1) )
    & szszuzczcdt0(aDimensionOf0(xp)) = aDimensionOf0(xs)
    & aVector0(xp) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1709) ).

fof(mDimNat,axiom,
    ! [X1] :
      ( aVector0(X1)
     => aNaturalNumber0(aDimensionOf0(X1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',mDimNat) ).

fof(m__1652,hypothesis,
    ! [X1,X2] :
      ( ( aVector0(X2)
        & aVector0(X1) )
     => ( aDimensionOf0(X1) = aDimensionOf0(X2)
       => ( iLess0(aDimensionOf0(X1),aDimensionOf0(xs))
         => sdtlseqdt0(sdtasdt0(sdtasasdt0(X1,X2),sdtasasdt0(X1,X2)),sdtasdt0(sdtasasdt0(X1,X1),sdtasasdt0(X2,X2))) ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1652) ).

fof(mIH,axiom,
    ! [X1] :
      ( aNaturalNumber0(X1)
     => iLess0(X1,szszuzczcdt0(X1)) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',mIH) ).

fof(m__1820,hypothesis,
    ( xE = sdtasasdt0(xp,xq)
    & aScalar0(xE) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1820) ).

fof(m__1783,hypothesis,
    ( xC = sdtasasdt0(xp,xp)
    & aScalar0(xC) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1783) ).

fof(m__1800,hypothesis,
    ( xD = sdtasasdt0(xq,xq)
    & aScalar0(xD) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',m__1800) ).

fof(c_0_13,plain,
    ! [X1,X2] :
      ( ( aVector0(X2)
        & aVector0(X1) )
     => ( ( aDimensionOf0(X2) != sz00
          & aDimensionOf0(X1) = aDimensionOf0(X2) )
       => aDimensionOf0(sziznziztdt0(X1)) = aDimensionOf0(sziznziztdt0(X2)) ) ),
    inference(fof_simplification,[status(thm)],[mEqInit]) ).

fof(c_0_14,hypothesis,
    aDimensionOf0(xs) != sz00,
    inference(fof_simplification,[status(thm)],[m__1692]) ).

fof(c_0_15,plain,
    ! [X67,X68] :
      ( aDimensionOf0(sziznziztdt0(X67)) = aDimensionOf0(sziznziztdt0(X68))
      | aDimensionOf0(X68) = sz00
      | aDimensionOf0(X67) != aDimensionOf0(X68)
      | ~ aVector0(X68)
      | ~ aVector0(X67) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[c_0_13])])]) ).

fof(c_0_16,hypothesis,
    ! [X79] :
      ( xq = sziznziztdt0(xt)
      & ( sdtlbdtrb0(xq,X79) = sdtlbdtrb0(xt,X79)
        | ~ aNaturalNumber0(X79) )
      & szszuzczcdt0(aDimensionOf0(xq)) = aDimensionOf0(xt)
      & aVector0(xq) ),
    inference(fof_nnf,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[m__1726])])])]) ).

fof(c_0_17,hypothesis,
    aDimensionOf0(xs) != sz00,
    inference(fof_nnf,[status(thm)],[c_0_14]) ).

fof(c_0_18,negated_conjecture,
    ~ sdtlseqdt0(sdtasdt0(xE,xE),sdtasdt0(xC,xD)),
    inference(assume_negation,[status(cth)],[m__]) ).

cnf(c_0_19,plain,
    ( aDimensionOf0(X1) != aDimensionOf0(X2)
    | ~ aVector0(X2)
    | ~ aVector0(X1)
    | aDimensionOf0(sziznziztdt0(X1)) = aDimensionOf0(sziznziztdt0(X2))
    | aDimensionOf0(X2) = sz00 ),
    inference(split_conjunct,[status(thm)],[c_0_15]) ).

cnf(c_0_20,hypothesis,
    aDimensionOf0(xs) = aDimensionOf0(xt),
    inference(split_conjunct,[status(thm)],[m__1678_01]) ).

cnf(c_0_21,hypothesis,
    xq = sziznziztdt0(xt),
    inference(split_conjunct,[status(thm)],[c_0_16]) ).

cnf(c_0_22,hypothesis,
    aVector0(xt),
    inference(split_conjunct,[status(thm)],[m__1678]) ).

cnf(c_0_23,hypothesis,
    aDimensionOf0(xs) != sz00,
    inference(split_conjunct,[status(thm)],[c_0_17]) ).

fof(c_0_24,hypothesis,
    ! [X78] :
      ( xp = sziznziztdt0(xs)
      & ( sdtlbdtrb0(xp,X78) = sdtlbdtrb0(xs,X78)
        | ~ aNaturalNumber0(X78) )
      & szszuzczcdt0(aDimensionOf0(xp)) = aDimensionOf0(xs)
      & aVector0(xp) ),
    inference(fof_nnf,[status(thm)],[inference(shift_quantors,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[m__1709])])])]) ).

fof(c_0_25,negated_conjecture,
    ~ sdtlseqdt0(sdtasdt0(xE,xE),sdtasdt0(xC,xD)),
    inference(fof_simplification,[status(thm)],[c_0_18]) ).

fof(c_0_26,plain,
    ! [X59] :
      ( aNaturalNumber0(aDimensionOf0(X59))
      | ~ aVector0(X59) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mDimNat])])]) ).

cnf(c_0_27,hypothesis,
    ( ~ aVector0(X1)
    | aDimensionOf0(X1) != aDimensionOf0(xs)
    | aDimensionOf0(sziznziztdt0(X1)) = aDimensionOf0(xq) ),
    inference(sr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_19,c_0_20]),c_0_21]),c_0_22])]),c_0_23]) ).

cnf(c_0_28,hypothesis,
    xp = sziznziztdt0(xs),
    inference(split_conjunct,[status(thm)],[c_0_24]) ).

cnf(c_0_29,hypothesis,
    aVector0(xs),
    inference(split_conjunct,[status(thm)],[m__1678]) ).

fof(c_0_30,hypothesis,
    ! [X76,X77] :
      ( sdtlseqdt0(sdtasdt0(sdtasasdt0(X76,X77),sdtasasdt0(X76,X77)),sdtasdt0(sdtasasdt0(X76,X76),sdtasasdt0(X77,X77)))
      | ~ iLess0(aDimensionOf0(X76),aDimensionOf0(xs))
      | aDimensionOf0(X76) != aDimensionOf0(X77)
      | ~ aVector0(X77)
      | ~ aVector0(X76) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[m__1652])])]) ).

fof(c_0_31,negated_conjecture,
    ~ sdtlseqdt0(sdtasdt0(xE,xE),sdtasdt0(xC,xD)),
    inference(fof_nnf,[status(thm)],[c_0_25]) ).

fof(c_0_32,plain,
    ! [X13] :
      ( iLess0(X13,szszuzczcdt0(X13))
      | ~ aNaturalNumber0(X13) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mIH])])]) ).

cnf(c_0_33,hypothesis,
    szszuzczcdt0(aDimensionOf0(xq)) = aDimensionOf0(xt),
    inference(split_conjunct,[status(thm)],[c_0_16]) ).

cnf(c_0_34,plain,
    ( ~ aVector0(X1)
    | aNaturalNumber0(aDimensionOf0(X1)) ),
    inference(split_conjunct,[status(thm)],[c_0_26]) ).

cnf(c_0_35,hypothesis,
    aDimensionOf0(xp) = aDimensionOf0(xq),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_27,c_0_28]),c_0_29])]) ).

cnf(c_0_36,hypothesis,
    aVector0(xp),
    inference(split_conjunct,[status(thm)],[c_0_24]) ).

cnf(c_0_37,hypothesis,
    ( ~ iLess0(aDimensionOf0(X1),aDimensionOf0(xs))
    | aDimensionOf0(X1) != aDimensionOf0(X2)
    | ~ aVector0(X2)
    | ~ aVector0(X1)
    | sdtlseqdt0(sdtasdt0(sdtasasdt0(X1,X2),sdtasasdt0(X1,X2)),sdtasdt0(sdtasasdt0(X1,X1),sdtasasdt0(X2,X2))) ),
    inference(split_conjunct,[status(thm)],[c_0_30]) ).

cnf(c_0_38,hypothesis,
    xE = sdtasasdt0(xp,xq),
    inference(split_conjunct,[status(thm)],[m__1820]) ).

cnf(c_0_39,hypothesis,
    xC = sdtasasdt0(xp,xp),
    inference(split_conjunct,[status(thm)],[m__1783]) ).

cnf(c_0_40,hypothesis,
    xD = sdtasasdt0(xq,xq),
    inference(split_conjunct,[status(thm)],[m__1800]) ).

cnf(c_0_41,hypothesis,
    aVector0(xq),
    inference(split_conjunct,[status(thm)],[c_0_16]) ).

cnf(c_0_42,negated_conjecture,
    ~ sdtlseqdt0(sdtasdt0(xE,xE),sdtasdt0(xC,xD)),
    inference(split_conjunct,[status(thm)],[c_0_31]) ).

cnf(c_0_43,plain,
    ( ~ aNaturalNumber0(X1)
    | iLess0(X1,szszuzczcdt0(X1)) ),
    inference(split_conjunct,[status(thm)],[c_0_32]) ).

cnf(c_0_44,hypothesis,
    szszuzczcdt0(aDimensionOf0(xq)) = aDimensionOf0(xs),
    inference(rw,[status(thm)],[c_0_33,c_0_20]) ).

cnf(c_0_45,hypothesis,
    aNaturalNumber0(aDimensionOf0(xq)),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_34,c_0_35]),c_0_36])]) ).

cnf(c_0_46,hypothesis,
    ~ iLess0(aDimensionOf0(xq),aDimensionOf0(xs)),
    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(spm,[status(thm)],[c_0_37,c_0_38]),c_0_39]),c_0_40]),c_0_35]),c_0_41]),c_0_36]),c_0_35])]),c_0_42]) ).

cnf(c_0_47,hypothesis,
    $false,
    inference(sr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_43,c_0_44]),c_0_45])]),c_0_46]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : RNG052+2 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.05  % Command  : run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.09/0.36  % Computer : n026.cluster.edu
% 0.09/0.36  % Model    : x86_64 x86_64
% 0.09/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.09/0.36  % Memory   : 8046.5625MB
% 0.09/0.36  % OS       : Linux 6.8.0-71-generic
% 0.09/0.37  % CPULimit : 300
% 0.09/0.37  % WCLimit  : 300
% 0.09/0.37  % DateTime : Mon Sep 21 04:18:21 UTC 2026
% 0.09/0.37  % CPUTime  : 
% 0.09/0.37  Running run_E /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.09/0.44  Running first-order theorem proving
% 0.09/0.44  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.19/0.53  % Version: 3.5.1
% 0.19/0.53  % Preprocessing class: FSLSSMSMSSSNFFN.
% 0.19/0.53  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.19/0.53  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 0.19/0.53  % Starting new_bool_3 with 300s (1) cores
% 0.19/0.53  % Starting new_bool_1 with 300s (1) cores
% 0.19/0.53  % Starting sh5l with 300s (1) cores
% 0.19/0.53  % C07_19_nc_SOS_SAT001_MinMin_p005000_rr with pid 1345967 completed with status 0
% 0.19/0.53  % Result found by C07_19_nc_SOS_SAT001_MinMin_p005000_rr
% 0.19/0.53  % Preprocessing class: FSLSSMSMSSSNFFN.
% 0.19/0.53  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.19/0.53  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 0.19/0.53  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 0.19/0.53  % No SInE strategy applied
% 0.19/0.53  % Search class: FGHSF-FFMM21-MFFFFFNN
% 0.19/0.53  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 0.19/0.53  % Starting SubtermCWHack with 136s (1) cores
% 0.19/0.53  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 151s (1) cores
% 0.19/0.53  % Starting SAT001_MinMin_p005000_rr_RG with 136s (1) cores
% 0.19/0.53  % Starting G-E--_208_C18_F1_SE_CS_SP_PI_PS_S5PRR_S032N with 136s (1) cores
% 0.19/0.53  % Starting new_bool_3 with 136s (1) cores
% 0.19/0.53  % SAT001_MinMin_p005000_rr_RG with pid 1345973 completed with status 0
% 0.19/0.53  % Result found by SAT001_MinMin_p005000_rr_RG
% 0.19/0.53  % Preprocessing class: FSLSSMSMSSSNFFN.
% 0.19/0.53  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.19/0.53  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 1500s (5) cores
% 0.19/0.53  % (lift_lambdas = 1, lambda_to_forall = 1,unroll_only_formulas = 1, sine = Auto)
% 0.19/0.53  % No SInE strategy applied
% 0.19/0.53  % Search class: FGHSF-FFMM21-MFFFFFNN
% 0.19/0.53  % Scheduled 7 strats onto 5 cores with 1500 seconds (1500 total)
% 0.19/0.53  % Starting SubtermCWHack with 136s (1) cores
% 0.19/0.53  % Starting C07_19_nc_SOS_SAT001_MinMin_p005000_rr with 151s (1) cores
% 0.19/0.53  % Starting SAT001_MinMin_p005000_rr_RG with 136s (1) cores
% 0.19/0.53  % Preprocessing time       : 0.004 s
% 0.19/0.53  % Presaturation interreduction done
% 0.19/0.53  
% 0.19/0.53  % Proof found!
% 0.19/0.53  % SZS status Theorem
% 0.19/0.53  % SZS output start CNFRefutation
% See solution above
% 0.19/0.53  % Parsed axioms                        : 56
% 0.19/0.53  % Removed by relevancy pruning/SinE    : 0
% 0.19/0.53  % Initial clauses                      : 94
% 0.19/0.53  % Removed in clause preprocessing      : 5
% 0.19/0.53  % Initial clauses in saturation        : 89
% 0.19/0.53  % Processed clauses                    : 270
% 0.19/0.53  % ...of these trivial                  : 3
% 0.19/0.53  % ...subsumed                          : 19
% 0.19/0.53  % ...remaining for further processing  : 247
% 0.19/0.53  % Other redundant clauses eliminated   : 5
% 0.19/0.53  % Clauses deleted for lack of memory   : 0
% 0.19/0.53  % Backward-subsumed                    : 1
% 0.19/0.53  % Backward-rewritten                   : 3
% 0.19/0.53  % Generated clauses                    : 621
% 0.19/0.53  % ...of the previous two non-redundant : 535
% 0.19/0.53  % ...aggressively subsumed             : 0
% 0.19/0.53  % Contextual simplify-reflections      : 1
% 0.19/0.53  % Paramodulations                      : 612
% 0.19/0.53  % Factorizations                       : 0
% 0.19/0.53  % NegExts                              : 0
% 0.19/0.53  % Equation resolutions                 : 9
% 0.19/0.53  % Disequality decompositions           : 0
% 0.19/0.53  % Total rewrite steps                  : 655
% 0.19/0.53  % ...of those cached                   : 616
% 0.19/0.53  % Propositional unsat checks           : 0
% 0.19/0.53  %    Propositional check models        : 0
% 0.19/0.53  %    Propositional check unsatisfiable : 0
% 0.19/0.53  %    Propositional clauses             : 0
% 0.19/0.53  %    Propositional clauses after purity: 0
% 0.19/0.53  %    Propositional unsat core size     : 0
% 0.19/0.53  %    Propositional preprocessing time  : 0.000
% 0.19/0.53  %    Propositional encoding time       : 0.000
% 0.19/0.53  %    Propositional solver time         : 0.000
% 0.19/0.53  %    Success case prop preproc time    : 0.000
% 0.19/0.53  %    Success case prop encoding time   : 0.000
% 0.19/0.53  %    Success case prop solver time     : 0.000
% 0.19/0.53  % Current number of processed clauses  : 151
% 0.19/0.53  %    Positive orientable unit clauses  : 49
% 0.19/0.53  %    Positive unorientable unit clauses: 0
% 0.19/0.53  %    Negative unit clauses             : 3
% 0.19/0.53  %    Non-unit-clauses                  : 99
% 0.19/0.53  % Current number of unprocessed clauses: 429
% 0.19/0.53  % ...number of literals in the above   : 1915
% 0.19/0.53  % Current number of archived formulas  : 0
% 0.19/0.53  % Current number of archived clauses   : 93
% 0.19/0.53  % Clause-clause subsumption calls (NU) : 2546
% 0.19/0.53  % Rec. Clause-clause subsumption calls : 898
% 0.19/0.53  % Non-unit clause-clause subsumptions  : 16
% 0.19/0.53  % Unit Clause-clause subsumption calls : 34
% 0.19/0.53  % Rewrite failures with RHS unbound    : 0
% 0.19/0.53  % BW rewrite match attempts            : 2
% 0.19/0.53  % BW rewrite match successes           : 2
% 0.19/0.53  % Condensation attempts                : 0
% 0.19/0.53  % Condensation successes               : 0
% 0.19/0.53  % Termbank termtop insertions          : 16986
% 0.19/0.53  % Search garbage collected termcells   : 913
% 0.19/0.53  
% 0.19/0.53  % -------------------------------------------------
% 0.19/0.53  % User time                : 0.044 s
% 0.19/0.53  % System time              : 0.011 s
% 0.19/0.53  % Total time               : 0.055 s
% 0.19/0.53  % Maximum resident set size: 3700 pages
% 0.19/0.53  
% 0.19/0.53  % -------------------------------------------------
% 0.19/0.53  % User time                : 0.131 s
% 0.19/0.53  % System time              : 0.033 s
% 0.19/0.53  % Total time               : 0.164 s
% 0.19/0.53  % Maximum resident set size: 4608 pages
% 0.19/0.53  % E exiting
%------------------------------------------------------------------------------