↑ Up

Leo-III---1.8.0.CAX-Ref.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Leo-III---1.8.0
% Problem  : LAT299+2 : TPTP v9.3.1. Released v3.4.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p  --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39

% Computer : n012.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 : Sun Sep 27 07:47:05 AM UTC 2026

% Result   : ContradictoryAxioms 69.44s 22.62s
% Output   : Refutation 69.44s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   14
%            Number of leaves      :   10
% Syntax   : Number of formulae    :   54 (  20 unt;   0 typ;   4 def)
%            Number of atoms       :  158 (  77 equ;   0 cnn)
%            Maximal formula atoms :    9 (   2 avg)
%            Number of connectives :  389 (  52   ~;  32   |;  38   &; 245   @)
%                                         (   2 <=>;  20  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   5 avg)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :    4 (   4   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   15 (  12 usr;   3 con; 0-2 aty)
%            Number of variables   :  117 (   3   ^; 100   !;  10   ?; 117   :)
%                                         (   0  !>;   0  ?*;   0  @-;   4  @+)

% Comments : 
%------------------------------------------------------------------------------
thf(v1_xboole_0_decl,type,
    v1_xboole_0: $i > $o ).

thf(k2_zfmisc_1_decl,type,
    k2_zfmisc_1: $i > $i > $i ).

thf(m1_subset_1_decl,type,
    m1_subset_1: $i > $i > $o ).

thf(k1_xboole_0_decl,type,
    k1_xboole_0: $i ).

thf(r1_tarski_decl,type,
    r1_tarski: $i > $i > $o ).

thf(k1_zfmisc_1_decl,type,
    k1_zfmisc_1: $i > $i ).

thf(r2_hidden_decl,type,
    r2_hidden: $i > $i > $o ).

thf(r2_tarski_decl,type,
    r2_tarski: $i > $i > $o ).

thf(sk22_decl,type,
    sk22: $i > $i ).

thf(sk43_decl,type,
    sk43: $i > $i > $i ).

thf(sk102_decl,type,
    sk102: $i > $i ).

thf(sk198_decl,type,
    sk198: $i > $i ).

thf(sk22_def,definition,
    ( sk22
    = ( ^ [A: $i] :
        @+[B: $i] : ( A @ ( B @ r2_hidden ) ) ) ) ).

thf(sk43_def,definition,
    ( sk43
    = ( @+[A: $i > $i > $i] :
        ! [B: $i,C: $i] :
          ( ( C @ ( B @ k2_zfmisc_1 ) @ ( C @ A ) )
          = B ) ) ) ).

thf(sk102_def,definition,
    ( sk102
    = ( ^ [A: $i] :
        @+[B: $i] :
          ( ( B @ v1_xboole_0 )
          & ( A @ k1_zfmisc_1 @ ( B @ m1_subset_1 ) ) ) ) ) ).

thf(sk198_def,definition,
    ( sk198
    = ( ^ [A: $i] :
        @+[B: $i] :
          ( ~ ? [C: $i] :
                ( ~ ( B @ ( C @ r2_hidden ) )
                & ~ ( B @ ( C @ r2_tarski ) )
                & ( B @ ( C @ r1_tarski ) ) )
          & ! [C: $i] :
              ( ( B @ ( C @ r2_hidden ) )
             => ( B @ ( C @ k1_zfmisc_1 @ r2_hidden ) ) )
          & ! [C: $i,D: $i] :
              ( ( ( C @ ( D @ r1_tarski ) )
                & ( B @ ( C @ r2_hidden ) ) )
             => ( B @ ( D @ r2_hidden ) ) )
          & ( B @ ( A @ r2_hidden ) ) ) ) ) ).

thf(73,axiom,
    ! [A: $i,B: $i] :
      ( ( ( B @ ( A @ k2_zfmisc_1 ) )
        = k1_xboole_0 )
    <=> ( ( B = k1_xboole_0 )
        | ( A = k1_xboole_0 ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t113_zfmisc_1) ).

thf(1025,plain,
    ! [A: $i,B: $i] :
      ( ( ( ( B = k1_xboole_0 )
          | ( A = k1_xboole_0 ) )
       => ( ( B @ ( A @ k2_zfmisc_1 ) )
          = k1_xboole_0 ) )
      & ( ( ( B @ ( A @ k2_zfmisc_1 ) )
          = k1_xboole_0 )
       => ( ( B = k1_xboole_0 )
          | ( A = k1_xboole_0 ) ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[73]) ).

thf(1026,plain,
    ( ! [A: $i,B: $i] :
        ( ( ( B = k1_xboole_0 )
          | ( A = k1_xboole_0 ) )
       => ( ( B @ ( A @ k2_zfmisc_1 ) )
          = k1_xboole_0 ) )
    & ! [A: $i,B: $i] :
        ( ( ( B @ ( A @ k2_zfmisc_1 ) )
          = k1_xboole_0 )
       => ( ( B = k1_xboole_0 )
          | ( A = k1_xboole_0 ) ) ) ),
    inference(miniscope,[status(thm)],[1025]) ).

thf(1027,plain,
    ! [D: $i,C: $i,B: $i,A: $i] :
      ( ( ( ( D @ ( C @ k2_zfmisc_1 ) )
          = k1_xboole_0 )
        | ( D != k1_xboole_0 ) )
      & ( ( ( D @ ( C @ k2_zfmisc_1 ) )
          = k1_xboole_0 )
        | ( C != k1_xboole_0 ) )
      & ( ( B = k1_xboole_0 )
        | ( A = k1_xboole_0 )
        | ( ( B @ ( A @ k2_zfmisc_1 ) )
         != k1_xboole_0 ) ) ),
    inference(cnf,[status(esa)],[1026]) ).

thf(1030,plain,
    ! [B: $i,A: $i] :
      ( ( ( B @ ( A @ k2_zfmisc_1 ) )
        = k1_xboole_0 )
      | ( B != k1_xboole_0 ) ),
    inference(cnfConj,[status(thm)],[1027]) ).

thf(1034,plain,
    ! [B: $i,A: $i] :
      ( ( ( B @ ( A @ k2_zfmisc_1 ) )
        = k1_xboole_0 )
      | ( B != k1_xboole_0 ) ),
    inference(lifteq,[status(thm)],[1030]) ).

thf(1035,plain,
    ! [A: $i] :
      ( ( k1_xboole_0 @ ( A @ k2_zfmisc_1 ) )
      = k1_xboole_0 ),
    inference(simp,[status(thm)],[1034]) ).

thf(105,axiom,
    ! [A: $i,B: $i] :
      ( ( ( A @ ( A @ k2_zfmisc_1 ) )
        = ( B @ ( B @ k2_zfmisc_1 ) ) )
     => ( A = B ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t115_zfmisc_1) ).

thf(1184,plain,
    ! [A: $i,B: $i] :
      ( ( ( A @ ( A @ k2_zfmisc_1 ) )
        = ( B @ ( B @ k2_zfmisc_1 ) ) )
     => ( A = B ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[105]) ).

thf(1185,plain,
    ! [B: $i,A: $i] :
      ( ( A = B )
      | ( ( A @ ( A @ k2_zfmisc_1 ) )
       != ( B @ ( B @ k2_zfmisc_1 ) ) ) ),
    inference(cnf,[status(esa)],[1184]) ).

thf(1186,plain,
    ! [B: $i,A: $i] :
      ( ( A = B )
      | ( ( A @ ( A @ k2_zfmisc_1 ) )
       != ( B @ ( B @ k2_zfmisc_1 ) ) ) ),
    inference(lifteq,[status(thm)],[1185]) ).

thf(1187,plain,
    ? [A: $i > $i > $i] :
    ! [B: $i,C: $i] :
      ( ( C @ ( B @ k2_zfmisc_1 ) @ ( C @ A ) )
      = B ),
    inference(detectInverse,[status(thm)],[1186]) ).

thf(1188,plain,
    ! [B: $i,A: $i] :
      ( ( B @ ( A @ k2_zfmisc_1 ) @ ( B @ sk43 ) )
      = A ),
    inference(cnf,[status(esa)],[1187]) ).

thf(40846,plain,
    ! [B: $i,A: $i] :
      ( ( B @ ( A @ k2_zfmisc_1 ) @ ( B @ sk43 ) )
      = A ),
    inference(lifteq,[status(thm)],[1188]) ).

thf(40871,plain,
    ! [C: $i,B: $i,A: $i] :
      ( ( ( k1_xboole_0 @ ( A @ k2_zfmisc_1 ) )
       != ( C @ ( B @ k2_zfmisc_1 ) ) )
      | ( ( k1_xboole_0 @ ( C @ sk43 ) )
        = B ) ),
    inference(paramod_ordered,[status(thm)],[1035,40846]) ).

thf(40872,plain,
    ! [A: $i] :
      ( ( k1_xboole_0 @ ( k1_xboole_0 @ sk43 ) )
      = A ),
    inference(pattern_uni,[status(thm)],[40871:[bind(A,$thf( A )),bind(B,$thf( A )),bind(C,$thf( k1_xboole_0 ))]]) ).

thf(447,axiom,
    ! [A: $i] :
    ? [B: $i] :
      ( ! [C: $i] :
          ~ ( ~ ( B @ ( C @ r2_hidden ) )
            & ~ ( B @ ( C @ r2_tarski ) )
            & ( B @ ( C @ r1_tarski ) ) )
      & ! [C: $i] :
          ( ( B @ ( C @ r2_hidden ) )
         => ( B @ ( C @ k1_zfmisc_1 @ r2_hidden ) ) )
      & ! [C: $i,D: $i] :
          ( ( ( C @ ( D @ r1_tarski ) )
            & ( B @ ( C @ r2_hidden ) ) )
         => ( B @ ( D @ r2_hidden ) ) )
      & ( B @ ( A @ r2_hidden ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t136_zfmisc_1) ).

thf(3053,plain,
    ! [A: $i] :
    ? [B: $i] :
      ( ! [C: $i] :
          ~ ( ~ ( B @ ( C @ r2_hidden ) )
            & ~ ( B @ ( C @ r2_tarski ) )
            & ( B @ ( C @ r1_tarski ) ) )
      & ! [C: $i] :
          ( ( B @ ( C @ r2_hidden ) )
         => ( B @ ( C @ k1_zfmisc_1 @ r2_hidden ) ) )
      & ! [C: $i,D: $i] :
          ( ( ( C @ ( D @ r1_tarski ) )
            & ( B @ ( C @ r2_hidden ) ) )
         => ( B @ ( D @ r2_hidden ) ) )
      & ( B @ ( A @ r2_hidden ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[447]) ).

thf(3054,plain,
    ! [A: $i] :
    ? [B: $i] :
      ( ~ ? [C: $i] :
            ( ~ ( B @ ( C @ r2_hidden ) )
            & ~ ( B @ ( C @ r2_tarski ) )
            & ( B @ ( C @ r1_tarski ) ) )
      & ! [C: $i] :
          ( ( B @ ( C @ r2_hidden ) )
         => ( B @ ( C @ k1_zfmisc_1 @ r2_hidden ) ) )
      & ! [C: $i,D: $i] :
          ( ( ( C @ ( D @ r1_tarski ) )
            & ( B @ ( C @ r2_hidden ) ) )
         => ( B @ ( D @ r2_hidden ) ) )
      & ( B @ ( A @ r2_hidden ) ) ),
    inference(miniscope,[status(thm)],[3053]) ).

thf(3055,plain,
    ! [E: $i,D: $i,C: $i,B: $i,A: $i] :
      ( ( ( A @ sk198 @ ( E @ r2_hidden ) )
        | ( A @ sk198 @ ( E @ r2_tarski ) )
        | ~ ( A @ sk198 @ ( E @ r1_tarski ) ) )
      & ( ( A @ sk198 @ ( D @ k1_zfmisc_1 @ r2_hidden ) )
        | ~ ( A @ sk198 @ ( D @ r2_hidden ) ) )
      & ( ( A @ sk198 @ ( C @ r2_hidden ) )
        | ~ ( B @ ( C @ r1_tarski ) )
        | ~ ( A @ sk198 @ ( B @ r2_hidden ) ) )
      & ( A @ sk198 @ ( A @ r2_hidden ) ) ),
    inference(cnf,[status(esa)],[3054]) ).

thf(3056,plain,
    ! [A: $i] : ( A @ sk198 @ ( A @ r2_hidden ) ),
    inference(cnfConj,[status(thm)],[3055]) ).

thf(57,axiom,
    ! [A: $i] :
      ( ( A = k1_xboole_0 )
    <=> ! [B: $i] :
          ~ ( A @ ( B @ r2_hidden ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',d1_xboole_0) ).

thf(940,plain,
    ! [A: $i] :
      ( ( ! [B: $i] :
            ~ ( A @ ( B @ r2_hidden ) )
       => ( A = k1_xboole_0 ) )
      & ( ( A = k1_xboole_0 )
       => ! [B: $i] :
            ~ ( A @ ( B @ r2_hidden ) ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[57]) ).

thf(941,plain,
    ( ! [A: $i] :
        ( ~ ? [B: $i] : ( A @ ( B @ r2_hidden ) )
       => ( A = k1_xboole_0 ) )
    & ! [A: $i] :
        ( ( A = k1_xboole_0 )
       => ~ ? [B: $i] : ( A @ ( B @ r2_hidden ) ) ) ),
    inference(miniscope,[status(thm)],[940]) ).

thf(942,plain,
    ! [C: $i,B: $i,A: $i] :
      ( ( ( C = k1_xboole_0 )
        | ( C @ ( C @ sk22 @ r2_hidden ) ) )
      & ( ~ ( A @ ( B @ r2_hidden ) )
        | ( A != k1_xboole_0 ) ) ),
    inference(cnf,[status(esa)],[941]) ).

thf(943,plain,
    ! [B: $i,A: $i] :
      ( ~ ( A @ ( B @ r2_hidden ) )
      | ( A != k1_xboole_0 ) ),
    inference(cnfConj,[status(thm)],[942]) ).

thf(945,plain,
    ! [B: $i,A: $i] :
      ( ~ ( A @ ( B @ r2_hidden ) )
      | ( A != k1_xboole_0 ) ),
    inference(lifteq,[status(thm)],[943]) ).

thf(946,plain,
    ! [A: $i] :
      ~ ( k1_xboole_0 @ ( A @ r2_hidden ) ),
    inference(simp,[status(thm)],[945]) ).

thf(25369,plain,
    ! [B: $i,A: $i] :
      ( ( ( A @ sk198 @ ( A @ r2_hidden ) )
       != ( k1_xboole_0 @ ( B @ r2_hidden ) ) )
      | ~ $true ),
    inference(paramod_ordered,[status(thm)],[3056,946]) ).

thf(25370,plain,
    ! [B: $i,A: $i] :
      ( ( A @ sk198 @ ( A @ r2_hidden ) )
     != ( k1_xboole_0 @ ( B @ r2_hidden ) ) ),
    inference(simp,[status(thm)],[25369]) ).

thf(25373,plain,
    ! [B: $i,A: $i] :
      ( ( ( A @ sk198 )
       != k1_xboole_0 )
      | ( A != B ) ),
    inference(simp,[status(thm)],[25370]) ).

thf(25380,plain,
    ! [A: $i] :
      ( ( A @ sk198 )
     != k1_xboole_0 ),
    inference(simp,[status(thm)],[25373]) ).

thf(41052,plain,
    ! [B: $i,A: $i] :
      ( ( A
       != ( B @ sk198 ) )
      | ( ( k1_xboole_0 @ ( k1_xboole_0 @ sk43 ) )
       != k1_xboole_0 ) ),
    inference(paramod_ordered,[status(thm)],[40872,25380]) ).

thf(41053,plain,
    ( ( k1_xboole_0 @ ( k1_xboole_0 @ sk43 ) )
   != k1_xboole_0 ),
    inference(pattern_uni,[status(thm)],[41052:[bind(A,$thf( C @ sk198 )),bind(B,$thf( C ))]]) ).

thf(250,axiom,
    ! [A: $i] :
    ? [B: $i] :
      ( ( B @ v1_xboole_0 )
      & ( A @ k1_zfmisc_1 @ ( B @ m1_subset_1 ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',rc2_subset_1) ).

thf(1896,plain,
    ! [A: $i] :
    ? [B: $i] :
      ( ( B @ v1_xboole_0 )
      & ( A @ k1_zfmisc_1 @ ( B @ m1_subset_1 ) ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[250]) ).

thf(1897,plain,
    ! [A: $i] :
      ( ( A @ sk102 @ v1_xboole_0 )
      & ( A @ k1_zfmisc_1 @ ( A @ sk102 @ m1_subset_1 ) ) ),
    inference(cnf,[status(esa)],[1896]) ).

thf(1899,plain,
    ! [A: $i] : ( A @ sk102 @ v1_xboole_0 ),
    inference(cnfConj,[status(thm)],[1897]) ).

thf(10,axiom,
    ! [A: $i] :
      ( ( A @ v1_xboole_0 )
     => ( A = k1_xboole_0 ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',t6_boole) ).

thf(721,plain,
    ! [A: $i] :
      ( ( A @ v1_xboole_0 )
     => ( A = k1_xboole_0 ) ),
    inference(defexp_and_simp_and_etaexpand,[status(thm)],[10]) ).

thf(722,plain,
    ! [A: $i] :
      ( ( A = k1_xboole_0 )
      | ~ ( A @ v1_xboole_0 ) ),
    inference(cnf,[status(esa)],[721]) ).

thf(723,plain,
    ! [A: $i] :
      ( ~ ( A @ v1_xboole_0 )
      | ( A = k1_xboole_0 ) ),
    inference(lifteq,[status(thm)],[722]) ).

thf(20489,plain,
    ! [B: $i,A: $i] :
      ( ( ( A @ sk102 @ v1_xboole_0 )
       != ( B @ v1_xboole_0 ) )
      | ~ $true
      | ( B = k1_xboole_0 ) ),
    inference(paramod_ordered,[status(thm)],[1899,723]) ).

thf(20490,plain,
    ! [B: $i,A: $i] :
      ( ( ( A @ sk102 @ v1_xboole_0 )
       != ( B @ v1_xboole_0 ) )
      | ( B = k1_xboole_0 ) ),
    inference(simp,[status(thm)],[20489]) ).

thf(20491,plain,
    ! [A: $i] :
      ( ( A @ sk102 )
      = k1_xboole_0 ),
    inference(pattern_uni,[status(thm)],[20490:[bind(A,$thf( C )),bind(B,$thf( C @ sk102 ))]]) ).

thf(20524,plain,
    ! [A: $i] :
      ( ( A @ sk102 )
      = k1_xboole_0 ),
    inference(simp,[status(thm)],[20491]) ).

thf(41048,plain,
    ! [B: $i,A: $i] :
      ( ( A
       != ( B @ sk102 ) )
      | ( ( k1_xboole_0 @ ( k1_xboole_0 @ sk43 ) )
        = k1_xboole_0 ) ),
    inference(paramod_ordered,[status(thm)],[40872,20524]) ).

thf(41049,plain,
    ( ( k1_xboole_0 @ ( k1_xboole_0 @ sk43 ) )
    = k1_xboole_0 ),
    inference(pattern_uni,[status(thm)],[41048:[bind(A,$thf( C @ sk102 )),bind(B,$thf( C ))]]) ).

thf(43123,plain,
    k1_xboole_0 != k1_xboole_0,
    inference(rewrite,[status(thm)],[41053,41049]) ).

thf(43124,plain,
    $false,
    inference(simp,[status(thm)],[43123]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.01  % Problem  : LAT299+2 : TPTP v9.3.1. Released v3.4.0.
% 0.00/0.04  % Command  : java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p  --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39
% 0.05/5.32  % Computer : n012.cluster.edu
% 0.05/5.32  % Model    : x86_64 x86_64
% 0.05/5.32  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.05/5.32  % Memory   : 8046.5625MB
% 0.05/5.32  % OS       : Linux 6.8.0-71-generic
% 0.05/5.32  % CPULimit : 300
% 0.05/5.32  % WCLimit  : 300
% 0.05/5.32  % DateTime : Fri Sep 25 20:35:57 UTC 2026
% 0.05/5.33  % CPUTime  : 
% 0.05/5.33  Running java -Xss128m -Xmx2g -Xms1g -jar /export/starexec/sandbox2/solver/bin/leo3.jar /export/starexec/sandbox2/benchmark/theBenchmark.p -t 300 -p  --atp eprover=/export/starexec/sandbox2/solver/bin/externals/eprover --instantiate 39
% 0.08/5.61  % [INFO] 	 Parsing problem /export/starexec/sandbox2/benchmark/theBenchmark.p ... 
% 0.08/5.98  % [INFO] 	 Parsing done (375ms). 
% 0.08/5.99  % [INFO] 	 Running in sequential loop mode. 
% 2.32/6.18  % [INFO] 	 eprover registered as external prover. 
% 2.32/6.19  % [INFO] 	 Scanning for conjecture ... 
% 2.83/6.35  % [INFO] 	 Found a conjecture (or negated_conjecture) and 2934 axioms. Running axiom selection ... 
% 4.09/6.66  % [INFO] 	 Axiom selection finished. Selected 667 axioms (removed 2267 axioms). 
% 4.91/6.97  % [INFO] 	 Problem is first-order (TPTP FOF). 
% 4.91/6.99  % [INFO] 	 Type checking passed. 
% 4.91/7.00  % [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 ... 
% 69.44/22.62  % [INFO] 	 Killing All external provers ... 
% 69.44/22.62  % Time passed: 17221ms (effective reasoning time: 16626ms)
% 69.44/22.62  % Axioms used in derivation (6): t113_zfmisc_1, t115_zfmisc_1, d1_xboole_0, t136_zfmisc_1, t6_boole, rc2_subset_1
% 69.44/22.62  % No. of inferences in proof: 50
% 69.44/22.62  % SZS status ContradictoryAxioms for /export/starexec/sandbox2/benchmark/theBenchmark.p : 17221 ms resp. 16626 ms w/o parsing
% 69.44/22.66  % SZS output start Refutation for /export/starexec/sandbox2/benchmark/theBenchmark.p
% See solution above
% 69.44/22.66  % [INFO] 	 Killing All external provers ... 
%------------------------------------------------------------------------------