TSTP Solution File: LAT093-1 by Fiesta---2
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Fiesta---2
% Problem : LAT093-1 : TPTP v8.1.0. Released v2.6.0.
% Transfm : none
% Format : dedam
% Command : fiesta-wrapper %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 : Sun Jul 17 04:55:48 EDT 2022
% Result : Unsatisfiable 1.93s 2.28s
% Output : CNFRefutation 1.93s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.11/0.12 % Problem : LAT093-1 : TPTP v8.1.0. Released v2.6.0.
% 0.11/0.12 % Command : fiesta-wrapper %s
% 0.12/0.33 % Computer : n018.cluster.edu
% 0.12/0.33 % Model : x86_64 x86_64
% 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.33 % Memory : 8042.1875MB
% 0.12/0.33 % 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 : Thu Jun 30 00:45:31 EDT 2022
% 0.12/0.34 % CPUTime :
% 1.93/2.28 Theorem Proved.
% 1.93/2.28 % SZS status Unsatisfiable
% 1.93/2.28 % SZS output start CNFRefutation
% 1.93/2.28 [1=axiom,[],
% 1.93/2.28 join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(join(meet(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)),meet(join(meet(X11,meet(meet(join(X11,X13),join(X14,X11)),X11)),meet(X15,join(X11,meet(meet(join(X11,X13),join(X14,X11)),X11)))),join(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)))),join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))) = X11].
% 1.93/2.28 [2=axiom,[],
% 1.93/2.28 thtop(X10,X10) = thmfalse].
% 1.93/2.28 [3=axiom,[],
% 1.93/2.28 thtop(meet(b,a),meet(a,b)) = thmtrue].
% 1.93/2.28 [4=param(1,1),[],
% 1.93/2.28 join(meet(join(meet(X10,join(meet(X11,X12),meet(X12,join(X11,X12)))),meet(join(meet(X11,X12),meet(X12,join(X11,X12))),join(X10,join(meet(X11,X12),meet(X12,join(X11,X12)))))),X13),meet(join(meet(X10,join(join(meet(join(meet(X11,X12),meet(X12,join(X11,X12))),X14),meet(X15,join(meet(X11,X12),meet(X12,join(X11,X12))))),join(meet(X11,X12),meet(X12,join(X11,X12))))),meet(X12,join(X10,join(join(meet(join(meet(X11,X12),meet(X12,join(X11,X12))),X14),meet(X15,join(meet(X11,X12),meet(X12,join(X11,X12))))),join(meet(X11,X12),meet(X12,join(X11,X12))))))),join(join(meet(X10,join(meet(X11,X12),meet(X12,join(X11,X12)))),meet(join(meet(X11,X12),meet(X12,join(X11,X12))),join(X10,join(meet(X11,X12),meet(X12,join(X11,X12)))))),X13))) = join(meet(X11,X12),meet(X12,join(X11,X12)))].
% 1.93/2.28 [6=param(1,1),[1],
% 1.93/2.28 join(meet(X10,X11),meet(join(meet(join(meet(X12,X10),meet(X10,join(X12,X10))),join(join(meet(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),X16),meet(X17,join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),meet(join(meet(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),meet(meet(join(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),X16),join(X17,join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),meet(X18,join(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),meet(meet(join(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),X16),join(X17,join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))))),join(join(meet(X12,X10),meet(X10,join(X12,X10))),join(join(meet(join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))),X16),meet(X17,join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))),join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)))))))),join(X10,X11))) = join(meet(X12,join(join(meet(X10,X13),meet(X14,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)),meet(X15,join(X10,meet(meet(join(X10,X13),join(X14,X10)),X10)))),join(X12,join(join(meet(X10,X13),meet(X14,X10)),X10))))].
% 1.93/2.28 [7=param(1,6),[],
% 1.93/2.28 join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(join(meet(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)),meet(join(meet(X15,join(join(meet(X11,X16),meet(X17,X11)),X11)),meet(join(meet(X11,meet(meet(join(X11,X16),join(X17,X11)),X11)),meet(X18,join(X11,meet(meet(join(X11,X16),join(X17,X11)),X11)))),join(X15,join(join(meet(X11,X16),meet(X17,X11)),X11)))),join(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)))),join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))) = X11].
% 1.93/2.28 [8=param(7,1),[],
% 1.93/2.28 join(meet(join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X11),meet(X11,join(join(meet(X10,X11),meet(X11,join(X10,X11))),X11))),X12),meet(X11,join(join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X11),meet(X11,join(join(meet(X10,X11),meet(X11,join(X10,X11))),X11))),X12))) = X11].
% 1.93/2.28 [15=param(4,8),[8],
% 1.93/2.28 join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(join(meet(join(meet(join(meet(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(join(meet(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X14),meet(X15,join(meet(X10,X11),meet(X11,join(X10,X11))))),join(meet(X10,X11),meet(X11,join(X10,X11))))),meet(X11,join(join(meet(join(meet(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(join(meet(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))),meet(join(meet(X10,X11),meet(X11,join(X10,X11))),join(X13,join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(meet(X10,X11),meet(X11,join(X10,X11)))))),join(join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X14),meet(X15,join(meet(X10,X11),meet(X11,join(X10,X11))))),join(meet(X10,X11),meet(X11,join(X10,X11))))))),join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))) = join(meet(X10,X11),meet(X11,join(X10,X11)))].
% 1.93/2.28 [19=param(8,8),[8],
% 1.93/2.28 join(meet(X10,X11),meet(X10,join(X10,X11))) = X10].
% 1.93/2.28 [20=param(19,1),[],
% 1.93/2.28 join(meet(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(join(meet(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)),meet(join(meet(X11,meet(meet(join(X11,X13),join(X14,X11)),X11)),meet(X15,join(X11,meet(meet(join(X11,X13),join(X14,X11)),X11)))),join(X10,join(join(meet(X11,X13),meet(X14,X11)),X11)))),join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))),meet(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),X11)) = meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12)].
% 1.93/2.28 [35=param(6,19),[1,19],
% 1.93/2.28 join(meet(X11,join(join(meet(X10,X12),meet(X13,X10)),X10)),meet(join(meet(X10,meet(meet(join(X10,X12),join(X13,X10)),X10)),meet(X14,join(X10,meet(meet(join(X10,X12),join(X13,X10)),X10)))),join(X11,join(join(meet(X10,X12),meet(X13,X10)),X10)))) = X10].
% 1.93/2.28 [36=demod(20),[35],
% 1.93/2.28 join(meet(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(X11,join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))),meet(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),X11)) = meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12)].
% 1.93/2.28 [37=demod(1),[35],
% 1.93/2.28 join(meet(join(meet(X10,X11),meet(X11,join(X10,X11))),X12),meet(X11,join(join(meet(X10,X11),meet(X11,join(X10,X11))),X12))) = X11].
% 1.93/2.28 [38=demod(15),[37,37,37,37],
% 1.93/2.28 join(meet(X11,X10),meet(X10,join(X11,X10))) = X10].
% 1.93/2.28 [39=demod(36),[38,38,38,38],
% 1.93/2.28 join(meet(meet(X10,X11),meet(X10,join(X10,X11))),meet(meet(X10,X11),X10)) = meet(X10,X11)].
% 1.93/2.28 [51=param(35,19),[],
% 1.93/2.28 join(meet(X10,meet(meet(join(X10,X11),join(X12,X10)),X10)),meet(X13,join(X10,meet(meet(join(X10,X11),join(X12,X10)),X10)))) = X10].
% 1.93/2.28 [52=demod(35),[51],
% 1.93/2.28 join(meet(X10,join(join(meet(X11,X12),meet(X13,X11)),X11)),meet(X11,join(X10,join(join(meet(X11,X12),meet(X13,X11)),X11)))) = X11].
% 1.93/2.28 [54=param(19,38),[],
% 1.93/2.28 join(meet(meet(X10,X11),meet(X11,join(X10,X11))),meet(meet(X10,X11),X11)) = meet(X10,X11)].
% 1.93/2.28 [55=param(38,38),[],
% 1.93/2.28 join(meet(meet(X10,X11),meet(X11,join(X10,X11))),meet(meet(X11,join(X10,X11)),X11)) = meet(X11,join(X10,X11))].
% 1.93/2.28 [77=param(19,51),[],
% 1.93/2.28 join(meet(meet(X10,meet(meet(join(X10,X11),join(X12,X10)),X10)),meet(X13,join(X10,meet(meet(join(X10,X11),join(X12,X10)),X10)))),meet(meet(X10,meet(meet(join(X10,X11),join(X12,X10)),X10)),X10)) = meet(X10,meet(meet(join(X10,X11),join(X12,X10)),X10))].
% 1.93/2.28 [78=param(51,38),[],
% 1.93/2.28 meet(meet(join(X10,X11),join(X12,X10)),X10) = X10].
% 1.93/2.28 [79=demod(77),[78,78,78,78],
% 1.93/2.28 join(meet(meet(X10,X10),meet(X11,join(X10,X10))),meet(meet(X10,X10),X10)) = meet(X10,X10)].
% 1.93/2.28 [80=demod(51),[78,78],
% 1.93/2.28 join(meet(X10,X10),meet(X11,join(X10,X10))) = X10].
% 1.93/2.28 [86=param(80,52),[],
% 1.93/2.28 join(join(meet(X10,X11),meet(X12,X10)),X10) = X10].
% 1.93/2.28 [97=param(78,38),[],
% 1.93/2.28 meet(meet(X10,join(X11,meet(X12,X10))),meet(X12,X10)) = meet(X12,X10)].
% 1.93/2.28 [106=param(78,86),[],
% 1.93/2.28 meet(meet(join(X10,X11),X10),X10) = X10].
% 1.93/2.28 [108=param(86,78),[],
% 1.93/2.28 join(join(meet(X10,X11),X10),X10) = X10].
% 1.93/2.28 [109=param(19,108),[],
% 1.93/2.28 join(meet(join(meet(X10,X11),X10),X10),meet(join(meet(X10,X11),X10),X10)) = join(meet(X10,X11),X10)].
% 1.93/2.28 [117=param(106,19),[],
% 1.93/2.28 meet(meet(X10,meet(X10,X11)),meet(X10,X11)) = meet(X10,X11)].
% 1.93/2.28 [119=param(106,38),[],
% 1.93/2.28 meet(meet(X10,meet(X11,X10)),meet(X11,X10)) = meet(X11,X10)].
% 1.93/2.28 [120=param(38,106),[],
% 1.93/2.28 join(X10,meet(X10,join(meet(join(X10,X11),X10),X10))) = X10].
% 1.93/2.28 [122=param(54,106),[],
% 1.93/2.28 join(meet(meet(join(X10,X11),X10),meet(X10,join(join(X10,X11),X10))),X10) = meet(join(X10,X11),X10)].
% 1.93/2.28 [125=param(106,108),[],
% 1.93/2.28 meet(meet(X10,join(meet(X10,X11),X10)),join(meet(X10,X11),X10)) = join(meet(X10,X11),X10)].
% 1.93/2.28 [136=param(54,119),[],
% 1.93/2.28 join(meet(meet(X10,meet(X11,X10)),meet(meet(X11,X10),join(X10,meet(X11,X10)))),meet(X11,X10)) = meet(X10,meet(X11,X10))].
% 1.93/2.28 [138=param(108,119),[],
% 1.93/2.28 join(join(meet(X10,X11),meet(X11,meet(X10,X11))),meet(X11,meet(X10,X11))) = meet(X11,meet(X10,X11))].
% 1.93/2.28 [144=param(108,117),[],
% 1.93/2.28 join(join(meet(X10,X11),meet(X10,meet(X10,X11))),meet(X10,meet(X10,X11))) = meet(X10,meet(X10,X11))].
% 1.93/2.28 [151=param(78,120),[],
% 1.93/2.28 meet(meet(X10,join(X11,X10)),X10) = X10].
% 1.93/2.28 [156=demod(55),[151],
% 1.93/2.28 join(meet(meet(X10,X11),meet(X11,join(X10,X11))),X11) = meet(X11,join(X10,X11))].
% 1.93/2.28 [157=demod(136),[156],
% 1.93/2.28 meet(meet(X10,X11),join(X11,meet(X10,X11))) = meet(X11,meet(X10,X11))].
% 1.93/2.28 [159=demod(122),[156],
% 1.93/2.28 meet(join(X10,X11),X10) = meet(X10,join(join(X10,X11),X10))].
% 1.93/2.28 [188=param(151,86),[],
% 1.93/2.28 meet(meet(X10,X10),X10) = X10].
% 1.93/2.28 [193=demod(79),[188],
% 1.93/2.28 join(meet(meet(X10,X10),meet(X11,join(X10,X10))),X10) = meet(X10,X10)].
% 1.93/2.28 [213=param(39,188),[156],
% 1.93/2.28 meet(X10,join(X10,X10)) = meet(X10,X10)].
% 1.93/2.28 [219=param(19,213),[],
% 1.93/2.28 join(meet(X10,X10),meet(X10,X10)) = X10].
% 1.93/2.28 [236=param(80,219),[],
% 1.93/2.28 join(meet(meet(X10,X10),meet(X10,X10)),meet(X11,X10)) = meet(X10,X10)].
% 1.93/2.28 [237=param(86,219),[],
% 1.93/2.28 join(X10,X10) = X10].
% 1.93/2.28 [238=demod(219),[237],
% 1.93/2.28 meet(X10,X10) = X10].
% 1.93/2.28 [244=demod(236),[238,238,238,238],
% 1.93/2.28 join(X10,meet(X11,X10)) = X10].
% 1.93/2.28 [245=demod(138),[244,244],
% 1.93/2.28 meet(X11,meet(X10,X11)) = meet(X10,X11)].
% 1.93/2.28 [247=demod(144),[244,244],
% 1.93/2.28 meet(X10,meet(X10,X11)) = meet(X10,X11)].
% 1.93/2.28 [249=demod(157),[244,245],
% 1.93/2.28 meet(meet(X10,X11),X11) = meet(X10,X11)].
% 1.93/2.28 [251=demod(125),[249],
% 1.93/2.28 meet(X10,join(meet(X10,X11),X10)) = join(meet(X10,X11),X10)].
% 1.93/2.28 [276=demod(109),[237],
% 1.93/2.28 meet(join(meet(X10,X11),X10),X10) = join(meet(X10,X11),X10)].
% 1.93/2.28 [277=demod(193),[238,237,245,238],
% 1.93/2.28 join(meet(X10,X11),X11) = X11].
% 1.93/2.28 [313=param(38,159),[237],
% 1.93/2.28 meet(X10,join(join(X10,X11),X10)) = X10].
% 1.93/2.28 [338=param(277,313),[],
% 1.93/2.28 join(X10,join(join(X10,X11),X10)) = join(join(X10,X11),X10)].
% 1.93/2.28 [349=param(338,19),[19],
% 1.93/2.28 join(meet(X10,X11),join(X10,meet(X10,X11))) = join(X10,meet(X10,X11))].
% 1.93/2.28 [372=param(244,276),[],
% 1.93/2.28 join(X10,join(meet(X10,X11),X10)) = X10].
% 1.93/2.28 [392=param(372,151),[349],
% 1.93/2.28 join(X10,meet(X10,join(X11,X10))) = meet(X10,join(X11,X10))].
% 1.93/2.28 [401=param(19,392),[247,247,237],
% 1.93/2.28 meet(X10,join(X11,X10)) = X10].
% 1.93/2.28 [403=demod(251),[401],
% 1.93/2.28 join(meet(X10,X11),X10) = X10].
% 1.93/2.28 [423=param(19,403),[237],
% 1.93/2.28 meet(meet(X10,X11),X10) = meet(X10,X11)].
% 1.93/2.28 [452=param(244,423),[],
% 1.93/2.28 join(X10,meet(X10,X11)) = X10].
% 1.93/2.28 [470=param(97,452),[],
% 1.93/2.28 meet(meet(X10,X11),meet(X11,X10)) = meet(X11,X10)].
% 1.93/2.28 [501=param(423,470),[470,470],
% 1.93/2.28 meet(X10,X11) = meet(X11,X10)].
% 1.93/2.28 [535=param(3,501),[2],
% 1.93/2.28 thmtrue = thmfalse].
% 1.93/2.28 % SZS output end CNFRefutation
% 1.93/2.28 Space: 4590 KB
%------------------------------------------------------------------------------