TSTP Solution File: SWV218+1 by SnakeForV-SAT---1.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SnakeForV-SAT---1.0
% Problem  : SWV218+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s

% Computer : n001.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 : Wed Aug 31 18:55:50 EDT 2022

% Result   : Theorem 0.19s 0.52s
% Output   : Refutation 0.19s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :    2
% Syntax   : Number of formulae    :   12 (   3 unt;   0 def)
%            Number of atoms       :  575 ( 542 equ)
%            Maximal formula atoms :  142 (  47 avg)
%            Number of connectives :  977 ( 414   ~; 157   |; 399   &)
%                                         (   0 <=>;   7  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   45 (  26 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of predicates  :    3 (   1 usr;   1 prp; 0-2 aty)
%            Number of functors    :   13 (  13 usr;  10 con; 0-2 aty)
%            Number of variables   :   12 (   6   !;   6   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f647,plain,
    $false,
    inference(trivial_inequality_removal,[],[f498]) ).

fof(f498,plain,
    ( sK10 != sK10
    | sK11 != sK11 ),
    inference(definition_unfolding,[],[f315,f339,f336]) ).

fof(f336,plain,
    n5 = sK11,
    inference(cnf_transformation,[],[f204]) ).

fof(f204,plain,
    ( ( n0 != sK11
      | n3 != sK10 )
    & ( n5 != sK10
      | n4 != sK11 )
    & n0 = sK10
    & ( n1 != sK11
      | n3 != sK10 )
    & ( n4 != sK10
      | n4 != sK11 )
    & n5 = sK11
    & ( n3 != sK11
      | n5 != sK10 )
    & ( n1 != sK11
      | n2 != sK10 )
    & ( n1 != sK11
      | n4 != sK10 )
    & ( n1 != sK11
      | n1 != sK10 )
    & ( n2 != sK10
      | n3 != sK11 )
    & ( n3 != sK10
      | n5 != sK11 )
    & ( n5 != sK11
      | n2 != sK10 )
    & n4 = sK11
    & ( n5 != sK11
      | n1 != sK10 )
    & ( n3 != sK10
      | n3 != sK11 )
    & ( n2 != sK11
      | n1 != sK10 )
    & n5 = sK10
    & leq(n0,sK11)
    & ( n4 != sK10
      | n5 != sK11 )
    & ( n2 != sK10
      | n4 != sK11 )
    & n0 != times(divide(n1,n400),a_select2(sigma,n5))
    & ( n2 != sK11
      | n2 != sK10 )
    & ( n5 != sK10
      | n0 != sK11 )
    & ( n4 != sK11
      | n1 != sK10 )
    & ( n4 != sK10
      | n2 != sK11 )
    & ( n0 != sK10
      | n5 != sK11 )
    & leq(sK10,n5)
    & ( n1 != sK10
      | n0 != sK11 )
    & leq(n0,sK10)
    & ( n4 != sK10
      | n0 != sK11 )
    & ( n2 != sK11
      | n5 != sK10 )
    & ( n2 != sK11
      | n3 != sK10 )
    & ( n0 != sK11
      | n2 != sK10 )
    & leq(sK11,n5)
    & ( n3 != sK11
      | n4 != sK10 )
    & ( n3 != sK10
      | n4 != sK11 )
    & ( n1 != sK11
      | n5 != sK10 )
    & ( n1 != sK10
      | n3 != sK11 )
    & ( n5 != sK10
      | n5 != sK11 ) ),
    inference(skolemisation,[status(esa),new_symbols(skolem,[sK10,sK11])],[f153,f203]) ).

fof(f203,plain,
    ( ? [X0,X1] :
        ( ( n0 != X1
          | n3 != X0 )
        & ( n5 != X0
          | n4 != X1 )
        & n0 = X0
        & ( n1 != X1
          | n3 != X0 )
        & ( n4 != X0
          | n4 != X1 )
        & n5 = X1
        & ( n3 != X1
          | n5 != X0 )
        & ( n1 != X1
          | n2 != X0 )
        & ( n1 != X1
          | n4 != X0 )
        & ( n1 != X1
          | n1 != X0 )
        & ( n2 != X0
          | n3 != X1 )
        & ( n3 != X0
          | n5 != X1 )
        & ( n5 != X1
          | n2 != X0 )
        & n4 = X1
        & ( n5 != X1
          | n1 != X0 )
        & ( n3 != X0
          | n3 != X1 )
        & ( n2 != X1
          | n1 != X0 )
        & n5 = X0
        & leq(n0,X1)
        & ( n4 != X0
          | n5 != X1 )
        & ( n2 != X0
          | n4 != X1 )
        & n0 != times(divide(n1,n400),a_select2(sigma,n5))
        & ( n2 != X1
          | n2 != X0 )
        & ( n5 != X0
          | n0 != X1 )
        & ( n4 != X1
          | n1 != X0 )
        & ( n4 != X0
          | n2 != X1 )
        & ( n0 != X0
          | n5 != X1 )
        & leq(X0,n5)
        & ( n1 != X0
          | n0 != X1 )
        & leq(n0,X0)
        & ( n4 != X0
          | n0 != X1 )
        & ( n2 != X1
          | n5 != X0 )
        & ( n2 != X1
          | n3 != X0 )
        & ( n0 != X1
          | n2 != X0 )
        & leq(X1,n5)
        & ( n3 != X1
          | n4 != X0 )
        & ( n3 != X0
          | n4 != X1 )
        & ( n1 != X1
          | n5 != X0 )
        & ( n1 != X0
          | n3 != X1 )
        & ( n5 != X0
          | n5 != X1 ) )
   => ( ( n0 != sK11
        | n3 != sK10 )
      & ( n5 != sK10
        | n4 != sK11 )
      & n0 = sK10
      & ( n1 != sK11
        | n3 != sK10 )
      & ( n4 != sK10
        | n4 != sK11 )
      & n5 = sK11
      & ( n3 != sK11
        | n5 != sK10 )
      & ( n1 != sK11
        | n2 != sK10 )
      & ( n1 != sK11
        | n4 != sK10 )
      & ( n1 != sK11
        | n1 != sK10 )
      & ( n2 != sK10
        | n3 != sK11 )
      & ( n3 != sK10
        | n5 != sK11 )
      & ( n5 != sK11
        | n2 != sK10 )
      & n4 = sK11
      & ( n5 != sK11
        | n1 != sK10 )
      & ( n3 != sK10
        | n3 != sK11 )
      & ( n2 != sK11
        | n1 != sK10 )
      & n5 = sK10
      & leq(n0,sK11)
      & ( n4 != sK10
        | n5 != sK11 )
      & ( n2 != sK10
        | n4 != sK11 )
      & n0 != times(divide(n1,n400),a_select2(sigma,n5))
      & ( n2 != sK11
        | n2 != sK10 )
      & ( n5 != sK10
        | n0 != sK11 )
      & ( n4 != sK11
        | n1 != sK10 )
      & ( n4 != sK10
        | n2 != sK11 )
      & ( n0 != sK10
        | n5 != sK11 )
      & leq(sK10,n5)
      & ( n1 != sK10
        | n0 != sK11 )
      & leq(n0,sK10)
      & ( n4 != sK10
        | n0 != sK11 )
      & ( n2 != sK11
        | n5 != sK10 )
      & ( n2 != sK11
        | n3 != sK10 )
      & ( n0 != sK11
        | n2 != sK10 )
      & leq(sK11,n5)
      & ( n3 != sK11
        | n4 != sK10 )
      & ( n3 != sK10
        | n4 != sK11 )
      & ( n1 != sK11
        | n5 != sK10 )
      & ( n1 != sK10
        | n3 != sK11 )
      & ( n5 != sK10
        | n5 != sK11 ) ) ),
    introduced(choice_axiom,[]) ).

fof(f153,plain,
    ? [X0,X1] :
      ( ( n0 != X1
        | n3 != X0 )
      & ( n5 != X0
        | n4 != X1 )
      & n0 = X0
      & ( n1 != X1
        | n3 != X0 )
      & ( n4 != X0
        | n4 != X1 )
      & n5 = X1
      & ( n3 != X1
        | n5 != X0 )
      & ( n1 != X1
        | n2 != X0 )
      & ( n1 != X1
        | n4 != X0 )
      & ( n1 != X1
        | n1 != X0 )
      & ( n2 != X0
        | n3 != X1 )
      & ( n3 != X0
        | n5 != X1 )
      & ( n5 != X1
        | n2 != X0 )
      & n4 = X1
      & ( n5 != X1
        | n1 != X0 )
      & ( n3 != X0
        | n3 != X1 )
      & ( n2 != X1
        | n1 != X0 )
      & n5 = X0
      & leq(n0,X1)
      & ( n4 != X0
        | n5 != X1 )
      & ( n2 != X0
        | n4 != X1 )
      & n0 != times(divide(n1,n400),a_select2(sigma,n5))
      & ( n2 != X1
        | n2 != X0 )
      & ( n5 != X0
        | n0 != X1 )
      & ( n4 != X1
        | n1 != X0 )
      & ( n4 != X0
        | n2 != X1 )
      & ( n0 != X0
        | n5 != X1 )
      & leq(X0,n5)
      & ( n1 != X0
        | n0 != X1 )
      & leq(n0,X0)
      & ( n4 != X0
        | n0 != X1 )
      & ( n2 != X1
        | n5 != X0 )
      & ( n2 != X1
        | n3 != X0 )
      & ( n0 != X1
        | n2 != X0 )
      & leq(X1,n5)
      & ( n3 != X1
        | n4 != X0 )
      & ( n3 != X0
        | n4 != X1 )
      & ( n1 != X1
        | n5 != X0 )
      & ( n1 != X0
        | n3 != X1 )
      & ( n5 != X0
        | n5 != X1 ) ),
    inference(flattening,[],[f152]) ).

fof(f152,plain,
    ? [X0,X1] :
      ( n0 != times(divide(n1,n400),a_select2(sigma,n5))
      & ( n3 != X1
        | n4 != X0 )
      & ( n2 != X0
        | n4 != X1 )
      & ( n3 != X0
        | n3 != X1 )
      & ( n1 != X1
        | n3 != X0 )
      & ( n2 != X0
        | n3 != X1 )
      & ( n3 != X0
        | n4 != X1 )
      & ( n4 != X0
        | n2 != X1 )
      & ( n2 != X1
        | n3 != X0 )
      & n5 = X0
      & ( n1 != X0
        | n3 != X1 )
      & ( n4 != X0
        | n4 != X1 )
      & ( n5 != X1
        | n1 != X0 )
      & ( n4 != X1
        | n1 != X0 )
      & ( n0 != X0
        | n5 != X1 )
      & n4 = X1
      & n0 = X0
      & ( n5 != X0
        | n4 != X1 )
      & n5 = X1
      & ( n2 != X1
        | n2 != X0 )
      & ( n1 != X1
        | n1 != X0 )
      & ( n5 != X0
        | n0 != X1 )
      & ( n5 != X1
        | n2 != X0 )
      & ( n4 != X0
        | n5 != X1 )
      & ( n0 != X1
        | n3 != X0 )
      & ( n0 != X1
        | n2 != X0 )
      & ( n1 != X0
        | n0 != X1 )
      & ( n1 != X1
        | n4 != X0 )
      & ( n2 != X1
        | n1 != X0 )
      & ( n1 != X1
        | n2 != X0 )
      & ( n3 != X0
        | n5 != X1 )
      & ( n2 != X1
        | n5 != X0 )
      & ( n3 != X1
        | n5 != X0 )
      & ( n5 != X0
        | n5 != X1 )
      & ( n4 != X0
        | n0 != X1 )
      & ( n1 != X1
        | n5 != X0 )
      & leq(n0,X0)
      & leq(X1,n5)
      & leq(n0,X1)
      & leq(X0,n5) ),
    inference(ennf_transformation,[],[f99]) ).

fof(f99,plain,
    ~ ! [X0,X1] :
        ( ( leq(n0,X0)
          & leq(X1,n5)
          & leq(n0,X1)
          & leq(X0,n5) )
       => ( ( ~ ( n3 = X1
                & n4 = X0 )
            & ~ ( n2 = X0
                & n4 = X1 )
            & ~ ( n3 = X0
                & n3 = X1 )
            & ~ ( n3 = X0
                & n1 = X1 )
            & ~ ( n3 = X1
                & n2 = X0 )
            & ~ ( n3 = X0
                & n4 = X1 )
            & ~ ( n2 = X1
                & n4 = X0 )
            & ~ ( n3 = X0
                & n2 = X1 )
            & n5 = X0
            & ~ ( n1 = X0
                & n3 = X1 )
            & ~ ( n4 = X0
                & n4 = X1 )
            & ~ ( n5 = X1
                & n1 = X0 )
            & ~ ( n1 = X0
                & n4 = X1 )
            & ~ ( n0 = X0
                & n5 = X1 )
            & n4 = X1
            & n0 = X0
            & ~ ( n4 = X1
                & n5 = X0 )
            & n5 = X1
            & ~ ( n2 = X0
                & n2 = X1 )
            & ~ ( n1 = X1
                & n1 = X0 )
            & ~ ( n0 = X1
                & n5 = X0 )
            & ~ ( n2 = X0
                & n5 = X1 )
            & ~ ( n4 = X0
                & n5 = X1 )
            & ~ ( n3 = X0
                & n0 = X1 )
            & ~ ( n0 = X1
                & n2 = X0 )
            & ~ ( n0 = X1
                & n1 = X0 )
            & ~ ( n4 = X0
                & n1 = X1 )
            & ~ ( n1 = X0
                & n2 = X1 )
            & ~ ( n1 = X1
                & n2 = X0 )
            & ~ ( n5 = X1
                & n3 = X0 )
            & ~ ( n5 = X0
                & n2 = X1 )
            & ~ ( n3 = X1
                & n5 = X0 )
            & ~ ( n5 = X0
                & n5 = X1 )
            & ~ ( n4 = X0
                & n0 = X1 )
            & ~ ( n1 = X1
                & n5 = X0 ) )
         => n0 = times(divide(n1,n400),a_select2(sigma,n5)) ) ),
    inference(rectify,[],[f54]) ).

fof(f54,negated_conjecture,
    ~ ! [X13,X17] :
        ( ( leq(X17,n5)
          & leq(X13,n5)
          & leq(n0,X17)
          & leq(n0,X13) )
       => ( ( ~ ( n5 = X13
                & n5 = X17 )
            & n4 = X17
            & ~ ( n5 = X13
                & n2 = X17 )
            & ~ ( n0 = X17
                & n3 = X13 )
            & ~ ( n2 = X13
                & n2 = X17 )
            & ~ ( n1 = X13
                & n3 = X17 )
            & ~ ( n0 = X17
                & n2 = X13 )
            & ~ ( n0 = X13
                & n5 = X17 )
            & ~ ( n5 = X13
                & n3 = X17 )
            & ~ ( n5 = X13
                & n4 = X17 )
            & ~ ( n4 = X17
                & n2 = X13 )
            & ~ ( n3 = X13
                & n3 = X17 )
            & ~ ( n1 = X13
                & n5 = X17 )
            & ~ ( n5 = X13
                & n1 = X17 )
            & ~ ( n0 = X17
                & n4 = X13 )
            & ~ ( n3 = X17
                & n2 = X13 )
            & ~ ( n2 = X17
                & n1 = X13 )
            & n5 = X17
            & ~ ( n3 = X13
                & n2 = X17 )
            & ~ ( n5 = X17
                & n2 = X13 )
            & ~ ( n3 = X17
                & n4 = X13 )
            & ~ ( n1 = X17
                & n4 = X13 )
            & ~ ( n1 = X17
                & n1 = X13 )
            & ~ ( n3 = X13
                & n1 = X17 )
            & ~ ( n5 = X17
                & n4 = X13 )
            & n0 = X13
            & n5 = X13
            & ~ ( n4 = X17
                & n3 = X13 )
            & ~ ( n1 = X13
                & n4 = X17 )
            & ~ ( n4 = X13
                & n2 = X17 )
            & ~ ( n2 = X13
                & n1 = X17 )
            & ~ ( n1 = X13
                & n0 = X17 )
            & ~ ( n4 = X17
                & n4 = X13 )
            & ~ ( n5 = X13
                & n0 = X17 )
            & ~ ( n3 = X13
                & n5 = X17 ) )
         => n0 = times(divide(n1,n400),a_select2(sigma,n5)) ) ),
    inference(negated_conjecture,[],[f53]) ).

fof(f53,conjecture,
    ! [X13,X17] :
      ( ( leq(X17,n5)
        & leq(X13,n5)
        & leq(n0,X17)
        & leq(n0,X13) )
     => ( ( ~ ( n5 = X13
              & n5 = X17 )
          & n4 = X17
          & ~ ( n5 = X13
              & n2 = X17 )
          & ~ ( n0 = X17
              & n3 = X13 )
          & ~ ( n2 = X13
              & n2 = X17 )
          & ~ ( n1 = X13
              & n3 = X17 )
          & ~ ( n0 = X17
              & n2 = X13 )
          & ~ ( n0 = X13
              & n5 = X17 )
          & ~ ( n5 = X13
              & n3 = X17 )
          & ~ ( n5 = X13
              & n4 = X17 )
          & ~ ( n4 = X17
              & n2 = X13 )
          & ~ ( n3 = X13
              & n3 = X17 )
          & ~ ( n1 = X13
              & n5 = X17 )
          & ~ ( n5 = X13
              & n1 = X17 )
          & ~ ( n0 = X17
              & n4 = X13 )
          & ~ ( n3 = X17
              & n2 = X13 )
          & ~ ( n2 = X17
              & n1 = X13 )
          & n5 = X17
          & ~ ( n3 = X13
              & n2 = X17 )
          & ~ ( n5 = X17
              & n2 = X13 )
          & ~ ( n3 = X17
              & n4 = X13 )
          & ~ ( n1 = X17
              & n4 = X13 )
          & ~ ( n1 = X17
              & n1 = X13 )
          & ~ ( n3 = X13
              & n1 = X17 )
          & ~ ( n5 = X17
              & n4 = X13 )
          & n0 = X13
          & n5 = X13
          & ~ ( n4 = X17
              & n3 = X13 )
          & ~ ( n1 = X13
              & n4 = X17 )
          & ~ ( n4 = X13
              & n2 = X17 )
          & ~ ( n2 = X13
              & n1 = X17 )
          & ~ ( n1 = X13
              & n0 = X17 )
          & ~ ( n4 = X17
              & n4 = X13 )
          & ~ ( n5 = X13
              & n0 = X17 )
          & ~ ( n3 = X13
              & n5 = X17 ) )
       => n0 = times(divide(n1,n400),a_select2(sigma,n5)) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',quaternion_ds1_symm_0281) ).

fof(f339,plain,
    n0 = sK10,
    inference(cnf_transformation,[],[f204]) ).

fof(f315,plain,
    ( n0 != sK10
    | n5 != sK11 ),
    inference(cnf_transformation,[],[f204]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.12  % Problem    : SWV218+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% 0.03/0.13  % Command    : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_sat --cores 0 -t %d %s
% 0.13/0.33  % Computer : n001.cluster.edu
% 0.13/0.33  % Model    : x86_64 x86_64
% 0.13/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.33  % Memory   : 8042.1875MB
% 0.13/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.34  % CPULimit   : 300
% 0.13/0.34  % WCLimit    : 300
% 0.13/0.34  % DateTime   : Tue Aug 30 19:28:32 EDT 2022
% 0.13/0.34  % CPUTime    : 
% 0.19/0.50  % (8129)ott+2_1:1_fsr=off:gsp=on:i=50:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/50Mi)
% 0.19/0.50  % (8142)ott+11_1:1_drc=off:nwc=5.0:slsq=on:slsqc=1:spb=goal_then_units:to=lpo:i=467:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/467Mi)
% 0.19/0.50  % (8134)ott+11_2:3_av=off:fde=unused:nwc=5.0:tgt=ground:i=75:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/75Mi)
% 0.19/0.51  % (8146)ott+11_2:3_av=off:fde=unused:nwc=5.0:tgt=ground:i=177:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/177Mi)
% 0.19/0.51  % (8131)ott+10_1:28_bd=off:bs=on:tgt=ground:i=101:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/101Mi)
% 0.19/0.51  % (8126)dis+10_1:1_fsd=on:sp=occurrence:i=7:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/7Mi)
% 0.19/0.51  % (8124)dis+34_1:32_abs=on:add=off:bsr=on:gsp=on:sp=weighted_frequency:i=48:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/48Mi)
% 0.19/0.51  % (8129)First to succeed.
% 0.19/0.51  % (8121)ott+4_1:1_av=off:bd=off:nwc=5.0:s2a=on:s2at=2.0:slsq=on:slsqc=2:slsql=off:slsqr=1,2:sp=frequency:i=37:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/37Mi)
% 0.19/0.52  % (8126)Instruction limit reached!
% 0.19/0.52  % (8126)------------------------------
% 0.19/0.52  % (8126)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.19/0.52  % (8126)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.19/0.52  % (8126)Termination reason: Unknown
% 0.19/0.52  % (8126)Termination phase: Function definition elimination
% 0.19/0.52  
% 0.19/0.52  % (8126)Memory used [KB]: 1151
% 0.19/0.52  % (8126)Time elapsed: 0.008 s
% 0.19/0.52  % (8126)Instructions burned: 7 (million)
% 0.19/0.52  % (8126)------------------------------
% 0.19/0.52  % (8126)------------------------------
% 0.19/0.52  % (8142)Also succeeded, but the first one will report.
% 0.19/0.52  % (8129)Refutation found. Thanks to Tanya!
% 0.19/0.52  % SZS status Theorem for theBenchmark
% 0.19/0.52  % SZS output start Proof for theBenchmark
% See solution above
% 0.19/0.52  % (8129)------------------------------
% 0.19/0.52  % (8129)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.19/0.52  % (8129)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.19/0.52  % (8129)Termination reason: Refutation
% 0.19/0.52  
% 0.19/0.52  % (8129)Memory used [KB]: 5756
% 0.19/0.52  % (8129)Time elapsed: 0.009 s
% 0.19/0.52  % (8129)Instructions burned: 13 (million)
% 0.19/0.52  % (8129)------------------------------
% 0.19/0.52  % (8129)------------------------------
% 0.19/0.52  % (8118)Success in time 0.173 s
%------------------------------------------------------------------------------