TSTP Solution File: LAT038-1 by iProver---3.8

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : iProver---3.8
% Problem  : LAT038-1 : TPTP v8.1.2. Released v2.4.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_iprover %s %d THM

% Computer : n003.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 : Thu Aug 31 06:16:32 EDT 2023

% Result   : Unsatisfiable 262.70s 34.73s
% Output   : CNFRefutation 262.70s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   11
%            Number of leaves      :   15
% Syntax   : Number of clauses     :   89 (  89 unt;   0 nHn;   9 RR)
%            Number of literals    :   89 (  88 equ;   1 neg)
%            Maximal clause size   :    1 (   1 avg)
%            Maximal term depth    :    6 (   2 avg)
%            Number of predicates  :    2 (   0 usr;   1 prp; 0-2 aty)
%            Number of functors    :    7 (   7 usr;   4 con; 0-2 aty)
%            Number of variables   :  263 (  31 sgn)

% Comments : 
%------------------------------------------------------------------------------
cnf(c_49,negated_conjecture,
    meet(join(X0,X1),join(X0,X2)) = join(X0,meet(X1,X2)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',dist_join) ).

cnf(c_50,negated_conjecture,
    join(meet(X0,X1),meet(X0,X2)) = meet(X0,join(X1,X2)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',dist_meet) ).

cnf(c_51,negated_conjecture,
    join(f(X0,X1),f(X2,X1)) = f(join(X0,X2),X1),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',f_on_left_join) ).

cnf(c_53,negated_conjecture,
    join(f(X0,X1),f(X0,X2)) = f(X0,join(X1,X2)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',f_on_right_join) ).

cnf(c_55,negated_conjecture,
    f(join(aa,bb),dd) = f(join(cc,bb),dd),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',lhs1) ).

cnf(c_56,negated_conjecture,
    meet(f(aa,dd),f(bb,dd)) = meet(f(cc,dd),f(bb,dd)),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',lhs2) ).

cnf(c_57,negated_conjecture,
    f(aa,dd) != f(cc,dd),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',rhs) ).

cnf(c_58,negated_conjecture,
    meet(X0,X0) = X0,
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',idempotence_of_meet) ).

cnf(c_59,negated_conjecture,
    join(X0,X0) = X0,
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',idempotence_of_join) ).

cnf(c_60,negated_conjecture,
    meet(X0,join(X0,X1)) = X0,
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',absorption1) ).

cnf(c_61,negated_conjecture,
    join(X0,meet(X0,X1)) = X0,
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',absorption2) ).

cnf(c_62,negated_conjecture,
    meet(X0,X1) = meet(X1,X0),
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',commutativity_of_meet) ).

cnf(c_63,negated_conjecture,
    join(X0,X1) = join(X1,X0),
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',commutativity_of_join) ).

cnf(c_64,negated_conjecture,
    meet(meet(X0,X1),X2) = meet(X0,meet(X1,X2)),
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',associativity_of_meet) ).

cnf(c_65,negated_conjecture,
    join(join(X0,X1),X2) = join(X0,join(X1,X2)),
    file('/export/starexec/sandbox2/benchmark/Axioms/LAT001-0.ax',associativity_of_join) ).

cnf(c_80,negated_conjecture,
    f(join(bb,aa),dd) = f(join(bb,cc),dd),
    inference(theory_normalisation,[status(thm)],[c_55,c_65,c_63,c_64,c_62]) ).

cnf(c_81,negated_conjecture,
    meet(f(bb,dd),f(aa,dd)) = meet(f(bb,dd),f(cc,dd)),
    inference(theory_normalisation,[status(thm)],[c_56,c_65,c_63,c_64,c_62]) ).

cnf(c_17030,plain,
    meet(X0,meet(X1,X2)) = meet(X1,meet(X0,X2)),
    inference(superposition,[status(thm)],[c_64,c_62]) ).

cnf(c_17031,plain,
    join(X0,join(X1,X2)) = join(X1,join(X0,X2)),
    inference(superposition,[status(thm)],[c_65,c_63]) ).

cnf(c_18527,plain,
    join(X0,meet(X1,X0)) = X0,
    inference(superposition,[status(thm)],[c_62,c_61]) ).

cnf(c_18649,plain,
    meet(X0,join(X1,X0)) = X0,
    inference(superposition,[status(thm)],[c_63,c_60]) ).

cnf(c_19078,plain,
    meet(X0,join(X1,join(X0,X2))) = X0,
    inference(superposition,[status(thm)],[c_17031,c_60]) ).

cnf(c_19459,plain,
    join(X0,join(X0,X1)) = join(X0,X1),
    inference(superposition,[status(thm)],[c_59,c_65]) ).

cnf(c_19683,plain,
    meet(X0,meet(X1,join(meet(X0,X1),X2))) = meet(X0,X1),
    inference(superposition,[status(thm)],[c_64,c_60]) ).

cnf(c_19858,plain,
    meet(f(X0,X1),f(X0,join(X1,X2))) = f(X0,X1),
    inference(superposition,[status(thm)],[c_53,c_60]) ).

cnf(c_20083,plain,
    meet(f(X0,X1),f(join(X0,X2),X1)) = f(X0,X1),
    inference(superposition,[status(thm)],[c_51,c_60]) ).

cnf(c_20379,plain,
    join(meet(X0,X1),meet(X1,X2)) = meet(X1,join(X0,X2)),
    inference(superposition,[status(thm)],[c_62,c_50]) ).

cnf(c_20381,plain,
    join(meet(X0,meet(X1,X2)),meet(X1,X3)) = meet(X1,join(meet(X0,X2),X3)),
    inference(superposition,[status(thm)],[c_17030,c_50]) ).

cnf(c_20386,plain,
    join(meet(X0,X1),meet(X2,X0)) = meet(X0,join(X1,X2)),
    inference(superposition,[status(thm)],[c_62,c_50]) ).

cnf(c_20388,plain,
    join(meet(X0,X1),meet(X2,meet(X0,X3))) = meet(X0,join(X1,meet(X2,X3))),
    inference(superposition,[status(thm)],[c_17030,c_50]) ).

cnf(c_20590,plain,
    meet(join(X0,X1),join(X1,X2)) = join(X1,meet(X0,X2)),
    inference(superposition,[status(thm)],[c_63,c_49]) ).

cnf(c_20592,plain,
    meet(join(X0,join(X1,X2)),join(X1,X3)) = join(X1,meet(join(X0,X2),X3)),
    inference(superposition,[status(thm)],[c_17031,c_49]) ).

cnf(c_20595,plain,
    meet(join(meet(X0,X1),X2),meet(X0,join(X1,X3))) = join(meet(X0,X1),meet(X2,meet(X0,X3))),
    inference(superposition,[status(thm)],[c_50,c_49]) ).

cnf(c_20602,plain,
    meet(join(X0,X1),join(X2,join(X0,X3))) = join(X0,meet(X1,join(X2,X3))),
    inference(superposition,[status(thm)],[c_17031,c_49]) ).

cnf(c_20609,plain,
    join(meet(join(X0,X1),X2),join(X0,meet(X1,X3))) = meet(join(X0,X1),join(X2,join(X0,X3))),
    inference(superposition,[status(thm)],[c_49,c_50]) ).

cnf(c_20612,plain,
    meet(join(X0,X1),join(X0,X2)) = join(X0,meet(X2,X1)),
    inference(superposition,[status(thm)],[c_49,c_62]) ).

cnf(c_20620,plain,
    meet(join(meet(X0,X1),X2),meet(X0,join(X1,X3))) = meet(X0,join(X1,meet(X2,X3))),
    inference(demodulation,[status(thm)],[c_20595,c_20388]) ).

cnf(c_20862,plain,
    meet(f(X0,X1),f(join(X2,X0),X1)) = f(X0,X1),
    inference(superposition,[status(thm)],[c_51,c_18649]) ).

cnf(c_20877,plain,
    meet(X0,meet(X1,join(X2,meet(X0,X1)))) = meet(X0,X1),
    inference(superposition,[status(thm)],[c_18649,c_64]) ).

cnf(c_21127,plain,
    join(X0,meet(X1,meet(X2,X0))) = X0,
    inference(superposition,[status(thm)],[c_64,c_18527]) ).

cnf(c_21140,plain,
    join(X0,join(X1,meet(X2,join(X0,X1)))) = join(X0,X1),
    inference(superposition,[status(thm)],[c_18527,c_65]) ).

cnf(c_21487,plain,
    meet(f(X0,X1),join(X2,f(X0,join(X1,X3)))) = f(X0,X1),
    inference(superposition,[status(thm)],[c_53,c_19078]) ).

cnf(c_22178,plain,
    meet(join(X0,X1),join(X0,X2)) = join(X0,meet(X1,join(X0,X2))),
    inference(superposition,[status(thm)],[c_19459,c_49]) ).

cnf(c_22189,plain,
    join(X0,meet(X1,join(X0,X2))) = join(X0,meet(X2,X1)),
    inference(demodulation,[status(thm)],[c_22178,c_20612]) ).

cnf(c_23302,plain,
    meet(X0,meet(meet(X1,join(meet(X0,X1),X2)),X3)) = meet(meet(X0,X1),X3),
    inference(superposition,[status(thm)],[c_19683,c_64]) ).

cnf(c_23307,plain,
    join(meet(X0,join(meet(X1,X0),X2)),meet(X1,X0)) = meet(X0,join(meet(X1,X0),X2)),
    inference(superposition,[status(thm)],[c_19683,c_18527]) ).

cnf(c_23315,plain,
    meet(meet(X0,X1),X2) = meet(X2,meet(X0,X1)),
    inference(ac_demodulation,[status(thm)],[c_23302,c_19683,c_64,c_62,c_65,c_63]) ).

cnf(c_23316,plain,
    meet(X0,join(X1,join(meet(X1,X0),X2))) = meet(X0,join(meet(X1,X0),X2)),
    inference(ac_demodulation,[status(thm)],[c_23307,c_20379,c_64,c_62,c_65,c_63]) ).

cnf(c_23317,plain,
    meet(X0,join(meet(X1,X0),X2)) = meet(X0,join(X2,X1)),
    inference(ac_demodulation,[status(thm)],[c_23316,c_61,c_64,c_62,c_65,c_63]) ).

cnf(c_26008,plain,
    meet(f(X0,X1),join(f(join(X0,X2),X1),X3)) = join(f(X0,X1),meet(f(X0,X1),X3)),
    inference(superposition,[status(thm)],[c_20083,c_50]) ).

cnf(c_26018,plain,
    meet(f(X0,X1),join(f(join(X0,X2),X1),X3)) = f(X0,X1),
    inference(demodulation,[status(thm)],[c_26008,c_61]) ).

cnf(c_26741,plain,
    join(meet(X0,X1),meet(X2,X1)) = meet(X1,join(X0,X2)),
    inference(superposition,[status(thm)],[c_62,c_20386]) ).

cnf(c_26742,plain,
    join(meet(X0,meet(X1,X2)),meet(X3,meet(X0,X1))) = meet(meet(X0,X1),join(X2,X3)),
    inference(superposition,[status(thm)],[c_64,c_20386]) ).

cnf(c_26745,plain,
    join(meet(X0,meet(X1,X2)),meet(X3,X1)) = meet(X1,join(meet(X0,X2),X3)),
    inference(superposition,[status(thm)],[c_17030,c_20386]) ).

cnf(c_26758,plain,
    join(meet(f(cc,dd),X0),meet(f(bb,dd),f(aa,dd))) = meet(f(cc,dd),join(X0,f(bb,dd))),
    inference(superposition,[status(thm)],[c_81,c_20386]) ).

cnf(c_26790,plain,
    meet(X0,join(meet(X1,X2),meet(X2,X3))) = meet(meet(X0,X2),join(X3,X1)),
    inference(ac_demodulation,[status(thm)],[c_26742,c_20381,c_64,c_62,c_65,c_63]) ).

cnf(c_26791,plain,
    meet(meet(X0,X1),join(X2,X3)) = meet(X0,meet(X1,join(X3,X2))),
    inference(ac_demodulation,[status(thm)],[c_26790,c_20379,c_64,c_62,c_65,c_63]) ).

cnf(c_27448,plain,
    meet(join(meet(X0,X1),X2),meet(X1,join(X0,X3))) = join(meet(X0,X1),meet(X2,meet(X1,X3))),
    inference(superposition,[status(thm)],[c_20379,c_49]) ).

cnf(c_27454,plain,
    join(meet(X0,X1),meet(X2,X0)) = meet(X0,join(X2,X1)),
    inference(superposition,[status(thm)],[c_20379,c_63]) ).

cnf(c_27477,plain,
    meet(join(X0,X1),meet(X2,join(X3,X0))) = meet(X2,join(meet(X3,X1),X0)),
    inference(ac_demodulation,[status(thm)],[c_27448,c_23317,c_26745,c_64,c_62,c_65,c_63]) ).

cnf(c_27928,plain,
    meet(X0,join(X1,meet(X2,X0))) = join(meet(X0,X1),meet(X2,X0)),
    inference(superposition,[status(thm)],[c_58,c_20388]) ).

cnf(c_27938,plain,
    meet(f(X0,X1),join(X2,meet(X3,f(X0,join(X1,X4))))) = join(meet(f(X0,X1),X2),meet(X3,f(X0,X1))),
    inference(superposition,[status(thm)],[c_19858,c_20388]) ).

cnf(c_27959,plain,
    meet(X0,join(X1,meet(X2,X0))) = meet(X0,join(X2,X1)),
    inference(demodulation,[status(thm)],[c_27928,c_27454]) ).

cnf(c_27975,plain,
    meet(f(X0,X1),join(X2,meet(X3,f(X0,join(X1,X4))))) = meet(f(X0,X1),join(X3,X2)),
    inference(demodulation,[status(thm)],[c_27938,c_27454]) ).

cnf(c_28948,plain,
    meet(X0,join(meet(meet(X0,X1),X1),X2)) = join(meet(X0,X1),meet(X0,X2)),
    inference(superposition,[status(thm)],[c_58,c_20381]) ).

cnf(c_28995,plain,
    join(meet(X0,X1),meet(X2,meet(X0,X3))) = meet(X0,join(meet(X2,X3),X1)),
    inference(superposition,[status(thm)],[c_20381,c_63]) ).

cnf(c_29009,plain,
    meet(X0,join(meet(X1,meet(X0,X1)),X2)) = meet(X0,join(X1,X2)),
    inference(demodulation,[status(thm)],[c_28948,c_50,c_23315]) ).

cnf(c_29010,plain,
    meet(X0,join(meet(X0,X1),X2)) = meet(X0,join(X1,X2)),
    inference(ac_demodulation,[status(thm)],[c_29009,c_58,c_64,c_62,c_65,c_63]) ).

cnf(c_29638,plain,
    meet(join(X0,X1),join(X2,X0)) = join(X0,meet(X2,X1)),
    inference(superposition,[status(thm)],[c_20590,c_62]) ).

cnf(c_30288,plain,
    meet(join(X0,X1),join(X2,X0)) = join(X0,meet(X1,join(X2,X0))),
    inference(superposition,[status(thm)],[c_59,c_20602]) ).

cnf(c_30329,plain,
    join(X0,meet(X1,join(X2,X0))) = join(X0,meet(X2,X1)),
    inference(demodulation,[status(thm)],[c_30288,c_29638]) ).

cnf(c_31350,plain,
    meet(join(X0,X1),join(X2,join(X0,X3))) = join(X0,meet(join(X2,X3),X1)),
    inference(superposition,[status(thm)],[c_20592,c_62]) ).

cnf(c_37674,plain,
    meet(meet(join(X0,X1),X2),meet(join(X0,X1),join(X2,join(X0,X3)))) = meet(join(X0,X1),X2),
    inference(superposition,[status(thm)],[c_20609,c_60]) ).

cnf(c_37719,plain,
    meet(X0,join(meet(X1,meet(join(X0,X2),X1)),X3)) = meet(join(X3,X1),X0),
    inference(demodulation,[status(thm)],[c_37674,c_23315,c_26791,c_27477,c_31350]) ).

cnf(c_37720,plain,
    meet(X0,join(meet(X1,join(X0,X2)),X3)) = meet(join(X3,X1),X0),
    inference(ac_demodulation,[status(thm)],[c_37719,c_58,c_64,c_62,c_65,c_63]) ).

cnf(c_44763,plain,
    meet(f(cc,dd),f(join(bb,aa),dd)) = f(cc,dd),
    inference(superposition,[status(thm)],[c_80,c_20862]) ).

cnf(c_45441,plain,
    meet(X0,join(meet(X1,join(X2,meet(X0,X1))),meet(X3,X4))) = join(meet(X0,X1),meet(X3,meet(X0,X4))),
    inference(superposition,[status(thm)],[c_20877,c_20388]) ).

cnf(c_45524,plain,
    meet(join(meet(X0,X1),X2),X3) = meet(X3,join(meet(X0,X1),X2)),
    inference(demodulation,[status(thm)],[c_45441,c_27959,c_28995,c_37720]) ).

cnf(c_49034,plain,
    join(f(join(X0,X1),X2),meet(X3,f(X0,X2))) = f(join(X0,X1),X2),
    inference(superposition,[status(thm)],[c_20083,c_21127]) ).

cnf(c_49920,plain,
    join(X0,join(join(X1,meet(X2,join(X0,X1))),X3)) = join(join(X0,X1),X3),
    inference(superposition,[status(thm)],[c_21140,c_65]) ).

cnf(c_49974,plain,
    join(X0,join(join(X1,meet(X0,X2)),X3)) = join(join(X0,X1),X3),
    inference(demodulation,[status(thm)],[c_49920,c_30329]) ).

cnf(c_49975,plain,
    join(join(X0,X1),X2) = join(X1,join(X2,X0)),
    inference(ac_demodulation,[status(thm)],[c_49974,c_61,c_64,c_62,c_65,c_63]) ).

cnf(c_52386,plain,
    meet(f(X0,X1),join(X2,meet(X3,f(X0,join(X1,X4))))) = meet(join(meet(f(X0,X1),X2),X3),f(X0,X1)),
    inference(superposition,[status(thm)],[c_21487,c_20620]) ).

cnf(c_52424,plain,
    meet(f(X0,X1),join(X2,X3)) = meet(f(X0,X1),join(X3,X2)),
    inference(demodulation,[status(thm)],[c_52386,c_27975,c_29010,c_45524]) ).

cnf(c_157550,plain,
    join(f(join(X0,X1),X2),meet(X3,f(X0,X2))) = join(f(join(X0,X1),X2),f(X0,X2)),
    inference(superposition,[status(thm)],[c_26018,c_22189]) ).

cnf(c_157588,plain,
    f(join(X0,X1),X2) = f(join(X1,X0),X2),
    inference(demodulation,[status(thm)],[c_157550,c_51,c_59,c_49034,c_49975]) ).

cnf(c_244064,plain,
    meet(f(aa,dd),join(f(cc,dd),f(bb,dd))) = meet(f(cc,dd),join(f(aa,dd),f(bb,dd))),
    inference(superposition,[status(thm)],[c_26758,c_26741]) ).

cnf(c_244070,plain,
    f(aa,dd) = f(cc,dd),
    inference(demodulation,[status(thm)],[c_244064,c_51,c_80,c_20862,c_44763,c_52424,c_157588]) ).

cnf(c_244250,plain,
    $false,
    inference(backward_subsumption_resolution,[status(thm)],[c_57,c_244070]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.13  % Problem  : LAT038-1 : TPTP v8.1.2. Released v2.4.0.
% 0.13/0.13  % Command  : run_iprover %s %d THM
% 0.13/0.35  % Computer : n003.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 : 300
% 0.13/0.35  % WCLimit  : 300
% 0.13/0.35  % DateTime : Thu Aug 24 07:06:23 EDT 2023
% 0.13/0.35  % CPUTime  : 
% 0.20/0.48  Running UEQ theorem proving
% 0.20/0.48  Running: /export/starexec/sandbox2/solver/bin/run_problem --schedule casc_29_ueq --heuristic_context ueq --no_cores 8 /export/starexec/sandbox2/benchmark/theBenchmark.p 300
% 262.70/34.73  % SZS status Started for theBenchmark.p
% 262.70/34.73  % SZS status Unsatisfiable for theBenchmark.p
% 262.70/34.73  
% 262.70/34.73  %---------------- iProver v3.8 (pre SMT-COMP 2023/CASC 2023) ----------------%
% 262.70/34.73  
% 262.70/34.73  ------  iProver source info
% 262.70/34.73  
% 262.70/34.73  git: date: 2023-05-31 18:12:56 +0000
% 262.70/34.73  git: sha1: 8abddc1f627fd3ce0bcb8b4cbf113b3cc443d7b6
% 262.70/34.73  git: non_committed_changes: false
% 262.70/34.73  git: last_make_outside_of_git: false
% 262.70/34.73  
% 262.70/34.73  ------ Parsing...successful
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  ------ Preprocessing... sup_sim: 0  sf_s  rm: 0 0s  sf_e  pe_s  pe_e 
% 262.70/34.73  
% 262.70/34.73  ------ Preprocessing... gs_s  sp: 0 0s  gs_e  snvd_s sp: 0 0s snvd_e 
% 262.70/34.73  
% 262.70/34.73  ------ Preprocessing... sf_s  rm: 0 0s  sf_e 
% 262.70/34.73  ------ Proving...
% 262.70/34.73  ------ Problem Properties 
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  clauses                                 17
% 262.70/34.73  conjectures                             17
% 262.70/34.73  EPR                                     0
% 262.70/34.73  Horn                                    17
% 262.70/34.73  unary                                   17
% 262.70/34.73  binary                                  0
% 262.70/34.73  lits                                    17
% 262.70/34.73  lits eq                                 17
% 262.70/34.73  fd_pure                                 0
% 262.70/34.73  fd_pseudo                               0
% 262.70/34.73  fd_cond                                 0
% 262.70/34.73  fd_pseudo_cond                          0
% 262.70/34.73  AC symbols                              2
% 262.70/34.73  
% 262.70/34.73  ------ Input Options Time Limit: Unbounded
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  ------ 
% 262.70/34.73  Current options:
% 262.70/34.73  ------ 
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  ------ Proving...
% 262.70/34.73  
% 262.70/34.73  
% 262.70/34.73  % SZS status Unsatisfiable for theBenchmark.p
% 262.70/34.73  
% 262.70/34.73  % SZS output start CNFRefutation for theBenchmark.p
% See solution above
% 262.70/34.73  
% 262.70/34.73  
%------------------------------------------------------------------------------