↑ Up

iProver---3.9.4.THM-CRf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : iProver---3.9.4
% Problem  : CSR033+2 : TPTP v9.3.1. Released v3.4.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_iprover 300 /export/starexec/sandbox2/benchmark/theBenchmark.p THM

% Computer : n026.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 01:10:01 PM UTC 2026

% Result   : Theorem 6.86s 6.93s
% Output   : CNFRefutation 6.86s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   13
%            Number of leaves      :   13
% Syntax   : Number of formulae    :   73 (  27 unt;   0 def)
%            Number of atoms       :  132 (   0 equ)
%            Maximal formula atoms :    3 (   1 avg)
%            Number of connectives :  109 (  50   ~;  44   |;   5   &)
%                                         (   0 <=>;  10  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    7 (   3 avg)
%            Maximal term depth    :    1 (   1 avg)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    0 (   0   >;   0   *;   0   +;   0  <<)
%            Number of predicates  :    6 (   5 usr;   1 prp; 0-2 aty)
%            Number of functors    :   10 (  10 usr;  10 con; 0-0 aty)
%            Number of variables   :   36 (   0 sgn  36   !;   0   ?;  10   :)

% Comments : 
%------------------------------------------------------------------------------
fof(f1,axiom,
    genlmt(c_tptpgeo_member8_mt,c_tptpgeo_spindleheadmt),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_1) ).

fof(f18,axiom,
    ( mtvisible(c_tptpgeo_member2_mt)
   => geographicalsubregions(c_georegion_l1_x2_y0,c_georegion_l2_x8_y2) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_18) ).

fof(f128,axiom,
    ! [X0,X1] :
      ( geographicalsubregions(X0,X1)
     => inregion(X1,X0) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_128) ).

fof(f273,axiom,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member2_mt),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_273) ).

fof(f291,axiom,
    ( mtvisible(c_tptpgeo_member2_mt)
   => geographicalsubregions(c_georegion_l2_x8_y2,c_georegion_l3_x25_y7) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_291) ).

fof(f292,axiom,
    ( mtvisible(c_worldgeographymt)
   => geolevel_1(c_georegion_l1_x2_y0) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_292) ).

fof(f300,axiom,
    ( mtvisible(c_tptpgeo_member2_mt)
   => geographicalsubregions(c_georegion_l3_x25_y7,c_georegion_l4_x76_y23) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_300) ).

fof(f326,axiom,
    genlmt(c_tptpgeo_spindleheadmt,c_worldgeographymt),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_326) ).

fof(f355,axiom,
    ( mtvisible(c_tptpgeo_member2_mt)
   => inregion(c_geolocation_x76_y23,c_georegion_l4_x76_y23) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_355) ).

fof(f369,axiom,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member8_mt),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_369) ).

fof(f933,axiom,
    ! [X0,X1,X2] :
      ( ( inregion(X1,X2)
        & inregion(X0,X1) )
     => inregion(X0,X2) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_933) ).

fof(f1123,axiom,
    ! [X0,X1] :
      ( ( genlmt(X0,X1)
        & mtvisible(X0) )
     => mtvisible(X1) ),
    file('/export/starexec/sandbox2/benchmark/Axioms/CSR002+1.ax',ax1_1123) ).

fof(f1132,conjecture,
    ( mtvisible(c_tptpgeo_spindlecollectormt)
   => ( geolevel_1(c_georegion_l1_x2_y0)
      & inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',query83) ).

fof(f1133,negated_conjecture,
    ~ ( mtvisible(c_tptpgeo_spindlecollectormt)
     => ( geolevel_1(c_georegion_l1_x2_y0)
        & inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0) ) ),
    inference(negated_conjecture,[status(cth)],[f1132]) ).

fof(f1235,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l1_x2_y0,c_georegion_l2_x8_y2) ),
    inference(ennf_transformation,[],[f18]) ).

fof(f1288,plain,
    ! [X0,X1] :
      ( ~ geographicalsubregions(X0,X1)
      | inregion(X1,X0) ),
    inference(ennf_transformation,[],[f128]) ).

fof(f1363,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l2_x8_y2,c_georegion_l3_x25_y7) ),
    inference(ennf_transformation,[],[f291]) ).

fof(f1364,plain,
    ( ~ mtvisible(c_worldgeographymt)
    | geolevel_1(c_georegion_l1_x2_y0) ),
    inference(ennf_transformation,[],[f292]) ).

fof(f1369,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l3_x25_y7,c_georegion_l4_x76_y23) ),
    inference(ennf_transformation,[],[f300]) ).

fof(f1394,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | inregion(c_geolocation_x76_y23,c_georegion_l4_x76_y23) ),
    inference(ennf_transformation,[],[f355]) ).

fof(f1831,plain,
    ! [X0,X1,X2] :
      ( ~ inregion(X1,X2)
      | ~ inregion(X0,X1)
      | inregion(X0,X2) ),
    inference(ennf_transformation,[],[f933]) ).

fof(f1832,plain,
    ! [X0,X1,X2] :
      ( ~ inregion(X1,X2)
      | ~ inregion(X0,X1)
      | inregion(X0,X2) ),
    inference(flattening,[],[f1831]) ).

fof(f2012,plain,
    ! [X0,X1] :
      ( ~ genlmt(X0,X1)
      | ~ mtvisible(X0)
      | mtvisible(X1) ),
    inference(ennf_transformation,[],[f1123]) ).

fof(f2013,plain,
    ! [X0,X1] :
      ( ~ genlmt(X0,X1)
      | ~ mtvisible(X0)
      | mtvisible(X1) ),
    inference(flattening,[],[f2012]) ).

fof(f2022,plain,
    ( mtvisible(c_tptpgeo_spindlecollectormt)
    & ( ~ geolevel_1(c_georegion_l1_x2_y0)
      | ~ inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0) ) ),
    inference(ennf_transformation,[],[f1133]) ).

fof(f2023,plain,
    genlmt(c_tptpgeo_member8_mt,c_tptpgeo_spindleheadmt),
    inference(cnf_transformation,[],[f1]) ).

fof(f2040,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l1_x2_y0,c_georegion_l2_x8_y2) ),
    inference(cnf_transformation,[],[f1235]) ).

fof(f2149,plain,
    ! [X0,X1] :
      ( ~ geographicalsubregions(X0,X1)
      | inregion(X1,X0) ),
    inference(cnf_transformation,[],[f1288]) ).

fof(f2294,plain,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member2_mt),
    inference(cnf_transformation,[],[f273]) ).

fof(f2312,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l2_x8_y2,c_georegion_l3_x25_y7) ),
    inference(cnf_transformation,[],[f1363]) ).

fof(f2313,plain,
    ( ~ mtvisible(c_worldgeographymt)
    | geolevel_1(c_georegion_l1_x2_y0) ),
    inference(cnf_transformation,[],[f1364]) ).

fof(f2320,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | geographicalsubregions(c_georegion_l3_x25_y7,c_georegion_l4_x76_y23) ),
    inference(cnf_transformation,[],[f1369]) ).

fof(f2346,plain,
    genlmt(c_tptpgeo_spindleheadmt,c_worldgeographymt),
    inference(cnf_transformation,[],[f326]) ).

fof(f2375,plain,
    ( ~ mtvisible(c_tptpgeo_member2_mt)
    | inregion(c_geolocation_x76_y23,c_georegion_l4_x76_y23) ),
    inference(cnf_transformation,[],[f1394]) ).

fof(f2389,plain,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member8_mt),
    inference(cnf_transformation,[],[f369]) ).

fof(f2885,plain,
    ! [X2,X0,X1] :
      ( ~ inregion(X1,X2)
      | ~ inregion(X0,X1)
      | inregion(X0,X2) ),
    inference(cnf_transformation,[],[f1832]) ).

fof(f3053,plain,
    ! [X0,X1] :
      ( ~ genlmt(X0,X1)
      | ~ mtvisible(X0)
      | mtvisible(X1) ),
    inference(cnf_transformation,[],[f2013]) ).

fof(f3062,plain,
    mtvisible(c_tptpgeo_spindlecollectormt),
    inference(cnf_transformation,[],[f2022]) ).

fof(f3063,plain,
    ( ~ geolevel_1(c_georegion_l1_x2_y0)
    | ~ inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0) ),
    inference(cnf_transformation,[],[f2022]) ).

tcf(c_49,plain,
    genlmt(c_tptpgeo_member8_mt,c_tptpgeo_spindleheadmt),
    inference(cnf_transformation,[],[f2023]) ).

tcf(c_66,plain,
    ( geographicalsubregions(c_georegion_l1_x2_y0,c_georegion_l2_x8_y2)
    | ~ mtvisible(c_tptpgeo_member2_mt) ),
    inference(cnf_transformation,[],[f2040]) ).

tcf(c_175,plain,
    ! [X0: $i,X1: $i] :
      ( inregion(X1,X0)
      | ~ geographicalsubregions(X0,X1) ),
    inference(cnf_transformation,[],[f2149]) ).

tcf(c_320,plain,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member2_mt),
    inference(cnf_transformation,[],[f2294]) ).

tcf(c_338,plain,
    ( geographicalsubregions(c_georegion_l2_x8_y2,c_georegion_l3_x25_y7)
    | ~ mtvisible(c_tptpgeo_member2_mt) ),
    inference(cnf_transformation,[],[f2312]) ).

tcf(c_339,plain,
    ( geolevel_1(c_georegion_l1_x2_y0)
    | ~ mtvisible(c_worldgeographymt) ),
    inference(cnf_transformation,[],[f2313]) ).

tcf(c_346,plain,
    ( geographicalsubregions(c_georegion_l3_x25_y7,c_georegion_l4_x76_y23)
    | ~ mtvisible(c_tptpgeo_member2_mt) ),
    inference(cnf_transformation,[],[f2320]) ).

tcf(c_372,plain,
    genlmt(c_tptpgeo_spindleheadmt,c_worldgeographymt),
    inference(cnf_transformation,[],[f2346]) ).

tcf(c_401,plain,
    ( inregion(c_geolocation_x76_y23,c_georegion_l4_x76_y23)
    | ~ mtvisible(c_tptpgeo_member2_mt) ),
    inference(cnf_transformation,[],[f2375]) ).

tcf(c_415,plain,
    genlmt(c_tptpgeo_spindlecollectormt,c_tptpgeo_member8_mt),
    inference(cnf_transformation,[],[f2389]) ).

tcf(c_911,plain,
    ! [X0: $i,X1: $i,X2: $i] :
      ( inregion(X0,X2)
      | ~ inregion(X1,X2)
      | ~ inregion(X0,X1) ),
    inference(cnf_transformation,[],[f2885]) ).

tcf(c_1079,plain,
    ! [X0: $i,X1: $i] :
      ( mtvisible(X1)
      | ~ mtvisible(X0)
      | ~ genlmt(X0,X1) ),
    inference(cnf_transformation,[],[f3053]) ).

tcf(c_1088,negated_conjecture,
    ( ~ geolevel_1(c_georegion_l1_x2_y0)
    | ~ inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0) ),
    inference(cnf_transformation,[],[f3063]) ).

tcf(c_1089,negated_conjecture,
    mtvisible(c_tptpgeo_spindlecollectormt),
    inference(cnf_transformation,[],[f3062]) ).

tcf(c_1129,plain,
    ( mtvisible(c_tptpgeo_member2_mt)
    | ~ mtvisible(c_tptpgeo_spindlecollectormt) ),
    inference(superposition,[status(thm)],[c_320,c_1079]) ).

tcf(c_1536,plain,
    inregion(c_geolocation_x76_y23,c_georegion_l4_x76_y23),
    inference(global_subsumption_just,[status(thm)],[c_401,c_1089,c_1129,c_401]) ).

tcf(c_1540,plain,
    geographicalsubregions(c_georegion_l3_x25_y7,c_georegion_l4_x76_y23),
    inference(global_subsumption_just,[status(thm)],[c_346,c_1089,c_1129,c_346]) ).

tcf(c_1542,plain,
    geographicalsubregions(c_georegion_l2_x8_y2,c_georegion_l3_x25_y7),
    inference(global_subsumption_just,[status(thm)],[c_338,c_1089,c_1129,c_338]) ).

tcf(c_1544,plain,
    geographicalsubregions(c_georegion_l1_x2_y0,c_georegion_l2_x8_y2),
    inference(global_subsumption_just,[status(thm)],[c_66,c_1089,c_66,c_1129]) ).

tcf(c_1554,plain,
    inregion(c_georegion_l2_x8_y2,c_georegion_l1_x2_y0),
    inference(superposition,[status(thm)],[c_1544,c_175]) ).

tcf(c_1555,plain,
    inregion(c_georegion_l3_x25_y7,c_georegion_l2_x8_y2),
    inference(superposition,[status(thm)],[c_1542,c_175]) ).

tcf(c_1556,plain,
    inregion(c_georegion_l4_x76_y23,c_georegion_l3_x25_y7),
    inference(superposition,[status(thm)],[c_1540,c_175]) ).

tcf(c_1588,plain,
    ! [X0: $i] :
      ( inregion(c_geolocation_x76_y23,X0)
      | ~ inregion(c_georegion_l4_x76_y23,X0) ),
    inference(superposition,[status(thm)],[c_1536,c_911]) ).

tcf(c_1614,plain,
    ! [X0: $i] :
      ( inregion(c_georegion_l3_x25_y7,X0)
      | ~ inregion(c_georegion_l2_x8_y2,X0) ),
    inference(superposition,[status(thm)],[c_1555,c_911]) ).

tcf(c_1657,plain,
    inregion(c_geolocation_x76_y23,c_georegion_l3_x25_y7),
    inference(superposition,[status(thm)],[c_1556,c_1588]) ).

tcf(c_1680,plain,
    inregion(c_georegion_l3_x25_y7,c_georegion_l1_x2_y0),
    inference(superposition,[status(thm)],[c_1554,c_1614]) ).

tcf(c_1691,plain,
    ! [X0: $i] :
      ( inregion(c_geolocation_x76_y23,X0)
      | ~ inregion(c_georegion_l3_x25_y7,X0) ),
    inference(superposition,[status(thm)],[c_1657,c_911]) ).

tcf(c_1736,plain,
    inregion(c_geolocation_x76_y23,c_georegion_l1_x2_y0),
    inference(superposition,[status(thm)],[c_1680,c_1691]) ).

tcf(c_1737,plain,
    ~ geolevel_1(c_georegion_l1_x2_y0),
    inference(backward_subsumption_resolution,[status(thm)],[c_1088,c_1736]) ).

tcf(c_1738,plain,
    ~ mtvisible(c_worldgeographymt),
    inference(backward_subsumption_resolution,[status(thm)],[c_339,c_1737]) ).

tcf(c_5361,plain,
    ( mtvisible(c_worldgeographymt)
    | ~ mtvisible(c_tptpgeo_spindleheadmt) ),
    inference(superposition,[status(thm)],[c_372,c_1079]) ).

tcf(c_6705,plain,
    ( mtvisible(c_tptpgeo_spindleheadmt)
    | ~ mtvisible(c_tptpgeo_member8_mt) ),
    inference(superposition,[status(thm)],[c_49,c_1079]) ).

tcf(c_6709,plain,
    ( mtvisible(c_tptpgeo_member8_mt)
    | ~ mtvisible(c_tptpgeo_spindlecollectormt) ),
    inference(superposition,[status(thm)],[c_415,c_1079]) ).

tcf(c_6711,plain,
    $false,
    inference(prop_impl_just,[status(thm)],[c_6705,c_6709,c_5361,c_1738,c_1089]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : CSR033+2 : TPTP v9.3.1. Released v3.4.0.
% 0.00/0.04  % Command  : run_iprover 300 /export/starexec/sandbox2/benchmark/theBenchmark.p THM
% 0.12/5.39  % Computer : n026.cluster.edu
% 0.12/5.39  % Model    : x86_64 x86_64
% 0.12/5.39  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/5.39  % Memory   : 8046.5625MB
% 0.12/5.39  % OS       : Linux 6.8.0-71-generic
% 0.12/5.39  % CPULimit : 300
% 0.12/5.39  % WCLimit  : 300
% 0.12/5.39  % DateTime : Fri Sep 25 08:20:01 UTC 2026
% 0.12/5.40  % CPUTime  : 
% 0.17/5.40  Running run_iprover 300 /export/starexec/sandbox2/benchmark/theBenchmark.p THM
% 0.17/5.46  Running first-order theorem proving
% 0.17/5.46  Running: /export/starexec/sandbox2/solver/bin/iproveropt-multi-core.sh -d -n -l tptp -s fof_schedule -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.17/5.47  
% 0.17/5.47  % ======== iProver multi-core TPTP/SMT =========
% 0.17/5.47  
% 0.17/5.48  % Detected problem language: tptp
% 0.17/5.49  % Proving...
% 6.86/6.93  % SZS status Started for theBenchmark.p
% 6.86/6.93  % SZS status Theorem for theBenchmark.p
% 6.86/6.93  
% 6.86/6.93  %---------------- iProver v3.9.4 (pre CASC 2026/SMT-COMP 2026) ----------------%
% 6.86/6.93  
% 6.86/6.93  % ------  iProver source info
% 6.86/6.93  
% 6.86/6.93  % git: date: 2026-07-19 20:42:38 +0200
% 6.86/6.93  % git: sha1: 804e7d636a263075307957e923b7a22a4035de61
% 6.86/6.93  % git: non_committed_changes: false
% 6.86/6.93  
% 6.86/6.93  % ------ Parsing...
% 6.86/6.93  % ------ Clausification by vclausify_rel  & Parsing by iProver...
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % ------ Problem Properties 
% 6.86/6.93  
% 6.86/6.93  % 
% 6.86/6.93  % clauses                               1041
% 6.86/6.93  % conjectures                           2
% 6.86/6.93  % EPR                                   980
% 6.86/6.93  % Horn                                  1041
% 6.86/6.93  % unary                                 287
% 6.86/6.93  % binary                                710
% 6.86/6.93  % lits                                  1839
% 6.86/6.93  % lits eq                               0
% 6.86/6.93  % fd_pure                               0
% 6.86/6.93  % fd_pseudo                             0
% 6.86/6.93  % fd_cond                               0
% 6.86/6.93  % fd_pseudo_cond                        0
% 6.86/6.93  % AC symbols                            0
% 6.86/6.93  
% 6.86/6.93  % ------ Input Options Time Limit: Unbounded
% 6.86/6.93  
% 6.86/6.93  
% 6.86/6.93  % ------ 
% 6.86/6.93  % Current options:
% 6.86/6.93  % ------ 
% 6.86/6.93  
% 6.86/6.93  
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % ------ Proving...
% 6.86/6.93  % 
% 6.86/6.93  
% 6.86/6.93  % SZS status Theorem for theBenchmark.p
% 6.86/6.93  
% 6.86/6.93  % SZS output start CNFRefutation for theBenchmark.p
% See solution above
% 6.86/6.93  
% 6.86/6.93  
%------------------------------------------------------------------------------