TSTP Solution File: TOP027+1 by SnakeForV---1.0
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : SnakeForV---1.0
% Problem : TOP027+1 : TPTP v8.1.0. Released v3.4.0.
% Transfm : none
% Format : tptp:raw
% Command : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_uns --cores 0 -t %d %s
% Computer : n018.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 19:52:38 EDT 2022
% Result : Theorem 0.20s 0.54s
% Output : Refutation 0.20s
% Verified :
% SZS Type : Refutation
% Derivation depth : 8
% Number of leaves : 7
% Syntax : Number of formulae : 35 ( 11 unt; 0 def)
% Number of atoms : 146 ( 16 equ)
% Maximal formula atoms : 14 ( 4 avg)
% Number of connectives : 170 ( 59 ~; 41 |; 50 &)
% ( 0 <=>; 20 =>; 0 <=; 0 <~>)
% Maximal formula depth : 12 ( 6 avg)
% Maximal term depth : 4 ( 2 avg)
% Number of predicates : 8 ( 6 usr; 1 prp; 0-2 aty)
% Number of functors : 8 ( 8 usr; 3 con; 0-3 aty)
% Number of variables : 57 ( 42 !; 15 ?)
% Comments :
%------------------------------------------------------------------------------
fof(f257,plain,
$false,
inference(subsumption_resolution,[],[f256,f220]) ).
fof(f220,plain,
m1_subset_1(k1_tops_1(sK5,sK7),k1_zfmisc_1(u1_struct_0(sK5))),
inference(unit_resulting_resolution,[],[f172,f170,f181]) ).
fof(f181,plain,
! [X0,X1] :
( m1_subset_1(k1_tops_1(X0,X1),k1_zfmisc_1(u1_struct_0(X0)))
| ~ l1_pre_topc(X0)
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) ),
inference(cnf_transformation,[],[f148]) ).
fof(f148,plain,
! [X0,X1] :
( ~ l1_pre_topc(X0)
| m1_subset_1(k1_tops_1(X0,X1),k1_zfmisc_1(u1_struct_0(X0)))
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) ),
inference(rectify,[],[f102]) ).
fof(f102,plain,
! [X1,X0] :
( ~ l1_pre_topc(X1)
| m1_subset_1(k1_tops_1(X1,X0),k1_zfmisc_1(u1_struct_0(X1)))
| ~ m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1))) ),
inference(flattening,[],[f101]) ).
fof(f101,plain,
! [X0,X1] :
( m1_subset_1(k1_tops_1(X1,X0),k1_zfmisc_1(u1_struct_0(X1)))
| ~ m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1)))
| ~ l1_pre_topc(X1) ),
inference(ennf_transformation,[],[f86]) ).
fof(f86,plain,
! [X0,X1] :
( ( m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1)))
& l1_pre_topc(X1) )
=> m1_subset_1(k1_tops_1(X1,X0),k1_zfmisc_1(u1_struct_0(X1))) ),
inference(rectify,[],[f69]) ).
fof(f69,axiom,
! [X1,X0] :
( ( m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
& l1_pre_topc(X0) )
=> m1_subset_1(k1_tops_1(X0,X1),k1_zfmisc_1(u1_struct_0(X0))) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',dt_k1_tops_1) ).
fof(f170,plain,
m1_subset_1(sK7,k1_zfmisc_1(u1_struct_0(sK5))),
inference(cnf_transformation,[],[f143]) ).
fof(f143,plain,
( v2_pre_topc(sK5)
& l1_pre_topc(sK5)
& k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),sK6,k1_tops_1(sK5,sK7))) != k1_tops_1(sK5,sK7)
& m1_subset_1(sK7,k1_zfmisc_1(u1_struct_0(sK5)))
& v1_tsp_2(sK6,sK5)
& m1_subset_1(sK6,k1_zfmisc_1(u1_struct_0(sK5)))
& ~ v3_struct_0(sK5) ),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK5,sK6,sK7])],[f124,f142,f141,f140]) ).
fof(f140,plain,
( ? [X0] :
( v2_pre_topc(X0)
& l1_pre_topc(X0)
& ? [X1] :
( ? [X2] :
( k1_tops_1(X0,X2) != k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,k1_tops_1(X0,X2)))
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0))) )
& v1_tsp_2(X1,X0)
& m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) )
& ~ v3_struct_0(X0) )
=> ( v2_pre_topc(sK5)
& l1_pre_topc(sK5)
& ? [X1] :
( ? [X2] :
( k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),X1,k1_tops_1(sK5,X2))) != k1_tops_1(sK5,X2)
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(sK5))) )
& v1_tsp_2(X1,sK5)
& m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(sK5))) )
& ~ v3_struct_0(sK5) ) ),
introduced(choice_axiom,[]) ).
fof(f141,plain,
( ? [X1] :
( ? [X2] :
( k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),X1,k1_tops_1(sK5,X2))) != k1_tops_1(sK5,X2)
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(sK5))) )
& v1_tsp_2(X1,sK5)
& m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(sK5))) )
=> ( ? [X2] :
( k1_tops_1(sK5,X2) != k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),sK6,k1_tops_1(sK5,X2)))
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(sK5))) )
& v1_tsp_2(sK6,sK5)
& m1_subset_1(sK6,k1_zfmisc_1(u1_struct_0(sK5))) ) ),
introduced(choice_axiom,[]) ).
fof(f142,plain,
( ? [X2] :
( k1_tops_1(sK5,X2) != k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),sK6,k1_tops_1(sK5,X2)))
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(sK5))) )
=> ( k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),sK6,k1_tops_1(sK5,sK7))) != k1_tops_1(sK5,sK7)
& m1_subset_1(sK7,k1_zfmisc_1(u1_struct_0(sK5))) ) ),
introduced(choice_axiom,[]) ).
fof(f124,plain,
? [X0] :
( v2_pre_topc(X0)
& l1_pre_topc(X0)
& ? [X1] :
( ? [X2] :
( k1_tops_1(X0,X2) != k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,k1_tops_1(X0,X2)))
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0))) )
& v1_tsp_2(X1,X0)
& m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) )
& ~ v3_struct_0(X0) ),
inference(flattening,[],[f123]) ).
fof(f123,plain,
? [X0] :
( ? [X1] :
( ? [X2] :
( k1_tops_1(X0,X2) != k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,k1_tops_1(X0,X2)))
& m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0))) )
& v1_tsp_2(X1,X0)
& m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) )
& l1_pre_topc(X0)
& ~ v3_struct_0(X0)
& v2_pre_topc(X0) ),
inference(ennf_transformation,[],[f2]) ).
fof(f2,negated_conjecture,
~ ! [X0] :
( ( l1_pre_topc(X0)
& ~ v3_struct_0(X0)
& v2_pre_topc(X0) )
=> ! [X1] :
( m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
=> ( v1_tsp_2(X1,X0)
=> ! [X2] :
( m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0)))
=> k1_tops_1(X0,X2) = k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,k1_tops_1(X0,X2))) ) ) ) ),
inference(negated_conjecture,[],[f1]) ).
fof(f1,conjecture,
! [X0] :
( ( l1_pre_topc(X0)
& ~ v3_struct_0(X0)
& v2_pre_topc(X0) )
=> ! [X1] :
( m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
=> ( v1_tsp_2(X1,X0)
=> ! [X2] :
( m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0)))
=> k1_tops_1(X0,X2) = k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,k1_tops_1(X0,X2))) ) ) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',t8_tsp_2) ).
fof(f172,plain,
l1_pre_topc(sK5),
inference(cnf_transformation,[],[f143]) ).
fof(f256,plain,
~ m1_subset_1(k1_tops_1(sK5,sK7),k1_zfmisc_1(u1_struct_0(sK5))),
inference(unit_resulting_resolution,[],[f173,f167,f172,f169,f168,f171,f218,f182]) ).
fof(f182,plain,
! [X2,X0,X1] :
( ~ m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0)))
| ~ l1_pre_topc(X0)
| k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,X2)) = X2
| v3_struct_0(X0)
| ~ v2_pre_topc(X0)
| ~ v3_pre_topc(X2,X0)
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
| ~ v1_tsp_2(X1,X0) ),
inference(cnf_transformation,[],[f96]) ).
fof(f96,plain,
! [X0] :
( ~ l1_pre_topc(X0)
| ! [X1] :
( ~ v1_tsp_2(X1,X0)
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
| ! [X2] :
( k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,X2)) = X2
| ~ m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0)))
| ~ v3_pre_topc(X2,X0) ) )
| v3_struct_0(X0)
| ~ v2_pre_topc(X0) ),
inference(flattening,[],[f95]) ).
fof(f95,plain,
! [X0] :
( ! [X1] :
( ! [X2] :
( k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,X2)) = X2
| ~ v3_pre_topc(X2,X0)
| ~ m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0))) )
| ~ v1_tsp_2(X1,X0)
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0))) )
| v3_struct_0(X0)
| ~ l1_pre_topc(X0)
| ~ v2_pre_topc(X0) ),
inference(ennf_transformation,[],[f80]) ).
fof(f80,axiom,
! [X0] :
( ( ~ v3_struct_0(X0)
& l1_pre_topc(X0)
& v2_pre_topc(X0) )
=> ! [X1] :
( m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
=> ( v1_tsp_2(X1,X0)
=> ! [X2] :
( m1_subset_1(X2,k1_zfmisc_1(u1_struct_0(X0)))
=> ( v3_pre_topc(X2,X0)
=> k3_tex_4(X0,k5_subset_1(u1_struct_0(X0),X1,X2)) = X2 ) ) ) ) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',t6_tsp_2) ).
fof(f218,plain,
v3_pre_topc(k1_tops_1(sK5,sK7),sK5),
inference(unit_resulting_resolution,[],[f173,f172,f170,f160]) ).
fof(f160,plain,
! [X0,X1] :
( ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
| v3_pre_topc(k1_tops_1(X0,X1),X0)
| ~ l1_pre_topc(X0)
| ~ v2_pre_topc(X0) ),
inference(cnf_transformation,[],[f135]) ).
fof(f135,plain,
! [X0,X1] :
( v3_pre_topc(k1_tops_1(X0,X1),X0)
| ~ l1_pre_topc(X0)
| ~ m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
| ~ v2_pre_topc(X0) ),
inference(rectify,[],[f112]) ).
fof(f112,plain,
! [X1,X0] :
( v3_pre_topc(k1_tops_1(X1,X0),X1)
| ~ l1_pre_topc(X1)
| ~ m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1)))
| ~ v2_pre_topc(X1) ),
inference(flattening,[],[f111]) ).
fof(f111,plain,
! [X0,X1] :
( v3_pre_topc(k1_tops_1(X1,X0),X1)
| ~ v2_pre_topc(X1)
| ~ l1_pre_topc(X1)
| ~ m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1))) ),
inference(ennf_transformation,[],[f87]) ).
fof(f87,plain,
! [X0,X1] :
( ( v2_pre_topc(X1)
& l1_pre_topc(X1)
& m1_subset_1(X0,k1_zfmisc_1(u1_struct_0(X1))) )
=> v3_pre_topc(k1_tops_1(X1,X0),X1) ),
inference(rectify,[],[f77]) ).
fof(f77,axiom,
! [X1,X0] :
( ( m1_subset_1(X1,k1_zfmisc_1(u1_struct_0(X0)))
& l1_pre_topc(X0)
& v2_pre_topc(X0) )
=> v3_pre_topc(k1_tops_1(X0,X1),X0) ),
file('/export/starexec/sandbox/benchmark/theBenchmark.p',fc6_tops_1) ).
fof(f171,plain,
k3_tex_4(sK5,k5_subset_1(u1_struct_0(sK5),sK6,k1_tops_1(sK5,sK7))) != k1_tops_1(sK5,sK7),
inference(cnf_transformation,[],[f143]) ).
fof(f168,plain,
m1_subset_1(sK6,k1_zfmisc_1(u1_struct_0(sK5))),
inference(cnf_transformation,[],[f143]) ).
fof(f169,plain,
v1_tsp_2(sK6,sK5),
inference(cnf_transformation,[],[f143]) ).
fof(f167,plain,
~ v3_struct_0(sK5),
inference(cnf_transformation,[],[f143]) ).
fof(f173,plain,
v2_pre_topc(sK5),
inference(cnf_transformation,[],[f143]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12 % Problem : TOP027+1 : TPTP v8.1.0. Released v3.4.0.
% 0.12/0.13 % Command : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_uns --cores 0 -t %d %s
% 0.13/0.34 % Computer : n018.cluster.edu
% 0.13/0.34 % Model : x86_64 x86_64
% 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.34 % Memory : 8042.1875MB
% 0.13/0.34 % 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 : Mon Aug 29 14:38:39 EDT 2022
% 0.13/0.34 % CPUTime :
% 0.20/0.49 % (4367)lrs+10_1:1_br=off:sos=on:ss=axioms:st=2.0:urr=on:i=33:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/33Mi)
% 0.20/0.51 % (4374)lrs+1011_1:1_fd=preordered:fsd=on:sos=on:thsq=on:thsqc=64:thsqd=32:uwa=ground:i=50:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/50Mi)
% 0.20/0.51 % (4366)dis+10_1:1_newcnf=on:sgt=8:sos=on:ss=axioms:to=lpo:urr=on:i=49:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/49Mi)
% 0.20/0.51 % (4378)dis+1010_1:1_bs=on:ep=RS:erd=off:newcnf=on:nwc=10.0:s2a=on:sgt=32:ss=axioms:i=30:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/30Mi)
% 0.20/0.51 % (4365)lrs+2_1:1_lcm=reverse:lma=on:sos=all:spb=goal_then_units:ss=included:urr=on:i=39:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/39Mi)
% 0.20/0.51 % (4358)dis+1002_1:12_drc=off:fd=preordered:tgt=full:i=99978:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/99978Mi)
% 0.20/0.52 % (4368)lrs+10_1:1_ep=R:lcm=predicate:lma=on:sos=all:spb=goal:ss=included:i=12:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/12Mi)
% 0.20/0.52 % (4387)lrs-11_1:1_nm=0:sac=on:sd=4:ss=axioms:st=3.0:i=24:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/24Mi)
% 0.20/0.52 % (4383)lrs+11_1:1_plsq=on:plsqc=1:plsqr=32,1:ss=included:i=95:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/95Mi)
% 0.20/0.52 % (4375)fmb+10_1:1_nm=2:i=3:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/3Mi)
% 0.20/0.52 % (4369)lrs+10_1:2_br=off:nm=4:ss=included:urr=on:i=7:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/7Mi)
% 0.20/0.52 % (4380)dis+1010_2:3_fs=off:fsr=off:nm=0:nwc=5.0:s2a=on:s2agt=32:i=82:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/82Mi)
% 0.20/0.52 % (4363)dis+21_1:1_av=off:sos=on:sp=frequency:ss=included:to=lpo:i=15:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/15Mi)
% 0.20/0.53 % (4371)lrs+10_1:32_br=off:nm=16:sd=2:ss=axioms:st=2.0:urr=on:i=51:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/51Mi)
% 0.20/0.53 % (4359)lrs+10_1:1_gsp=on:sd=1:sgt=32:sos=on:ss=axioms:i=13:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/13Mi)
% 0.20/0.53 % (4386)dis+2_3:1_aac=none:abs=on:ep=R:lcm=reverse:nwc=10.0:sos=on:sp=const_frequency:spb=units:urr=ec_only:i=8:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/8Mi)
% 0.20/0.53 % (4361)lrs+10_5:1_br=off:fde=none:nwc=3.0:sd=1:sgt=10:sos=on:ss=axioms:urr=on:i=51:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/51Mi)
% 0.20/0.53 % (4360)dis+1002_1:1_aac=none:bd=off:sac=on:sos=on:spb=units:i=3:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/3Mi)
% 0.20/0.53 % (4361)First to succeed.
% 0.20/0.53 % (4384)lrs+1011_1:1_fd=preordered:fsd=on:sos=on:thsq=on:thsqc=64:thsqd=32:uwa=ground:i=99:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/99Mi)
% 0.20/0.54 % (4377)dis-10_3:2_amm=sco:ep=RS:fsr=off:nm=10:sd=2:sos=on:ss=axioms:st=3.0:i=11:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/11Mi)
% 0.20/0.54 % (4364)dis+1010_1:50_awrs=decay:awrsf=128:nwc=10.0:s2pl=no:sp=frequency:ss=axioms:i=39:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/39Mi)
% 0.20/0.54 % (4362)lrs+10_1:1024_nm=0:nwc=5.0:ss=axioms:i=13:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/13Mi)
% 0.20/0.54 % (4375)Instruction limit reached!
% 0.20/0.54 % (4375)------------------------------
% 0.20/0.54 % (4375)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.20/0.54 % (4378)Also succeeded, but the first one will report.
% 0.20/0.54 % (4375)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.20/0.54 % (4375)Termination reason: Unknown
% 0.20/0.54 % (4375)Termination phase: Preprocessing 3
% 0.20/0.54
% 0.20/0.54 % (4375)Memory used [KB]: 1535
% 0.20/0.54 % (4375)Time elapsed: 0.003 s
% 0.20/0.54 % (4375)Instructions burned: 3 (million)
% 0.20/0.54 % (4375)------------------------------
% 0.20/0.54 % (4375)------------------------------
% 0.20/0.54 % (4361)Refutation found. Thanks to Tanya!
% 0.20/0.54 % SZS status Theorem for theBenchmark
% 0.20/0.54 % SZS output start Proof for theBenchmark
% See solution above
% 0.20/0.54 % (4361)------------------------------
% 0.20/0.54 % (4361)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.20/0.54 % (4361)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.20/0.54 % (4361)Termination reason: Refutation
% 0.20/0.54
% 0.20/0.54 % (4361)Memory used [KB]: 6140
% 0.20/0.54 % (4361)Time elapsed: 0.127 s
% 0.20/0.54 % (4361)Instructions burned: 6 (million)
% 0.20/0.54 % (4361)------------------------------
% 0.20/0.54 % (4361)------------------------------
% 0.20/0.54 % (4357)Success in time 0.188 s
%------------------------------------------------------------------------------