TSTP Solution File: SWB075+1 by Vampire---4.8
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Vampire---4.8
% Problem : SWB075+1 : TPTP v8.1.2. Released v5.2.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/sandbox/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t %d %s
% Computer : n002.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 May 1 03:58:59 EDT 2024
% Result : Theorem 0.66s 0.84s
% Output : Refutation 0.66s
% Verified :
% SZS Type : Refutation
% Derivation depth : 15
% Number of leaves : 14
% Syntax : Number of formulae : 70 ( 14 unt; 0 def)
% Number of atoms : 206 ( 0 equ)
% Maximal formula atoms : 10 ( 2 avg)
% Number of connectives : 221 ( 85 ~; 82 |; 34 &)
% ( 10 <=>; 10 =>; 0 <=; 0 <~>)
% Maximal formula depth : 10 ( 4 avg)
% Maximal term depth : 2 ( 1 avg)
% Number of predicates : 9 ( 8 usr; 4 prp; 0-3 aty)
% Number of functors : 7 ( 7 usr; 5 con; 0-2 aty)
% Number of variables : 97 ( 89 !; 8 ?)
% Comments :
%------------------------------------------------------------------------------
fof(f834,plain,
$false,
inference(avatar_sat_refutation,[],[f773,f783,f798,f833]) ).
fof(f833,plain,
( ~ spl7_3
| ~ spl7_5
| spl7_6 ),
inference(avatar_contradiction_clause,[],[f832]) ).
fof(f832,plain,
( $false
| ~ spl7_3
| ~ spl7_5
| spl7_6 ),
inference(subsumption_resolution,[],[f831,f777]) ).
fof(f777,plain,
( ip(uri_ex_p)
| ~ spl7_5 ),
inference(avatar_component_clause,[],[f776]) ).
fof(f776,plain,
( spl7_5
<=> ip(uri_ex_p) ),
introduced(avatar_definition,[new_symbols(naming,[spl7_5])]) ).
fof(f831,plain,
( ~ ip(uri_ex_p)
| ~ spl7_3
| spl7_6 ),
inference(subsumption_resolution,[],[f830,f739]) ).
fof(f739,plain,
( ip(uri_owl_topDataProperty)
| ~ spl7_3 ),
inference(avatar_component_clause,[],[f738]) ).
fof(f738,plain,
( spl7_3
<=> ip(uri_owl_topDataProperty) ),
introduced(avatar_definition,[new_symbols(naming,[spl7_3])]) ).
fof(f830,plain,
( ~ ip(uri_owl_topDataProperty)
| ~ ip(uri_ex_p)
| spl7_6 ),
inference(subsumption_resolution,[],[f829,f639]) ).
fof(f639,plain,
~ iext(uri_rdfs_subPropertyOf,uri_ex_p,uri_owl_topDataProperty),
inference(cnf_transformation,[],[f562]) ).
fof(f562,plain,
~ iext(uri_rdfs_subPropertyOf,uri_ex_p,uri_owl_topDataProperty),
inference(flattening,[],[f560]) ).
fof(f560,negated_conjecture,
~ iext(uri_rdfs_subPropertyOf,uri_ex_p,uri_owl_topDataProperty),
inference(negated_conjecture,[],[f559]) ).
fof(f559,conjecture,
iext(uri_rdfs_subPropertyOf,uri_ex_p,uri_owl_topDataProperty),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',conclusion_rdfbased_sem_prop_topdataproperty_term) ).
fof(f829,plain,
( iext(uri_rdfs_subPropertyOf,uri_ex_p,uri_owl_topDataProperty)
| ~ ip(uri_owl_topDataProperty)
| ~ ip(uri_ex_p)
| spl7_6 ),
inference(resolution,[],[f825,f643]) ).
fof(f643,plain,
! [X0,X1] :
( iext(X0,sK0(X0,X1),sK1(X0,X1))
| iext(uri_rdfs_subPropertyOf,X0,X1)
| ~ ip(X1)
| ~ ip(X0) ),
inference(cnf_transformation,[],[f615]) ).
fof(f615,plain,
! [X0,X1] :
( ( iext(uri_rdfs_subPropertyOf,X0,X1)
| ( ~ iext(X1,sK0(X0,X1),sK1(X0,X1))
& iext(X0,sK0(X0,X1),sK1(X0,X1)) )
| ~ ip(X1)
| ~ ip(X0) )
& ( ( ! [X4,X5] :
( iext(X1,X4,X5)
| ~ iext(X0,X4,X5) )
& ip(X1)
& ip(X0) )
| ~ iext(uri_rdfs_subPropertyOf,X0,X1) ) ),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK0,sK1])],[f613,f614]) ).
fof(f614,plain,
! [X0,X1] :
( ? [X2,X3] :
( ~ iext(X1,X2,X3)
& iext(X0,X2,X3) )
=> ( ~ iext(X1,sK0(X0,X1),sK1(X0,X1))
& iext(X0,sK0(X0,X1),sK1(X0,X1)) ) ),
introduced(choice_axiom,[]) ).
fof(f613,plain,
! [X0,X1] :
( ( iext(uri_rdfs_subPropertyOf,X0,X1)
| ? [X2,X3] :
( ~ iext(X1,X2,X3)
& iext(X0,X2,X3) )
| ~ ip(X1)
| ~ ip(X0) )
& ( ( ! [X4,X5] :
( iext(X1,X4,X5)
| ~ iext(X0,X4,X5) )
& ip(X1)
& ip(X0) )
| ~ iext(uri_rdfs_subPropertyOf,X0,X1) ) ),
inference(rectify,[],[f612]) ).
fof(f612,plain,
! [X0,X1] :
( ( iext(uri_rdfs_subPropertyOf,X0,X1)
| ? [X2,X3] :
( ~ iext(X1,X2,X3)
& iext(X0,X2,X3) )
| ~ ip(X1)
| ~ ip(X0) )
& ( ( ! [X2,X3] :
( iext(X1,X2,X3)
| ~ iext(X0,X2,X3) )
& ip(X1)
& ip(X0) )
| ~ iext(uri_rdfs_subPropertyOf,X0,X1) ) ),
inference(flattening,[],[f611]) ).
fof(f611,plain,
! [X0,X1] :
( ( iext(uri_rdfs_subPropertyOf,X0,X1)
| ? [X2,X3] :
( ~ iext(X1,X2,X3)
& iext(X0,X2,X3) )
| ~ ip(X1)
| ~ ip(X0) )
& ( ( ! [X2,X3] :
( iext(X1,X2,X3)
| ~ iext(X0,X2,X3) )
& ip(X1)
& ip(X0) )
| ~ iext(uri_rdfs_subPropertyOf,X0,X1) ) ),
inference(nnf_transformation,[],[f591]) ).
fof(f591,plain,
! [X0,X1] :
( iext(uri_rdfs_subPropertyOf,X0,X1)
<=> ( ! [X2,X3] :
( iext(X1,X2,X3)
| ~ iext(X0,X2,X3) )
& ip(X1)
& ip(X0) ) ),
inference(ennf_transformation,[],[f563]) ).
fof(f563,plain,
! [X0,X1] :
( iext(uri_rdfs_subPropertyOf,X0,X1)
<=> ( ! [X2,X3] :
( iext(X0,X2,X3)
=> iext(X1,X2,X3) )
& ip(X1)
& ip(X0) ) ),
inference(rectify,[],[f344]) ).
fof(f344,axiom,
! [X32,X33] :
( iext(uri_rdfs_subPropertyOf,X32,X33)
<=> ( ! [X3,X6] :
( iext(X32,X3,X6)
=> iext(X33,X3,X6) )
& ip(X33)
& ip(X32) ) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_rdfsext_subpropertyof) ).
fof(f825,plain,
( ! [X0] : ~ iext(uri_ex_p,X0,sK1(uri_ex_p,uri_owl_topDataProperty))
| spl7_6 ),
inference(resolution,[],[f804,f656]) ).
fof(f656,plain,
iext(uri_rdf_type,uri_ex_p,uri_owl_DatatypeProperty),
inference(cnf_transformation,[],[f561]) ).
fof(f561,axiom,
iext(uri_rdf_type,uri_ex_p,uri_owl_DatatypeProperty),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',premise_rdfbased_sem_prop_topdataproperty_term) ).
fof(f804,plain,
( ! [X0,X1] :
( ~ iext(uri_rdf_type,X0,uri_owl_DatatypeProperty)
| ~ iext(X0,X1,sK1(uri_ex_p,uri_owl_topDataProperty)) )
| spl7_6 ),
inference(resolution,[],[f799,f703]) ).
fof(f703,plain,
! [X0] :
( iodp(X0)
| ~ iext(uri_rdf_type,X0,uri_owl_DatatypeProperty) ),
inference(cnf_transformation,[],[f635]) ).
fof(f635,plain,
! [X0] :
( ( iodp(X0)
| ~ iext(uri_rdf_type,X0,uri_owl_DatatypeProperty) )
& ( iext(uri_rdf_type,X0,uri_owl_DatatypeProperty)
| ~ iodp(X0) ) ),
inference(nnf_transformation,[],[f587]) ).
fof(f587,plain,
! [X0] :
( iodp(X0)
<=> iext(uri_rdf_type,X0,uri_owl_DatatypeProperty) ),
inference(rectify,[],[f92]) ).
fof(f92,axiom,
! [X3] :
( iodp(X3)
<=> iext(uri_rdf_type,X3,uri_owl_DatatypeProperty) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_parts_iodp_def) ).
fof(f799,plain,
( ! [X0,X1] :
( ~ iodp(X0)
| ~ iext(X0,X1,sK1(uri_ex_p,uri_owl_topDataProperty)) )
| spl7_6 ),
inference(resolution,[],[f782,f719]) ).
fof(f719,plain,
! [X2,X3,X0,X1] :
( iext(uri_owl_topDataProperty,X3,X2)
| ~ iodp(X0)
| ~ iext(X0,X1,X2) ),
inference(subsumption_resolution,[],[f717,f696]) ).
fof(f696,plain,
! [X0] : ir(X0),
inference(cnf_transformation,[],[f584]) ).
fof(f584,plain,
! [X0] : ir(X0),
inference(rectify,[],[f2]) ).
fof(f2,axiom,
! [X3] : ir(X3),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',simple_ir) ).
fof(f717,plain,
! [X2,X3,X0,X1] :
( ~ iext(X0,X1,X2)
| ~ iodp(X0)
| iext(uri_owl_topDataProperty,X3,X2)
| ~ ir(X3) ),
inference(resolution,[],[f687,f655]) ).
fof(f655,plain,
! [X0,X1] :
( ~ lv(X1)
| iext(uri_owl_topDataProperty,X0,X1)
| ~ ir(X0) ),
inference(cnf_transformation,[],[f617]) ).
fof(f617,plain,
! [X0,X1] :
( ( iext(uri_owl_topDataProperty,X0,X1)
| ~ lv(X1)
| ~ ir(X0) )
& ( ( lv(X1)
& ir(X0) )
| ~ iext(uri_owl_topDataProperty,X0,X1) ) ),
inference(flattening,[],[f616]) ).
fof(f616,plain,
! [X0,X1] :
( ( iext(uri_owl_topDataProperty,X0,X1)
| ~ lv(X1)
| ~ ir(X0) )
& ( ( lv(X1)
& ir(X0) )
| ~ iext(uri_owl_topDataProperty,X0,X1) ) ),
inference(nnf_transformation,[],[f567]) ).
fof(f567,plain,
! [X0,X1] :
( iext(uri_owl_topDataProperty,X0,X1)
<=> ( lv(X1)
& ir(X0) ) ),
inference(rectify,[],[f266]) ).
fof(f266,axiom,
! [X3,X6] :
( iext(uri_owl_topDataProperty,X3,X6)
<=> ( lv(X6)
& ir(X3) ) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_prop_topdataproperty_ext) ).
fof(f687,plain,
! [X2,X0,X1] :
( lv(X2)
| ~ iext(X0,X1,X2)
| ~ iodp(X0) ),
inference(cnf_transformation,[],[f604]) ).
fof(f604,plain,
! [X0] :
( ! [X1,X2] :
( ( lv(X2)
& ir(X1) )
| ~ iext(X0,X1,X2) )
| ~ iodp(X0) ),
inference(ennf_transformation,[],[f576]) ).
fof(f576,plain,
! [X0] :
( iodp(X0)
=> ! [X1,X2] :
( iext(X0,X1,X2)
=> ( lv(X2)
& ir(X1) ) ) ),
inference(rectify,[],[f90]) ).
fof(f90,axiom,
! [X3] :
( iodp(X3)
=> ! [X6,X10] :
( iext(X3,X6,X10)
=> ( lv(X10)
& ir(X6) ) ) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_parts_iodp_cond_inst) ).
fof(f782,plain,
( ~ iext(uri_owl_topDataProperty,sK0(uri_ex_p,uri_owl_topDataProperty),sK1(uri_ex_p,uri_owl_topDataProperty))
| spl7_6 ),
inference(avatar_component_clause,[],[f780]) ).
fof(f780,plain,
( spl7_6
<=> iext(uri_owl_topDataProperty,sK0(uri_ex_p,uri_owl_topDataProperty),sK1(uri_ex_p,uri_owl_topDataProperty)) ),
introduced(avatar_definition,[new_symbols(naming,[spl7_6])]) ).
fof(f798,plain,
spl7_5,
inference(avatar_contradiction_clause,[],[f797]) ).
fof(f797,plain,
( $false
| spl7_5 ),
inference(subsumption_resolution,[],[f795,f656]) ).
fof(f795,plain,
( ~ iext(uri_rdf_type,uri_ex_p,uri_owl_DatatypeProperty)
| spl7_5 ),
inference(resolution,[],[f792,f703]) ).
fof(f792,plain,
( ~ iodp(uri_ex_p)
| spl7_5 ),
inference(resolution,[],[f778,f685]) ).
fof(f685,plain,
! [X0] :
( ip(X0)
| ~ iodp(X0) ),
inference(cnf_transformation,[],[f603]) ).
fof(f603,plain,
! [X0] :
( ip(X0)
| ~ iodp(X0) ),
inference(ennf_transformation,[],[f575]) ).
fof(f575,plain,
! [X0] :
( iodp(X0)
=> ip(X0) ),
inference(rectify,[],[f91]) ).
fof(f91,axiom,
! [X3] :
( iodp(X3)
=> ip(X3) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_parts_iodp_cond_set) ).
fof(f778,plain,
( ~ ip(uri_ex_p)
| spl7_5 ),
inference(avatar_component_clause,[],[f776]) ).
fof(f783,plain,
( ~ spl7_5
| ~ spl7_6 ),
inference(avatar_split_clause,[],[f774,f780,f776]) ).
fof(f774,plain,
( ~ iext(uri_owl_topDataProperty,sK0(uri_ex_p,uri_owl_topDataProperty),sK1(uri_ex_p,uri_owl_topDataProperty))
| ~ ip(uri_ex_p) ),
inference(subsumption_resolution,[],[f745,f657]) ).
fof(f657,plain,
! [X2,X0,X1] :
( ip(X1)
| ~ iext(X1,X0,X2) ),
inference(cnf_transformation,[],[f596]) ).
fof(f596,plain,
! [X0,X1,X2] :
( ip(X1)
| ~ iext(X1,X0,X2) ),
inference(ennf_transformation,[],[f1]) ).
fof(f1,axiom,
! [X0,X1,X2] :
( iext(X1,X0,X2)
=> ip(X1) ),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',simple_iext_property) ).
fof(f745,plain,
( ~ iext(uri_owl_topDataProperty,sK0(uri_ex_p,uri_owl_topDataProperty),sK1(uri_ex_p,uri_owl_topDataProperty))
| ~ ip(uri_owl_topDataProperty)
| ~ ip(uri_ex_p) ),
inference(resolution,[],[f644,f639]) ).
fof(f644,plain,
! [X0,X1] :
( iext(uri_rdfs_subPropertyOf,X0,X1)
| ~ iext(X1,sK0(X0,X1),sK1(X0,X1))
| ~ ip(X1)
| ~ ip(X0) ),
inference(cnf_transformation,[],[f615]) ).
fof(f773,plain,
spl7_3,
inference(avatar_contradiction_clause,[],[f772]) ).
fof(f772,plain,
( $false
| spl7_3 ),
inference(subsumption_resolution,[],[f769,f652]) ).
fof(f652,plain,
iodp(uri_owl_topDataProperty),
inference(cnf_transformation,[],[f267]) ).
fof(f267,axiom,
iodp(uri_owl_topDataProperty),
file('/export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669',owl_prop_topdataproperty_type) ).
fof(f769,plain,
( ~ iodp(uri_owl_topDataProperty)
| spl7_3 ),
inference(resolution,[],[f740,f685]) ).
fof(f740,plain,
( ~ ip(uri_owl_topDataProperty)
| spl7_3 ),
inference(avatar_component_clause,[],[f738]) ).
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.04/0.13 % Problem : SWB075+1 : TPTP v8.1.2. Released v5.2.0.
% 0.16/0.15 % Command : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule file --schedule_file /export/starexec/sandbox/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t %d %s
% 0.16/0.36 % Computer : n002.cluster.edu
% 0.16/0.36 % Model : x86_64 x86_64
% 0.16/0.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.36 % Memory : 8042.1875MB
% 0.16/0.36 % OS : Linux 3.10.0-693.el7.x86_64
% 0.16/0.36 % CPULimit : 300
% 0.16/0.36 % WCLimit : 300
% 0.16/0.36 % DateTime : Tue Apr 30 17:55:55 EDT 2024
% 0.16/0.37 % CPUTime :
% 0.16/0.37 This is a FOF_THM_RFO_SEQ problem
% 0.16/0.37 Running vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule file --schedule_file /export/starexec/sandbox/solver/bin/quickGreedyProduceRating_steal_pow3.txt --cores 8 -m 12000 -t 300 /export/starexec/sandbox/tmp/tmp.FAsHfVSKVY/Vampire---4.8_29669
% 0.60/0.82 % (29941)lrs+1002_1:16_to=lpo:sil=32000:sp=unary_frequency:sos=on:i=45:bd=off:ss=axioms_0 on Vampire---4 for (2995ds/45Mi)
% 0.60/0.82 % (29935)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 (2995ds/34Mi)
% 0.66/0.82 % (29937)lrs+1011_1:1_sil=8000:sp=occurrence:nwc=10.0:i=78:ss=axioms:sgt=8_0 on Vampire---4 for (2995ds/78Mi)
% 0.66/0.82 % (29938)ott+1011_1:1_sil=2000:urr=on:i=33:sd=1:kws=inv_frequency:ss=axioms:sup=off_0 on Vampire---4 for (2995ds/33Mi)
% 0.66/0.82 % (29939)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 (2995ds/34Mi)
% 0.66/0.82 % (29942)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 (2995ds/83Mi)
% 0.66/0.82 % (29943)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 (2995ds/56Mi)
% 0.66/0.83 % (29936)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 (2995ds/51Mi)
% 0.66/0.83 % (29938)Refutation not found, incomplete strategy% (29938)------------------------------
% 0.66/0.83 % (29938)Version: Vampire 4.8 (commit 8e9376e55 on 2024-01-18 13:49:33 +0100)
% 0.66/0.83 % (29938)Termination reason: Refutation not found, incomplete strategy
% 0.66/0.83
% 0.66/0.83 % (29938)Memory used [KB]: 1443
% 0.66/0.83 % (29938)Time elapsed: 0.008 s
% 0.66/0.83 % (29938)Instructions burned: 5 (million)
% 0.66/0.83 % (29938)------------------------------
% 0.66/0.83 % (29938)------------------------------
% 0.66/0.83 % (29942)Refutation not found, incomplete strategy% (29942)------------------------------
% 0.66/0.83 % (29942)Version: Vampire 4.8 (commit 8e9376e55 on 2024-01-18 13:49:33 +0100)
% 0.66/0.83 % (29942)Termination reason: Refutation not found, incomplete strategy
% 0.66/0.83
% 0.66/0.83 % (29942)Memory used [KB]: 1448
% 0.66/0.83 % (29942)Time elapsed: 0.011 s
% 0.66/0.83 % (29942)Instructions burned: 9 (million)
% 0.66/0.83 % (29942)------------------------------
% 0.66/0.83 % (29942)------------------------------
% 0.66/0.83 % (29937)First to succeed.
% 0.66/0.84 % (29949)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 (2995ds/55Mi)
% 0.66/0.84 % (29937)Refutation found. Thanks to Tanya!
% 0.66/0.84 % SZS status Theorem for Vampire---4
% 0.66/0.84 % SZS output start Proof for Vampire---4
% See solution above
% 0.66/0.84 % (29937)------------------------------
% 0.66/0.84 % (29937)Version: Vampire 4.8 (commit 8e9376e55 on 2024-01-18 13:49:33 +0100)
% 0.66/0.84 % (29937)Termination reason: Refutation
% 0.66/0.84
% 0.66/0.84 % (29937)Memory used [KB]: 1482
% 0.66/0.84 % (29937)Time elapsed: 0.015 s
% 0.66/0.84 % (29937)Instructions burned: 12 (million)
% 0.66/0.84 % (29937)------------------------------
% 0.66/0.84 % (29937)------------------------------
% 0.66/0.84 % (29916)Success in time 0.453 s
% 0.66/0.84 % Vampire---4.8 exiting
%------------------------------------------------------------------------------