TSTP Solution File: GEO058-2 by CSE---1.6

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : CSE---1.6
% Problem  : GEO058-2 : TPTP v8.1.2. Released v1.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : java -jar /export/starexec/sandbox/solver/bin/mcs_scs.jar %s %d

% Computer : n032.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 : Wed Aug 30 22:42:42 EDT 2023

% Result   : Unsatisfiable 0.52s 0.62s
% Output   : CNFRefutation 0.52s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.10  % Problem    : GEO058-2 : TPTP v8.1.2. Released v1.0.0.
% 0.03/0.11  % Command    : java -jar /export/starexec/sandbox/solver/bin/mcs_scs.jar %s %d
% 0.11/0.30  % Computer : n032.cluster.edu
% 0.11/0.30  % Model    : x86_64 x86_64
% 0.11/0.30  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.30  % Memory   : 8042.1875MB
% 0.11/0.30  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.11/0.30  % CPULimit   : 300
% 0.11/0.30  % WCLimit    : 300
% 0.11/0.30  % DateTime   : Tue Aug 29 23:27:47 EDT 2023
% 0.11/0.30  % CPUTime    : 
% 0.15/0.48  start to proof:theBenchmark
% 0.15/0.62  %-------------------------------------------
% 0.15/0.62  % File        :CSE---1.6
% 0.15/0.62  % Problem     :theBenchmark
% 0.15/0.62  % Transform   :cnf
% 0.15/0.62  % Format      :tptp:raw
% 0.15/0.62  % Command     :java -jar mcs_scs.jar %d %s
% 0.15/0.62  
% 0.15/0.62  % Result      :Theorem 0.090000s
% 0.15/0.62  % Output      :CNFRefutation 0.090000s
% 0.15/0.62  %-------------------------------------------
% 0.52/0.62  %--------------------------------------------------------------------------
% 0.52/0.62  % File     : GEO058-2 : TPTP v8.1.2. Released v1.0.0.
% 0.52/0.62  % Domain   : Geometry
% 0.52/0.62  % Problem  : U is the only fixed point of reflection(U,V)
% 0.52/0.62  % Version  : [Qua89] axioms.
% 0.52/0.62  % English  :
% 0.52/0.62  
% 0.52/0.62  % Refs     : [SST83] Schwabbauser et al. (1983), Metamathematische Methoden
% 0.52/0.62  %          : [Qua89] Quaife (1989), Automated Development of Tarski's Geome
% 0.52/0.62  % Source   : [TPTP]
% 0.52/0.62  % Names    :
% 0.52/0.62  
% 0.52/0.62  % Status   : Unsatisfiable
% 0.52/0.62  % Rating   : 0.19 v8.1.0, 0.16 v7.5.0, 0.21 v7.4.0, 0.18 v7.3.0, 0.08 v7.1.0, 0.00 v7.0.0, 0.13 v6.4.0, 0.20 v6.3.0, 0.09 v6.2.0, 0.10 v6.1.0, 0.21 v6.0.0, 0.10 v5.5.0, 0.20 v5.4.0, 0.15 v5.3.0, 0.17 v5.2.0, 0.12 v5.0.0, 0.07 v4.1.0, 0.08 v4.0.1, 0.18 v4.0.0, 0.09 v3.7.0, 0.10 v3.5.0, 0.09 v3.4.0, 0.08 v3.3.0, 0.14 v3.2.0, 0.08 v3.1.0, 0.09 v2.7.0, 0.17 v2.6.0, 0.10 v2.5.0, 0.08 v2.4.0, 0.11 v2.2.1, 0.00 v2.1.0, 0.00 v2.0.0
% 0.52/0.62  % Syntax   : Number of clauses     :   21 (   9 unt;   5 nHn;  17 RR)
% 0.52/0.62  %            Number of literals    :   59 (  10 equ;  35 neg)
% 0.52/0.62  %            Maximal clause size   :    8 (   2 avg)
% 0.52/0.62  %            Maximal term depth    :    2 (   1 avg)
% 0.52/0.62  %            Number of predicates  :    3 (   2 usr;   0 prp; 2-4 aty)
% 0.52/0.62  %            Number of functors    :   11 (  11 usr;   5 con; 0-6 aty)
% 0.52/0.62  %            Number of variables   :   73 (   3 sgn)
% 0.52/0.62  % SPC      : CNF_UNS_RFO_SEQ_NHN
% 0.52/0.62  
% 0.52/0.62  % Comments :
% 0.52/0.62  %--------------------------------------------------------------------------
% 0.52/0.62  %----Include Tarski geometry axioms
% 0.52/0.62  include('Axioms/GEO002-0.ax').
% 0.52/0.62  %----Include definition of reflection
% 0.52/0.62  include('Axioms/GEO002-2.ax').
% 0.52/0.62  %--------------------------------------------------------------------------
% 0.52/0.62  cnf(v_equals_reflection,hypothesis,
% 0.52/0.62      v = reflection(u,v) ).
% 0.52/0.62  
% 0.52/0.62  cnf(prove_u_equals_v,negated_conjecture,
% 0.52/0.62      u != v ).
% 0.52/0.62  
% 0.52/0.62  %--------------------------------------------------------------------------
% 0.52/0.62  %-------------------------------------------
% 0.52/0.62  % Proof found
% 0.52/0.62  % SZS status Theorem for theBenchmark
% 0.52/0.62  % SZS output start Proof
% 0.52/0.62  %ClaNum:55(EqnAxiom:35)
% 0.52/0.62  %VarNum:211(SingletonVarNum:71)
% 0.52/0.62  %MaxLitNum:8
% 0.52/0.62  %MaxfuncDepth:1
% 0.52/0.62  %SharedTerms:11
% 0.52/0.62  %goalClause: 40
% 0.52/0.62  %singleGoalClaCount:1
% 0.52/0.62  [40]~E(a1,a10)
% 0.52/0.62  [41]~P2(a6,a8,a9)
% 0.52/0.62  [42]~P2(a8,a9,a6)
% 0.52/0.62  [43]~P2(a9,a6,a8)
% 0.52/0.62  [36]E(f2(a1,a10,a1,a10),a10)
% 0.52/0.62  [37]P1(x371,x372,x372,x371)
% 0.52/0.62  [38]P2(x381,x382,f2(x381,x382,x383,x384))
% 0.52/0.62  [39]P1(x391,f2(x392,x391,x393,x394),x393,x394)
% 0.52/0.62  [44]~P2(x441,x442,x441)+E(x441,x442)
% 0.52/0.62  [45]~P1(x451,x452,x453,x453)+E(x451,x452)
% 0.52/0.62  [49]~P2(x495,x491,x494)+~P2(x492,x493,x494)+P2(x491,f7(x492,x493,x494,x491,x495),x492)
% 0.52/0.62  [50]~P2(x505,x504,x503)+~P2(x502,x501,x503)+P2(x501,f7(x502,x501,x503,x504,x505),x505)
% 0.52/0.62  [46]~P1(x465,x466,x461,x462)+P1(x461,x462,x463,x464)+~P1(x465,x466,x463,x464)
% 0.52/0.62  [51]~P2(x514,x512,x513)+~P2(x511,x512,x515)+E(x511,x512)+P2(x511,x513,f3(x511,x514,x512,x513,x515))
% 0.52/0.62  [52]~P2(x523,x522,x524)+~P2(x521,x522,x525)+E(x521,x522)+P2(x521,x523,f4(x521,x523,x522,x524,x525))
% 0.52/0.62  [53]~P2(x533,x532,x534)+~P2(x531,x532,x535)+E(x531,x532)+P2(f4(x531,x533,x532,x534,x535),x535,f3(x531,x533,x532,x534,x535))
% 0.52/0.62  [54]~P2(x543,x544,x545)+~P2(x542,x543,x545)+~P1(x542,x545,x542,x546)+~P1(x542,x543,x542,x541)+P2(x541,f5(x542,x543,x541,x544,x545,x546),x546)
% 0.52/0.62  [55]~P2(x553,x552,x555)+~P2(x551,x553,x555)+~P1(x551,x555,x551,x556)+~P1(x551,x553,x551,x554)+P1(x551,x552,x551,f5(x551,x553,x554,x552,x555,x556))
% 0.52/0.62  [47]P2(x475,x473,x474)+P2(x474,x475,x473)+~P1(x473,x471,x473,x472)+~P1(x475,x471,x475,x472)+~P1(x474,x471,x474,x472)+E(x471,x472)+P2(x473,x474,x475)
% 0.52/0.62  [48]~P2(x481,x482,x483)+~P1(x482,x484,x488,x486)+~P1(x482,x483,x488,x485)+~P1(x481,x484,x487,x486)+~P1(x481,x482,x487,x488)+E(x481,x482)+P1(x483,x484,x485,x486)+~P2(x487,x488,x485)
% 0.52/0.62  %EqnAxiom
% 0.52/0.62  [1]E(x11,x11)
% 0.52/0.62  [2]E(x22,x21)+~E(x21,x22)
% 0.52/0.63  [3]E(x31,x33)+~E(x31,x32)+~E(x32,x33)
% 0.52/0.63  [4]~E(x41,x42)+E(f2(x41,x43,x44,x45),f2(x42,x43,x44,x45))
% 0.52/0.63  [5]~E(x51,x52)+E(f2(x53,x51,x54,x55),f2(x53,x52,x54,x55))
% 0.52/0.63  [6]~E(x61,x62)+E(f2(x63,x64,x61,x65),f2(x63,x64,x62,x65))
% 0.52/0.63  [7]~E(x71,x72)+E(f2(x73,x74,x75,x71),f2(x73,x74,x75,x72))
% 0.52/0.63  [8]~E(x81,x82)+E(f5(x81,x83,x84,x85,x86,x87),f5(x82,x83,x84,x85,x86,x87))
% 0.52/0.63  [9]~E(x91,x92)+E(f5(x93,x91,x94,x95,x96,x97),f5(x93,x92,x94,x95,x96,x97))
% 0.52/0.63  [10]~E(x101,x102)+E(f5(x103,x104,x101,x105,x106,x107),f5(x103,x104,x102,x105,x106,x107))
% 0.52/0.63  [11]~E(x111,x112)+E(f5(x113,x114,x115,x111,x116,x117),f5(x113,x114,x115,x112,x116,x117))
% 0.52/0.63  [12]~E(x121,x122)+E(f5(x123,x124,x125,x126,x121,x127),f5(x123,x124,x125,x126,x122,x127))
% 0.52/0.63  [13]~E(x131,x132)+E(f5(x133,x134,x135,x136,x137,x131),f5(x133,x134,x135,x136,x137,x132))
% 0.52/0.63  [14]~E(x141,x142)+E(f3(x141,x143,x144,x145,x146),f3(x142,x143,x144,x145,x146))
% 0.52/0.63  [15]~E(x151,x152)+E(f3(x153,x151,x154,x155,x156),f3(x153,x152,x154,x155,x156))
% 0.52/0.63  [16]~E(x161,x162)+E(f3(x163,x164,x161,x165,x166),f3(x163,x164,x162,x165,x166))
% 0.52/0.63  [17]~E(x171,x172)+E(f3(x173,x174,x175,x171,x176),f3(x173,x174,x175,x172,x176))
% 0.52/0.63  [18]~E(x181,x182)+E(f3(x183,x184,x185,x186,x181),f3(x183,x184,x185,x186,x182))
% 0.52/0.63  [19]~E(x191,x192)+E(f7(x191,x193,x194,x195,x196),f7(x192,x193,x194,x195,x196))
% 0.52/0.63  [20]~E(x201,x202)+E(f7(x203,x201,x204,x205,x206),f7(x203,x202,x204,x205,x206))
% 0.52/0.63  [21]~E(x211,x212)+E(f7(x213,x214,x211,x215,x216),f7(x213,x214,x212,x215,x216))
% 0.52/0.63  [22]~E(x221,x222)+E(f7(x223,x224,x225,x221,x226),f7(x223,x224,x225,x222,x226))
% 0.52/0.63  [23]~E(x231,x232)+E(f7(x233,x234,x235,x236,x231),f7(x233,x234,x235,x236,x232))
% 0.52/0.63  [24]~E(x241,x242)+E(f4(x241,x243,x244,x245,x246),f4(x242,x243,x244,x245,x246))
% 0.52/0.63  [25]~E(x251,x252)+E(f4(x253,x251,x254,x255,x256),f4(x253,x252,x254,x255,x256))
% 0.52/0.63  [26]~E(x261,x262)+E(f4(x263,x264,x261,x265,x266),f4(x263,x264,x262,x265,x266))
% 0.52/0.63  [27]~E(x271,x272)+E(f4(x273,x274,x275,x271,x276),f4(x273,x274,x275,x272,x276))
% 0.52/0.63  [28]~E(x281,x282)+E(f4(x283,x284,x285,x286,x281),f4(x283,x284,x285,x286,x282))
% 0.52/0.63  [29]P1(x292,x293,x294,x295)+~E(x291,x292)+~P1(x291,x293,x294,x295)
% 0.52/0.63  [30]P1(x303,x302,x304,x305)+~E(x301,x302)+~P1(x303,x301,x304,x305)
% 0.52/0.63  [31]P1(x313,x314,x312,x315)+~E(x311,x312)+~P1(x313,x314,x311,x315)
% 0.52/0.63  [32]P1(x323,x324,x325,x322)+~E(x321,x322)+~P1(x323,x324,x325,x321)
% 0.52/0.63  [33]P2(x332,x333,x334)+~E(x331,x332)+~P2(x331,x333,x334)
% 0.52/0.63  [34]P2(x343,x342,x344)+~E(x341,x342)+~P2(x343,x341,x344)
% 0.52/0.63  [35]P2(x353,x354,x352)+~E(x351,x352)+~P2(x353,x354,x351)
% 0.52/0.63  
% 0.52/0.63  %-------------------------------------------
% 0.52/0.63  cnf(56,plain,
% 0.52/0.63     (E(a10,f2(a1,a10,a1,a10))),
% 0.52/0.63     inference(scs_inference,[],[36,2])).
% 0.52/0.63  cnf(57,plain,
% 0.52/0.63     (~P1(a1,a10,x571,x571)),
% 0.52/0.63     inference(scs_inference,[],[40,36,2,45])).
% 0.52/0.63  cnf(61,plain,
% 0.52/0.63     (~E(f2(a6,a8,x611,x612),a9)),
% 0.52/0.63     inference(scs_inference,[],[40,41,36,38,2,45,44,35])).
% 0.52/0.63  cnf(62,plain,
% 0.52/0.63     (P2(x621,x622,f2(x621,x622,x623,x624))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(64,plain,
% 0.52/0.63     (P2(x641,x642,f2(x641,x642,x643,x644))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(66,plain,
% 0.52/0.63     (P2(x661,x662,f2(x661,x662,x663,x664))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(67,plain,
% 0.52/0.63     (P1(x671,f2(x672,x671,x673,f2(a1,a10,a1,a10)),x673,a10)),
% 0.52/0.63     inference(scs_inference,[],[40,41,36,39,38,62,64,2,45,44,35,34,33,32])).
% 0.52/0.63  cnf(68,plain,
% 0.52/0.63     (P1(x681,f2(x682,x681,x683,x684),x683,x684)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(69,plain,
% 0.52/0.63     (~E(a10,a1)),
% 0.52/0.63     inference(scs_inference,[],[40,37,41,36,39,38,62,64,2,45,44,35,34,33,32,31])).
% 0.52/0.63  cnf(70,plain,
% 0.52/0.63     (P1(x701,x702,x702,x701)),
% 0.52/0.63     inference(rename_variables,[],[37])).
% 0.52/0.63  cnf(73,plain,
% 0.52/0.63     (P1(a10,x731,x731,f2(a1,a10,a1,a10))),
% 0.52/0.63     inference(scs_inference,[],[40,37,70,41,36,39,68,38,62,64,2,45,44,35,34,33,32,31,30,29])).
% 0.52/0.63  cnf(74,plain,
% 0.52/0.63     (P1(x741,x742,x742,x741)),
% 0.52/0.63     inference(rename_variables,[],[37])).
% 0.52/0.63  cnf(76,plain,
% 0.52/0.63     (P1(x761,x762,x761,x762)),
% 0.52/0.63     inference(scs_inference,[],[40,37,70,74,41,36,39,68,38,62,64,2,45,44,35,34,33,32,31,30,29,3,46])).
% 0.52/0.63  cnf(103,plain,
% 0.52/0.63     (P2(x1031,f7(x1032,x1031,f2(x1032,x1031,x1033,x1034),x1031,x1032),x1032)),
% 0.52/0.63     inference(scs_inference,[],[40,37,70,74,41,36,39,68,38,62,64,66,2,45,44,35,34,33,32,31,30,29,3,46,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,50])).
% 0.52/0.63  cnf(126,plain,
% 0.52/0.63     (P1(x1261,f2(x1262,x1261,x1263,x1264),x1263,x1264)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(129,plain,
% 0.52/0.63     (P2(x1291,f7(x1292,x1291,f2(x1292,x1291,x1293,x1294),x1291,x1292),x1292)),
% 0.52/0.63     inference(rename_variables,[],[103])).
% 0.52/0.63  cnf(132,plain,
% 0.52/0.63     (P2(x1321,x1322,f2(x1321,x1322,x1323,x1324))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(136,plain,
% 0.52/0.63     (~P1(a1,a10,x1361,x1361)),
% 0.52/0.63     inference(rename_variables,[],[57])).
% 0.52/0.63  cnf(138,plain,
% 0.52/0.63     (P1(x1381,x1382,x1382,x1381)),
% 0.52/0.63     inference(rename_variables,[],[37])).
% 0.52/0.63  cnf(140,plain,
% 0.52/0.63     (P1(x1401,x1401,x1401,f5(x1401,x1401,x1401,x1401,f2(x1401,x1401,x1401,x1402),x1402))),
% 0.52/0.63     inference(scs_inference,[],[37,138,42,39,126,38,132,36,103,129,57,136,45,44,35,34,31,46,55])).
% 0.52/0.63  cnf(142,plain,
% 0.52/0.63     (P1(x1421,x1422,x1422,x1421)),
% 0.52/0.63     inference(rename_variables,[],[37])).
% 0.52/0.63  cnf(143,plain,
% 0.52/0.63     (P2(x1431,x1432,f2(x1431,x1432,x1433,x1434))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(144,plain,
% 0.52/0.63     (P1(x1441,f2(x1442,x1441,x1443,x1444),x1443,x1444)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(146,plain,
% 0.52/0.63     (P2(x1461,f5(x1461,x1461,x1461,x1461,f2(x1461,x1461,x1461,x1462),x1462),x1462)),
% 0.52/0.63     inference(scs_inference,[],[37,138,142,42,39,126,144,38,132,143,36,103,129,57,136,45,44,35,34,31,46,55,54])).
% 0.52/0.63  cnf(153,plain,
% 0.52/0.63     (~P1(a1,a10,x1531,x1531)),
% 0.52/0.63     inference(rename_variables,[],[57])).
% 0.52/0.63  cnf(155,plain,
% 0.52/0.63     (~E(f2(a1,a10,a1,a10),a1)),
% 0.52/0.63     inference(scs_inference,[],[37,138,142,42,39,126,144,38,132,143,36,103,129,76,57,136,61,45,44,35,34,31,46,55,54,32,2,29])).
% 0.52/0.63  cnf(158,plain,
% 0.52/0.63     (~P1(a1,f2(a1,a10,a1,a10),x1581,x1581)),
% 0.52/0.63     inference(scs_inference,[],[40,37,138,142,42,39,126,144,38,132,143,36,103,129,76,57,136,153,61,45,44,35,34,31,46,55,54,32,2,29,3,30])).
% 0.52/0.63  cnf(179,plain,
% 0.52/0.63     (~P1(x1791,x1791,a1,f2(a1,a10,a1,a10))),
% 0.52/0.63     inference(scs_inference,[],[37,69,158,155,45,44,46])).
% 0.52/0.63  cnf(181,plain,
% 0.52/0.63     (P1(x1811,x1812,x1812,x1811)),
% 0.52/0.63     inference(rename_variables,[],[37])).
% 0.52/0.63  cnf(184,plain,
% 0.52/0.63     (P1(a10,x1841,x1841,f2(a1,a10,a1,a10))),
% 0.52/0.63     inference(rename_variables,[],[73])).
% 0.52/0.63  cnf(186,plain,
% 0.52/0.63     (P1(x1861,f2(x1862,x1861,x1863,x1864),x1863,x1864)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(187,plain,
% 0.52/0.63     (P2(x1871,x1872,f2(x1871,x1872,x1873,x1874))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(193,plain,
% 0.52/0.63     (P2(x1931,x1932,f2(x1931,x1932,x1933,x1934))),
% 0.52/0.63     inference(rename_variables,[],[38])).
% 0.52/0.63  cnf(195,plain,
% 0.52/0.63     (P2(x1951,f2(a1,a10,a1,a10),f2(x1951,a10,x1952,x1953))),
% 0.52/0.63     inference(scs_inference,[],[56,37,39,186,38,187,193,69,158,73,184,155,45,44,46,55,54,34])).
% 0.52/0.63  cnf(197,plain,
% 0.52/0.63     (P1(x1971,f2(a1,a10,a1,a10),a10,x1971)),
% 0.52/0.63     inference(scs_inference,[],[36,56,37,181,39,186,38,187,193,69,158,73,184,155,45,44,46,55,54,34,31])).
% 0.52/0.63  cnf(235,plain,
% 0.52/0.63     (P2(x2351,f5(x2351,x2351,x2351,x2351,f2(x2351,x2351,x2351,x2352),x2352),x2352)),
% 0.52/0.63     inference(rename_variables,[],[146])).
% 0.52/0.63  cnf(238,plain,
% 0.52/0.63     (P1(x2381,f2(x2382,x2381,x2383,x2384),x2383,x2384)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(245,plain,
% 0.52/0.63     (P1(x2451,f2(x2452,x2451,x2453,x2454),x2453,x2454)),
% 0.52/0.63     inference(rename_variables,[],[39])).
% 0.52/0.63  cnf(254,plain,
% 0.52/0.63     (~P1(x2541,x2541,a1,f2(a1,a10,a1,a10))),
% 0.52/0.63     inference(rename_variables,[],[179])).
% 0.52/0.63  cnf(255,plain,
% 0.52/0.63     (~E(x2551,f2(x2552,x2551,a1,f2(a1,a10,a1,a10)))),
% 0.52/0.63     inference(scs_inference,[],[36,43,37,39,238,245,38,140,146,235,195,179,254,67,44,46,45,31,34,35,33,32,29])).
% 0.52/0.63  cnf(276,plain,
% 0.52/0.63     ($false),
% 0.52/0.63     inference(scs_inference,[],[57,39,255,197,44,46]),
% 0.52/0.63     ['proof']).
% 0.52/0.63  % SZS output end Proof
% 0.52/0.63  % Total time :0.090000s
%------------------------------------------------------------------------------