↑ Up

CSE_E---1.7.UNS-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : CSE_E---1.7
% Problem  : SYN128-1 : TPTP v9.2.1. Released v1.1.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : /export/starexec/sandbox/solver/bin/lemma_parallel_prover %s --lemma-prover /export/starexec/sandbox/solver/bin/cse --final-prover /export/starexec/sandbox/solver/bin/eprover --proof-time %d --global-time-limit %d

% Computer : n020.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 : 300s
% WCLimit  : 300s
% DateTime : Tue May  5 05:36:13 PM UTC 2026

% Result   : Unsatisfiable 1.45s 1.76s
% Output   : CNFRefutation 1.45s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   14
%            Number of leaves      :   38
% Syntax   : Number of clauses     :  119 (  53 unt;   0 nHn;  96 RR)
%            Number of literals    :  238 (   0 equ; 121 neg)
%            Maximal clause size   :    4 (   2 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of predicates  :   26 (  25 usr;   1 prp; 0-3 aty)
%            Number of functors    :    4 (   4 usr;   4 con; 0-0 aty)
%            Number of variables   :  164 (  52 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(rule_126,axiom,
    ( s1(X1)
    | ~ q0(X1,X2)
    | ~ s1(X3) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_126) ).

cnf(axiom_17,axiom,
    q0(X1,d),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_17) ).

cnf(rule_125,axiom,
    ( s1(X1)
    | ~ p0(X1,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_125) ).

cnf(axiom_14,axiom,
    p0(b,X1),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_14) ).

cnf(rule_001,axiom,
    ( k1(X1)
    | ~ n0(X2,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_001) ).

cnf(axiom_26,axiom,
    n0(d,c),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_26) ).

cnf(rule_192,axiom,
    ( k3(X1,X2,X1)
    | ~ s1(X2)
    | ~ p2(X3,X2,X4)
    | ~ n0(X1,X4) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_192) ).

cnf(rule_159,axiom,
    ( p2(X1,X1,X1)
    | ~ k1(X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_159) ).

cnf(rule_029,axiom,
    ( m1(X1,X2,X1)
    | ~ p0(X1,X2)
    | ~ s0(X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_029) ).

cnf(axiom_5,axiom,
    s0(b),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_5) ).

cnf(rule_107,axiom,
    ( q1(e,X1,X1)
    | ~ m0(X1,d,X1)
    | ~ m0(e,d,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_107) ).

cnf(axiom_19,axiom,
    m0(X1,d,X2),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_19) ).

cnf(rule_005,axiom,
    ( m1(X1,X2,X1)
    | ~ m0(X2,X2,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_005) ).

cnf(rule_127,axiom,
    ( k2(X1,X2)
    | ~ m1(X3,X2,X1)
    | ~ k1(X4)
    | ~ k2(X4,X2) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_127) ).

cnf(rule_129,axiom,
    ( k2(X1,X1)
    | ~ q1(X2,X1,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_129) ).

cnf(axiom_7,axiom,
    n0(d,b),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_7) ).

cnf(axiom_34,axiom,
    n0(c,d),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_34) ).

cnf(rule_133,axiom,
    ( l2(X1,X1)
    | ~ p0(X2,X2)
    | ~ s1(X3)
    | ~ m0(X4,X3,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_133) ).

cnf(rule_090,axiom,
    ( p1(e,e,e)
    | ~ r0(e)
    | ~ k0(e) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_090) ).

cnf(axiom_13,axiom,
    r0(e),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_13) ).

cnf(axiom_28,axiom,
    k0(e),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_28) ).

cnf(rule_202,axiom,
    ( k3(X1,X1,X2)
    | ~ q0(X3,X2)
    | ~ k2(X1,X4)
    | ~ k3(X2,X5,X4) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_202) ).

cnf(rule_137,axiom,
    ( n2(X1)
    | ~ p1(X2,X3,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_137) ).

cnf(rule_124,axiom,
    ( r1(X1)
    | ~ q0(X1,X2)
    | ~ s0(d)
    | ~ q1(d,X2,d) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_124) ).

cnf(axiom_1,axiom,
    s0(d),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_1) ).

cnf(rule_117,axiom,
    ( q1(d,d,d)
    | ~ k0(e)
    | ~ s0(d) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_117) ).

cnf(rule_277,axiom,
    ( l4(X1)
    | ~ p3(X2,X3,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_277) ).

cnf(rule_246,axiom,
    ( p3(X1,X1,X1)
    | ~ l2(X1,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_246) ).

cnf(rule_234,axiom,
    ( m3(X1,e,e)
    | ~ n2(e)
    | ~ p2(X1,e,e) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_234) ).

cnf(rule_154,axiom,
    ( p2(X1,X1,X1)
    | ~ q1(X1,X1,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_154) ).

cnf(rule_183,axiom,
    ( q2(X1,c,X2)
    | ~ k1(X2)
    | ~ l0(c)
    | ~ l2(X2,X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_183) ).

cnf(axiom_24,axiom,
    l0(c),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_24) ).

cnf(rule_295,axiom,
    ( q4(X1,X2)
    | ~ k3(X3,X3,X1)
    | ~ q2(X4,X2,X1)
    | ~ m3(X4,X5,X4) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_295) ).

cnf(axiom_21,axiom,
    q0(b,e),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_21) ).

cnf(axiom_3,axiom,
    n0(d,e),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',axiom_3) ).

cnf(rule_296,axiom,
    ( q4(X1,X1)
    | ~ r1(X1)
    | ~ l4(X2)
    | ~ q4(X2,X3) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_296) ).

cnf(rule_302,axiom,
    ( l5(X1)
    | ~ q4(X2,X2)
    | ~ k1(X1) ),
    file('/export/starexec/sandbox/benchmark/Axioms/SYN001-0.ax',rule_302) ).

cnf(prove_this,negated_conjecture,
    ~ l5(c),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',prove_this) ).

cnf(c_0_38,axiom,
    ( s1(X1)
    | ~ q0(X1,X2)
    | ~ s1(X3) ),
    rule_126 ).

cnf(c_0_39,axiom,
    q0(X1,d),
    axiom_17 ).

cnf(c_0_40,axiom,
    ( s1(X1)
    | ~ p0(X1,X1) ),
    rule_125 ).

cnf(c_0_41,axiom,
    p0(b,X1),
    axiom_14 ).

cnf(c_0_42,plain,
    ( s1(X1)
    | ~ s1(X2) ),
    inference(spm,[status(thm)],[c_0_38,c_0_39]) ).

cnf(c_0_43,plain,
    s1(b),
    inference(spm,[status(thm)],[c_0_40,c_0_41]) ).

cnf(c_0_44,axiom,
    ( k1(X1)
    | ~ n0(X2,X1) ),
    rule_001 ).

cnf(c_0_45,axiom,
    n0(d,c),
    axiom_26 ).

cnf(c_0_46,axiom,
    ( k3(X1,X2,X1)
    | ~ s1(X2)
    | ~ p2(X3,X2,X4)
    | ~ n0(X1,X4) ),
    rule_192 ).

cnf(c_0_47,plain,
    s1(X1),
    inference(spm,[status(thm)],[c_0_42,c_0_43]) ).

cnf(c_0_48,axiom,
    ( p2(X1,X1,X1)
    | ~ k1(X1) ),
    rule_159 ).

cnf(c_0_49,plain,
    k1(c),
    inference(spm,[status(thm)],[c_0_44,c_0_45]) ).

cnf(c_0_50,axiom,
    ( m1(X1,X2,X1)
    | ~ p0(X1,X2)
    | ~ s0(X1) ),
    rule_029 ).

cnf(c_0_51,axiom,
    s0(b),
    axiom_5 ).

cnf(c_0_52,axiom,
    ( q1(e,X1,X1)
    | ~ m0(X1,d,X1)
    | ~ m0(e,d,X1) ),
    rule_107 ).

cnf(c_0_53,axiom,
    m0(X1,d,X2),
    axiom_19 ).

cnf(c_0_54,plain,
    ( k3(X1,X2,X1)
    | ~ p2(X3,X2,X4)
    | ~ n0(X1,X4) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_46,c_0_47])]) ).

cnf(c_0_55,plain,
    p2(c,c,c),
    inference(spm,[status(thm)],[c_0_48,c_0_49]) ).

cnf(c_0_56,axiom,
    ( m1(X1,X2,X1)
    | ~ m0(X2,X2,X1) ),
    rule_005 ).

cnf(c_0_57,axiom,
    ( k2(X1,X2)
    | ~ m1(X3,X2,X1)
    | ~ k1(X4)
    | ~ k2(X4,X2) ),
    rule_127 ).

cnf(c_0_58,plain,
    m1(b,X1,b),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_50,c_0_41]),c_0_51])]) ).

cnf(c_0_59,axiom,
    ( k2(X1,X1)
    | ~ q1(X2,X1,X1) ),
    rule_129 ).

cnf(c_0_60,plain,
    q1(e,X1,X1),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_52,c_0_53]),c_0_53])]) ).

cnf(c_0_61,plain,
    ( k3(X1,c,X1)
    | ~ n0(X1,c) ),
    inference(spm,[status(thm)],[c_0_54,c_0_55]) ).

cnf(c_0_62,plain,
    m1(X1,d,X1),
    inference(spm,[status(thm)],[c_0_56,c_0_53]) ).

cnf(c_0_63,plain,
    ( k2(b,X1)
    | ~ k2(X2,X1)
    | ~ k1(X2) ),
    inference(spm,[status(thm)],[c_0_57,c_0_58]) ).

cnf(c_0_64,plain,
    k2(X1,X1),
    inference(spm,[status(thm)],[c_0_59,c_0_60]) ).

cnf(c_0_65,axiom,
    n0(d,b),
    axiom_7 ).

cnf(c_0_66,axiom,
    n0(c,d),
    axiom_34 ).

cnf(c_0_67,axiom,
    ( l2(X1,X1)
    | ~ p0(X2,X2)
    | ~ s1(X3)
    | ~ m0(X4,X3,X1) ),
    rule_133 ).

cnf(c_0_68,axiom,
    ( p1(e,e,e)
    | ~ r0(e)
    | ~ k0(e) ),
    rule_090 ).

cnf(c_0_69,axiom,
    r0(e),
    axiom_13 ).

cnf(c_0_70,axiom,
    k0(e),
    axiom_28 ).

cnf(c_0_71,axiom,
    ( k3(X1,X1,X2)
    | ~ q0(X3,X2)
    | ~ k2(X1,X4)
    | ~ k3(X2,X5,X4) ),
    rule_202 ).

cnf(c_0_72,plain,
    k3(d,c,d),
    inference(spm,[status(thm)],[c_0_61,c_0_45]) ).

cnf(c_0_73,plain,
    ( k2(X1,d)
    | ~ k2(X2,d)
    | ~ k1(X2) ),
    inference(spm,[status(thm)],[c_0_57,c_0_62]) ).

cnf(c_0_74,plain,
    ( k2(b,X1)
    | ~ k1(X1) ),
    inference(spm,[status(thm)],[c_0_63,c_0_64]) ).

cnf(c_0_75,plain,
    k1(b),
    inference(spm,[status(thm)],[c_0_44,c_0_65]) ).

cnf(c_0_76,plain,
    k1(d),
    inference(spm,[status(thm)],[c_0_44,c_0_66]) ).

cnf(c_0_77,plain,
    ( l2(X1,X1)
    | ~ p0(X2,X2)
    | ~ m0(X3,X4,X1) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_67,c_0_47])]) ).

cnf(c_0_78,axiom,
    ( n2(X1)
    | ~ p1(X2,X3,X1) ),
    rule_137 ).

cnf(c_0_79,plain,
    p1(e,e,e),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_68,c_0_69]),c_0_70])]) ).

cnf(c_0_80,plain,
    ( k3(X1,X1,d)
    | ~ k2(X1,d) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_71,c_0_72]),c_0_39])]) ).

cnf(c_0_81,plain,
    k2(X1,d),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_73,c_0_74]),c_0_75]),c_0_76])]) ).

cnf(c_0_82,axiom,
    ( r1(X1)
    | ~ q0(X1,X2)
    | ~ s0(d)
    | ~ q1(d,X2,d) ),
    rule_124 ).

cnf(c_0_83,axiom,
    s0(d),
    axiom_1 ).

cnf(c_0_84,axiom,
    ( q1(d,d,d)
    | ~ k0(e)
    | ~ s0(d) ),
    rule_117 ).

cnf(c_0_85,axiom,
    ( l4(X1)
    | ~ p3(X2,X3,X1) ),
    rule_277 ).

cnf(c_0_86,axiom,
    ( p3(X1,X1,X1)
    | ~ l2(X1,X1) ),
    rule_246 ).

cnf(c_0_87,plain,
    ( l2(X1,X1)
    | ~ p0(X2,X2) ),
    inference(spm,[status(thm)],[c_0_77,c_0_53]) ).

cnf(c_0_88,axiom,
    ( m3(X1,e,e)
    | ~ n2(e)
    | ~ p2(X1,e,e) ),
    rule_234 ).

cnf(c_0_89,plain,
    n2(e),
    inference(spm,[status(thm)],[c_0_78,c_0_79]) ).

cnf(c_0_90,axiom,
    ( p2(X1,X1,X1)
    | ~ q1(X1,X1,X1) ),
    rule_154 ).

cnf(c_0_91,axiom,
    ( q2(X1,c,X2)
    | ~ k1(X2)
    | ~ l0(c)
    | ~ l2(X2,X1) ),
    rule_183 ).

cnf(c_0_92,axiom,
    l0(c),
    axiom_24 ).

cnf(c_0_93,plain,
    k3(X1,X1,d),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_80,c_0_81])]) ).

cnf(c_0_94,plain,
    ( r1(X1)
    | ~ q1(d,X2,d)
    | ~ q0(X1,X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_82,c_0_83])]) ).

cnf(c_0_95,plain,
    q1(d,d,d),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[c_0_84,c_0_83]),c_0_70])]) ).

cnf(c_0_96,plain,
    ( l4(X1)
    | ~ l2(X1,X1) ),
    inference(spm,[status(thm)],[c_0_85,c_0_86]) ).

cnf(c_0_97,plain,
    l2(X1,X1),
    inference(spm,[status(thm)],[c_0_87,c_0_41]) ).

cnf(c_0_98,axiom,
    ( q4(X1,X2)
    | ~ k3(X3,X3,X1)
    | ~ q2(X4,X2,X1)
    | ~ m3(X4,X5,X4) ),
    rule_295 ).

cnf(c_0_99,plain,
    ( m3(X1,e,e)
    | ~ p2(X1,e,e) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_88,c_0_89])]) ).

cnf(c_0_100,plain,
    p2(e,e,e),
    inference(spm,[status(thm)],[c_0_90,c_0_60]) ).

cnf(c_0_101,plain,
    ( q2(X1,c,X2)
    | ~ l2(X2,X1)
    | ~ k1(X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_91,c_0_92])]) ).

cnf(c_0_102,plain,
    ( k3(X1,X1,X2)
    | ~ q0(X3,X2) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_71,c_0_93]),c_0_81])]) ).

cnf(c_0_103,axiom,
    q0(b,e),
    axiom_21 ).

cnf(c_0_104,axiom,
    n0(d,e),
    axiom_3 ).

cnf(c_0_105,axiom,
    ( q4(X1,X1)
    | ~ r1(X1)
    | ~ l4(X2)
    | ~ q4(X2,X3) ),
    rule_296 ).

cnf(c_0_106,plain,
    r1(X1),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_94,c_0_95]),c_0_39])]) ).

cnf(c_0_107,plain,
    l4(X1),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_96,c_0_97])]) ).

cnf(c_0_108,plain,
    ( q4(X1,X2)
    | ~ k3(X3,X3,X1)
    | ~ q2(e,X2,X1) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_98,c_0_99]),c_0_100])]) ).

cnf(c_0_109,plain,
    ( q2(X1,c,X1)
    | ~ k1(X1) ),
    inference(spm,[status(thm)],[c_0_101,c_0_97]) ).

cnf(c_0_110,plain,
    k3(X1,X1,e),
    inference(spm,[status(thm)],[c_0_102,c_0_103]) ).

cnf(c_0_111,plain,
    k1(e),
    inference(spm,[status(thm)],[c_0_44,c_0_104]) ).

cnf(c_0_112,plain,
    ( q4(X1,X1)
    | ~ q4(X2,X3) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_105,c_0_106])]),c_0_107])]) ).

cnf(c_0_113,plain,
    q4(e,c),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_108,c_0_109]),c_0_110]),c_0_111])]) ).

cnf(c_0_114,axiom,
    ( l5(X1)
    | ~ q4(X2,X2)
    | ~ k1(X1) ),
    rule_302 ).

cnf(c_0_115,plain,
    q4(X1,X1),
    inference(spm,[status(thm)],[c_0_112,c_0_113]) ).

cnf(c_0_116,negated_conjecture,
    ~ l5(c),
    prove_this ).

cnf(c_0_117,plain,
    ( l5(X1)
    | ~ k1(X1) ),
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[c_0_114,c_0_115])]) ).

cnf(c_0_118,negated_conjecture,
    $false,
    inference(cn,[status(thm)],[inference(rw,[status(thm)],[inference(spm,[status(thm)],[c_0_116,c_0_117]),c_0_49])]),
    [proof] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem    : SYN128-1 : TPTP v9.2.1. Released v1.1.0.
% 0.00/0.12  % Command    : /export/starexec/sandbox/solver/bin/lemma_parallel_prover %s --lemma-prover /export/starexec/sandbox/solver/bin/cse --final-prover /export/starexec/sandbox/solver/bin/eprover --proof-time %d --global-time-limit %d
% 0.16/0.33  % Computer : n020.cluster.edu
% 0.16/0.33  % Model    : x86_64 x86_64
% 0.16/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.33  % Memory   : 8042.1875MB
% 0.16/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.16/0.33  % CPULimit   : 300
% 0.16/0.33  % WCLimit    : 300
% 0.16/0.33  % DateTime   : Tue May  5 08:15:04 EDT 2026
% 0.16/0.33  % CPUTime    : 
% 0.16/0.34  % start to proof: theBenchmark
% 1.45/1.76  % Version  : CSE_E---1.7
% 1.45/1.76  % Problem  : theBenchmark.p
% 1.45/1.76  % SZS status Unsatisfiable for theBenchmark.p
% 1.45/1.76  % SZS output start CNFRefutation
% See solution above
% 1.45/1.76  % Total time : 1.373s
%------------------------------------------------------------------------------