TSTP Solution File: KRS158+1 by Leo-III---1.7.12

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Leo-III---1.7.12
% Problem  : KRS158+1 : TPTP v8.2.0. Released v3.1.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_Leo-III %s %d

% Computer : n014.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 : Mon May 20 23:18:35 EDT 2024

% Result   : Theorem 3.78s 2.08s
% Output   : Refutation 3.86s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    3
%            Number of leaves      :   56
% Syntax   : Number of formulae    :   89 (  23 unt;  25 typ;   0 def)
%            Number of atoms       :  199 (   0 equ;   0 cnn)
%            Maximal formula atoms :   15 (   3 avg)
%            Number of connectives :  394 (  23   ~;   0   |;  79   &; 236   @)
%                                         (  18 <=>;  38  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   5 avg)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :   26 (  26   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   26 (  25 usr;   4 con; 0-2 aty)
%            Number of variables   :   74 (   0   ^  44   !;  30   ?;  74   :)

% Comments : 
%------------------------------------------------------------------------------
thf(cowlThing_type,type,
    cowlThing: $i > $o ).

thf(cowlNothing_type,type,
    cowlNothing: $i > $o ).

thf(xsd_string_type,type,
    xsd_string: $i > $o ).

thf(xsd_integer_type,type,
    xsd_integer: $i > $o ).

thf(cC18_type,type,
    cC18: $i > $o ).

thf(iV16560_type,type,
    iV16560: $i ).

thf(cC14_type,type,
    cC14: $i > $o ).

thf(cC8_type,type,
    cC8: $i > $o ).

thf(cC16_type,type,
    cC16: $i > $o ).

thf(cC6_type,type,
    cC6: $i > $o ).

thf(iV16561_type,type,
    iV16561: $i ).

thf(cC12_type,type,
    cC12: $i > $o ).

thf(iV16562_type,type,
    iV16562: $i ).

thf(cC4_type,type,
    cC4: $i > $o ).

thf(ra_Px6_type,type,
    ra_Px6: $i > $i > $o ).

thf(cC10_type,type,
    cC10: $i > $o ).

thf(ra_Px3_type,type,
    ra_Px3: $i > $i > $o ).

thf(cC10xcomp_type,type,
    cC10xcomp: $i > $o ).

thf(rR1_type,type,
    rR1: $i > $i > $o ).

thf(cC2xcomp_type,type,
    cC2xcomp: $i > $o ).

thf(ra_Px1_type,type,
    ra_Px1: $i > $i > $o ).

thf(cC2_type,type,
    cC2: $i > $o ).

thf(cC4xcomp_type,type,
    cC4xcomp: $i > $o ).

thf(cTEST_type,type,
    cTEST: $i > $o ).

thf(cTOP_type,type,
    cTOP: $i > $o ).

thf(13,axiom,
    ! [A: $i] :
      ( ( cTEST @ A )
    <=> ( ( cTOP @ A )
        & ( cC18 @ A ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_16) ).

thf(88,plain,
    ! [A: $i] :
      ( ( ( cTEST @ A )
       => ( ( cTOP @ A )
          & ( cC18 @ A ) ) )
      & ( ( ( cTOP @ A )
          & ( cC18 @ A ) )
       => ( cTEST @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[13]) ).

thf(24,axiom,
    ! [A: $i] :
      ( ( cC12 @ A )
    <=> ( ( cC10xcomp @ A )
        & ( cC2xcomp @ A ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_5) ).

thf(120,plain,
    ! [A: $i] :
      ( ( ( cC12 @ A )
       => ( ( cC10xcomp @ A )
          & ( cC2xcomp @ A ) ) )
      & ( ( ( cC10xcomp @ A )
          & ( cC2xcomp @ A ) )
       => ( cC12 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[24]) ).

thf(32,axiom,
    ! [A: $i] :
      ( ( cC16 @ A )
    <=> ( ( cC14 @ A )
        & ( cC8 @ A ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_7) ).

thf(142,plain,
    ! [A: $i] :
      ( ( ( cC16 @ A )
       => ( ( cC14 @ A )
          & ( cC8 @ A ) ) )
      & ( ( ( cC14 @ A )
          & ( cC8 @ A ) )
       => ( cC16 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[32]) ).

thf(19,axiom,
    ! [A: $i] :
      ( ( cC8 @ A )
    <=> ? [B: $i] :
          ( ( rR1 @ A @ B )
          & ( cC6 @ B ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_15) ).

thf(110,plain,
    ! [A: $i] :
      ( ( ( cC8 @ A )
       => ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC6 @ B ) ) )
      & ( ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC6 @ B ) )
       => ( cC8 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[19]) ).

thf(20,axiom,
    rR1 @ iV16560 @ iV16562,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_20) ).

thf(116,plain,
    rR1 @ iV16560 @ iV16562,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[20]) ).

thf(8,axiom,
    ! [A: $i] :
      ( ( cC2 @ A )
    <=> ~ ? [B: $i] : ( ra_Px1 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_9) ).

thf(65,plain,
    ! [A: $i] :
      ( ( ( cC2 @ A )
       => ~ ? [B: $i] : ( ra_Px1 @ A @ B ) )
      & ( ~ ? [B: $i] : ( ra_Px1 @ A @ B )
       => ( cC2 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[8]) ).

thf(31,axiom,
    cTOP @ iV16560,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_19) ).

thf(141,plain,
    cTOP @ iV16560,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[31]) ).

thf(27,axiom,
    cowlThing @ iV16560,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_17) ).

thf(129,plain,
    cowlThing @ iV16560,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[27]) ).

thf(26,axiom,
    cC4xcomp @ iV16561,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_24) ).

thf(128,plain,
    cC4xcomp @ iV16561,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[26]) ).

thf(17,axiom,
    cC2xcomp @ iV16561,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_25) ).

thf(108,plain,
    cC2xcomp @ iV16561,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[17]) ).

thf(16,axiom,
    ! [A: $i] :
      ( ( cC18 @ A )
    <=> ( ( cTOP @ A )
        & ( cC16 @ A ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_8) ).

thf(102,plain,
    ! [A: $i] :
      ( ( ( cC18 @ A )
       => ( ( cTOP @ A )
          & ( cC16 @ A ) ) )
      & ( ( ( cTOP @ A )
          & ( cC16 @ A ) )
       => ( cC18 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[16]) ).

thf(7,axiom,
    ! [A: $i] :
      ( ( cC2xcomp @ A )
    <=> ? [B: $i] : ( ra_Px1 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_10) ).

thf(60,plain,
    ! [A: $i] :
      ( ( ( cC2xcomp @ A )
       => ? [B: $i] : ( ra_Px1 @ A @ B ) )
      & ( ? [B: $i] : ( ra_Px1 @ A @ B )
       => ( cC2xcomp @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[7]) ).

thf(21,axiom,
    rR1 @ iV16560 @ iV16561,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_21) ).

thf(117,plain,
    rR1 @ iV16560 @ iV16561,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[21]) ).

thf(9,axiom,
    ! [A: $i] :
      ( ( cC4xcomp @ A )
    <=> ~ ? [B: $i] : ( ra_Px6 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_13) ).

thf(70,plain,
    ! [A: $i] :
      ( ( ( cC4xcomp @ A )
       => ~ ? [B: $i] : ( ra_Px6 @ A @ B ) )
      & ( ~ ? [B: $i] : ( ra_Px6 @ A @ B )
       => ( cC4xcomp @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[9]) ).

thf(1,conjecture,
    ( ! [A: $i] :
        ( ( cowlThing @ A )
        & ~ ( cowlNothing @ A ) )
    & ! [A: $i] :
        ( ( xsd_string @ A )
      <=> ~ ( xsd_integer @ A ) )
    & ( cC18 @ iV16560 )
    & ( cC14 @ iV16560 )
    & ( cC8 @ iV16560 )
    & ( cC16 @ iV16560 )
    & ( cowlThing @ iV16560 )
    & ( cC6 @ iV16561 )
    & ( cowlThing @ iV16561 )
    & ( cC12 @ iV16562 )
    & ( cowlThing @ iV16562 ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',the_axiom) ).

thf(2,negated_conjecture,
    ~ ( ! [A: $i] :
          ( ( cowlThing @ A )
          & ~ ( cowlNothing @ A ) )
      & ! [A: $i] :
          ( ( xsd_string @ A )
        <=> ~ ( xsd_integer @ A ) )
      & ( cC18 @ iV16560 )
      & ( cC14 @ iV16560 )
      & ( cC8 @ iV16560 )
      & ( cC16 @ iV16560 )
      & ( cowlThing @ iV16560 )
      & ( cC6 @ iV16561 )
      & ( cowlThing @ iV16561 )
      & ( cC12 @ iV16562 )
      & ( cowlThing @ iV16562 ) ),
    inference(neg_conjecture,[status(cth)],[1]) ).

thf(33,plain,
    ~ ( ! [A: $i] :
          ( ( cowlThing @ A )
          & ~ ( cowlNothing @ A ) )
      & ! [A: $i] :
          ( ( ( xsd_string @ A )
           => ~ ( xsd_integer @ A ) )
          & ( ~ ( xsd_integer @ A )
           => ( xsd_string @ A ) ) )
      & ( cC18 @ iV16560 )
      & ( cC14 @ iV16560 )
      & ( cC8 @ iV16560 )
      & ( cC16 @ iV16560 )
      & ( cowlThing @ iV16560 )
      & ( cC6 @ iV16561 )
      & ( cowlThing @ iV16561 )
      & ( cC12 @ iV16562 )
      & ( cowlThing @ iV16562 ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[2]) ).

thf(18,axiom,
    cowlThing @ iV16561,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_22) ).

thf(109,plain,
    cowlThing @ iV16561,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[18]) ).

thf(15,axiom,
    ! [A: $i] :
      ( ( cC14 @ A )
    <=> ? [B: $i] :
          ( ( rR1 @ A @ B )
          & ( cC12 @ B ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_6) ).

thf(96,plain,
    ! [A: $i] :
      ( ( ( cC14 @ A )
       => ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC12 @ B ) ) )
      & ( ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC12 @ B ) )
       => ( cC14 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[15]) ).

thf(4,axiom,
    ! [A: $i] :
      ( ( cC10 @ A )
    <=> ? [B: $i] : ( ra_Px3 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_2) ).

thf(44,plain,
    ! [A: $i] :
      ( ( ( cC10 @ A )
       => ? [B: $i] : ( ra_Px3 @ A @ B ) )
      & ( ? [B: $i] : ( ra_Px3 @ A @ B )
       => ( cC10 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[4]) ).

thf(22,axiom,
    cC10xcomp @ iV16562,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_28) ).

thf(118,plain,
    cC10xcomp @ iV16562,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[22]) ).

thf(6,axiom,
    ! [A: $i] :
      ( ( cC10 @ A )
    <=> ? [B: $i] :
          ( ( rR1 @ A @ B )
          & ( cC2xcomp @ B ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_3) ).

thf(54,plain,
    ! [A: $i] :
      ( ( ( cC10 @ A )
       => ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC2xcomp @ B ) ) )
      & ( ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC2xcomp @ B ) )
       => ( cC10 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[6]) ).

thf(5,axiom,
    ! [A: $i] :
      ( ( cC10xcomp @ A )
    <=> ~ ? [B: $i] : ( ra_Px3 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_4) ).

thf(49,plain,
    ! [A: $i] :
      ( ( ( cC10xcomp @ A )
       => ~ ? [B: $i] : ( ra_Px3 @ A @ B ) )
      & ( ~ ? [B: $i] : ( ra_Px3 @ A @ B )
       => ( cC10xcomp @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[5]) ).

thf(11,axiom,
    cowlThing @ iV16562,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_26) ).

thf(81,plain,
    cowlThing @ iV16562,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[11]) ).

thf(3,axiom,
    ! [A: $i] :
      ( ( cC4 @ A )
    <=> ? [B: $i] : ( ra_Px6 @ A @ B ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_11) ).

thf(39,plain,
    ! [A: $i] :
      ( ( ( cC4 @ A )
       => ? [B: $i] : ( ra_Px6 @ A @ B ) )
      & ( ? [B: $i] : ( ra_Px6 @ A @ B )
       => ( cC4 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[3]) ).

thf(28,axiom,
    ! [A: $i] :
      ( ( xsd_string @ A )
    <=> ~ ( xsd_integer @ A ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_1) ).

thf(130,plain,
    ! [A: $i] :
      ( ( ( xsd_string @ A )
       => ~ ( xsd_integer @ A ) )
      & ( ~ ( xsd_integer @ A )
       => ( xsd_string @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[28]) ).

thf(29,axiom,
    cTEST @ iV16560,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_18) ).

thf(135,plain,
    cTEST @ iV16560,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[29]) ).

thf(10,axiom,
    ! [A: $i] :
      ( ( cC4 @ A )
    <=> ? [B: $i] :
          ( ( rR1 @ A @ B )
          & ( cC2xcomp @ B ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_12) ).

thf(75,plain,
    ! [A: $i] :
      ( ( ( cC4 @ A )
       => ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC2xcomp @ B ) ) )
      & ( ? [B: $i] :
            ( ( rR1 @ A @ B )
            & ( cC2xcomp @ B ) )
       => ( cC4 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[10]) ).

thf(23,axiom,
    cC2xcomp @ iV16562,
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_29) ).

thf(119,plain,
    cC2xcomp @ iV16562,
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[23]) ).

thf(12,axiom,
    ! [A: $i] :
      ( ( cC6 @ A )
    <=> ( ( cC4xcomp @ A )
        & ( cC2xcomp @ A ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_14) ).

thf(82,plain,
    ! [A: $i] :
      ( ( ( cC6 @ A )
       => ( ( cC4xcomp @ A )
          & ( cC2xcomp @ A ) ) )
      & ( ( ( cC4xcomp @ A )
          & ( cC2xcomp @ A ) )
       => ( cC6 @ A ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[12]) ).

thf(14,axiom,
    ! [A: $i] :
      ( ( rR1 @ iV16561 @ A )
     => ( cC2 @ A ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_23) ).

thf(94,plain,
    ! [A: $i] :
      ( ( rR1 @ iV16561 @ A )
     => ( cC2 @ A ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[14]) ).

thf(25,axiom,
    ! [A: $i] :
      ( ( rR1 @ iV16562 @ A )
     => ( cC2 @ A ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_27) ).

thf(126,plain,
    ! [A: $i] :
      ( ( rR1 @ iV16562 @ A )
     => ( cC2 @ A ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[25]) ).

thf(30,axiom,
    ! [A: $i] :
      ( ( cowlThing @ A )
      & ~ ( cowlNothing @ A ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',axiom_0) ).

thf(136,plain,
    ! [A: $i] :
      ( ( cowlThing @ A )
      & ~ ( cowlNothing @ A ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[30]) ).

thf(148,plain,
    $false,
    inference(e,[status(thm)],[88,120,142,110,116,65,141,129,128,108,102,60,117,70,33,109,96,44,118,54,49,81,39,130,135,75,119,82,94,126,136]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.12  % Problem  : KRS158+1 : TPTP v8.2.0. Released v3.1.0.
% 0.14/0.15  % Command  : run_Leo-III %s %d
% 0.16/0.36  % Computer : n014.cluster.edu
% 0.16/0.36  % Model    : x86_64 x86_64
% 0.16/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.36  % Memory   : 8042.1875MB
% 0.16/0.36  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.16/0.36  % CPULimit : 300
% 0.16/0.36  % WCLimit  : 300
% 0.16/0.36  % DateTime : Sat May 18 22:19:54 EDT 2024
% 0.16/0.36  % CPUTime  : 
% 0.95/0.87  % [INFO] 	 Parsing problem /export/starexec/sandbox/benchmark/theBenchmark.p ... 
% 1.32/1.03  % [INFO] 	 Parsing done (153ms). 
% 1.32/1.04  % [INFO] 	 Running in sequential loop mode. 
% 1.69/1.27  % [INFO] 	 eprover registered as external prover. 
% 1.69/1.27  % [INFO] 	 cvc4 registered as external prover. 
% 1.69/1.27  % [INFO] 	 Scanning for conjecture ... 
% 1.87/1.34  % [INFO] 	 Found a conjecture (or negated_conjecture) and 30 axioms. Running axiom selection ... 
% 1.98/1.41  % [INFO] 	 Axiom selection finished. Selected 30 axioms (removed 0 axioms). 
% 2.23/1.44  % [INFO] 	 Problem is first-order (TPTP FOF). 
% 2.23/1.45  % [INFO] 	 Type checking passed. 
% 2.23/1.46  % [CONFIG] 	 Using configuration: timeout(300) with strategy<name(default),share(1.0),primSubst(3),sos(false),unifierCount(4),uniDepth(8),boolExt(true),choice(true),renaming(true),funcspec(false), domConstr(0),specialInstances(39),restrictUniAttempts(true),termOrdering(CPO)>.  Searching for refutation ... 
% 3.78/2.08  % External prover 'e' found a proof!
% 3.78/2.08  % [INFO] 	 Killing All external provers ... 
% 3.78/2.08  % Time passed: 1545ms (effective reasoning time: 1042ms)
% 3.78/2.08  % Solved by strategy<name(default),share(1.0),primSubst(3),sos(false),unifierCount(4),uniDepth(8),boolExt(true),choice(true),renaming(true),funcspec(false), domConstr(0),specialInstances(39),restrictUniAttempts(true),termOrdering(CPO)>
% 3.78/2.08  % Axioms used in derivation (30): axiom_10, axiom_22, axiom_15, axiom_2, axiom_27, axiom_6, axiom_16, axiom_3, axiom_20, axiom_24, axiom_1, axiom_28, axiom_8, axiom_17, axiom_25, axiom_0, axiom_23, axiom_9, axiom_14, axiom_4, axiom_7, axiom_26, axiom_21, axiom_19, axiom_5, axiom_13, axiom_29, axiom_11, axiom_18, axiom_12
% 3.78/2.08  % No. of inferences in proof: 64
% 3.78/2.08  % SZS status Theorem for /export/starexec/sandbox/benchmark/theBenchmark.p : 1545 ms resp. 1042 ms w/o parsing
% 3.86/2.14  % SZS output start Refutation for /export/starexec/sandbox/benchmark/theBenchmark.p
% See solution above
% 3.86/2.14  % [INFO] 	 Killing All external provers ... 
%------------------------------------------------------------------------------