TSTP Solution File: SYO664-1 by E---3.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : E---3.1
% Problem  : SYO664-1 : TPTP v8.1.2. Released v7.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_E %s %d THM

% Computer : n017.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 2400s
% WCLimit  : 300s
% DateTime : Tue Oct 10 20:47:11 EDT 2023

% Result   : Unsatisfiable 0.22s 0.51s
% Output   : CNFRefutation 0.22s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    7
%            Number of leaves      :   10
% Syntax   : Number of clauses     :   41 (   7 unt;  18 nHn;  33 RR)
%            Number of literals    :  175 (   0 equ; 126 neg)
%            Maximal clause size   :   14 (   4 avg)
%            Maximal term depth    :    4 (   2 avg)
%            Number of predicates  :    4 (   3 usr;   1 prp; 0-2 aty)
%            Number of functors    :    5 (   5 usr;   2 con; 0-1 aty)
%            Number of variables   :   60 (   2 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(clause_37,axiom,
    ( ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(suc(X2)))
    | ~ 'E'(s('0'),f(suc(X3)))
    | ~ 'E'(s('0'),f(X4))
    | ~ 'E'(s('0'),f(suc(X4)))
    | ~ iLEQ(suc(X4),suc(X3))
    | ~ 'E'(s('0'),f(X3))
    | ~ iLEQ(suc(X5),suc(X1))
    | ~ 'E'(s('0'),f(X2))
    | ~ 'E'(s('0'),f(X5))
    | ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X3),suc(X5))
    | ~ 'E'(s('0'),f(suc(X5))) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_37) ).

cnf(clause_50,axiom,
    ( iLEQ(suc(X1),suc(X1))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(suc(X1))) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_50) ).

cnf(clause_66,axiom,
    ( ~ 'E'('0',f(X1))
    | ~ 'E'('0',f(suc(X2)))
    | ~ 'E'('0',f(suc(X3)))
    | ~ iLEQ(suc(X3),suc(X2))
    | ~ iLEQ(suc(X2),suc(X4))
    | ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(X3))
    | ~ iLEQ(suc(X4),suc(X1))
    | ~ 'E'('0',f(X5))
    | ~ iLEQ(suc(X1),suc(X5))
    | ~ 'E'('0',f(suc(X4)))
    | ~ 'E'('0',f(X2))
    | ~ 'E'('0',f(suc(X5)))
    | ~ 'E'('0',f(X4)) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_66) ).

cnf(clause_6,axiom,
    ( iLEQ(suc(X1),suc(X1))
    | ~ 'E'('0',f(X1))
    | ~ 'E'('0',f(suc(X1))) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_6) ).

cnf(clause_83,axiom,
    ( 'E'(s('0'),f(suc(X1)))
    | 'LE'(f(X1),s('0'))
    | ~ 'LE'(f(suc(X1)),s(s('0'))) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_83) ).

cnf(clause_58,axiom,
    'LE'(f(X1),s(s('0'))),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_58) ).

cnf(clause_20,axiom,
    ( 'E'(s('0'),f(X1))
    | 'LE'(f(X1),s('0'))
    | ~ 'LE'(f(X1),s(s('0'))) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_20) ).

cnf(clause_117,axiom,
    ( 'E'('0',f(suc(X1)))
    | 'LE'(f(X1),'0')
    | ~ 'LE'(f(suc(X1)),s('0')) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_117) ).

cnf(clause_94,axiom,
    ( 'E'('0',f(X1))
    | 'LE'(f(X1),'0')
    | ~ 'LE'(f(X1),s('0')) ),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_94) ).

cnf(clause_70,axiom,
    ~ 'LE'(f(z),'0'),
    file('/export/starexec/sandbox/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p',clause_70) ).

cnf(c_0_10,axiom,
    ( ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(suc(X2)))
    | ~ 'E'(s('0'),f(suc(X3)))
    | ~ 'E'(s('0'),f(X4))
    | ~ 'E'(s('0'),f(suc(X4)))
    | ~ iLEQ(suc(X4),suc(X3))
    | ~ 'E'(s('0'),f(X3))
    | ~ iLEQ(suc(X5),suc(X1))
    | ~ 'E'(s('0'),f(X2))
    | ~ 'E'(s('0'),f(X5))
    | ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X3),suc(X5))
    | ~ 'E'(s('0'),f(suc(X5))) ),
    clause_37 ).

cnf(c_0_11,axiom,
    ( iLEQ(suc(X1),suc(X1))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(suc(X1))) ),
    clause_50 ).

cnf(c_0_12,axiom,
    ( ~ 'E'('0',f(X1))
    | ~ 'E'('0',f(suc(X2)))
    | ~ 'E'('0',f(suc(X3)))
    | ~ iLEQ(suc(X3),suc(X2))
    | ~ iLEQ(suc(X2),suc(X4))
    | ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(X3))
    | ~ iLEQ(suc(X4),suc(X1))
    | ~ 'E'('0',f(X5))
    | ~ iLEQ(suc(X1),suc(X5))
    | ~ 'E'('0',f(suc(X4)))
    | ~ 'E'('0',f(X2))
    | ~ 'E'('0',f(suc(X5)))
    | ~ 'E'('0',f(X4)) ),
    clause_66 ).

cnf(c_0_13,axiom,
    ( iLEQ(suc(X1),suc(X1))
    | ~ 'E'('0',f(X1))
    | ~ 'E'('0',f(suc(X1))) ),
    clause_6 ).

cnf(c_0_14,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X2),suc(X3))
    | ~ iLEQ(suc(X3),suc(X4))
    | ~ 'E'(s('0'),f(suc(X3)))
    | ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(suc(X2)))
    | ~ 'E'(s('0'),f(suc(X4)))
    | ~ 'E'(s('0'),f(X3))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(X2))
    | ~ 'E'(s('0'),f(X4)) ),
    inference(spm,[status(thm)],[c_0_10,c_0_11]) ).

cnf(c_0_15,axiom,
    ( 'E'(s('0'),f(suc(X1)))
    | 'LE'(f(X1),s('0'))
    | ~ 'LE'(f(suc(X1)),s(s('0'))) ),
    clause_83 ).

cnf(c_0_16,axiom,
    'LE'(f(X1),s(s('0'))),
    clause_58 ).

cnf(c_0_17,axiom,
    ( 'E'(s('0'),f(X1))
    | 'LE'(f(X1),s('0'))
    | ~ 'LE'(f(X1),s(s('0'))) ),
    clause_20 ).

cnf(c_0_18,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X2),suc(X3))
    | ~ iLEQ(suc(X3),suc(X4))
    | ~ 'E'('0',f(suc(X4)))
    | ~ 'E'('0',f(suc(X3)))
    | ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(suc(X2)))
    | ~ 'E'('0',f(X4))
    | ~ 'E'('0',f(X3))
    | ~ 'E'('0',f(X1))
    | ~ 'E'('0',f(X2)) ),
    inference(spm,[status(thm)],[c_0_12,c_0_13]) ).

cnf(c_0_19,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X2),suc(X3))
    | ~ 'E'(s('0'),f(suc(X2)))
    | ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(suc(X3)))
    | ~ 'E'(s('0'),f(X2))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(X3)) ),
    inference(spm,[status(thm)],[c_0_14,c_0_11]) ).

cnf(c_0_20,axiom,
    ( 'E'('0',f(suc(X1)))
    | 'LE'(f(X1),'0')
    | ~ 'LE'(f(suc(X1)),s('0')) ),
    clause_117 ).

cnf(c_0_21,plain,
    ( 'LE'(f(X1),s('0'))
    | 'E'(s('0'),f(suc(X1))) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_15,c_0_16])]) ).

cnf(c_0_22,plain,
    ( 'LE'(f(X1),s('0'))
    | 'E'(s('0'),f(X1)) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_17,c_0_16])]) ).

cnf(c_0_23,axiom,
    ( 'E'('0',f(X1))
    | 'LE'(f(X1),'0')
    | ~ 'LE'(f(X1),s('0')) ),
    clause_94 ).

cnf(c_0_24,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ iLEQ(suc(X2),suc(X3))
    | ~ 'E'('0',f(suc(X3)))
    | ~ 'E'('0',f(suc(X2)))
    | ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(X3))
    | ~ 'E'('0',f(X2))
    | ~ 'E'('0',f(X1)) ),
    inference(spm,[status(thm)],[c_0_18,c_0_13]) ).

cnf(c_0_25,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(suc(X2)))
    | ~ 'E'(s('0'),f(X1))
    | ~ 'E'(s('0'),f(X2)) ),
    inference(spm,[status(thm)],[c_0_19,c_0_11]) ).

cnf(c_0_26,axiom,
    ~ 'LE'(f(z),'0'),
    clause_70 ).

cnf(c_0_27,plain,
    ( 'LE'(f(X1),'0')
    | 'E'(s('0'),f(suc(suc(X1))))
    | 'E'('0',f(suc(X1))) ),
    inference(spm,[status(thm)],[c_0_20,c_0_21]) ).

cnf(c_0_28,plain,
    ( 'LE'(f(X1),'0')
    | 'E'(s('0'),f(suc(X1)))
    | 'E'('0',f(suc(X1))) ),
    inference(spm,[status(thm)],[c_0_20,c_0_22]) ).

cnf(c_0_29,plain,
    ( 'LE'(f(X1),'0')
    | 'E'(s('0'),f(suc(X1)))
    | 'E'('0',f(X1)) ),
    inference(spm,[status(thm)],[c_0_23,c_0_21]) ).

cnf(c_0_30,plain,
    ( 'LE'(f(X1),'0')
    | 'E'(s('0'),f(X1))
    | 'E'('0',f(X1)) ),
    inference(spm,[status(thm)],[c_0_23,c_0_22]) ).

cnf(c_0_31,plain,
    ( ~ iLEQ(suc(X1),suc(X2))
    | ~ 'E'('0',f(suc(X2)))
    | ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(X2))
    | ~ 'E'('0',f(X1)) ),
    inference(spm,[status(thm)],[c_0_24,c_0_13]) ).

cnf(c_0_32,plain,
    ( ~ 'E'(s('0'),f(suc(X1)))
    | ~ 'E'(s('0'),f(X1)) ),
    inference(spm,[status(thm)],[c_0_25,c_0_11]) ).

cnf(c_0_33,plain,
    ( 'E'(s('0'),f(suc(suc(z))))
    | 'E'('0',f(suc(z))) ),
    inference(spm,[status(thm)],[c_0_26,c_0_27]) ).

cnf(c_0_34,plain,
    ( 'E'(s('0'),f(suc(z)))
    | 'E'('0',f(suc(z))) ),
    inference(spm,[status(thm)],[c_0_26,c_0_28]) ).

cnf(c_0_35,plain,
    ( 'E'(s('0'),f(suc(z)))
    | 'E'('0',f(z)) ),
    inference(spm,[status(thm)],[c_0_26,c_0_29]) ).

cnf(c_0_36,plain,
    ( 'E'(s('0'),f(z))
    | 'E'('0',f(z)) ),
    inference(spm,[status(thm)],[c_0_26,c_0_30]) ).

cnf(c_0_37,plain,
    ( ~ 'E'('0',f(suc(X1)))
    | ~ 'E'('0',f(X1)) ),
    inference(spm,[status(thm)],[c_0_31,c_0_13]) ).

cnf(c_0_38,plain,
    'E'('0',f(suc(z))),
    inference(csr,[status(thm)],[inference(spm,[status(thm)],[c_0_32,c_0_33]),c_0_34]) ).

cnf(c_0_39,plain,
    'E'('0',f(z)),
    inference(csr,[status(thm)],[inference(spm,[status(thm)],[c_0_32,c_0_35]),c_0_36]) ).

cnf(c_0_40,plain,
    $false,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_37,c_0_38]),c_0_39])]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.13  % Problem    : SYO664-1 : TPTP v8.1.2. Released v7.3.0.
% 0.03/0.14  % Command    : run_E %s %d THM
% 0.13/0.35  % Computer : n017.cluster.edu
% 0.13/0.35  % Model    : x86_64 x86_64
% 0.13/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.35  % Memory   : 8042.1875MB
% 0.13/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.35  % CPULimit   : 2400
% 0.13/0.35  % WCLimit    : 300
% 0.13/0.35  % DateTime   : Mon Oct  2 15:00:26 EDT 2023
% 0.13/0.36  % CPUTime    : 
% 0.22/0.49  Running first-order theorem proving
% 0.22/0.49  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/tmp/tmp.BrrRpB2xkm/E---3.1_3753.p
% 0.22/0.51  # Version: 3.1pre001
% 0.22/0.51  # Preprocessing class: FSMSSMSSSSSNFFN.
% 0.22/0.51  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.22/0.51  # Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.22/0.51  # Starting new_bool_3 with 300s (1) cores
% 0.22/0.51  # Starting new_bool_1 with 300s (1) cores
% 0.22/0.51  # Starting sh5l with 300s (1) cores
% 0.22/0.51  # G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with pid 3831 completed with status 0
% 0.22/0.51  # Result found by G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN
% 0.22/0.51  # Preprocessing class: FSMSSMSSSSSNFFN.
% 0.22/0.51  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.22/0.51  # Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.22/0.51  # No SInE strategy applied
% 0.22/0.51  # Search class: FGHNF-FFMF11-SFFFFFNN
% 0.22/0.51  # Scheduled 6 strats onto 5 cores with 1500 seconds (1500 total)
% 0.22/0.51  # Starting G-E--_208_C47_F1_SE_CS_SP_PS_S0Y with 811s (1) cores
% 0.22/0.51  # Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 151s (1) cores
% 0.22/0.51  # Starting G-E--_208_C02CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN with 136s (1) cores
% 0.22/0.51  # Starting G-N--_023_B07_F1_SP_PI_Q7_CS_SP_CO_S5PRR_S0Y with 136s (1) cores
% 0.22/0.51  # Starting new_bool_3 with 136s (1) cores
% 0.22/0.51  # G-N--_023_B07_F1_SP_PI_Q7_CS_SP_CO_S5PRR_S0Y with pid 3841 completed with status 0
% 0.22/0.51  # Result found by G-N--_023_B07_F1_SP_PI_Q7_CS_SP_CO_S5PRR_S0Y
% 0.22/0.51  # Preprocessing class: FSMSSMSSSSSNFFN.
% 0.22/0.51  # Scheduled 4 strats onto 8 cores with 300 seconds (2400 total)
% 0.22/0.51  # Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 1500s (5) cores
% 0.22/0.51  # No SInE strategy applied
% 0.22/0.51  # Search class: FGHNF-FFMF11-SFFFFFNN
% 0.22/0.51  # Scheduled 6 strats onto 5 cores with 1500 seconds (1500 total)
% 0.22/0.51  # Starting G-E--_208_C47_F1_SE_CS_SP_PS_S0Y with 811s (1) cores
% 0.22/0.51  # Starting G-E--_208_C18_F1_SE_CS_SOS_SP_PS_S5PRR_RG_S04AN with 151s (1) cores
% 0.22/0.51  # Starting G-E--_208_C02CMA_F1_SE_CS_SP_PS_S5PRR_RG_S04AN with 136s (1) cores
% 0.22/0.51  # Starting G-N--_023_B07_F1_SP_PI_Q7_CS_SP_CO_S5PRR_S0Y with 136s (1) cores
% 0.22/0.51  # Preprocessing time       : 0.001 s
% 0.22/0.51  
% 0.22/0.51  # Proof found!
% 0.22/0.51  # SZS status Unsatisfiable
% 0.22/0.51  # SZS output start CNFRefutation
% See solution above
% 0.22/0.51  # Parsed axioms                        : 10
% 0.22/0.51  # Removed by relevancy pruning/SinE    : 0
% 0.22/0.51  # Initial clauses                      : 10
% 0.22/0.51  # Removed in clause preprocessing      : 0
% 0.22/0.51  # Initial clauses in saturation        : 10
% 0.22/0.51  # Processed clauses                    : 29
% 0.22/0.51  # ...of these trivial                  : 0
% 0.22/0.51  # ...subsumed                          : 0
% 0.22/0.51  # ...remaining for further processing  : 29
% 0.22/0.51  # Other redundant clauses eliminated   : 0
% 0.22/0.51  # Clauses deleted for lack of memory   : 0
% 0.22/0.51  # Backward-subsumed                    : 10
% 0.22/0.51  # Backward-rewritten                   : 5
% 0.22/0.51  # Generated clauses                    : 25
% 0.22/0.51  # ...of the previous two non-redundant : 24
% 0.22/0.51  # ...aggressively subsumed             : 0
% 0.22/0.51  # Contextual simplify-reflections      : 2
% 0.22/0.51  # Paramodulations                      : 25
% 0.22/0.51  # Factorizations                       : 0
% 0.22/0.51  # NegExts                              : 0
% 0.22/0.51  # Equation resolutions                 : 0
% 0.22/0.51  # Total rewrite steps                  : 8
% 0.22/0.51  # Propositional unsat checks           : 0
% 0.22/0.51  #    Propositional check models        : 0
% 0.22/0.51  #    Propositional check unsatisfiable : 0
% 0.22/0.51  #    Propositional clauses             : 0
% 0.22/0.51  #    Propositional clauses after purity: 0
% 0.22/0.51  #    Propositional unsat core size     : 0
% 0.22/0.51  #    Propositional preprocessing time  : 0.000
% 0.22/0.51  #    Propositional encoding time       : 0.000
% 0.22/0.51  #    Propositional solver time         : 0.000
% 0.22/0.51  #    Success case prop preproc time    : 0.000
% 0.22/0.51  #    Success case prop encoding time   : 0.000
% 0.22/0.51  #    Success case prop solver time     : 0.000
% 0.22/0.51  # Current number of processed clauses  : 14
% 0.22/0.51  #    Positive orientable unit clauses  : 3
% 0.22/0.51  #    Positive unorientable unit clauses: 0
% 0.22/0.51  #    Negative unit clauses             : 1
% 0.22/0.51  #    Non-unit-clauses                  : 10
% 0.22/0.51  # Current number of unprocessed clauses: 0
% 0.22/0.51  # ...number of literals in the above   : 0
% 0.22/0.51  # Current number of archived formulas  : 0
% 0.22/0.51  # Current number of archived clauses   : 15
% 0.22/0.51  # Clause-clause subsumption calls (NU) : 282
% 0.22/0.51  # Rec. Clause-clause subsumption calls : 84
% 0.22/0.51  # Non-unit clause-clause subsumptions  : 12
% 0.22/0.51  # Unit Clause-clause subsumption calls : 15
% 0.22/0.51  # Rewrite failures with RHS unbound    : 0
% 0.22/0.51  # BW rewrite match attempts            : 3
% 0.22/0.51  # BW rewrite match successes           : 2
% 0.22/0.51  # Condensation attempts                : 29
% 0.22/0.51  # Condensation successes               : 0
% 0.22/0.51  # Termbank termtop insertions          : 11518
% 0.22/0.51  
% 0.22/0.51  # -------------------------------------------------
% 0.22/0.51  # User time                : 0.005 s
% 0.22/0.51  # System time              : 0.002 s
% 0.22/0.51  # Total time               : 0.007 s
% 0.22/0.51  # Maximum resident set size: 1624 pages
% 0.22/0.51  
% 0.22/0.51  # -------------------------------------------------
% 0.22/0.51  # User time                : 0.027 s
% 0.22/0.51  # System time              : 0.007 s
% 0.22/0.51  # Total time               : 0.034 s
% 0.22/0.51  # Maximum resident set size: 1688 pages
% 0.22/0.51  % E---3.1 exiting
% 0.22/0.51  % E---3.1 exiting
%------------------------------------------------------------------------------