↑ Up

iProver---3.9.4.UNS-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : iProver---3.9.4
% Problem  : REL011-2 : TPTP v9.3.1. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_iprover 300 /export/starexec/sandbox/benchmark/theBenchmark.p THM

% Computer : n001.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8046.5625MB
% OS       : Linux 6.8.0-71-generic
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Fri Sep 25 02:36:35 PM UTC 2026

% Result   : Unsatisfiable 3.42s 2.79s
% Output   : CNFRefutation 3.42s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   23
%            Number of leaves      :   16
% Syntax   : Number of formulae    :   87 (  87 unt;   0 def)
%            Number of atoms       :   87 (  86 equ)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :    5 (   5   ~;   0   |;   0   &)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    4 (   2 avg)
%            Maximal term depth    :   11 (   2 avg)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    0 (   0   >;   0   *;   0   +;   0  <<)
%            Number of predicates  :    2 (   0 usr;   1 prp; 0-2 aty)
%            Number of functors    :   11 (  11 usr;   6 con; 0-2 aty)
%            Number of variables   :  110 (   0 sgn 110   !;   0   ?;  69   :)

% Comments : 
%------------------------------------------------------------------------------
fof(f1,axiom,
    ! [X0,X1] : join(X0,X1) = join(X1,X0),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',maddux1_join_commutativity_1) ).

fof(f2,axiom,
    ! [X2,X0,X1] : join(X0,join(X1,X2)) = join(join(X0,X1),X2),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',maddux2_join_associativity_2) ).

fof(f3,axiom,
    ! [X0,X1] : X0 = join(complement(join(complement(X0),complement(X1))),complement(join(complement(X0),X1))),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',maddux3_a_kind_of_de_Morgan_3) ).

fof(f4,plain,
    ! [X0,X1] : join(complement(join(complement(X0),complement(X1))),complement(join(complement(X0),X1))) = X0,
    inference(reorient_equations,[],[f3]) ).

fof(f5,axiom,
    ! [X0,X1] : meet(X0,X1) = complement(join(complement(X0),complement(X1))),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',maddux4_definiton_of_meet_4) ).

fof(f6,plain,
    ! [X0,X1] : complement(join(complement(X0),complement(X1))) = meet(X0,X1),
    inference(reorient_equations,[],[f5]) ).

fof(f7,axiom,
    ! [X2,X0,X1] : composition(X0,composition(X1,X2)) = composition(composition(X0,X1),X2),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',composition_associativity_5) ).

fof(f8,axiom,
    ! [X0] : composition(X0,one) = X0,
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',composition_identity_6) ).

fof(f9,axiom,
    ! [X2,X0,X1] : composition(join(X0,X1),X2) = join(composition(X0,X2),composition(X1,X2)),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',composition_distributivity_7) ).

fof(f10,axiom,
    ! [X0] : converse(converse(X0)) = X0,
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',converse_idempotence_8) ).

fof(f11,axiom,
    ! [X0,X1] : converse(join(X0,X1)) = join(converse(X0),converse(X1)),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',converse_additivity_9) ).

fof(f12,axiom,
    ! [X0,X1] : converse(composition(X0,X1)) = composition(converse(X1),converse(X0)),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',converse_multiplicativity_10) ).

fof(f13,axiom,
    ! [X0,X1] : join(composition(converse(X0),complement(composition(X0,X1))),complement(X1)) = complement(X1),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',converse_cancellativity_11) ).

fof(f14,plain,
    ! [X0,X1] : complement(X1) = join(composition(converse(X0),complement(composition(X0,X1))),complement(X1)),
    inference(reorient_equations,[],[f13]) ).

fof(f15,axiom,
    ! [X0] : top = join(X0,complement(X0)),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',def_top_12) ).

fof(f16,axiom,
    ! [X0] : zero = meet(X0,complement(X0)),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-0.ax',def_zero_13) ).

fof(f19,axiom,
    ! [X2,X0,X1] : join(meet(composition(X0,X1),X2),meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2)) = meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2),
    file('/export/starexec/sandbox/benchmark/Axioms/REL001-1.ax',modular_law_1_15) ).

fof(f20,plain,
    ! [X2,X0,X1] : meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2) = join(meet(composition(X0,X1),X2),meet(composition(X0,meet(X1,composition(converse(X0),X2))),X2)),
    inference(reorient_equations,[],[f19]) ).

fof(f23,negated_conjecture,
    meet(sk1,composition(converse(sk2),sk3)) = zero,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',goals_17) ).

fof(f24,plain,
    zero = meet(sk1,composition(converse(sk2),sk3)),
    inference(reorient_equations,[],[f23]) ).

fof(f25,negated_conjecture,
    meet(composition(sk2,sk1),sk3) != zero,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',goals_18) ).

fof(f26,plain,
    zero != meet(composition(sk2,sk1),sk3),
    inference(reorient_equations,[],[f25]) ).

fof(f27,plain,
    ! [X0] : zero = complement(join(complement(X0),complement(complement(X0)))),
    inference(definition_unfolding,[],[f16,f6]) ).

fof(f29,plain,
    ! [X2,X0,X1] : complement(join(complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2)))))),complement(X2))) = join(complement(join(complement(composition(X0,X1)),complement(X2))),complement(join(complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2)))))),complement(X2)))),
    inference(definition_unfolding,[],[f20,f6,f6,f6,f6,f6]) ).

fof(f31,plain,
    zero = complement(join(complement(sk1),complement(composition(converse(sk2),sk3)))),
    inference(definition_unfolding,[],[f24,f6]) ).

fof(f32,plain,
    zero != complement(join(complement(composition(sk2,sk1)),complement(sk3))),
    inference(definition_unfolding,[],[f26,f6]) ).

tcf(c_67,plain,
    ! [X0: $i,X1: $i] : join(X0,X1) = join(X1,X0),
    inference(cnf_transformation,[],[f1]) ).

tcf(c_68,plain,
    ! [X0: $i,X1: $i,X2: $i] : join(join(X0,X1),X2) = join(X0,join(X1,X2)),
    inference(cnf_transformation,[],[f2]) ).

tcf(c_69,plain,
    ! [X0: $i,X1: $i] : join(complement(join(complement(X0),complement(X1))),complement(join(complement(X0),X1))) = X0,
    inference(cnf_transformation,[],[f4]) ).

tcf(c_70,plain,
    ! [X0: $i,X1: $i,X2: $i] : composition(composition(X0,X1),X2) = composition(X0,composition(X1,X2)),
    inference(cnf_transformation,[],[f7]) ).

tcf(c_71,plain,
    ! [X0: $i] : composition(X0,one) = X0,
    inference(cnf_transformation,[],[f8]) ).

tcf(c_72,plain,
    ! [X0: $i,X1: $i,X2: $i] : join(composition(X0,X1),composition(X2,X1)) = composition(join(X0,X2),X1),
    inference(cnf_transformation,[],[f9]) ).

tcf(c_73,plain,
    ! [X0: $i] : converse(converse(X0)) = X0,
    inference(cnf_transformation,[],[f10]) ).

tcf(c_74,plain,
    ! [X0: $i,X1: $i] : join(converse(X0),converse(X1)) = converse(join(X0,X1)),
    inference(cnf_transformation,[],[f11]) ).

tcf(c_75,plain,
    ! [X0: $i,X1: $i] : composition(converse(X0),converse(X1)) = converse(composition(X1,X0)),
    inference(cnf_transformation,[],[f12]) ).

tcf(c_76,plain,
    ! [X0: $i,X1: $i] : join(composition(converse(X0),complement(composition(X0,X1))),complement(X1)) = complement(X1),
    inference(cnf_transformation,[],[f14]) ).

tcf(c_77,plain,
    ! [X0: $i] : join(X0,complement(X0)) = top,
    inference(cnf_transformation,[],[f15]) ).

tcf(c_78,plain,
    ! [X0: $i] : complement(join(complement(X0),complement(complement(X0)))) = zero,
    inference(cnf_transformation,[],[f27]) ).

tcf(c_80,plain,
    ! [X0: $i,X1: $i,X2: $i] : join(complement(join(complement(composition(X0,X1)),complement(X2))),complement(join(complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2)))))),complement(X2)))) = complement(join(complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2)))))),complement(X2))),
    inference(cnf_transformation,[],[f29]) ).

tcf(c_82,negated_conjecture,
    complement(join(complement(sk1),complement(composition(converse(sk2),sk3)))) = zero,
    inference(cnf_transformation,[],[f31]) ).

tcf(c_83,negated_conjecture,
    complement(join(complement(composition(sk2,sk1)),complement(sk3))) != zero,
    inference(cnf_transformation,[],[f32]) ).

tcf(c_99,plain,
    ! [X0: $i,X1: $i] : join(complement(join(complement(X0),X1)),complement(join(complement(X0),complement(X1)))) = X0,
    inference(theory_normalisation,[status(thm)],[c_69,c_68,c_67]) ).

tcf(c_100,plain,
    ! [X0: $i,X1: $i] : join(complement(X0),composition(converse(X1),complement(composition(X1,X0)))) = complement(X0),
    inference(theory_normalisation,[status(thm)],[c_76,c_68,c_67]) ).

tcf(c_101,plain,
    ! [X0: $i,X1: $i,X2: $i] : join(complement(join(complement(composition(X0,X1)),complement(X2))),complement(join(complement(X2),complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2))))))))) = complement(join(complement(X2),complement(composition(X0,complement(join(complement(X1),complement(composition(converse(X0),X2)))))))),
    inference(theory_normalisation,[status(thm)],[c_80,c_68,c_67]) ).

tcf(c_103,negated_conjecture,
    complement(join(complement(sk3),complement(composition(sk2,sk1)))) != zero,
    inference(theory_normalisation,[status(thm)],[c_83,c_68,c_67]) ).

tcf(c_142,plain,
    complement(top) = zero,
    inference(ac_demodulation,[status(thm)],[c_78,c_77,c_68,c_67]) ).

tcf(c_228,plain,
    join(complement(join(complement(composition(sk2,sk1)),complement(sk3))),complement(join(complement(sk3),complement(composition(sk2,zero))))) = complement(join(complement(sk3),complement(composition(sk2,zero)))),
    inference(superposition,[status(thm)],[c_82,c_101]) ).

tcf(c_230,plain,
    join(complement(join(complement(sk3),complement(composition(sk2,zero)))),complement(join(complement(sk3),complement(composition(sk2,sk1))))) = complement(join(complement(sk3),complement(composition(sk2,zero)))),
    inference(theory_normalisation,[status(thm)],[c_228,c_68,c_67]) ).

tcf(c_246,plain,
    ! [X0: $i] : join(zero,composition(converse(X0),complement(composition(X0,top)))) = zero,
    inference(superposition,[status(thm)],[c_142,c_100]) ).

tcf(c_385,plain,
    ! [X0: $i,X1: $i] : converse(join(converse(X0),X1)) = join(X0,converse(X1)),
    inference(superposition,[status(thm)],[c_73,c_74]) ).

tcf(c_392,plain,
    ! [X0: $i,X1: $i] : converse(composition(converse(X0),X1)) = composition(converse(X1),X0),
    inference(superposition,[status(thm)],[c_73,c_75]) ).

tcf(c_420,plain,
    ! [X0: $i] : join(X0,converse(complement(converse(X0)))) = converse(top),
    inference(superposition,[status(thm)],[c_77,c_385]) ).

tcf(c_499,plain,
    ! [X0: $i,X1: $i] : join(X0,join(complement(X0),X1)) = join(top,X1),
    inference(superposition,[status(thm)],[c_77,c_68]) ).

tcf(c_505,plain,
    ! [X0: $i] : join(complement(join(complement(sk3),complement(composition(sk2,zero)))),join(complement(join(complement(sk3),complement(composition(sk2,sk1)))),X0)) = join(complement(join(complement(sk3),complement(composition(sk2,zero)))),X0),
    inference(superposition,[status(thm)],[c_230,c_68]) ).

tcf(c_733,plain,
    ! [X0: $i,X1: $i] : composition(X0,composition(one,X1)) = composition(X0,X1),
    inference(superposition,[status(thm)],[c_71,c_70]) ).

tcf(c_1441,plain,
    ! [X0: $i] : composition(converse(one),X0) = converse(converse(X0)),
    inference(superposition,[status(thm)],[c_71,c_392]) ).

tcf(c_1481,plain,
    ! [X0: $i] : composition(converse(one),X0) = X0,
    inference(light_normalisation,[status(thm)],[c_1441,c_73]) ).

tcf(c_1523,plain,
    ! [X0: $i] : join(complement(X0),complement(composition(one,X0))) = complement(X0),
    inference(superposition,[status(thm)],[c_1481,c_100]) ).

tcf(c_1565,plain,
    ! [X0: $i] : composition(converse(one),X0) = composition(one,X0),
    inference(superposition,[status(thm)],[c_1481,c_733]) ).

tcf(c_1569,plain,
    ! [X0: $i] : composition(one,X0) = X0,
    inference(light_normalisation,[status(thm)],[c_1565,c_1481]) ).

tcf(c_3675,plain,
    ! [X0: $i] : join(top,complement(complement(X0))) = join(X0,top),
    inference(superposition,[status(thm)],[c_77,c_499]) ).

tcf(c_5819,plain,
    ! [X0: $i] : join(complement(X0),complement(X0)) = complement(X0),
    inference(light_normalisation,[status(thm)],[c_1523,c_1569]) ).

tcf(c_5820,plain,
    join(zero,zero) = zero,
    inference(superposition,[status(thm)],[c_82,c_5819]) ).

tcf(c_5827,plain,
    ! [X0: $i] : join(complement(join(complement(X0),X0)),complement(complement(X0))) = X0,
    inference(superposition,[status(thm)],[c_5819,c_99]) ).

tcf(c_5828,plain,
    ! [X0: $i] : join(X0,complement(X0)) = join(top,complement(X0)),
    inference(superposition,[status(thm)],[c_5819,c_499]) ).

tcf(c_5854,plain,
    ! [X0: $i] : join(top,complement(X0)) = top,
    inference(light_normalisation,[status(thm)],[c_5828,c_77]) ).

tcf(c_5855,plain,
    ! [X0: $i] : join(complement(complement(X0)),complement(join(X0,complement(X0)))) = X0,
    inference(theory_normalisation,[status(thm)],[c_5827,c_68,c_67]) ).

tcf(c_5856,plain,
    ! [X0: $i] : join(complement(complement(X0)),zero) = X0,
    inference(light_normalisation,[status(thm)],[c_5855,c_77,c_142]) ).

tcf(c_5857,plain,
    ! [X0: $i] : join(zero,complement(complement(X0))) = X0,
    inference(theory_normalisation,[status(thm)],[c_5856,c_68,c_67]) ).

tcf(c_5908,plain,
    ! [X0: $i] : join(X0,top) = top,
    inference(demodulation,[status(thm)],[c_3675,c_5854]) ).

tcf(c_6101,plain,
    ! [X0: $i] : join(zero,join(zero,X0)) = join(zero,X0),
    inference(superposition,[status(thm)],[c_5820,c_68]) ).

tcf(c_6110,plain,
    ! [X0: $i] : join(top,X0) = top,
    inference(superposition,[status(thm)],[c_5908,c_67]) ).

tcf(c_6142,plain,
    converse(top) = top,
    inference(superposition,[status(thm)],[c_6110,c_420]) ).

tcf(c_7179,plain,
    ! [X0: $i] : join(zero,X0) = X0,
    inference(superposition,[status(thm)],[c_5857,c_6101]) ).

tcf(c_7197,plain,
    ! [X0: $i] : composition(converse(X0),complement(composition(X0,top))) = zero,
    inference(demodulation,[status(thm)],[c_246,c_7179]) ).

tcf(c_7344,plain,
    ! [X0: $i] : join(X0,zero) = X0,
    inference(superposition,[status(thm)],[c_7179,c_67]) ).

tcf(c_7349,plain,
    complement(zero) = top,
    inference(superposition,[status(thm)],[c_7179,c_77]) ).

tcf(c_8048,plain,
    composition(top,complement(composition(top,top))) = zero,
    inference(superposition,[status(thm)],[c_6142,c_7197]) ).

tcf(c_8202,plain,
    ! [X0: $i] : composition(join(X0,top),complement(composition(top,top))) = join(composition(X0,complement(composition(top,top))),zero),
    inference(superposition,[status(thm)],[c_8048,c_72]) ).

tcf(c_8208,plain,
    ! [X0: $i] : composition(join(X0,top),complement(composition(top,top))) = join(zero,composition(X0,complement(composition(top,top)))),
    inference(theory_normalisation,[status(thm)],[c_8202,c_68,c_67]) ).

tcf(c_8209,plain,
    ! [X0: $i] : join(zero,composition(X0,complement(composition(top,top)))) = zero,
    inference(light_normalisation,[status(thm)],[c_8208,c_5908,c_8048]) ).

tcf(c_10451,plain,
    ! [X0: $i] : composition(X0,complement(composition(top,top))) = zero,
    inference(demodulation,[status(thm)],[c_8209,c_7179]) ).

tcf(c_10479,plain,
    complement(composition(top,top)) = zero,
    inference(superposition,[status(thm)],[c_10451,c_1569]) ).

tcf(c_10515,plain,
    ! [X0: $i] : composition(X0,zero) = zero,
    inference(demodulation,[status(thm)],[c_10451,c_10479]) ).

tcf(c_30758,plain,
    ! [X0: $i] : join(complement(join(complement(sk3),complement(composition(sk2,sk1)))),X0) = X0,
    inference(demodulation,[status(thm)],[c_505,c_142,c_5908,c_7179,c_7349,c_10515]) ).

tcf(c_30892,plain,
    complement(join(complement(sk3),complement(composition(sk2,sk1)))) = zero,
    inference(superposition,[status(thm)],[c_30758,c_7344]) ).

tcf(c_30957,plain,
    $false,
    inference(forward_subsumption_resolution,[status(thm)],[c_30892,c_103]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02  % Problem  : REL011-2 : TPTP v9.3.1. Released v4.0.0.
% 0.00/0.04  % Command  : run_iprover 300 /export/starexec/sandbox/benchmark/theBenchmark.p THM
% 0.08/0.36  % Computer : n001.cluster.edu
% 0.08/0.36  % Model    : x86_64 x86_64
% 0.08/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.08/0.36  % Memory   : 8046.5625MB
% 0.08/0.36  % OS       : Linux 6.8.0-71-generic
% 0.08/0.36  % CPULimit : 300
% 0.08/0.36  % WCLimit  : 300
% 0.08/0.36  % DateTime : Thu Sep 24 07:16:37 UTC 2026
% 0.08/0.37  % CPUTime  : 
% 0.08/0.37  Running run_iprover 300 /export/starexec/sandbox/benchmark/theBenchmark.p THM
% 0.08/0.40  Running UEQ theorem proving
% 0.08/0.40  Running: /export/starexec/sandbox/solver/bin/iproveropt-multi-core.sh -d -n -l tptp -s ueq_schedule -t 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.08/0.41  
% 0.08/0.41  % ======== iProver multi-core TPTP/SMT =========
% 0.08/0.41  
% 0.08/0.41  % Detected problem language: tptp
% 0.08/0.43  % Proving...
% 3.42/2.79  WARNING - Clausifier option not provided in the heuristic config "heur/vip2_118404", setting default options.
% 3.42/2.79  % SZS status Started for theBenchmark.p
% 3.42/2.79  % SZS status Unsatisfiable for theBenchmark.p
% 3.42/2.79  
% 3.42/2.79  %---------------- iProver v3.9.4 (pre CASC 2026/SMT-COMP 2026) ----------------%
% 3.42/2.79  
% 3.42/2.79  % ------  iProver source info
% 3.42/2.79  
% 3.42/2.79  % git: date: 2026-07-19 20:42:38 +0200
% 3.42/2.79  % git: sha1: 804e7d636a263075307957e923b7a22a4035de61
% 3.42/2.79  % git: non_committed_changes: false
% 3.42/2.79  
% 3.42/2.79  % ------ Parsing...% successful
% 3.42/2.79  
% 3.42/2.79  
% 3.42/2.79  % ------ Clausification by vclausify_rel  & Parsing by iProver...% 
% 3.42/2.79  
% 3.42/2.79  % ------ Preprocessing... sup_sim: 1  sf_s  rm: 0 0s  sf_e  pe_s  pe_e % 
% 3.42/2.79  
% 3.42/2.79  % ------ Preprocessing... gs_s  sp: 0 0s  gs_e  snvd_s sp: 0 0s snvd_e % 
% 3.42/2.79  
% 3.42/2.79  % ------ Preprocessing... sf_s  rm: 0 0s  sf_e 
% 3.42/2.79  % ------ Proving...
% 3.42/2.79  % ------ Problem Properties 
% 3.42/2.79  
% 3.42/2.79  % 
% 3.42/2.79  % clauses                               17
% 3.42/2.79  % conjectures                           2
% 3.42/2.79  % EPR                                   0
% 3.42/2.79  % Horn                                  17
% 3.42/2.79  % unary                                 17
% 3.42/2.79  % binary                                0
% 3.42/2.79  % lits                                  17
% 3.42/2.79  % lits eq                               17
% 3.42/2.79  % fd_pure                               0
% 3.42/2.79  % fd_pseudo                             0
% 3.42/2.79  % fd_cond                               0
% 3.42/2.79  % fd_pseudo_cond                        0
% 3.42/2.79  % AC symbols                            1
% 3.42/2.79  
% 3.42/2.79  % ------ Input Options Time Limit: Unbounded
% 3.42/2.79  
% 3.42/2.79  
% 3.42/2.79  % ------ 
% 3.42/2.79  % Current options:
% 3.42/2.79  % ------ 
% 3.42/2.79  
% 3.42/2.79  
% 3.42/2.79  % 
% 3.42/2.79  
% 3.42/2.79  % ------ Proving...
% 3.42/2.79  % 
% 3.42/2.79  
% 3.42/2.79  % SZS status Unsatisfiable for theBenchmark.p
% 3.42/2.79  
% 3.42/2.79  % SZS output start CNFRefutation for theBenchmark.p
% See solution above
% 3.42/2.79  
% 3.42/2.79  
%------------------------------------------------------------------------------