TSTP Solution File: GEO619+1 by SPASS---3.9

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SPASS---3.9
% Problem  : GEO619+1 : TPTP v8.1.0. Released v7.5.0.
% Transfm  : none
% Format   : tptp
% Command  : run_spass %d %s

% Computer : n018.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  : 600s
% DateTime : Sat Jul 16 06:25:33 EDT 2022

% Result   : Theorem 29.14s 29.40s
% Output   : Refutation 29.14s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   18
%            Number of leaves      :   32
% Syntax   : Number of clauses     :   94 (  23 unt;   8 nHn;  94 RR)
%            Number of literals    :  209 (   0 equ; 109 neg)
%            Maximal clause size   :    6 (   2 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of predicates  :    9 (   8 usr;   1 prp; 0-8 aty)
%            Number of functors    :   14 (  14 usr;  13 con; 0-3 aty)
%            Number of variables   :    0 (   0 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(5,axiom,
    midp(skc13,skc17,skc12),
    file('GEO619+1.p',unknown),
    [] ).

cnf(11,axiom,
    ~ cong(skc17,skc15,skc17,skc14),
    file('GEO619+1.p',unknown),
    [] ).

cnf(15,axiom,
    ( ~ midp(u,v,w)
    | midp(u,w,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(17,axiom,
    ( ~ para(u,v,u,w)
    | coll(u,v,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(18,axiom,
    ( ~ midp(u,v,w)
    | cong(u,v,u,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(19,axiom,
    ( ~ para(u,v,w,x)
    | para(u,v,x,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(20,axiom,
    ( ~ para(u,v,w,x)
    | para(w,x,u,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(25,axiom,
    ( ~ cyclic(u,v,w,x)
    | cyclic(v,u,w,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(27,axiom,
    ( ~ cong(u,v,w,x)
    | cong(w,x,u,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(30,axiom,
    ( ~ coll(u,v,w)
    | ~ coll(u,v,x)
    | coll(x,w,u) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(37,axiom,
    ( ~ eqangle(u,v,w,x,y,z,w,x)
    | para(u,v,y,z) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(38,axiom,
    ( ~ para(u,v,w,x)
    | eqangle(u,v,y,z,w,x,y,z) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(39,axiom,
    ( ~ cyclic(u,v,w,x)
    | eqangle(w,u,w,v,x,u,x,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(41,axiom,
    ( ~ cong(u,v,u,w)
    | eqangle(u,v,v,w,v,w,u,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(42,axiom,
    ( ~ midp(u,v,w)
    | ~ midp(u,x,y)
    | para(x,v,y,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(43,axiom,
    ( ~ coll(u,v,w)
    | ~ cong(u,v,u,w)
    | midp(u,v,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(48,axiom,
    ( ~ perp(u,v,w,x)
    | ~ perp(y,z,u,v)
    | para(y,z,w,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(51,axiom,
    ( ~ cyclic(u,v,w,x)
    | ~ cyclic(u,v,w,y)
    | cyclic(v,w,y,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(53,axiom,
    ( ~ cong(u,v,w,v)
    | ~ cong(u,x,w,x)
    | perp(u,w,x,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(58,axiom,
    ( ~ eqangle(u,v,w,x,y,z,x1,x2)
    | eqangle(v,u,w,x,y,z,x1,x2) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(59,axiom,
    ( ~ eqangle(u,v,w,x,y,z,x1,x2)
    | eqangle(w,x,u,v,x1,x2,y,z) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(60,axiom,
    ( ~ eqangle(u,v,w,x,y,z,x1,x2)
    | eqangle(y,z,x1,x2,u,v,w,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(61,axiom,
    ( ~ eqangle(u,v,w,x,y,z,x1,x2)
    | eqangle(u,v,y,z,w,x,x1,x2) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(66,axiom,
    ( ~ eqangle(u,v,u,w,x,v,x,w)
    | coll(u,x,v)
    | cyclic(v,w,u,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(67,axiom,
    ( ~ eqangle(u,v,v,w,v,w,u,w)
    | coll(u,v,w)
    | cong(u,v,u,w) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(73,axiom,
    ( ~ perp(u,v,v,w)
    | ~ cyclic(u,w,v,x)
    | circle(skf35(v,w,u),u,w,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(83,axiom,
    ( ~ coll(u,v,w)
    | ~ eqangle(u,x,u,w,v,x,v,w)
    | cyclic(x,w,u,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(92,axiom,
    ( ~ midp(u,v,w)
    | ~ para(v,x,w,y)
    | ~ para(v,y,w,x)
    | midp(u,y,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(94,axiom,
    ( ~ para(u,v,w,x)
    | ~ cyclic(u,v,w,x)
    | eqangle(u,x,w,x,w,x,w,v) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(96,axiom,
    ( ~ perp(u,v,v,w)
    | ~ circle(u,v,x,y)
    | eqangle(v,w,v,x,y,v,y,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(99,axiom,
    ( ~ cyclic(u,v,w,x)
    | ~ cong(u,x,v,x)
    | ~ cong(u,w,v,w)
    | perp(w,u,u,x) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(125,axiom,
    ( ~ cyclic(u,v,w,x)
    | ~ cyclic(u,v,w,y)
    | ~ cyclic(u,v,w,z)
    | ~ eqangle(w,u,w,v,z,x,z,y)
    | cong(u,v,x,y) ),
    file('GEO619+1.p',unknown),
    [] ).

cnf(139,plain,
    ( ~ midp(skc13,u,v)
    | para(skc17,u,skc12,v) ),
    inference(res,[status(thm),theory(equality)],[5,42]),
    [iquote('0:Res:5.0,42.0')] ).

cnf(141,plain,
    midp(skc13,skc12,skc17),
    inference(res,[status(thm),theory(equality)],[5,15]),
    [iquote('0:Res:5.0,15.0')] ).

cnf(352,plain,
    ( ~ midp(u,v,w)
    | cong(u,w,u,v) ),
    inference(res,[status(thm),theory(equality)],[18,27]),
    [iquote('0:Res:18.1,27.0')] ).

cnf(636,plain,
    ( ~ cong(u,u,u,v)
    | para(u,u,u,v) ),
    inference(res,[status(thm),theory(equality)],[41,37]),
    [iquote('0:Res:41.1,37.0')] ).

cnf(1076,plain,
    ( ~ cyclic(u,u,u,u)
    | coll(u,u,u)
    | cong(u,u,u,u) ),
    inference(res,[status(thm),theory(equality)],[39,67]),
    [iquote('0:Res:39.1,67.0')] ).

cnf(1092,plain,
    ( ~ para(u,v,u,v)
    | coll(u,u,v)
    | cyclic(v,w,u,u) ),
    inference(res,[status(thm),theory(equality)],[38,66]),
    [iquote('0:Res:38.1,66.0')] ).

cnf(1169,plain,
    ( ~ para(u,v,w,x)
    | eqangle(u,v,w,x,y,z,y,z) ),
    inference(res,[status(thm),theory(equality)],[38,61]),
    [iquote('0:Res:38.1,61.0')] ).

cnf(1186,plain,
    ( ~ para(u,v,w,x)
    | eqangle(w,x,y,z,u,v,y,z) ),
    inference(res,[status(thm),theory(equality)],[38,60]),
    [iquote('0:Res:38.1,60.0')] ).

cnf(1203,plain,
    ( ~ para(u,v,w,x)
    | eqangle(y,z,u,v,y,z,w,x) ),
    inference(res,[status(thm),theory(equality)],[38,59]),
    [iquote('0:Res:38.1,59.0')] ).

cnf(1400,plain,
    ( ~ para(u,v,u,v)
    | ~ coll(u,u,w)
    | cyclic(v,w,u,u) ),
    inference(res,[status(thm),theory(equality)],[38,83]),
    [iquote('0:Res:38.1,83.1')] ).

cnf(1708,plain,
    ( ~ para(u,v,w,x)
    | ~ cyclic(u,v,w,x)
    | eqangle(x,u,w,x,w,x,w,v) ),
    inference(res,[status(thm),theory(equality)],[94,58]),
    [iquote('0:Res:94.2,58.0')] ).

cnf(3109,plain,
    ( ~ cyclic(u,v,w,x)
    | ~ cyclic(u,v,w,u)
    | ~ cyclic(u,v,w,v)
    | ~ cyclic(u,v,w,x)
    | cong(u,v,u,v) ),
    inference(res,[status(thm),theory(equality)],[39,125]),
    [iquote('0:Res:39.1,125.3')] ).

cnf(3115,plain,
    ( ~ cyclic(u,v,w,u)
    | ~ cyclic(u,v,w,v)
    | ~ cyclic(u,v,w,x)
    | cong(u,v,u,v) ),
    inference(obv,[status(thm),theory(equality)],[3109]),
    [iquote('0:Obv:3109.0')] ).

cnf(3116,plain,
    ( ~ cyclic(u,v,w,u)
    | ~ cyclic(u,v,w,v)
    | cong(u,v,u,v) ),
    inference(con,[status(thm)],[3115]),
    [iquote('0:Con:3115.2')] ).

cnf(3306,plain,
    ( ~ midp(skc13,u,v)
    | para(skc17,u,v,skc12) ),
    inference(res,[status(thm),theory(equality)],[139,19]),
    [iquote('0:Res:139.1,19.0')] ).

cnf(3424,plain,
    ~ midp(skc17,skc14,skc15),
    inference(res,[status(thm),theory(equality)],[352,11]),
    [iquote('0:Res:352.1,11.0')] ).

cnf(3651,plain,
    ( ~ cong(u,u,u,v)
    | coll(u,u,v) ),
    inference(res,[status(thm),theory(equality)],[636,17]),
    [iquote('0:Res:636.1,17.0')] ).

cnf(3654,plain,
    ( ~ cong(u,u,u,v)
    | para(u,v,u,u) ),
    inference(res,[status(thm),theory(equality)],[636,20]),
    [iquote('0:Res:636.1,20.0')] ).

cnf(3661,plain,
    ( ~ cong(u,u,u,v)
    | ~ midp(w,u,u)
    | ~ para(u,v,u,u)
    | midp(w,v,u) ),
    inference(res,[status(thm),theory(equality)],[636,92]),
    [iquote('0:Res:636.1,92.1')] ).

cnf(3663,plain,
    ( ~ cyclic(u,u,u,u)
    | coll(u,u,u) ),
    inference(mrr,[status(thm)],[1076,3651]),
    [iquote('0:MRR:1076.2,3651.0')] ).

cnf(3664,plain,
    ( ~ cong(u,u,u,v)
    | ~ midp(w,u,u)
    | midp(w,v,u) ),
    inference(mrr,[status(thm)],[3661,3654]),
    [iquote('0:MRR:3661.2,3654.1')] ).

cnf(4294,plain,
    ( ~ para(u,v,u,v)
    | coll(u,w,v)
    | cyclic(v,v,u,w) ),
    inference(res,[status(thm),theory(equality)],[1169,66]),
    [iquote('0:Res:1169.1,66.0')] ).

cnf(4305,plain,
    ( ~ para(u,v,u,v)
    | ~ coll(u,w,v)
    | cyclic(v,v,u,w) ),
    inference(res,[status(thm),theory(equality)],[1169,83]),
    [iquote('0:Res:1169.1,83.1')] ).

cnf(4321,plain,
    ( ~ para(u,v,u,v)
    | cyclic(v,v,u,w) ),
    inference(mrr,[status(thm)],[4305,4294]),
    [iquote('0:MRR:4305.1,4294.1')] ).

cnf(4422,plain,
    ( ~ para(u,v,u,u)
    | coll(u,u,v)
    | cong(u,u,u,v) ),
    inference(res,[status(thm),theory(equality)],[1186,67]),
    [iquote('0:Res:1186.1,67.0')] ).

cnf(4446,plain,
    ( ~ para(u,v,u,u)
    | coll(u,u,v) ),
    inference(mrr,[status(thm)],[4422,3651]),
    [iquote('0:MRR:4422.2,3651.0')] ).

cnf(4566,plain,
    ( ~ para(u,v,u,v)
    | para(w,x,w,x) ),
    inference(res,[status(thm),theory(equality)],[1203,37]),
    [iquote('0:Res:1203.1,37.0')] ).

cnf(9834,plain,
    ( ~ para(u,v,w,w)
    | ~ cyclic(u,v,w,w)
    | ~ cyclic(u,w,w,w)
    | ~ cyclic(u,w,w,v)
    | ~ cyclic(u,w,w,w)
    | cong(u,w,w,v) ),
    inference(res,[status(thm),theory(equality)],[1708,125]),
    [iquote('0:Res:1708.2,125.3')] ).

cnf(9840,plain,
    ( ~ para(u,v,w,w)
    | ~ cyclic(u,v,w,w)
    | ~ cyclic(u,w,w,v)
    | ~ cyclic(u,w,w,w)
    | cong(u,w,w,v) ),
    inference(obv,[status(thm),theory(equality)],[9834]),
    [iquote('0:Obv:9834.2')] ).

cnf(25432,plain,
    ( ~ midp(skc13,skc12,skc17)
    | para(u,v,u,v) ),
    inference(res,[status(thm),theory(equality)],[3306,4566]),
    [iquote('0:Res:3306.1,4566.0')] ).

cnf(25437,plain,
    para(u,v,u,v),
    inference(mrr,[status(thm)],[25432,141]),
    [iquote('0:MRR:25432.0,141.0')] ).

cnf(25438,plain,
    ( coll(u,u,v)
    | cyclic(v,w,u,u) ),
    inference(mrr,[status(thm)],[1092,25437]),
    [iquote('0:MRR:1092.0,25437.0')] ).

cnf(25439,plain,
    ( ~ coll(u,u,v)
    | cyclic(w,v,u,u) ),
    inference(mrr,[status(thm)],[1400,25437]),
    [iquote('0:MRR:1400.0,25437.0')] ).

cnf(25442,plain,
    cyclic(u,u,v,w),
    inference(mrr,[status(thm)],[4321,25437]),
    [iquote('0:MRR:4321.0,25437.0')] ).

cnf(25450,plain,
    coll(u,u,u),
    inference(mrr,[status(thm)],[3663,25442]),
    [iquote('0:MRR:3663.0,25442.0')] ).

cnf(25524,plain,
    ( ~ coll(u,u,v)
    | coll(v,u,u) ),
    inference(res,[status(thm),theory(equality)],[25450,30]),
    [iquote('0:Res:25450.0,30.0')] ).

cnf(25586,plain,
    ( coll(u,u,v)
    | cyclic(w,v,u,u) ),
    inference(res,[status(thm),theory(equality)],[25438,25]),
    [iquote('0:Res:25438.1,25.0')] ).

cnf(25591,plain,
    cyclic(u,v,w,w),
    inference(mrr,[status(thm)],[25586,25439]),
    [iquote('0:MRR:25586.0,25439.0')] ).

cnf(25606,plain,
    ( ~ para(u,v,w,w)
    | ~ cyclic(u,w,w,v)
    | cong(u,w,w,v) ),
    inference(mrr,[status(thm)],[9840,25591]),
    [iquote('0:MRR:9840.3,9840.1,25591.0')] ).

cnf(26751,plain,
    ( ~ cong(u,v,u,v)
    | ~ cong(u,w,u,w)
    | perp(w,u,u,v) ),
    inference(res,[status(thm),theory(equality)],[25442,99]),
    [iquote('0:Res:25442.0,99.0')] ).

cnf(26752,plain,
    ( ~ cyclic(u,u,v,w)
    | cyclic(u,v,w,x) ),
    inference(res,[status(thm),theory(equality)],[25442,51]),
    [iquote('0:Res:25442.0,51.0')] ).

cnf(26832,plain,
    cyclic(u,v,w,x),
    inference(mrr,[status(thm)],[26752,25442]),
    [iquote('0:MRR:26752.0,25442.0')] ).

cnf(26836,plain,
    ( ~ eqangle(u,v,u,w,x,y,x,z)
    | cong(v,w,y,z) ),
    inference(mrr,[status(thm)],[125,26832]),
    [iquote('0:MRR:125.2,125.1,125.0,26832.0')] ).

cnf(26851,plain,
    ( ~ perp(u,v,v,w)
    | circle(skf35(v,w,u),u,w,v) ),
    inference(mrr,[status(thm)],[73,26832]),
    [iquote('0:MRR:73.1,26832.0')] ).

cnf(26853,plain,
    cong(u,v,u,v),
    inference(mrr,[status(thm)],[3116,26832]),
    [iquote('0:MRR:3116.1,3116.0,26832.0')] ).

cnf(26962,plain,
    ( ~ para(u,v,w,w)
    | cong(u,w,w,v) ),
    inference(mrr,[status(thm)],[25606,26832]),
    [iquote('0:MRR:25606.1,26832.0')] ).

cnf(27224,plain,
    perp(u,v,v,w),
    inference(mrr,[status(thm)],[26751,26853]),
    [iquote('0:MRR:26751.0,26751.1,26853.0,26853.0')] ).

cnf(27230,plain,
    ( ~ circle(u,v,w,x)
    | eqangle(v,y,v,w,x,v,x,w) ),
    inference(mrr,[status(thm)],[96,27224]),
    [iquote('0:MRR:96.0,27224.0')] ).

cnf(27330,plain,
    circle(skf35(u,v,w),w,v,u),
    inference(mrr,[status(thm)],[26851,27224]),
    [iquote('0:MRR:26851.0,27224.0')] ).

cnf(30751,plain,
    eqangle(u,v,u,w,x,u,x,w),
    inference(res,[status(thm),theory(equality)],[27330,27230]),
    [iquote('0:Res:27330.0,27230.0')] ).

cnf(31034,plain,
    ( ~ coll(u,v,v)
    | midp(u,v,v) ),
    inference(res,[status(thm),theory(equality)],[26853,43]),
    [iquote('0:Res:26853.0,43.1')] ).

cnf(31398,plain,
    para(u,v,u,u),
    inference(res,[status(thm),theory(equality)],[30751,37]),
    [iquote('0:Res:30751.0,37.0')] ).

cnf(31407,plain,
    cong(u,v,w,v),
    inference(res,[status(thm),theory(equality)],[30751,26836]),
    [iquote('0:Res:30751.0,26836.0')] ).

cnf(31419,plain,
    coll(u,u,v),
    inference(mrr,[status(thm)],[4446,31398]),
    [iquote('0:MRR:4446.0,31398.0')] ).

cnf(31548,plain,
    coll(u,v,v),
    inference(mrr,[status(thm)],[25524,31419]),
    [iquote('0:MRR:25524.0,31419.0')] ).

cnf(31739,plain,
    midp(u,v,v),
    inference(mrr,[status(thm)],[31034,31548]),
    [iquote('0:MRR:31034.0,31548.0')] ).

cnf(31750,plain,
    ( ~ cong(u,u,u,v)
    | midp(w,v,u) ),
    inference(mrr,[status(thm)],[3664,31739]),
    [iquote('0:MRR:3664.1,31739.0')] ).

cnf(31870,plain,
    perp(u,v,w,x),
    inference(mrr,[status(thm)],[53,31407]),
    [iquote('0:MRR:53.1,53.0,31407.0')] ).

cnf(31893,plain,
    para(u,v,w,x),
    inference(mrr,[status(thm)],[48,31870]),
    [iquote('0:MRR:48.1,48.0,31870.0')] ).

cnf(33011,plain,
    cong(u,v,v,w),
    inference(mrr,[status(thm)],[26962,31893]),
    [iquote('0:MRR:26962.0,31893.0')] ).

cnf(33306,plain,
    midp(u,v,w),
    inference(mrr,[status(thm)],[31750,33011]),
    [iquote('0:MRR:31750.0,33011.0')] ).

cnf(33307,plain,
    $false,
    inference(unc,[status(thm)],[33306,3424]),
    [iquote('0:UnC:33306.0,3424.0')] ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.12  % Problem  : GEO619+1 : TPTP v8.1.0. Released v7.5.0.
% 0.12/0.13  % Command  : run_spass %d %s
% 0.12/0.34  % Computer : n018.cluster.edu
% 0.12/0.34  % Model    : x86_64 x86_64
% 0.12/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.34  % Memory   : 8042.1875MB
% 0.12/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.34  % CPULimit : 300
% 0.12/0.34  % WCLimit  : 600
% 0.12/0.34  % DateTime : Sat Jun 18 18:26:48 EDT 2022
% 0.12/0.35  % CPUTime  : 
% 29.14/29.40  
% 29.14/29.40  SPASS V 3.9 
% 29.14/29.40  SPASS beiseite: Proof found.
% 29.14/29.40  % SZS status Theorem
% 29.14/29.40  Problem: /export/starexec/sandbox/benchmark/theBenchmark.p 
% 29.14/29.40  SPASS derived 32585 clauses, backtracked 4701 clauses, performed 3 splits and kept 18935 clauses.
% 29.14/29.40  SPASS allocated 107769 KBytes.
% 29.14/29.40  SPASS spent	0:0:28.89 on the problem.
% 29.14/29.40  		0:00:00.04 for the input.
% 29.14/29.40  		0:00:00.23 for the FLOTTER CNF translation.
% 29.14/29.40  		0:00:00.85 for inferences.
% 29.14/29.40  		0:00:00.43 for the backtracking.
% 29.14/29.40  		0:0:26.33 for the reduction.
% 29.14/29.40  
% 29.14/29.40  
% 29.14/29.40  Here is a proof with depth 3, length 94 :
% 29.14/29.40  % SZS output start Refutation
% See solution above
% 29.14/29.41  Formulae used in the proof : exemplo6GDDFULL8110981 ruleD11 ruleD66 ruleD68 ruleD4 ruleD5 ruleD16 ruleD24 ruleD3 ruleD39 ruleD40 ruleD41 ruleD46 ruleD63 ruleD67 ruleD9 ruleD17 ruleD56 ruleD18 ruleD19 ruleD20 ruleD21 ruleD42a ruleD47 ruleX14 ruleD42b ruleD64 ruleD54 ruleD48 ruleD57 ruleD43
% 29.14/29.41  
%------------------------------------------------------------------------------