↑ Up

Vampire---5.0.1.THM-Ref.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Vampire---5.0.1
% Problem  : SEU216+3 : TPTP v9.3.1. Released v3.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_vampire /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM

% Computer : n008.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 : Tue Sep 29 12:47:47 PM UTC 2026

% Result   : Theorem 2.49s 1.29s
% Output   : Refutation 3.65s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   32
%            Number of leaves      :   13
% Syntax   : Number of formulae    :  129 (  16 unt;   5 def)
%            Number of atoms       :  550 ( 173 equ)
%            Maximal formula atoms :   15 (   4 avg)
%            Number of connectives :  688 ( 267   ~; 322   |;  68   &)
%                                         (  20 <=>;   9  =>;   0  <=;   2 <~>)
%            Maximal formula depth :   12 (   6 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :   10 (   8 usr;   6 prp; 0-2 aty)
%            Number of functors    :   13 (  13 usr;   4 con; 0-2 aty)
%            Number of variables   :  179 (   0 sgn 160   !;  19   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f4,axiom,
    ! [X0,X1] : unordered_pair(X0,X1) = unordered_pair(X1,X0),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',commutativity_k2_tarski) ).

fof(f5,axiom,
    ! [X0,X1] :
      ( relation(X1)
     => ( X1 = identity_relation(X0)
      <=> ! [X2,X3] :
            ( in(ordered_pair(X2,X3),X1)
          <=> ( in(X2,X0)
              & X2 = X3 ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d10_relat_1) ).

fof(f6,axiom,
    ! [X0] :
      ( ( relation(X0)
        & function(X0) )
     => ! [X1,X2] :
          ( ( in(X1,relation_dom(X0))
           => ( X2 = apply(X0,X1)
            <=> in(ordered_pair(X1,X2),X0) ) )
          & ( ~ in(X1,relation_dom(X0))
           => ( X2 = apply(X0,X1)
            <=> X2 = empty_set ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d4_funct_1) ).

fof(f7,axiom,
    ! [X0,X1] : ordered_pair(X0,X1) = unordered_pair(unordered_pair(X0,X1),singleton(X0)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',d5_tarski) ).

fof(f8,axiom,
    ! [X0] : relation(identity_relation(X0)),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',dt_k6_relat_1) ).

fof(f33,conjecture,
    ! [X0,X1] :
      ( ( relation(X1)
        & function(X1) )
     => ( X1 = identity_relation(X0)
      <=> ( relation_dom(X1) = X0
          & ! [X2] :
              ( in(X2,X0)
             => apply(X1,X2) = X2 ) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',t34_funct_1) ).

fof(f34,negated_conjecture,
    ~ ! [X0,X1] :
        ( ( relation(X1)
          & function(X1) )
       => ( X1 = identity_relation(X0)
        <=> ( relation_dom(X1) = X0
            & ! [X2] :
                ( in(X2,X0)
               => apply(X1,X2) = X2 ) ) ) ),
    inference(negated_conjecture,[status(cth)],[f33]) ).

fof(f39,axiom,
    ! [X0] :
      ( relation_dom(identity_relation(X0)) = X0
      & relation_rng(identity_relation(X0)) = X0 ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',t71_relat_1) ).

fof(f42,axiom,
    ! [X0,X1,X2] :
      ( ( relation(X2)
        & function(X2) )
     => ( in(ordered_pair(X0,X1),X2)
      <=> ( in(X0,relation_dom(X2))
          & X1 = apply(X2,X0) ) ) ),
    file('/export/starexec/sandbox/benchmark/theBenchmark.p',t8_funct_1) ).

fof(f45,plain,
    ? [X0,X1] :
      ( ( X1 = identity_relation(X0)
      <~> ( relation_dom(X1) = X0
          & ! [X2] :
              ( apply(X1,X2) = X2
              | ~ in(X2,X0) ) ) )
      & relation(X1)
      & function(X1) ),
    inference(ennf_transformation,[],[f34]) ).

fof(f46,plain,
    ? [X0,X1] :
      ( ( X1 = identity_relation(X0)
      <~> ( relation_dom(X1) = X0
          & ! [X2] :
              ( apply(X1,X2) = X2
              | ~ in(X2,X0) ) ) )
      & relation(X1)
      & function(X1) ),
    inference(flattening,[],[f45]) ).

fof(f50,plain,
    ! [X0,X1] :
      ( ( X1 = identity_relation(X0)
      <=> ! [X2,X3] :
            ( in(ordered_pair(X2,X3),X1)
          <=> ( in(X2,X0)
              & X2 = X3 ) ) )
      | ~ relation(X1) ),
    inference(ennf_transformation,[],[f5]) ).

fof(f51,plain,
    ! [X0,X1,X2] :
      ( ( in(ordered_pair(X0,X1),X2)
      <=> ( in(X0,relation_dom(X2))
          & X1 = apply(X2,X0) ) )
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(ennf_transformation,[],[f42]) ).

fof(f52,plain,
    ! [X0,X1,X2] :
      ( ( in(ordered_pair(X0,X1),X2)
      <=> ( in(X0,relation_dom(X2))
          & X1 = apply(X2,X0) ) )
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(flattening,[],[f51]) ).

fof(f53,plain,
    ! [X0] :
      ( ! [X1,X2] :
          ( ( ( X2 = apply(X0,X1)
            <=> in(ordered_pair(X1,X2),X0) )
            | ~ in(X1,relation_dom(X0)) )
          & ( ( X2 = apply(X0,X1)
            <=> X2 = empty_set )
            | in(X1,relation_dom(X0)) ) )
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(ennf_transformation,[],[f6]) ).

fof(f54,plain,
    ! [X0] :
      ( ! [X1,X2] :
          ( ( ( X2 = apply(X0,X1)
            <=> in(ordered_pair(X1,X2),X0) )
            | ~ in(X1,relation_dom(X0)) )
          & ( ( X2 = apply(X0,X1)
            <=> X2 = empty_set )
            | in(X1,relation_dom(X0)) ) )
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(flattening,[],[f53]) ).

fof(f64,plain,
    ? [X0,X1] :
      ( ( relation_dom(X1) != X0
        | ? [X2] :
            ( apply(X1,X2) != X2
            & in(X2,X0) )
        | identity_relation(X0) != X1 )
      & ( ( relation_dom(X1) = X0
          & ! [X2] :
              ( apply(X1,X2) = X2
              | ~ in(X2,X0) ) )
        | X1 = identity_relation(X0) )
      & relation(X1)
      & function(X1) ),
    inference(nnf_transformation,[],[f46]) ).

fof(f65,plain,
    ? [X0,X1] :
      ( ( relation_dom(X1) != X0
        | ? [X2] :
            ( apply(X1,X2) != X2
            & in(X2,X0) )
        | identity_relation(X0) != X1 )
      & ( ( relation_dom(X1) = X0
          & ! [X2] :
              ( apply(X1,X2) = X2
              | ~ in(X2,X0) ) )
        | X1 = identity_relation(X0) )
      & relation(X1)
      & function(X1) ),
    inference(flattening,[],[f64]) ).

fof(f66,plain,
    ? [X0,X1] :
      ( ( relation_dom(X1) != X0
        | ? [X2] :
            ( apply(X1,X2) != X2
            & in(X2,X0) )
        | identity_relation(X0) != X1 )
      & ( ( relation_dom(X1) = X0
          & ! [X3] :
              ( apply(X1,X3) = X3
              | ~ in(X3,X0) ) )
        | X1 = identity_relation(X0) )
      & relation(X1)
      & function(X1) ),
    inference(rectify,[],[f65]) ).

fof(f67,plain,
    ( ( sK0 != relation_dom(sK1)
      | ( sK2 != apply(sK1,sK2)
        & in(sK2,sK0) )
      | sK1 != identity_relation(sK0) )
    & ( ( sK0 = relation_dom(sK1)
        & ! [X3] :
            ( apply(sK1,X3) = X3
            | ~ in(X3,sK0) ) )
      | sK1 = identity_relation(sK0) )
    & relation(sK1)
    & function(sK1) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK0,sK1,sK2]),skolemize(X0,sK0),skolemize(X1,sK1),skolemize(X2,sK2)],[f66]) ).

fof(f68,plain,
    ! [X0,X1] :
      ( ( ( X1 = identity_relation(X0)
          | ? [X2,X3] :
              ( ( ~ in(X2,X0)
                | X2 != X3
                | ~ in(ordered_pair(X2,X3),X1) )
              & ( ( in(X2,X0)
                  & X2 = X3 )
                | in(ordered_pair(X2,X3),X1) ) ) )
        & ( ! [X2,X3] :
              ( ( in(ordered_pair(X2,X3),X1)
                | ~ in(X2,X0)
                | X2 != X3 )
              & ( ( in(X2,X0)
                  & X2 = X3 )
                | ~ in(ordered_pair(X2,X3),X1) ) )
          | identity_relation(X0) != X1 ) )
      | ~ relation(X1) ),
    inference(nnf_transformation,[],[f50]) ).

fof(f69,plain,
    ! [X0,X1] :
      ( ( ( X1 = identity_relation(X0)
          | ? [X2,X3] :
              ( ( ~ in(X2,X0)
                | X2 != X3
                | ~ in(ordered_pair(X2,X3),X1) )
              & ( ( in(X2,X0)
                  & X2 = X3 )
                | in(ordered_pair(X2,X3),X1) ) ) )
        & ( ! [X2,X3] :
              ( ( in(ordered_pair(X2,X3),X1)
                | ~ in(X2,X0)
                | X2 != X3 )
              & ( ( in(X2,X0)
                  & X2 = X3 )
                | ~ in(ordered_pair(X2,X3),X1) ) )
          | identity_relation(X0) != X1 ) )
      | ~ relation(X1) ),
    inference(flattening,[],[f68]) ).

fof(f70,plain,
    ! [X0,X1] :
      ( ( ( X1 = identity_relation(X0)
          | ? [X2,X3] :
              ( ( ~ in(X2,X0)
                | X2 != X3
                | ~ in(ordered_pair(X2,X3),X1) )
              & ( ( in(X2,X0)
                  & X2 = X3 )
                | in(ordered_pair(X2,X3),X1) ) ) )
        & ( ! [X4,X5] :
              ( ( in(ordered_pair(X4,X5),X1)
                | ~ in(X4,X0)
                | X4 != X5 )
              & ( ( in(X4,X0)
                  & X4 = X5 )
                | ~ in(ordered_pair(X4,X5),X1) ) )
          | identity_relation(X0) != X1 ) )
      | ~ relation(X1) ),
    inference(rectify,[],[f69]) ).

fof(f71,plain,
    ! [X0,X1] :
      ( ( ( X1 = identity_relation(X0)
          | ( ( ~ in(sK3(X0,X1),X0)
              | sK3(X0,X1) != sK4(X0,X1)
              | ~ in(ordered_pair(sK3(X0,X1),sK4(X0,X1)),X1) )
            & ( ( in(sK3(X0,X1),X0)
                & sK3(X0,X1) = sK4(X0,X1) )
              | in(ordered_pair(sK3(X0,X1),sK4(X0,X1)),X1) ) ) )
        & ( ! [X4,X5] :
              ( ( in(ordered_pair(X4,X5),X1)
                | ~ in(X4,X0)
                | X4 != X5 )
              & ( ( in(X4,X0)
                  & X4 = X5 )
                | ~ in(ordered_pair(X4,X5),X1) ) )
          | identity_relation(X0) != X1 ) )
      | ~ relation(X1) ),
    inference(skolemize,[status(esa),new_symbols(skolem,[sK3,sK4]),skolemize(X2,sK3(X0,X1)),skolemize(X3,sK4(X0,X1))],[f70]) ).

fof(f72,plain,
    ! [X0,X1,X2] :
      ( ( ( in(ordered_pair(X0,X1),X2)
          | ~ in(X0,relation_dom(X2))
          | apply(X2,X0) != X1 )
        & ( ( in(X0,relation_dom(X2))
            & X1 = apply(X2,X0) )
          | ~ in(ordered_pair(X0,X1),X2) ) )
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(nnf_transformation,[],[f52]) ).

fof(f73,plain,
    ! [X0,X1,X2] :
      ( ( ( in(ordered_pair(X0,X1),X2)
          | ~ in(X0,relation_dom(X2))
          | apply(X2,X0) != X1 )
        & ( ( in(X0,relation_dom(X2))
            & X1 = apply(X2,X0) )
          | ~ in(ordered_pair(X0,X1),X2) ) )
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(flattening,[],[f72]) ).

fof(f75,plain,
    ! [X0] :
      ( ! [X1,X2] :
          ( ( ( ( X2 = apply(X0,X1)
                | ~ in(ordered_pair(X1,X2),X0) )
              & ( in(ordered_pair(X1,X2),X0)
                | apply(X0,X1) != X2 ) )
            | ~ in(X1,relation_dom(X0)) )
          & ( ( ( X2 = apply(X0,X1)
                | empty_set != X2 )
              & ( X2 = empty_set
                | apply(X0,X1) != X2 ) )
            | in(X1,relation_dom(X0)) ) )
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(nnf_transformation,[],[f54]) ).

fof(f81,plain,
    function(sK1),
    inference(cnf_transformation,[],[f67]) ).

fof(f82,plain,
    relation(sK1),
    inference(cnf_transformation,[],[f67]) ).

fof(f83,plain,
    ! [X3] :
      ( apply(sK1,X3) = X3
      | ~ in(X3,sK0)
      | sK1 = identity_relation(sK0) ),
    inference(cnf_transformation,[],[f67]) ).

fof(f84,plain,
    ( sK0 = relation_dom(sK1)
    | sK1 = identity_relation(sK0) ),
    inference(cnf_transformation,[],[f67]) ).

fof(f85,plain,
    ( sK0 != relation_dom(sK1)
    | in(sK2,sK0)
    | sK1 != identity_relation(sK0) ),
    inference(cnf_transformation,[],[f67]) ).

fof(f86,plain,
    ( sK0 != relation_dom(sK1)
    | sK2 != apply(sK1,sK2)
    | sK1 != identity_relation(sK0) ),
    inference(cnf_transformation,[],[f67]) ).

fof(f91,plain,
    ! [X0] : relation_dom(identity_relation(X0)) = X0,
    inference(cnf_transformation,[],[f39]) ).

fof(f94,plain,
    ! [X0] : relation(identity_relation(X0)),
    inference(cnf_transformation,[],[f8]) ).

fof(f95,plain,
    ! [X0,X1,X4,X5] :
      ( X4 = X5
      | ~ in(ordered_pair(X4,X5),X1)
      | identity_relation(X0) != X1
      | ~ relation(X1) ),
    inference(cnf_transformation,[],[f71]) ).

fof(f98,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | sK3(X0,X1) = sK4(X0,X1)
      | in(ordered_pair(sK3(X0,X1),sK4(X0,X1)),X1)
      | ~ relation(X1) ),
    inference(cnf_transformation,[],[f71]) ).

fof(f99,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | in(sK3(X0,X1),X0)
      | in(ordered_pair(sK3(X0,X1),sK4(X0,X1)),X1)
      | ~ relation(X1) ),
    inference(cnf_transformation,[],[f71]) ).

fof(f100,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | ~ in(sK3(X0,X1),X0)
      | sK3(X0,X1) != sK4(X0,X1)
      | ~ in(ordered_pair(sK3(X0,X1),sK4(X0,X1)),X1)
      | ~ relation(X1) ),
    inference(cnf_transformation,[],[f71]) ).

fof(f101,plain,
    ! [X2,X0,X1] :
      ( apply(X2,X0) = X1
      | ~ in(ordered_pair(X0,X1),X2)
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(cnf_transformation,[],[f73]) ).

fof(f102,plain,
    ! [X2,X0,X1] :
      ( in(X0,relation_dom(X2))
      | ~ in(ordered_pair(X0,X1),X2)
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(cnf_transformation,[],[f73]) ).

fof(f108,plain,
    ! [X2,X0,X1] :
      ( in(ordered_pair(X1,X2),X0)
      | apply(X0,X1) != X2
      | ~ in(X1,relation_dom(X0))
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(cnf_transformation,[],[f75]) ).

fof(f125,plain,
    ! [X0,X1] : ordered_pair(X0,X1) = unordered_pair(unordered_pair(X0,X1),singleton(X0)),
    inference(cnf_transformation,[],[f7]) ).

fof(f133,plain,
    ! [X0,X1] : unordered_pair(X0,X1) = unordered_pair(X1,X0),
    inference(cnf_transformation,[],[f4]) ).

fof(f136,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | ~ in(sK3(X0,X1),X0)
      | sK3(X0,X1) != sK4(X0,X1)
      | ~ in(unordered_pair(unordered_pair(sK3(X0,X1),sK4(X0,X1)),singleton(sK3(X0,X1))),X1)
      | ~ relation(X1) ),
    inference(definition_unfolding,[],[f100,f125]) ).

fof(f137,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | in(sK3(X0,X1),X0)
      | in(unordered_pair(unordered_pair(sK3(X0,X1),sK4(X0,X1)),singleton(sK3(X0,X1))),X1)
      | ~ relation(X1) ),
    inference(definition_unfolding,[],[f99,f125]) ).

fof(f138,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | sK3(X0,X1) = sK4(X0,X1)
      | in(unordered_pair(unordered_pair(sK3(X0,X1),sK4(X0,X1)),singleton(sK3(X0,X1))),X1)
      | ~ relation(X1) ),
    inference(definition_unfolding,[],[f98,f125]) ).

fof(f141,plain,
    ! [X0,X1,X4,X5] :
      ( X4 = X5
      | ~ in(unordered_pair(unordered_pair(X4,X5),singleton(X4)),X1)
      | identity_relation(X0) != X1
      | ~ relation(X1) ),
    inference(definition_unfolding,[],[f95,f125]) ).

fof(f143,plain,
    ! [X2,X0,X1] :
      ( in(X0,relation_dom(X2))
      | ~ in(unordered_pair(unordered_pair(X0,X1),singleton(X0)),X2)
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(definition_unfolding,[],[f102,f125]) ).

fof(f144,plain,
    ! [X2,X0,X1] :
      ( apply(X2,X0) = X1
      | ~ in(unordered_pair(unordered_pair(X0,X1),singleton(X0)),X2)
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(definition_unfolding,[],[f101,f125]) ).

fof(f146,plain,
    ! [X2,X0,X1] :
      ( in(unordered_pair(unordered_pair(X1,X2),singleton(X1)),X0)
      | apply(X0,X1) != X2
      | ~ in(X1,relation_dom(X0))
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(definition_unfolding,[],[f108,f125]) ).

fof(f151,plain,
    ! [X0,X4,X5] :
      ( X4 = X5
      | ~ in(unordered_pair(unordered_pair(X4,X5),singleton(X4)),identity_relation(X0))
      | ~ relation(identity_relation(X0)) ),
    inference(equality_resolution,[],[f141]) ).

fof(f153,plain,
    ! [X0,X1] :
      ( in(unordered_pair(unordered_pair(X1,apply(X0,X1)),singleton(X1)),X0)
      | ~ in(X1,relation_dom(X0))
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(equality_resolution,[],[f146]) ).

fof(f156,plain,
    ! [X0,X1] :
      ( in(unordered_pair(singleton(X1),unordered_pair(X1,apply(X0,X1))),X0)
      | ~ in(X1,relation_dom(X0))
      | ~ relation(X0)
      | ~ function(X0) ),
    inference(forward_demodulation,[],[f153,f133]) ).

fof(f158,plain,
    ! [X2,X0,X1] :
      ( ~ in(unordered_pair(singleton(X0),unordered_pair(X0,X1)),X2)
      | apply(X2,X0) = X1
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(forward_demodulation,[],[f144,f133]) ).

fof(f159,plain,
    ! [X2,X0,X1] :
      ( ~ in(unordered_pair(singleton(X0),unordered_pair(X0,X1)),X2)
      | in(X0,relation_dom(X2))
      | ~ relation(X2)
      | ~ function(X2) ),
    inference(forward_demodulation,[],[f143,f133]) ).

fof(f161,plain,
    ! [X0,X4,X5] :
      ( ~ in(unordered_pair(singleton(X4),unordered_pair(X4,X5)),identity_relation(X0))
      | X4 = X5
      | ~ relation(identity_relation(X0)) ),
    inference(forward_demodulation,[],[f151,f133]) ).

fof(f164,plain,
    ! [X0,X1] :
      ( in(unordered_pair(singleton(sK3(X0,X1)),unordered_pair(sK3(X0,X1),sK4(X0,X1))),X1)
      | identity_relation(X0) = X1
      | sK3(X0,X1) = sK4(X0,X1)
      | ~ relation(X1) ),
    inference(forward_demodulation,[],[f138,f133]) ).

fof(f165,plain,
    ! [X0,X1] :
      ( in(unordered_pair(singleton(sK3(X0,X1)),unordered_pair(sK3(X0,X1),sK4(X0,X1))),X1)
      | identity_relation(X0) = X1
      | in(sK3(X0,X1),X0)
      | ~ relation(X1) ),
    inference(forward_demodulation,[],[f137,f133]) ).

fof(f166,plain,
    ! [X0,X1] :
      ( sK3(X0,X1) != sK4(X0,X1)
      | identity_relation(X0) = X1
      | ~ in(sK3(X0,X1),X0)
      | ~ in(unordered_pair(singleton(sK3(X0,X1)),unordered_pair(sK3(X0,X1),sK4(X0,X1))),X1)
      | ~ relation(X1) ),
    inference(forward_demodulation,[],[f136,f133]) ).

fof(f168,definition,
    ( spl11_1
  <=> sK1 = identity_relation(sK0) ),
    introduced(definition,[new_symbols(definition,[spl11_1])],[avatar_definition]) ).

fof(f169,plain,
    ( sK1 != identity_relation(sK0)
    | spl11_1 ),
    inference(avatar_component_clause,[],[f168]) ).

fof(f170,plain,
    ( sK1 = identity_relation(sK0)
    | ~ spl11_1 ),
    inference(avatar_component_clause,[],[f168]) ).

fof(f172,definition,
    ( spl11_2
  <=> ! [X3] :
        ( apply(sK1,X3) = X3
        | ~ in(X3,sK0) ) ),
    introduced(definition,[new_symbols(definition,[spl11_2])],[avatar_definition]) ).

fof(f173,plain,
    ( ! [X3] :
        ( ~ in(X3,sK0)
        | apply(sK1,X3) = X3 )
    | ~ spl11_2 ),
    inference(avatar_component_clause,[],[f172]) ).

fof(f174,plain,
    ( spl11_1
    | spl11_2 ),
    inference(avatar_split_clause,[],[f83,f172,f168]) ).

fof(f176,definition,
    ( spl11_3
  <=> sK0 = relation_dom(sK1) ),
    introduced(definition,[new_symbols(definition,[spl11_3])],[avatar_definition]) ).

fof(f177,plain,
    ( sK0 != relation_dom(sK1)
    | spl11_3 ),
    inference(avatar_component_clause,[],[f176]) ).

fof(f178,plain,
    ( sK0 = relation_dom(sK1)
    | ~ spl11_3 ),
    inference(avatar_component_clause,[],[f176]) ).

fof(f179,plain,
    ( spl11_1
    | spl11_3 ),
    inference(avatar_split_clause,[],[f84,f176,f168]) ).

fof(f181,definition,
    ( spl11_4
  <=> in(sK2,sK0) ),
    introduced(definition,[new_symbols(definition,[spl11_4])],[avatar_definition]) ).

fof(f183,plain,
    ( in(sK2,sK0)
    | ~ spl11_4 ),
    inference(avatar_component_clause,[],[f181]) ).

fof(f184,plain,
    ( ~ spl11_1
    | spl11_4
    | ~ spl11_3 ),
    inference(avatar_split_clause,[],[f85,f176,f181,f168]) ).

fof(f186,definition,
    ( spl11_5
  <=> sK2 = apply(sK1,sK2) ),
    introduced(definition,[new_symbols(definition,[spl11_5])],[avatar_definition]) ).

fof(f189,plain,
    ( ~ spl11_1
    | ~ spl11_5
    | ~ spl11_3 ),
    inference(avatar_split_clause,[],[f86,f176,f186,f168]) ).

fof(f190,plain,
    ! [X0,X4,X5] :
      ( ~ in(unordered_pair(singleton(X4),unordered_pair(X4,X5)),identity_relation(X0))
      | X4 = X5 ),
    inference(forward_subsumption_resolution,[],[f161,f94]) ).

fof(f343,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | in(sK3(X0,X1),X0)
      | ~ relation(X1)
      | in(sK3(X0,X1),relation_dom(X1))
      | ~ relation(X1)
      | ~ function(X1) ),
    inference(resolution,[],[f165,f159]) ).

fof(f347,plain,
    ! [X0,X1] :
      ( in(sK3(X0,X1),relation_dom(X1))
      | in(sK3(X0,X1),X0)
      | ~ relation(X1)
      | identity_relation(X0) = X1
      | ~ function(X1) ),
    inference(duplicate_literal_removal,[],[f343]) ).

fof(f368,plain,
    ! [X0,X1] :
      ( identity_relation(X0) = X1
      | sK3(X0,X1) = sK4(X0,X1)
      | ~ relation(X1)
      | sK4(X0,X1) = apply(X1,sK3(X0,X1))
      | ~ relation(X1)
      | ~ function(X1) ),
    inference(resolution,[],[f164,f158]) ).

fof(f374,plain,
    ! [X0,X1] :
      ( ~ relation(X1)
      | sK3(X0,X1) = sK4(X0,X1)
      | identity_relation(X0) = X1
      | sK4(X0,X1) = apply(X1,sK3(X0,X1))
      | ~ function(X1) ),
    inference(duplicate_literal_removal,[],[f368]) ).

fof(f505,plain,
    ( sK0 = relation_dom(sK1)
    | ~ spl11_1 ),
    inference(superposition,[],[f91,f170]) ).

fof(f508,plain,
    ( ! [X0,X1] :
        ( ~ in(unordered_pair(singleton(X0),unordered_pair(X0,X1)),sK1)
        | X0 = X1 )
    | ~ spl11_1 ),
    inference(superposition,[],[f190,f170]) ).

fof(f516,plain,
    ( $false
    | ~ spl11_1
    | spl11_3 ),
    inference(forward_subsumption_resolution,[],[f505,f177]) ).

fof(f517,plain,
    ( ~ spl11_1
    | spl11_3 ),
    inference(avatar_contradiction_clause,[],[f516]) ).

fof(f518,plain,
    ( sK2 = apply(sK1,sK2)
    | ~ spl11_2
    | ~ spl11_4 ),
    inference(resolution,[],[f183,f173]) ).

fof(f557,plain,
    ( ! [X0] :
        ( apply(sK1,X0) = X0
        | ~ in(X0,relation_dom(sK1))
        | ~ relation(sK1)
        | ~ function(sK1) )
    | ~ spl11_1 ),
    inference(resolution,[],[f508,f156]) ).

fof(f565,plain,
    ( ! [X0] :
        ( apply(sK1,X0) = X0
        | ~ in(X0,relation_dom(sK1))
        | ~ function(sK1) )
    | ~ spl11_1 ),
    inference(forward_subsumption_resolution,[],[f557,f82]) ).

fof(f566,plain,
    ( ! [X0] :
        ( apply(sK1,X0) = X0
        | ~ in(X0,relation_dom(sK1)) )
    | ~ spl11_1 ),
    inference(forward_subsumption_resolution,[],[f565,f81]) ).

fof(f567,plain,
    ( ! [X0] :
        ( ~ in(X0,sK0)
        | apply(sK1,X0) = X0 )
    | ~ spl11_1
    | ~ spl11_3 ),
    inference(forward_demodulation,[],[f566,f178]) ).

fof(f568,plain,
    ( spl11_2
    | ~ spl11_1
    | ~ spl11_3 ),
    inference(avatar_split_clause,[],[f567,f176,f168,f172]) ).

fof(f569,plain,
    ( spl11_5
    | ~ spl11_2
    | ~ spl11_4 ),
    inference(avatar_split_clause,[],[f518,f181,f172,f186]) ).

fof(f862,plain,
    ( ! [X0] :
        ( in(sK3(X0,sK1),sK0)
        | in(sK3(X0,sK1),X0)
        | ~ relation(sK1)
        | identity_relation(X0) = sK1
        | ~ function(sK1) )
    | ~ spl11_3 ),
    inference(superposition,[],[f347,f178]) ).

fof(f863,plain,
    ( ! [X0] :
        ( in(sK3(X0,sK1),sK0)
        | in(sK3(X0,sK1),X0)
        | identity_relation(X0) = sK1
        | ~ function(sK1) )
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f862,f82]) ).

fof(f864,plain,
    ( ! [X0] :
        ( in(sK3(X0,sK1),sK0)
        | in(sK3(X0,sK1),X0)
        | identity_relation(X0) = sK1 )
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f863,f81]) ).

fof(f879,plain,
    ( in(sK3(sK0,sK1),sK0)
    | sK1 = identity_relation(sK0)
    | ~ spl11_3 ),
    inference(factoring,[],[f864]) ).

fof(f880,plain,
    ( in(sK3(sK0,sK1),sK0)
    | spl11_1
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f879,f169]) ).

fof(f889,plain,
    ( sK3(sK0,sK1) = apply(sK1,sK3(sK0,sK1))
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(resolution,[],[f880,f173]) ).

fof(f903,plain,
    ! [X0] :
      ( sK3(X0,sK1) = sK4(X0,sK1)
      | identity_relation(X0) = sK1
      | sK4(X0,sK1) = apply(sK1,sK3(X0,sK1))
      | ~ function(sK1) ),
    inference(resolution,[],[f374,f82]) ).

fof(f912,plain,
    ! [X0] :
      ( sK4(X0,sK1) = apply(sK1,sK3(X0,sK1))
      | identity_relation(X0) = sK1
      | sK3(X0,sK1) = sK4(X0,sK1) ),
    inference(forward_subsumption_resolution,[],[f903,f81]) ).

fof(f941,plain,
    ( in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ in(sK3(sK0,sK1),relation_dom(sK1))
    | ~ relation(sK1)
    | ~ function(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(superposition,[],[f156,f889]) ).

fof(f942,plain,
    ( in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ in(sK3(sK0,sK1),relation_dom(sK1))
    | ~ function(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f941,f82]) ).

fof(f944,plain,
    ( in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ in(sK3(sK0,sK1),relation_dom(sK1))
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f942,f81]) ).

fof(f946,plain,
    ( ~ in(sK3(sK0,sK1),sK0)
    | in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_demodulation,[],[f944,f178]) ).

fof(f948,plain,
    ( in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f946,f880]) ).

fof(f1188,plain,
    ( sK3(sK0,sK1) = sK4(sK0,sK1)
    | sK1 = identity_relation(sK0)
    | sK3(sK0,sK1) = sK4(sK0,sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(superposition,[],[f889,f912]) ).

fof(f1195,plain,
    ( sK3(sK0,sK1) = sK4(sK0,sK1)
    | sK1 = identity_relation(sK0)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(duplicate_literal_removal,[],[f1188]) ).

fof(f1198,plain,
    ( sK3(sK0,sK1) = sK4(sK0,sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f1195,f169]) ).

fof(f1542,plain,
    ( sK3(sK0,sK1) != sK3(sK0,sK1)
    | sK1 = identity_relation(sK0)
    | ~ in(sK3(sK0,sK1),sK0)
    | ~ in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ relation(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(superposition,[],[f166,f1198]) ).

fof(f1544,plain,
    ( sK1 = identity_relation(sK0)
    | ~ in(sK3(sK0,sK1),sK0)
    | ~ in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ relation(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(trivial_inequality_removal,[],[f1542]) ).

fof(f1545,plain,
    ( ~ in(sK3(sK0,sK1),sK0)
    | ~ in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ relation(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f1544,f169]) ).

fof(f1546,plain,
    ( ~ in(unordered_pair(singleton(sK3(sK0,sK1)),unordered_pair(sK3(sK0,sK1),sK3(sK0,sK1))),sK1)
    | ~ relation(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f1545,f880]) ).

fof(f1547,plain,
    ( ~ relation(sK1)
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f1546,f948]) ).

fof(f1548,plain,
    ( $false
    | spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(forward_subsumption_resolution,[],[f1547,f82]) ).

fof(f1549,plain,
    ( spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(avatar_contradiction_clause,[],[f1548]) ).

cnf(s1,plain,
    ( spl11_1
    | spl11_2 ),
    inference(sat_conversion,[],[f174]) ).

cnf(s2,plain,
    ( spl11_1
    | spl11_3 ),
    inference(sat_conversion,[],[f179]) ).

cnf(s3,plain,
    ( ~ spl11_1
    | ~ spl11_3
    | spl11_4 ),
    inference(sat_conversion,[],[f184]) ).

cnf(s4,plain,
    ( ~ spl11_1
    | ~ spl11_3
    | ~ spl11_5 ),
    inference(sat_conversion,[],[f189]) ).

cnf(s12,plain,
    ( ~ spl11_1
    | spl11_3 ),
    inference(sat_conversion,[],[f517]) ).

cnf(s15,plain,
    ( ~ spl11_1
    | spl11_2
    | ~ spl11_3 ),
    inference(sat_conversion,[],[f568]) ).

cnf(s16,plain,
    ( ~ spl11_2
    | ~ spl11_4
    | spl11_5 ),
    inference(sat_conversion,[],[f569]) ).

cnf(s39,plain,
    ( spl11_1
    | ~ spl11_2
    | ~ spl11_3 ),
    inference(sat_conversion,[],[f1549]) ).

cnf(s41,plain,
    spl11_1,
    inference(rat,[],[s39,s1,s2]) ).

cnf(s42,plain,
    spl11_3,
    inference(rat,[],[s12,s41]) ).

cnf(s43,plain,
    ~ spl11_5,
    inference(rat,[],[s4,s41,s42]) ).

cnf(s44,plain,
    spl11_4,
    inference(rat,[],[s3,s41,s42]) ).

cnf(s45,plain,
    spl11_2,
    inference(rat,[],[s15,s41,s42]) ).

cnf(s47,plain,
    $false,
    inference(rat,[],[s16,s43,s44,s45]) ).

fof(f1550,plain,
    $false,
    inference(avatar_sat_refutation,[],[s47]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.02  % Problem  : SEU216+3 : TPTP v9.3.1. Released v3.2.0.
% 0.00/0.05  % Command  : run_vampire /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.12/0.37  % Computer : n008.cluster.edu
% 0.12/0.37  % Model    : x86_64 x86_64
% 0.12/0.37  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.37  % Memory   : 8046.5625MB
% 0.12/0.37  % OS       : Linux 6.8.0-71-generic
% 0.12/0.37  % CPULimit : 300
% 0.12/0.37  % WCLimit  : 300
% 0.12/0.37  % DateTime : Mon Sep 28 04:06:40 UTC 2026
% 0.12/0.38  % CPUTime  : 
% 0.12/0.38  Running run_vampire /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.12/0.41  Running first-order theorem proving
% 0.12/0.41  Running: /export/starexec/sandbox/solver/bin/vampire --input_syntax tptp --output_axiom_names on --mode casc -m 16384 --cores 7 -t 300 /export/starexec/sandbox/benchmark/theBenchmark.p
% 2.49/1.29  % (1857279)Detected formulas, will run a generic FOF schedule.
% 2.49/1.29  % (1857288)dis-1010_2:3_sil=16000:sp=reverse_frequency:random_seed=738208135:i=119:av=off:ss=axioms_2999 on theBenchmark for (2999ds/119Mi)
% 2.49/1.29  % (1857290)dis-21_1_sil=8000:lcm=predicate:random_seed=3696564663:st=5:avsq=on:i=129:avsqr=1,16:sd=3:aac=none:ep=RS:fsr=off:ss=included_2999 on theBenchmark for (2999ds/129Mi)
% 2.49/1.29  % (1857284)lrs+10_1_ncem=casc2026/models/loop8.pt:sil=128000:tgt=full:npcc=on:drc=off:sp=weighted_frequency:spb=goal:fd=preordered:foolp=on:random_seed=477749083:i=141193_2999 on theBenchmark for (2999ds/141193Mi)
% 2.49/1.29  % (1857287)lrs+1010_1_to=lpo:sil=32000:sos=on:spb=goal_then_units:bce=on:random_seed=1885112250:i=109:sd=1:ins=1:gsp=on:ss=axioms_2999 on theBenchmark for (2999ds/109Mi)
% 2.49/1.29  % (1857285)lrs+11_1_ncem=casc2026/models/loop8.pt:sil=128000:npcc=on:lma=off:spb=units:urr=ec_only:bce=on:s2agt=64:updr=off:random_seed=2289668221:i=134677:sd=20:aac=none:nm=16:ss=included:sgt=10_2999 on theBenchmark for (2999ds/134677Mi)
% 2.49/1.29  % (1857286)lrs+1010_1_anc=all:sfv=off:to=kbo:ncem=casc2026/models/loop7.pt:sil=128000:npcc=on:prc=on:sos=all:bsr=unit_only:sac=on:random_seed=2854571289:i=141695:sd=1:nm=32:gsp=on:ss=included_2999 on theBenchmark for (2999ds/141695Mi)
% 2.49/1.29  % (1857287)Refutation not found, incomplete strategy
% 2.49/1.29  % (1857287)------------------------------
% 2.49/1.29  % (1857287)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 2.49/1.29  % (1857287)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 2.49/1.29  % (1857287)CaDiCaL version: 2.1.3
% 2.49/1.29  % (1857287)Termination reason: Refutation not found, incomplete strategy
% 2.49/1.29  % (1857287)Time elapsed: 0.003 s
% 2.49/1.29  % (1857287)Peak memory usage: 88 MB
% 2.49/1.29  % (1857287)Instructions burned: 4 (million)
% 2.49/1.29  % (1857288)Instruction limit reached! 
% 2.49/1.29  % (1857288)------------------------------
% 2.49/1.29  % (1857288)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 2.49/1.29  % (1857288)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 2.49/1.29  % (1857288)CaDiCaL version: 2.1.3
% 2.49/1.29  % (1857288)Termination reason: Instruction limit
% 2.49/1.29  % (1857288)Termination phase: Saturation
% 2.49/1.29  % (1857288)Time elapsed: 0.035 s
% 2.49/1.29  % (1857288)Peak memory usage: 88 MB
% 2.49/1.29  % (1857288)Instructions burned: 119 (million)
% 2.49/1.29  % (1857289)dis-1011_1_sil=16000:fde=unused:s2agt=70:random_seed=1689289519:s2a=on:i=139:gtg=position_2999 on theBenchmark for (2999ds/139Mi)
% 2.49/1.29  % (1857290)Instruction limit reached! 
% 2.49/1.29  % (1857290)------------------------------
% 2.49/1.29  % (1857290)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 2.49/1.29  % (1857290)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 2.49/1.29  % (1857290)CaDiCaL version: 2.1.3
% 2.49/1.29  % (1857290)Termination reason: Instruction limit
% 2.49/1.29  % (1857290)Termination phase: Saturation
% 2.49/1.29  % (1857290)Time elapsed: 0.083 s
% 2.49/1.29  % (1857290)Peak memory usage: 90 MB
% 2.49/1.29  % (1857290)Instructions burned: 129 (million)
% 2.49/1.29  % (1857289)Instruction limit reached! 
% 2.49/1.29  % (1857289)------------------------------
% 2.49/1.29  % (1857289)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 2.49/1.29  % (1857289)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 2.49/1.29  % (1857289)CaDiCaL version: 2.1.3
% 2.49/1.29  % (1857289)Termination reason: Instruction limit
% 2.49/1.29  % (1857289)Termination phase: Saturation
% 2.49/1.29  % (1857289)Time elapsed: 0.095 s
% 2.49/1.29  % (1857289)Peak memory usage: 90 MB
% 2.49/1.29  % (1857289)Instructions burned: 139 (million)
% 2.49/1.29  % (1857298)lrs+10_1_sil=8000:sp=occurrence:random_seed=2109983969:i=285:sd=3:ss=axioms:sgt=8_2998 on theBenchmark for (2998ds/285Mi)
% 2.49/1.29  % (1857298)First to succeed.
% 2.49/1.29  % (1857298)Solution written to "/export/starexec/sandbox/tmp/vampire-proof-1857279"
% 2.49/1.29  % (1857299)lrs+10_1_sil=32000:urr=on:br=off:random_seed=3636279766:i=157:sd=1:gtg=position:ss=axioms:sgt=8_2997 on theBenchmark for (2997ds/157Mi)
% 2.49/1.29  % (1857301)lrs+1011_1_sil=32000:sp=occurrence:random_seed=4238027852:i=325:sd=1:ss=axioms:sgt=32_2997 on theBenchmark for (2997ds/325Mi)
% 2.49/1.29  % (1857287)------------------------------
% 2.49/1.29  % (1857287)------------------------------
% 2.49/1.29  % (1857301)Also succeeded, but the first one will report.
% 2.49/1.29  % (1857298)Refutation found. Thanks to Tanya!
% 2.49/1.29  % SZS status Theorem for theBenchmark
% 2.49/1.29  % SZS output start Proof for theBenchmark
% See solution above
% 3.65/1.44  % (1857298)------------------------------
% 3.65/1.44  % (1857298)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 3.65/1.44  % (1857298)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 3.65/1.44  % (1857298)CaDiCaL version: 2.1.3
% 3.65/1.44  % (1857298)Termination reason: Refutation
% 3.65/1.44  % (1857298)Time elapsed: 0.020 s
% 3.65/1.44  % (1857298)Peak memory usage: 90 MB
% 3.65/1.44  % (1857298)Instructions burned: 54 (million)
% 3.65/1.44  % (1857298)------------------------------
% 3.65/1.44  % (1857298)------------------------------
% 3.65/1.44  % (1857279)Success in time 0.434 s
% 3.65/1.44  % Vampire exiting
%------------------------------------------------------------------------------