↑ Up

E---3.5.1.THM-CRf.s

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

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

% Result   : Theorem 0.41s 0.50s
% Output   : CNFRefutation 0.41s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   13
%            Number of leaves      :    9
% Syntax   : Number of formulae    :   48 (  14 unt;   0 def)
%            Number of atoms       :  107 (  51 equ)
%            Maximal formula atoms :    4 (   2 avg)
%            Number of connectives :  104 (  45   ~;  38   |;  16   &)
%                                         (   0 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    8 (   3 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    4 (   2 usr;   1 prp; 0-2 aty)
%            Number of functors    :    9 (   9 usr;   4 con; 0-2 aty)
%            Number of variables   :   35 (   0 sgn  16   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(m__,conjecture,
    ( sdtpldt0(sz10,smndt0(xp)) != sz10
    & sdtpldt0(sz10,xp) != sz10 ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',m__) ).

fof(mAddAsso,axiom,
    ! [X1,X2,X3] :
      ( ( aInteger0(X3)
        & aInteger0(X2)
        & aInteger0(X1) )
     => sdtpldt0(X1,sdtpldt0(X2,X3)) = sdtpldt0(sdtpldt0(X1,X2),X3) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mAddAsso) ).

fof(mAddZero,axiom,
    ! [X1] :
      ( aInteger0(X1)
     => ( X1 = sdtpldt0(sz00,X1)
        & sdtpldt0(X1,sz00) = X1 ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mAddZero) ).

fof(mIntZero,axiom,
    aInteger0(sz00),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mIntZero) ).

fof(m__2171,hypothesis,
    ( aSubsetOf0(szAzrzSzezqlpdtcmdtrp0(sz10,xp),stldt0(sbsmnsldt0(xS)))
    & xp != sz00
    & aInteger0(xp) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',m__2171) ).

fof(mIntOne,axiom,
    aInteger0(sz10),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mIntOne) ).

fof(mIntNeg,axiom,
    ! [X1] :
      ( aInteger0(X1)
     => aInteger0(smndt0(X1)) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mIntNeg) ).

fof(mAddComm,axiom,
    ! [X1,X2] :
      ( ( aInteger0(X2)
        & aInteger0(X1) )
     => sdtpldt0(X1,X2) = sdtpldt0(X2,X1) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mAddComm) ).

fof(mAddNeg,axiom,
    ! [X1] :
      ( aInteger0(X1)
     => ( sz00 = sdtpldt0(smndt0(X1),X1)
        & sdtpldt0(X1,smndt0(X1)) = sz00 ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',mAddNeg) ).

fof(c_0_9,negated_conjecture,
    ~ ( sdtpldt0(sz10,smndt0(xp)) != sz10
      & sdtpldt0(sz10,xp) != sz10 ),
    inference(assume_negation,[status(cth)],[m__]) ).

fof(c_0_10,plain,
    ! [X54,X55,X56] :
      ( sdtpldt0(X54,sdtpldt0(X55,X56)) = sdtpldt0(sdtpldt0(X54,X55),X56)
      | ~ aInteger0(X56)
      | ~ aInteger0(X55)
      | ~ aInteger0(X54) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mAddAsso])])]) ).

fof(c_0_11,plain,
    ! [X59] :
      ( ( ~ aInteger0(X59)
        | X59 = sdtpldt0(sz00,X59) )
      & ( ~ aInteger0(X59)
        | sdtpldt0(X59,sz00) = X59 ) ),
    inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mAddZero])])])]) ).

fof(c_0_12,negated_conjecture,
    ~ ( sdtpldt0(sz10,smndt0(xp)) != sz10
      & sdtpldt0(sz10,xp) != sz10 ),
    inference(fof_simplification,[status(thm)],[c_0_9]) ).

cnf(c_0_13,plain,
    ( ~ aInteger0(X3)
    | ~ aInteger0(X2)
    | ~ aInteger0(X1)
    | sdtpldt0(X1,sdtpldt0(X2,X3)) = sdtpldt0(sdtpldt0(X1,X2),X3) ),
    inference(split_conjunct,[status(thm)],[c_0_10]) ).

cnf(c_0_14,plain,
    ( ~ aInteger0(X1)
    | X1 = sdtpldt0(sz00,X1) ),
    inference(split_conjunct,[status(thm)],[c_0_11]) ).

cnf(c_0_15,plain,
    aInteger0(sz00),
    inference(split_conjunct,[status(thm)],[mIntZero]) ).

fof(c_0_16,negated_conjecture,
    ( sdtpldt0(sz10,smndt0(xp)) = sz10
    | sdtpldt0(sz10,xp) = sz10 ),
    inference(fof_nnf,[status(thm)],[c_0_12]) ).

fof(c_0_17,hypothesis,
    ( aSubsetOf0(szAzrzSzezqlpdtcmdtrp0(sz10,xp),stldt0(sbsmnsldt0(xS)))
    & xp != sz00
    & aInteger0(xp) ),
    inference(fof_simplification,[status(thm)],[m__2171]) ).

cnf(c_0_18,plain,
    ( ~ aInteger0(X1)
    | ~ aInteger0(X2)
    | sdtpldt0(sz00,sdtpldt0(X1,X2)) = sdtpldt0(X1,X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_13,c_0_14]),c_0_15])]) ).

cnf(c_0_19,negated_conjecture,
    ( sdtpldt0(sz10,smndt0(xp)) = sz10
    | sdtpldt0(sz10,xp) = sz10 ),
    inference(split_conjunct,[status(thm)],[c_0_16]) ).

cnf(c_0_20,plain,
    aInteger0(sz10),
    inference(split_conjunct,[status(thm)],[mIntOne]) ).

fof(c_0_21,plain,
    ! [X64] :
      ( aInteger0(smndt0(X64))
      | ~ aInteger0(X64) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mIntNeg])])]) ).

fof(c_0_22,hypothesis,
    ( aSubsetOf0(szAzrzSzezqlpdtcmdtrp0(sz10,xp),stldt0(sbsmnsldt0(xS)))
    & xp != sz00
    & aInteger0(xp) ),
    inference(fof_nnf,[status(thm)],[c_0_17]) ).

cnf(c_0_23,negated_conjecture,
    ( ~ aInteger0(smndt0(xp))
    | sdtpldt0(sz00,sz10) = sz10
    | sdtpldt0(sz10,xp) = sz10 ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_18,c_0_19]),c_0_20])]) ).

cnf(c_0_24,plain,
    ( ~ aInteger0(X1)
    | aInteger0(smndt0(X1)) ),
    inference(split_conjunct,[status(thm)],[c_0_21]) ).

cnf(c_0_25,hypothesis,
    aInteger0(xp),
    inference(split_conjunct,[status(thm)],[c_0_22]) ).

cnf(c_0_26,negated_conjecture,
    ( sdtpldt0(sz10,xp) = sz10
    | sdtpldt0(sz00,sz10) = sz10 ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_23,c_0_24]),c_0_25])]) ).

cnf(c_0_27,plain,
    ( ~ aInteger0(X1)
    | sdtpldt0(X1,sz00) = X1 ),
    inference(split_conjunct,[status(thm)],[c_0_11]) ).

fof(c_0_28,plain,
    ! [X57,X58] :
      ( sdtpldt0(X57,X58) = sdtpldt0(X58,X57)
      | ~ aInteger0(X58)
      | ~ aInteger0(X57) ),
    inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mAddComm])])]) ).

fof(c_0_29,plain,
    ! [X60] :
      ( ( ~ aInteger0(X60)
        | sz00 = sdtpldt0(smndt0(X60),X60) )
      & ( ~ aInteger0(X60)
        | sdtpldt0(X60,smndt0(X60)) = sz00 ) ),
    inference(distribute,[status(thm)],[inference(fof_nnf,[status(thm)],[inference(variable_rename,[status(thm)],[inference(fof_nnf,[status(thm)],[mAddNeg])])])]) ).

cnf(c_0_30,negated_conjecture,
    sdtpldt0(sz00,sz10) = sz10,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_18,c_0_26]),c_0_25]),c_0_20])]) ).

cnf(c_0_31,plain,
    ( ~ aInteger0(X1)
    | ~ aInteger0(X2)
    | sdtpldt0(X1,sdtpldt0(sz00,X2)) = sdtpldt0(X1,X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_13,c_0_27]),c_0_15])]) ).

cnf(c_0_32,plain,
    ( ~ aInteger0(X2)
    | ~ aInteger0(X1)
    | sdtpldt0(X1,X2) = sdtpldt0(X2,X1) ),
    inference(split_conjunct,[status(thm)],[c_0_28]) ).

cnf(c_0_33,plain,
    ( ~ aInteger0(X1)
    | sz00 = sdtpldt0(smndt0(X1),X1) ),
    inference(split_conjunct,[status(thm)],[c_0_29]) ).

cnf(c_0_34,negated_conjecture,
    ( ~ aInteger0(X1)
    | sdtpldt0(sz00,sdtpldt0(sz10,X1)) = sdtpldt0(sz10,X1) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_13,c_0_30]),c_0_20]),c_0_15])]) ).

cnf(c_0_35,plain,
    ( ~ aInteger0(X1)
    | ~ aInteger0(X2)
    | sdtpldt0(X1,sdtpldt0(X2,sz00)) = sdtpldt0(X1,X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_31,c_0_32]),c_0_15])]) ).

cnf(c_0_36,plain,
    ( ~ aInteger0(smndt0(sz00))
    | smndt0(sz00) = sz00 ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_27,c_0_33]),c_0_15])]) ).

cnf(c_0_37,negated_conjecture,
    ( ~ aInteger0(X1)
    | ~ aInteger0(smndt0(xp))
    | sdtpldt0(sz10,xp) = sz10
    | sdtpldt0(sz10,sdtpldt0(smndt0(xp),X1)) = sdtpldt0(sz10,X1) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_13,c_0_19]),c_0_20])]) ).

cnf(c_0_38,negated_conjecture,
    sdtpldt0(sz10,sz00) = sz10,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_34,c_0_35]),c_0_30]),c_0_15]),c_0_20])]) ).

cnf(c_0_39,plain,
    smndt0(sz00) = sz00,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_36,c_0_24]),c_0_15])]) ).

cnf(c_0_40,negated_conjecture,
    ( ~ aInteger0(smndt0(xp))
    | sdtpldt0(sz10,xp) = sz10 ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_37,c_0_33]),c_0_38]),c_0_25])]) ).

cnf(c_0_41,plain,
    ( ~ aInteger0(X1)
    | ~ aInteger0(X2)
    | sdtpldt0(smndt0(X1),sdtpldt0(X1,X2)) = sdtpldt0(sz00,X2) ),
    inference(csr,[status(thm)],[inference(spm,[status(thm)],[c_0_13,c_0_33]),c_0_24]) ).

cnf(c_0_42,plain,
    sdtpldt0(sz00,sz00) = sz00,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_33,c_0_39]),c_0_15])]) ).

cnf(c_0_43,negated_conjecture,
    sdtpldt0(sz10,xp) = sz10,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_40,c_0_24]),c_0_25])]) ).

cnf(c_0_44,negated_conjecture,
    sdtpldt0(smndt0(sz10),sz10) = sz00,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_41,c_0_38]),c_0_42]),c_0_15]),c_0_20])]) ).

cnf(c_0_45,negated_conjecture,
    sdtpldt0(sz00,xp) = sz00,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_41,c_0_43]),c_0_44]),c_0_25]),c_0_20])]) ).

cnf(c_0_46,hypothesis,
    xp != sz00,
    inference(split_conjunct,[status(thm)],[c_0_22]) ).

cnf(c_0_47,negated_conjecture,
    $false,
    inference(sr,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_14,c_0_45]),c_0_25])]),c_0_46]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : NUM453+1 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.05  % Command  : run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.09/0.36  % Computer : n015.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 02:34:36 UTC 2026
% 0.09/0.37  % CPUTime  : 
% 0.09/0.37  Running run_E /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.09/0.41  Running first-order theorem proving
% 0.09/0.41  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
% 0.41/0.50  % Version: 3.5.1
% 0.41/0.50  % Preprocessing class: FSLSSMSSSSSNFFN.
% 0.41/0.50  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.41/0.50  % Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.41/0.50  % Starting new_bool_3 with 300s (1) cores
% 0.41/0.50  % Starting new_bool_1 with 300s (1) cores
% 0.41/0.50  % Starting sh5l with 300s (1) cores
% 0.41/0.50  % new_bool_3 with pid 366922 completed with status 0
% 0.41/0.50  % Result found by new_bool_3
% 0.41/0.50  % Preprocessing class: FSLSSMSSSSSNFFN.
% 0.41/0.50  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.41/0.50  % Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.41/0.50  % Starting new_bool_3 with 300s (1) cores
% 0.41/0.50  % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.41/0.50  % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.41/0.50  % Search class: FGHSF-FFMM31-SFFFFFNN
% 0.41/0.50  % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 0.41/0.50  % Starting SubtermCWHack with 31s (1) cores
% 0.41/0.50  % SubtermCWHack with pid 366929 completed with status 0
% 0.41/0.50  % Result found by SubtermCWHack
% 0.41/0.50  % Preprocessing class: FSLSSMSSSSSNFFN.
% 0.41/0.50  % Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.41/0.50  % Starting G-E--_207_C18_F1_SE_CS_SP_PI_PS_S5PRR_S2S with 1500s (5) cores
% 0.41/0.50  % Starting new_bool_3 with 300s (1) cores
% 0.41/0.50  % (lift_lambdas = 0, lambda_to_forall = 0,unroll_only_formulas = 0, sine = GSinE(CountFormulas,hypos,1.5,,3,20000,1.0))
% 0.41/0.50  % SinE strategy is GSinE(CountFormulas,hypos,1.5,,3,20000,1.0)
% 0.41/0.50  % Search class: FGHSF-FFMM31-SFFFFFNN
% 0.41/0.50  % Scheduled 5 strats onto 1 cores with 300 seconds (300 total)
% 0.41/0.50  % Starting SubtermCWHack with 31s (1) cores
% 0.41/0.50  % Preprocessing time       : 0.002 s
% 0.41/0.50  
% 0.41/0.50  % Proof found!
% 0.41/0.50  % SZS status Theorem
% 0.41/0.50  % SZS output start CNFRefutation
% See solution above
% 0.41/0.50  % Parsed axioms                        : 48
% 0.41/0.50  % Removed by relevancy pruning/SinE    : 8
% 0.41/0.50  % Initial clauses                      : 91
% 0.41/0.50  % Removed in clause preprocessing      : 4
% 0.41/0.50  % Initial clauses in saturation        : 87
% 0.41/0.50  % Processed clauses                    : 806
% 0.41/0.50  % ...of these trivial                  : 10
% 0.41/0.50  % ...subsumed                          : 546
% 0.41/0.50  % ...remaining for further processing  : 250
% 0.41/0.50  % Other redundant clauses eliminated   : 18
% 0.41/0.50  % Clauses deleted for lack of memory   : 0
% 0.41/0.50  % Backward-subsumed                    : 5
% 0.41/0.50  % Backward-rewritten                   : 12
% 0.41/0.50  % Generated clauses                    : 2896
% 0.41/0.50  % ...of the previous two non-redundant : 2182
% 0.41/0.50  % ...aggressively subsumed             : 0
% 0.41/0.50  % Contextual simplify-reflections      : 29
% 0.41/0.50  % Paramodulations                      : 2878
% 0.41/0.50  % Factorizations                       : 0
% 0.41/0.50  % NegExts                              : 0
% 0.41/0.50  % Equation resolutions                 : 18
% 0.41/0.50  % Disequality decompositions           : 0
% 0.41/0.50  % Total rewrite steps                  : 3169
% 0.41/0.50  % ...of those cached                   : 3145
% 0.41/0.50  % Propositional unsat checks           : 0
% 0.41/0.50  %    Propositional check models        : 0
% 0.41/0.50  %    Propositional check unsatisfiable : 0
% 0.41/0.50  %    Propositional clauses             : 0
% 0.41/0.50  %    Propositional clauses after purity: 0
% 0.41/0.50  %    Propositional unsat core size     : 0
% 0.41/0.50  %    Propositional preprocessing time  : 0.000
% 0.41/0.50  %    Propositional encoding time       : 0.000
% 0.41/0.50  %    Propositional solver time         : 0.000
% 0.41/0.50  %    Success case prop preproc time    : 0.000
% 0.41/0.50  %    Success case prop encoding time   : 0.000
% 0.41/0.50  %    Success case prop solver time     : 0.000
% 0.41/0.50  % Current number of processed clauses  : 215
% 0.41/0.50  %    Positive orientable unit clauses  : 28
% 0.41/0.50  %    Positive unorientable unit clauses: 0
% 0.41/0.50  %    Negative unit clauses             : 1
% 0.41/0.50  %    Non-unit-clauses                  : 186
% 0.41/0.50  % Current number of unprocessed clauses: 1438
% 0.41/0.50  % ...number of literals in the above   : 5950
% 0.41/0.50  % Current number of archived formulas  : 0
% 0.41/0.50  % Current number of archived clauses   : 17
% 0.41/0.50  % Clause-clause subsumption calls (NU) : 6127
% 0.41/0.50  % Rec. Clause-clause subsumption calls : 4360
% 0.41/0.50  % Non-unit clause-clause subsumptions  : 580
% 0.41/0.50  % Unit Clause-clause subsumption calls : 50
% 0.41/0.50  % Rewrite failures with RHS unbound    : 0
% 0.41/0.50  % BW rewrite match attempts            : 8
% 0.41/0.50  % BW rewrite match successes           : 6
% 0.41/0.50  % Condensation attempts                : 0
% 0.41/0.50  % Condensation successes               : 0
% 0.41/0.50  % Termbank termtop insertions          : 49937
% 0.41/0.50  % Search garbage collected termcells   : 1626
% 0.41/0.50  
% 0.41/0.50  % -------------------------------------------------
% 0.41/0.50  % User time                : 0.056 s
% 0.41/0.50  % System time              : 0.010 s
% 0.41/0.50  % Total time               : 0.066 s
% 0.41/0.50  % Maximum resident set size: 3896 pages
% 0.41/0.50  
% 0.41/0.50  % -------------------------------------------------
% 0.41/0.50  % User time                : 0.060 s
% 0.41/0.50  % System time              : 0.013 s
% 0.41/0.50  % Total time               : 0.073 s
% 0.41/0.50  % Maximum resident set size: 4608 pages
% 0.41/0.50  % E exiting
%------------------------------------------------------------------------------