TSTP Solution File: SWV048+1 by SnakeForV---1.0

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : SnakeForV---1.0
% Problem  : SWV048+1 : TPTP v8.1.0. Bugfixed v3.3.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 : n021.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 18:43:59 EDT 2022

% Result   : Theorem 0.09s 0.45s
% Output   : Refutation 0.09s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :    8
%            Number of leaves      :    9
% Syntax   : Number of formulae    :   34 (  20 unt;   0 def)
%            Number of atoms       :   87 (  39 equ)
%            Maximal formula atoms :   10 (   2 avg)
%            Number of connectives :   85 (  32   ~;  22   |;  22   &)
%                                         (   3 <=>;   6  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   10 (   3 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    7 (   5 usr;   5 prp; 0-2 aty)
%            Number of functors    :   18 (  18 usr;  11 con; 0-3 aty)
%            Number of variables   :    8 (   8   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f261,plain,
    $false,
    inference(avatar_sat_refutation,[],[f239,f240,f241,f259]) ).

fof(f259,plain,
    spl0_3,
    inference(avatar_contradiction_clause,[],[f258]) ).

fof(f258,plain,
    ( $false
    | spl0_3 ),
    inference(subsumption_resolution,[],[f257,f188]) ).

fof(f188,plain,
    ! [X0] : n0 = sum(n0,tptp_minus_1,X0),
    inference(cnf_transformation,[],[f101]) ).

fof(f101,plain,
    ! [X0] : n0 = sum(n0,tptp_minus_1,X0),
    inference(rectify,[],[f26]) ).

fof(f26,axiom,
    ! [X22] : n0 = sum(n0,tptp_minus_1,X22),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',sum_plus_base) ).

fof(f257,plain,
    ( n0 != sum(n0,tptp_minus_1,times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
    | spl0_3 ),
    inference(backward_demodulation,[],[f226,f251]) ).

fof(f251,plain,
    tptp_minus_1 = minus(n0,n1),
    inference(superposition,[],[f207,f194]) ).

fof(f194,plain,
    n0 = succ(tptp_minus_1),
    inference(cnf_transformation,[],[f28]) ).

fof(f28,axiom,
    n0 = succ(tptp_minus_1),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',succ_tptp_minus_1) ).

fof(f207,plain,
    ! [X0] : minus(succ(X0),n1) = X0,
    inference(definition_unfolding,[],[f181,f177]) ).

fof(f177,plain,
    ! [X0] : minus(X0,n1) = pred(X0),
    inference(cnf_transformation,[],[f39]) ).

fof(f39,axiom,
    ! [X0] : minus(X0,n1) = pred(X0),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',pred_minus_1) ).

fof(f181,plain,
    ! [X0] : pred(succ(X0)) = X0,
    inference(cnf_transformation,[],[f40]) ).

fof(f40,axiom,
    ! [X0] : pred(succ(X0)) = X0,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',pred_succ) ).

fof(f226,plain,
    ( n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
    | spl0_3 ),
    inference(avatar_component_clause,[],[f224]) ).

fof(f224,plain,
    ( spl0_3
  <=> n0 = sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81))) ),
    introduced(avatar_definition,[new_symbols(naming,[spl0_3])]) ).

fof(f241,plain,
    spl0_4,
    inference(avatar_split_clause,[],[f173,f236]) ).

fof(f236,plain,
    ( spl0_4
  <=> true ),
    introduced(avatar_definition,[new_symbols(naming,[spl0_4])]) ).

fof(f173,plain,
    true,
    inference(cnf_transformation,[],[f51]) ).

fof(f51,axiom,
    true,
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',ttrue) ).

fof(f240,plain,
    spl0_1,
    inference(avatar_split_clause,[],[f144,f216]) ).

fof(f216,plain,
    ( spl0_1
  <=> leq(pv35,minus(n5,n1)) ),
    introduced(avatar_definition,[new_symbols(naming,[spl0_1])]) ).

fof(f144,plain,
    leq(pv35,minus(n5,n1)),
    inference(cnf_transformation,[],[f105]) ).

fof(f105,plain,
    ( leq(n0,pv35)
    & leq(pv35,minus(n5,n1))
    & ( ( n0 != pv78
        & ( n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
          | ~ leq(n0,pv35)
          | ~ leq(pv35,minus(n5,n1))
          | pv78 != sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) ) )
      | ( ~ true
        & n0 = pv78 ) )
    & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) ),
    inference(flattening,[],[f104]) ).

fof(f104,plain,
    ( ( ( n0 != pv78
        & ( n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
          | ~ leq(n0,pv35)
          | ~ leq(pv35,minus(n5,n1))
          | pv78 != sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) ) )
      | ( ~ true
        & n0 = pv78 ) )
    & leq(pv35,minus(n5,n1))
    & leq(n0,pv35)
    & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) ),
    inference(ennf_transformation,[],[f54]) ).

fof(f54,negated_conjecture,
    ~ ( ( leq(pv35,minus(n5,n1))
        & leq(n0,pv35)
        & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) )
     => ( ( n0 = pv78
         => true )
        & ( n0 != pv78
         => ( leq(n0,pv35)
            & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35))
            & leq(pv35,minus(n5,n1))
            & n0 = sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81))) ) ) ) ),
    inference(negated_conjecture,[],[f53]) ).

fof(f53,conjecture,
    ( ( leq(pv35,minus(n5,n1))
      & leq(n0,pv35)
      & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)) )
   => ( ( n0 = pv78
       => true )
      & ( n0 != pv78
       => ( leq(n0,pv35)
          & pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35))
          & leq(pv35,minus(n5,n1))
          & n0 = sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81))) ) ) ) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cl5_nebula_norm_0016) ).

fof(f239,plain,
    ( ~ spl0_4
    | ~ spl0_3
    | ~ spl0_1 ),
    inference(avatar_split_clause,[],[f234,f216,f224,f236]) ).

fof(f234,plain,
    ( ~ leq(pv35,minus(n5,n1))
    | n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
    | ~ true ),
    inference(subsumption_resolution,[],[f233,f145]) ).

fof(f145,plain,
    leq(n0,pv35),
    inference(cnf_transformation,[],[f105]) ).

fof(f233,plain,
    ( ~ true
    | ~ leq(pv35,minus(n5,n1))
    | n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
    | ~ leq(n0,pv35) ),
    inference(subsumption_resolution,[],[f141,f139]) ).

fof(f139,plain,
    pv78 = sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35)),
    inference(cnf_transformation,[],[f105]) ).

fof(f141,plain,
    ( n0 != sum(n0,minus(n0,n1),times(a_select3(q,pv81,pv35),a_select2(x,pv81)))
    | pv78 != sum(n0,minus(n135300,n1),a_select3(q,pv79,pv35))
    | ~ true
    | ~ leq(pv35,minus(n5,n1))
    | ~ leq(n0,pv35) ),
    inference(cnf_transformation,[],[f105]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.06  % Problem    : SWV048+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% 0.00/0.07  % Command    : vampire --input_syntax tptp --proof tptp --output_axiom_names on --mode portfolio --schedule snake_tptp_uns --cores 0 -t %d %s
% 0.06/0.25  % Computer : n021.cluster.edu
% 0.06/0.25  % Model    : x86_64 x86_64
% 0.06/0.25  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.06/0.25  % Memory   : 8042.1875MB
% 0.06/0.25  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.06/0.25  % CPULimit   : 300
% 0.06/0.25  % WCLimit    : 300
% 0.06/0.25  % DateTime   : Tue Aug 30 18:53:41 EDT 2022
% 0.06/0.25  % CPUTime    : 
% 0.09/0.33  % (26088)fmb+10_1:1_nm=2:i=3:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/3Mi)
% 0.09/0.34  % (26088)Instruction limit reached!
% 0.09/0.34  % (26088)------------------------------
% 0.09/0.34  % (26088)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.34  % (26088)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.34  % (26088)Termination reason: Unknown
% 0.09/0.34  % (26088)Termination phase: Preprocessing 3
% 0.09/0.34  
% 0.09/0.34  % (26088)Memory used [KB]: 1535
% 0.09/0.34  % (26088)Time elapsed: 0.004 s
% 0.09/0.34  % (26088)Instructions burned: 3 (million)
% 0.09/0.34  % (26088)------------------------------
% 0.09/0.34  % (26088)------------------------------
% 0.09/0.39  % (26107)lrs+1010_1:1_afq=1.1:anc=none:bd=off:sd=2:sos=on:ss=axioms:i=92:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/92Mi)
% 0.09/0.41  % (26078)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.09/0.42  % (26094)dis+10_1:1_av=off:sos=on:sp=reverse_arity:ss=included:st=2.0:to=lpo:urr=ec_only:i=45:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/45Mi)
% 0.09/0.42  % (26099)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.09/0.42  % (26072)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.09/0.42  % (26072)Instruction limit reached!
% 0.09/0.42  % (26072)------------------------------
% 0.09/0.42  % (26072)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.42  % (26072)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.42  % (26072)Termination reason: Unknown
% 0.09/0.42  % (26072)Termination phase: Naming
% 0.09/0.42  
% 0.09/0.42  % (26072)Memory used [KB]: 1535
% 0.09/0.42  % (26072)Time elapsed: 0.002 s
% 0.09/0.42  % (26072)Instructions burned: 3 (million)
% 0.09/0.42  % (26072)------------------------------
% 0.09/0.42  % (26072)------------------------------
% 0.09/0.42  % (26075)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.09/0.42  % (26087)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.09/0.42  % (26074)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.09/0.42  % (26097)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.09/0.43  % (26077)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.09/0.43  % (26073)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.09/0.43  % (26086)lrs+10_1:1_drc=off:sp=reverse_frequency:spb=goal:to=lpo:i=7:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/7Mi)
% 0.09/0.43  % (26096)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.09/0.43  % (26089)ott+1010_1:1_sd=2:sos=on:sp=occurrence:ss=axioms:urr=on:i=2:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/2Mi)
% 0.09/0.43  % (26080)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.09/0.43  % (26093)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.09/0.43  % (26096)First to succeed.
% 0.09/0.43  % (26079)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.09/0.43  % (26076)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.09/0.44  % (26095)dis+21_1:1_ep=RS:nwc=10.0:s2a=on:s2at=1.5:i=50:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/50Mi)
% 0.09/0.44  % (26092)ott+21_1:1_erd=off:s2a=on:sac=on:sd=1:sgt=64:sos=on:ss=included:st=3.0:to=lpo:urr=on:i=99:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/99Mi)
% 0.09/0.44  % (26084)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.09/0.44  % (26080)Instruction limit reached!
% 0.09/0.44  % (26080)------------------------------
% 0.09/0.44  % (26080)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.44  % (26080)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.44  % (26080)Termination reason: Unknown
% 0.09/0.44  % (26080)Termination phase: Saturation
% 0.09/0.44  
% 0.09/0.44  % (26080)Memory used [KB]: 6140
% 0.09/0.44  % (26080)Time elapsed: 0.130 s
% 0.09/0.44  % (26080)Instructions burned: 12 (million)
% 0.09/0.44  % (26080)------------------------------
% 0.09/0.44  % (26080)------------------------------
% 0.09/0.44  % (26075)Instruction limit reached!
% 0.09/0.44  % (26075)------------------------------
% 0.09/0.44  % (26075)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.44  % (26085)lrs+10_1:1_ins=3:sp=reverse_frequency:spb=goal:to=lpo:i=3:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/3Mi)
% 0.09/0.44  % (26086)Instruction limit reached!
% 0.09/0.44  % (26086)------------------------------
% 0.09/0.44  % (26086)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.44  % (26086)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.44  % (26086)Termination reason: Unknown
% 0.09/0.44  % (26086)Termination phase: Function definition elimination
% 0.09/0.44  
% 0.09/0.44  % (26086)Memory used [KB]: 1663
% 0.09/0.44  % (26086)Time elapsed: 0.006 s
% 0.09/0.44  % (26086)Instructions burned: 7 (million)
% 0.09/0.44  % (26086)------------------------------
% 0.09/0.44  % (26086)------------------------------
% 0.09/0.44  % (26082)lrs+10_1:4_av=off:bs=unit_only:bsr=unit_only:ep=RS:s2a=on:sos=on:sp=frequency:to=lpo:i=16:si=on:rawr=on:rtra=on_0 on theBenchmark for (2999ds/16Mi)
% 0.09/0.44  % (26091)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.09/0.44  % (26085)Instruction limit reached!
% 0.09/0.44  % (26085)------------------------------
% 0.09/0.44  % (26085)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.44  % (26085)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.44  % (26085)Termination reason: Unknown
% 0.09/0.44  % (26085)Termination phase: Preprocessing 3
% 0.09/0.44  
% 0.09/0.44  % (26085)Memory used [KB]: 1535
% 0.09/0.44  % (26085)Time elapsed: 0.003 s
% 0.09/0.44  % (26085)Instructions burned: 4 (million)
% 0.09/0.44  % (26085)------------------------------
% 0.09/0.44  % (26085)------------------------------
% 0.09/0.44  % (26100)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.09/0.44  % (26073)Refutation not found, incomplete strategy% (26073)------------------------------
% 0.09/0.44  % (26073)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.44  % (26073)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.44  % (26073)Termination reason: Refutation not found, incomplete strategy
% 0.09/0.44  
% 0.09/0.44  % (26073)Memory used [KB]: 6140
% 0.09/0.44  % (26073)Time elapsed: 0.117 s
% 0.09/0.44  % (26073)Instructions burned: 7 (million)
% 0.09/0.44  % (26073)------------------------------
% 0.09/0.44  % (26073)------------------------------
% 0.09/0.45  % (26089)Instruction limit reached!
% 0.09/0.45  % (26089)------------------------------
% 0.09/0.45  % (26089)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.45  % (26089)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.45  % (26089)Termination reason: Unknown
% 0.09/0.45  % (26089)Termination phase: Clausification
% 0.09/0.45  
% 0.09/0.45  % (26089)Memory used [KB]: 1535
% 0.09/0.45  % (26089)Time elapsed: 0.003 s
% 0.09/0.45  % (26089)Instructions burned: 2 (million)
% 0.09/0.45  % (26089)------------------------------
% 0.09/0.45  % (26089)------------------------------
% 0.09/0.45  % (26074)Also succeeded, but the first one will report.
% 0.09/0.45  % (26096)Refutation found. Thanks to Tanya!
% 0.09/0.45  % SZS status Theorem for theBenchmark
% 0.09/0.45  % SZS output start Proof for theBenchmark
% See solution above
% 0.09/0.45  % (26096)------------------------------
% 0.09/0.45  % (26096)Version: Vampire 4.7 (commit 807e37dd9 on 2022-08-23 09:55:27 +0200)
% 0.09/0.45  % (26096)Linked with Z3 4.8.13.0 f03d756e086f81f2596157241e0decfb1c982299 z3-4.8.4-5390-gf03d756e0
% 0.09/0.45  % (26096)Termination reason: Refutation
% 0.09/0.45  
% 0.09/0.45  % (26096)Memory used [KB]: 6140
% 0.09/0.45  % (26096)Time elapsed: 0.116 s
% 0.09/0.45  % (26096)Instructions burned: 6 (million)
% 0.09/0.45  % (26096)------------------------------
% 0.09/0.45  % (26096)------------------------------
% 0.09/0.45  % (26069)Success in time 0.187 s
%------------------------------------------------------------------------------