TSTP Solution File: SEU323-10 by Vampire---4.8

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Vampire---4.8
% Problem  : SEU323-10 : TPTP v8.1.2. Released v7.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule file --schedule_file /export/starexec/sandbox2/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t %d %s

% Computer : n029.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 : Sun May  5 09:22:18 EDT 2024

% Result   : Unsatisfiable 0.79s 0.95s
% Output   : Refutation 0.79s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   12
%            Number of leaves      :   11
% Syntax   : Number of formulae    :   37 (  37 unt;   0 def)
%            Number of atoms       :   37 (  36 equ)
%            Maximal formula atoms :    1 (   1 avg)
%            Number of connectives :    1 (   1   ~;   0   |;   0   &)
%                                         (   0 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    4 (   2 avg)
%            Maximal term depth    :    8 (   2 avg)
%            Number of predicates  :    2 (   0 usr;   1 prp; 0-2 aty)
%            Number of functors    :   15 (  15 usr;   3 con; 0-4 aty)
%            Number of variables   :   20 (  20   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f774,plain,
    $false,
    inference(subsumption_resolution,[],[f772,f25]) ).

fof(f25,axiom,
    true != open_subset(interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B),sK2_t51_tops_1_A),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',t51_tops_1_3) ).

fof(f772,plain,
    true = open_subset(interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B),sK2_t51_tops_1_A),
    inference(superposition,[],[f743,f2]) ).

fof(f2,axiom,
    ! [X2,X0,X1] : ifeq(X0,X0,X1,X2) = X1,
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',ifeq_axiom_001) ).

fof(f743,plain,
    true = ifeq(true,true,open_subset(interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B),sK2_t51_tops_1_A),true),
    inference(forward_demodulation,[],[f742,f2]) ).

fof(f742,plain,
    true = ifeq(true,true,ifeq(true,true,open_subset(interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B),sK2_t51_tops_1_A),true),true),
    inference(forward_demodulation,[],[f741,f284]) ).

fof(f284,plain,
    true = closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),
    inference(superposition,[],[f236,f2]) ).

fof(f236,plain,
    true = ifeq(true,true,closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true),
    inference(forward_demodulation,[],[f235,f2]) ).

fof(f235,plain,
    true = ifeq(true,true,ifeq(true,true,closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true),true),
    inference(forward_demodulation,[],[f234,f23]) ).

fof(f23,axiom,
    true = topological_space(sK2_t51_tops_1_A),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',t51_tops_1_1) ).

fof(f234,plain,
    true = ifeq(true,true,ifeq(topological_space(sK2_t51_tops_1_A),true,closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true),true),
    inference(forward_demodulation,[],[f233,f2]) ).

fof(f233,plain,
    true = ifeq(true,true,ifeq(topological_space(sK2_t51_tops_1_A),true,ifeq(true,true,closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true),true),true),
    inference(forward_demodulation,[],[f223,f22]) ).

fof(f22,axiom,
    true = top_str(sK2_t51_tops_1_A),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',t51_tops_1) ).

fof(f223,plain,
    true = ifeq(true,true,ifeq(topological_space(sK2_t51_tops_1_A),true,ifeq(top_str(sK2_t51_tops_1_A),true,closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true),true),true),
    inference(superposition,[],[f11,f219]) ).

fof(f219,plain,
    true = element(subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B),powerset(the_carrier(sK2_t51_tops_1_A))),
    inference(superposition,[],[f63,f2]) ).

fof(f63,plain,
    true = ifeq(true,true,element(subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B),powerset(the_carrier(sK2_t51_tops_1_A))),true),
    inference(superposition,[],[f9,f24]) ).

fof(f24,axiom,
    true = element(sK1_t51_tops_1_B,powerset(the_carrier(sK2_t51_tops_1_A))),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',t51_tops_1_2) ).

fof(f9,axiom,
    ! [X0,X1] : true = ifeq(element(X1,powerset(X0)),true,element(subset_complement(X0,X1),powerset(X0)),true),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',dt_k3_subset_1) ).

fof(f11,axiom,
    ! [X0,X1] : true = ifeq(element(X1,powerset(the_carrier(X0))),true,ifeq(topological_space(X0),true,ifeq(top_str(X0),true,closed_subset(topstr_closure(X0,X1),X0),true),true),true),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',fc2_tops_1) ).

fof(f741,plain,
    true = ifeq(true,true,ifeq(closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true,open_subset(interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B),sK2_t51_tops_1_A),true),true),
    inference(forward_demodulation,[],[f725,f503]) ).

fof(f503,plain,
    interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B) = subset_complement(the_carrier(sK2_t51_tops_1_A),topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B))),
    inference(superposition,[],[f73,f1]) ).

fof(f1,axiom,
    ! [X2,X0,X1] : ifeq2(X0,X0,X1,X2) = X1,
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',ifeq_axiom) ).

fof(f73,plain,
    interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B) = ifeq2(true,true,subset_complement(the_carrier(sK2_t51_tops_1_A),topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B))),interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B)),
    inference(forward_demodulation,[],[f72,f1]) ).

fof(f72,plain,
    interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B) = ifeq2(true,true,ifeq2(true,true,subset_complement(the_carrier(sK2_t51_tops_1_A),topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B))),interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B)),interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B)),
    inference(forward_demodulation,[],[f59,f22]) ).

fof(f59,plain,
    interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B) = ifeq2(true,true,ifeq2(top_str(sK2_t51_tops_1_A),true,subset_complement(the_carrier(sK2_t51_tops_1_A),topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B))),interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B)),interior(sK2_t51_tops_1_A,sK1_t51_tops_1_B)),
    inference(superposition,[],[f21,f24]) ).

fof(f21,axiom,
    ! [X0,X1] : interior(X0,X1) = ifeq2(element(X1,powerset(the_carrier(X0))),true,ifeq2(top_str(X0),true,subset_complement(the_carrier(X0),topstr_closure(X0,subset_complement(the_carrier(X0),X1))),interior(X0,X1)),interior(X0,X1)),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',d1_tops_1) ).

fof(f725,plain,
    true = ifeq(true,true,ifeq(closed_subset(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),sK2_t51_tops_1_A),true,open_subset(subset_complement(the_carrier(sK2_t51_tops_1_A),topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B))),sK2_t51_tops_1_A),true),true),
    inference(superposition,[],[f40,f719]) ).

fof(f719,plain,
    true = element(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),powerset(the_carrier(sK2_t51_tops_1_A))),
    inference(superposition,[],[f232,f2]) ).

fof(f232,plain,
    true = ifeq(true,true,element(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),powerset(the_carrier(sK2_t51_tops_1_A))),true),
    inference(forward_demodulation,[],[f231,f2]) ).

fof(f231,plain,
    true = ifeq(true,true,ifeq(true,true,element(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),powerset(the_carrier(sK2_t51_tops_1_A))),true),true),
    inference(forward_demodulation,[],[f222,f22]) ).

fof(f222,plain,
    true = ifeq(true,true,ifeq(top_str(sK2_t51_tops_1_A),true,element(topstr_closure(sK2_t51_tops_1_A,subset_complement(the_carrier(sK2_t51_tops_1_A),sK1_t51_tops_1_B)),powerset(the_carrier(sK2_t51_tops_1_A))),true),true),
    inference(superposition,[],[f10,f219]) ).

fof(f10,axiom,
    ! [X0,X1] : true = ifeq(element(X1,powerset(the_carrier(X0))),true,ifeq(top_str(X0),true,element(topstr_closure(X0,X1),powerset(the_carrier(X0))),true),true),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',dt_k6_pre_topc) ).

fof(f40,plain,
    ! [X0] : true = ifeq(element(X0,powerset(the_carrier(sK2_t51_tops_1_A))),true,ifeq(closed_subset(X0,sK2_t51_tops_1_A),true,open_subset(subset_complement(the_carrier(sK2_t51_tops_1_A),X0),sK2_t51_tops_1_A),true),true),
    inference(forward_demodulation,[],[f39,f2]) ).

fof(f39,plain,
    ! [X0] : true = ifeq(element(X0,powerset(the_carrier(sK2_t51_tops_1_A))),true,ifeq(closed_subset(X0,sK2_t51_tops_1_A),true,ifeq(true,true,open_subset(subset_complement(the_carrier(sK2_t51_tops_1_A),X0),sK2_t51_tops_1_A),true),true),true),
    inference(forward_demodulation,[],[f38,f23]) ).

fof(f38,plain,
    ! [X0] : true = ifeq(element(X0,powerset(the_carrier(sK2_t51_tops_1_A))),true,ifeq(closed_subset(X0,sK2_t51_tops_1_A),true,ifeq(topological_space(sK2_t51_tops_1_A),true,open_subset(subset_complement(the_carrier(sK2_t51_tops_1_A),X0),sK2_t51_tops_1_A),true),true),true),
    inference(forward_demodulation,[],[f30,f2]) ).

fof(f30,plain,
    ! [X0] : true = ifeq(element(X0,powerset(the_carrier(sK2_t51_tops_1_A))),true,ifeq(closed_subset(X0,sK2_t51_tops_1_A),true,ifeq(topological_space(sK2_t51_tops_1_A),true,ifeq(true,true,open_subset(subset_complement(the_carrier(sK2_t51_tops_1_A),X0),sK2_t51_tops_1_A),true),true),true),true),
    inference(superposition,[],[f3,f22]) ).

fof(f3,axiom,
    ! [X0,X1] : true = ifeq(element(X1,powerset(the_carrier(X0))),true,ifeq(closed_subset(X1,X0),true,ifeq(topological_space(X0),true,ifeq(top_str(X0),true,open_subset(subset_complement(the_carrier(X0),X1),X0),true),true),true),true),
    file('/export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598',fc3_tops_1) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.13  % Problem    : SEU323-10 : TPTP v8.1.2. Released v7.3.0.
% 0.12/0.15  % Command    : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule file --schedule_file /export/starexec/sandbox2/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t %d %s
% 0.15/0.36  % Computer : n029.cluster.edu
% 0.15/0.36  % Model    : x86_64 x86_64
% 0.15/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.36  % Memory   : 8042.1875MB
% 0.15/0.36  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.15/0.36  % CPULimit   : 300
% 0.15/0.36  % WCLimit    : 300
% 0.15/0.36  % DateTime   : Fri May  3 11:45:07 EDT 2024
% 0.15/0.36  % CPUTime    : 
% 0.15/0.36  This is a CNF_UNS_RFO_PEQ_UEQ problem
% 0.15/0.37  Running vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule file --schedule_file /export/starexec/sandbox2/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t 300 /export/starexec/sandbox2/tmp/tmp.itlcl3uN5C/Vampire---4.8_21598
% 0.74/0.93  % (21839)lrs+1011_1:1_sil=8000:sp=occurrence:nwc=10.0:i=78:ss=axioms:sgt=8_0 on Vampire---4 for (2994ds/78Mi)
% 0.74/0.93  % (21838)lrs+1011_461:32768_sil=16000:irw=on:sp=frequency:lsd=20:fd=preordered:nwc=10.0:s2agt=32:alpa=false:cond=fast:s2a=on:i=51:s2at=3.0:awrs=decay:awrsf=691:bd=off:nm=20:fsr=off:amm=sco:uhcvi=on:rawr=on_0 on Vampire---4 for (2994ds/51Mi)
% 0.74/0.93  % (21837)dis-1011_2:1_sil=2000:lsd=20:nwc=5.0:flr=on:mep=off:st=3.0:i=34:sd=1:ep=RS:ss=axioms_0 on Vampire---4 for (2994ds/34Mi)
% 0.74/0.93  % (21840)ott+1011_1:1_sil=2000:urr=on:i=33:sd=1:kws=inv_frequency:ss=axioms:sup=off_0 on Vampire---4 for (2994ds/33Mi)
% 0.74/0.93  % (21842)lrs+1002_1:16_to=lpo:sil=32000:sp=unary_frequency:sos=on:i=45:bd=off:ss=axioms_0 on Vampire---4 for (2994ds/45Mi)
% 0.74/0.93  % (21841)lrs+2_1:1_sil=16000:fde=none:sos=all:nwc=5.0:i=34:ep=RS:s2pl=on:lma=on:afp=100000_0 on Vampire---4 for (2994ds/34Mi)
% 0.74/0.93  % (21843)lrs+21_1:5_sil=2000:sos=on:urr=on:newcnf=on:slsq=on:i=83:slsql=off:bd=off:nm=2:ss=axioms:st=1.5:sp=const_min:gsp=on:rawr=on_0 on Vampire---4 for (2994ds/83Mi)
% 0.74/0.93  % (21844)lrs-21_1:1_to=lpo:sil=2000:sp=frequency:sos=on:lma=on:i=56:sd=2:ss=axioms:ep=R_0 on Vampire---4 for (2994ds/56Mi)
% 0.74/0.93  % (21837)Refutation not found, incomplete strategy% (21837)------------------------------
% 0.74/0.93  % (21837)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.74/0.93  % (21837)Termination reason: Refutation not found, incomplete strategy
% 0.74/0.93  % (21840)Refutation not found, incomplete strategy% (21840)------------------------------
% 0.74/0.93  % (21840)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.74/0.93  
% 0.74/0.93  % (21837)Memory used [KB]: 980
% 0.74/0.93  % (21837)Time elapsed: 0.003 s
% 0.74/0.93  % (21837)Instructions burned: 3 (million)
% 0.74/0.93  % (21840)Termination reason: Refutation not found, incomplete strategy
% 0.74/0.93  
% 0.74/0.93  % (21840)Memory used [KB]: 966
% 0.74/0.93  % (21840)Time elapsed: 0.003 s
% 0.74/0.93  % (21840)Instructions burned: 3 (million)
% 0.74/0.93  % (21841)Refutation not found, incomplete strategy% (21841)------------------------------
% 0.74/0.93  % (21841)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.74/0.93  % (21841)Termination reason: Refutation not found, incomplete strategy
% 0.74/0.93  
% 0.74/0.93  % (21841)Memory used [KB]: 981
% 0.74/0.93  % (21841)Time elapsed: 0.003 s
% 0.74/0.93  % (21844)Refutation not found, incomplete strategy% (21844)------------------------------
% 0.74/0.93  % (21844)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.74/0.93  % (21841)Instructions burned: 3 (million)
% 0.74/0.93  % (21844)Termination reason: Refutation not found, incomplete strategy
% 0.74/0.93  
% 0.74/0.93  % (21844)Memory used [KB]: 965
% 0.74/0.93  % (21844)Time elapsed: 0.002 s
% 0.74/0.93  % (21844)Instructions burned: 3 (million)
% 0.74/0.93  % (21837)------------------------------
% 0.74/0.93  % (21837)------------------------------
% 0.74/0.93  % (21841)------------------------------
% 0.74/0.93  % (21841)------------------------------
% 0.74/0.93  % (21844)------------------------------
% 0.74/0.93  % (21844)------------------------------
% 0.74/0.93  % (21840)------------------------------
% 0.74/0.93  % (21840)------------------------------
% 0.74/0.93  % (21845)lrs+21_1:16_sil=2000:sp=occurrence:urr=on:flr=on:i=55:sd=1:nm=0:ins=3:ss=included:rawr=on:br=off_0 on Vampire---4 for (2994ds/55Mi)
% 0.74/0.93  % (21847)lrs+1010_1:2_sil=4000:tgt=ground:nwc=10.0:st=2.0:i=208:sd=1:bd=off:ss=axioms_0 on Vampire---4 for (2994ds/208Mi)
% 0.74/0.93  % (21846)dis+3_25:4_sil=16000:sos=all:erd=off:i=50:s2at=4.0:bd=off:nm=60:sup=off:cond=on:av=off:ins=2:nwc=10.0:etr=on:to=lpo:s2agt=20:fd=off:bsr=unit_only:slsq=on:slsqr=28,19:awrs=converge:awrsf=500:tgt=ground:bs=unit_only_0 on Vampire---4 for (2994ds/50Mi)
% 0.74/0.93  % (21848)lrs-1011_1:1_sil=4000:plsq=on:plsqr=32,1:sp=frequency:plsql=on:nwc=10.0:i=52:aac=none:afr=on:ss=axioms:er=filter:sgt=16:rawr=on:etr=on:lma=on_0 on Vampire---4 for (2994ds/52Mi)
% 0.74/0.93  % (21846)Refutation not found, incomplete strategy% (21846)------------------------------
% 0.74/0.93  % (21846)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.74/0.93  % (21846)Termination reason: Refutation not found, incomplete strategy
% 0.74/0.93  
% 0.74/0.93  % (21846)Memory used [KB]: 965
% 0.74/0.93  % (21846)Time elapsed: 0.003 s
% 0.74/0.93  % (21846)Instructions burned: 3 (million)
% 0.74/0.93  % (21846)------------------------------
% 0.74/0.93  % (21846)------------------------------
% 0.79/0.94  % (21849)lrs-1010_1:1_to=lpo:sil=2000:sp=reverse_arity:sos=on:urr=ec_only:i=518:sd=2:bd=off:ss=axioms:sgt=16_0 on Vampire---4 for (2994ds/518Mi)
% 0.79/0.95  % (21843)First to succeed.
% 0.79/0.95  % (21843)Solution written to "/export/starexec/sandbox2/tmp/vampire-proof-21813"
% 0.79/0.95  % (21843)Refutation found. Thanks to Tanya!
% 0.79/0.95  % SZS status Unsatisfiable for Vampire---4
% 0.79/0.95  % SZS output start Proof for Vampire---4
% See solution above
% 0.79/0.95  % (21843)------------------------------
% 0.79/0.95  % (21843)Version: Vampire 4.8 (commit 3a798227e on 2024-05-03 07:42:47 +0200)
% 0.79/0.95  % (21843)Termination reason: Refutation
% 0.79/0.95  
% 0.79/0.95  % (21843)Memory used [KB]: 1344
% 0.79/0.95  % (21843)Time elapsed: 0.020 s
% 0.79/0.95  % (21843)Instructions burned: 41 (million)
% 0.79/0.95  % (21813)Success in time 0.57 s
% 0.79/0.95  % Vampire---4.8 exiting
%------------------------------------------------------------------------------