↑ Up

Vampire---5.0.1.UNS-Ref.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : Vampire---5.0.1
% Problem  : SWV679-1 : TPTP v9.3.1. Released v4.1.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_vampire /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM

% Computer : n005.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 : Tue Sep 29 01:19:15 PM UTC 2026

% Result   : Unsatisfiable 7.56s 1.97s
% Output   : Refutation 7.56s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   10
%            Number of leaves      :   12
% Syntax   : Number of formulae    :   42 (  14 unt;   4 def)
%            Number of atoms       :   84 (  21 equ)
%            Maximal formula atoms :    5 (   2 avg)
%            Number of connectives :   80 (  38   ~;  38   |;   0   &)
%                                         (   4 <=>;   0  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    9 (   3 avg)
%            Maximal term depth    :    4 (   1 avg)
%            Number of predicates  :    8 (   6 usr;   5 prp; 0-3 aty)
%            Number of functors    :   11 (  11 usr;   5 con; 0-3 aty)
%            Number of variables   :   12 (   0 sgn  12   !;   0   ?)

% Comments : 
%------------------------------------------------------------------------------
fof(f520,axiom,
    ( v_a != c_HOL_Ozero__class_Ozero(t_a)
    | ~ class_Ring__and__Field_Ofield(t_a) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_nz_0) ).

fof(f675,axiom,
    ! [X0,X1] :
      ( c_HOL_Oinverse__class_Oinverse(X1,X0) = c_HOL_Oinverse__class_Odivide(c_HOL_Oone__class_Oone(X0),X1,X0)
      | ~ class_Ring__and__Field_Ofield(X0) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_inverse__eq__divide_0) ).

fof(f691,axiom,
    ! [X2,X3,X0,X1] :
      ( ~ class_Ring__and__Field_Ofield(X0)
      | c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(X1,X0),c_HOL_Ominus__class_Ominus(X2,X3,tc_nat),X0) = c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(X1,X3,X0),c_Power_Opower__class_Opower(X1,X2,X0),X0)
      | ~ c_lessequals(X3,X2,tc_nat)
      | X1 = c_HOL_Ozero__class_Ozero(X0) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_power__diff__inverse_0) ).

fof(f692,plain,
    ! [X2,X3,X0,X1] :
      ( c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(X1,X0),c_HOL_Ominus__class_Ominus(X2,X3,tc_nat),X0) = c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(X1,X3,X0),c_Power_Opower__class_Opower(X1,X2,X0),X0)
      | ~ class_Ring__and__Field_Ofield(X0)
      | ~ c_lessequals(X3,X2,tc_nat)
      | c_HOL_Ozero__class_Ozero(X0) = X1 ),
    inference(reorient_equations,[],[f691]) ).

fof(f737,axiom,
    ! [X0,X1] :
      ( c_lessequals(X1,X0,tc_nat)
      | c_lessequals(X0,X1,tc_nat) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_nat__le__linear_0) ).

fof(f762,axiom,
    ~ c_lessequals(v_n,v_m,tc_nat),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_False_0) ).

fof(f775,axiom,
    ~ c_lessequals(v_n,v_m,tc_nat),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_CHAINED_0) ).

fof(f777,negated_conjecture,
    class_Ring__and__Field_Ofield(t_a),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',tfree_tcs) ).

fof(f778,negated_conjecture,
    ( c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Odivide(c_HOL_Oone__class_Oone(t_a),v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | c_lessequals(v_n,v_m,tc_nat) ),
    file('/export/starexec/sandbox2/benchmark/theBenchmark.p',cls_conjecture_0) ).

fof(f828,definition,
    ( spl0_2
  <=> c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) = c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Odivide(c_HOL_Oone__class_Oone(t_a),v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a) ),
    introduced(definition,[new_symbols(definition,[spl0_2])],[avatar_definition]) ).

fof(f829,plain,
    ( c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Odivide(c_HOL_Oone__class_Oone(t_a),v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | spl0_2 ),
    inference(avatar_component_clause,[],[f828]) ).

fof(f831,plain,
    c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Odivide(c_HOL_Oone__class_Oone(t_a),v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a),
    inference(forward_subsumption_resolution,[],[f778,f775]) ).

fof(f832,plain,
    ~ spl0_2,
    inference(avatar_split_clause,[],[f831,f828]) ).

fof(f834,plain,
    ( c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | ~ class_Ring__and__Field_Ofield(t_a)
    | spl0_2 ),
    inference(superposition,[],[f829,f675]) ).

fof(f836,plain,
    ( c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | spl0_2 ),
    inference(forward_subsumption_resolution,[],[f834,f777]) ).

fof(f839,definition,
    ( spl0_3
  <=> v_a = c_HOL_Ozero__class_Ozero(t_a) ),
    introduced(definition,[new_symbols(definition,[spl0_3])],[avatar_definition]) ).

fof(f840,plain,
    ( v_a = c_HOL_Ozero__class_Ozero(t_a)
    | ~ spl0_3 ),
    inference(avatar_component_clause,[],[f839]) ).

fof(f842,definition,
    ( spl0_4
  <=> c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) = c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a) ),
    introduced(definition,[new_symbols(definition,[spl0_4])],[avatar_definition]) ).

fof(f843,plain,
    ( c_HOL_Oinverse__class_Odivide(c_Power_Opower__class_Opower(v_a,v_m,t_a),c_Power_Opower__class_Opower(v_a,v_n,t_a),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | spl0_4 ),
    inference(avatar_component_clause,[],[f842]) ).

fof(f845,plain,
    ( ~ spl0_4
    | spl0_2 ),
    inference(avatar_split_clause,[],[f836,f828,f842]) ).

fof(f846,plain,
    ( c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a) != c_Power_Opower__class_Opower(c_HOL_Oinverse__class_Oinverse(v_a,t_a),c_HOL_Ominus__class_Ominus(v_n,v_m,tc_nat),t_a)
    | ~ class_Ring__and__Field_Ofield(t_a)
    | ~ c_lessequals(v_m,v_n,tc_nat)
    | v_a = c_HOL_Ozero__class_Ozero(t_a)
    | spl0_4 ),
    inference(superposition,[],[f843,f692]) ).

fof(f848,plain,
    ( ~ class_Ring__and__Field_Ofield(t_a)
    | ~ c_lessequals(v_m,v_n,tc_nat)
    | v_a = c_HOL_Ozero__class_Ozero(t_a)
    | spl0_4 ),
    inference(trivial_inequality_removal,[],[f846]) ).

fof(f849,plain,
    ( ~ c_lessequals(v_m,v_n,tc_nat)
    | v_a = c_HOL_Ozero__class_Ozero(t_a)
    | spl0_4 ),
    inference(forward_subsumption_resolution,[],[f848,f777]) ).

fof(f851,definition,
    ( spl0_5
  <=> c_lessequals(v_m,v_n,tc_nat) ),
    introduced(definition,[new_symbols(definition,[spl0_5])],[avatar_definition]) ).

fof(f852,plain,
    ( ~ c_lessequals(v_m,v_n,tc_nat)
    | spl0_5 ),
    inference(avatar_component_clause,[],[f851]) ).

fof(f853,plain,
    ( spl0_3
    | ~ spl0_5
    | spl0_4 ),
    inference(avatar_split_clause,[],[f849,f842,f851,f839]) ).

fof(f854,plain,
    ( c_lessequals(v_n,v_m,tc_nat)
    | spl0_5 ),
    inference(resolution,[],[f852,f737]) ).

fof(f855,plain,
    ( $false
    | spl0_5 ),
    inference(forward_subsumption_resolution,[],[f854,f762]) ).

fof(f856,plain,
    spl0_5,
    inference(avatar_contradiction_clause,[],[f855]) ).

fof(f857,plain,
    ( v_a != v_a
    | ~ class_Ring__and__Field_Ofield(t_a)
    | ~ spl0_3 ),
    inference(superposition,[],[f520,f840]) ).

fof(f861,plain,
    ( ~ class_Ring__and__Field_Ofield(t_a)
    | ~ spl0_3 ),
    inference(trivial_inequality_removal,[],[f857]) ).

fof(f865,plain,
    ( $false
    | ~ spl0_3 ),
    inference(forward_subsumption_resolution,[],[f861,f777]) ).

fof(f866,plain,
    ~ spl0_3,
    inference(avatar_contradiction_clause,[],[f865]) ).

cnf(s2,plain,
    ~ spl0_2,
    inference(sat_conversion,[],[f832]) ).

cnf(s4,plain,
    ( spl0_2
    | ~ spl0_4 ),
    inference(sat_conversion,[],[f845]) ).

cnf(s5,plain,
    ( spl0_3
    | spl0_4
    | ~ spl0_5 ),
    inference(sat_conversion,[],[f853]) ).

cnf(s6,plain,
    spl0_5,
    inference(sat_conversion,[],[f856]) ).

cnf(s8,plain,
    ~ spl0_3,
    inference(sat_conversion,[],[f866]) ).

cnf(s9,plain,
    spl0_4,
    inference(rat,[],[s5,s6,s8]) ).

cnf(s10,plain,
    spl0_2,
    inference(rat,[],[s4,s9]) ).

cnf(s11,plain,
    $false,
    inference(rat,[],[s2,s10]) ).

fof(f867,plain,
    $false,
    inference(avatar_sat_refutation,[],[s11]) ).

%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.03  % Problem  : SWV679-1 : TPTP v9.3.1. Released v4.1.0.
% 0.00/0.07  % Command  : run_vampire /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.11/0.25  % Computer : n005.cluster.edu
% 0.11/0.25  % Model    : x86_64 x86_64
% 0.11/0.25  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.25  % Memory   : 8046.5625MB
% 0.11/0.25  % OS       : Linux 6.8.0-71-generic
% 0.11/0.25  % CPULimit : 300
% 0.11/0.25  % WCLimit  : 300
% 0.11/0.25  % DateTime : Mon Sep 28 12:14:46 UTC 2026
% 0.11/0.25  % CPUTime  : 
% 0.11/0.25  Running run_vampire /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.24/0.29  Running first-order theorem proving
% 0.24/0.29  Running: /export/starexec/sandbox2/solver/bin/vampire --input_syntax tptp --output_axiom_names on --mode casc -m 16384 --cores 7 -t 300 /export/starexec/sandbox2/benchmark/theBenchmark.p
% 5.79/1.66  % (747967)Input is clausal, will run a generic CNF schedule.
% 5.79/1.66  % (747974)lrs+1002_1_ncem=casc2026/models/loop8.pt:sil=128000:tgt=ground:npcc=on:sp=reverse_frequency:spb=intro:random_seed=1955371149:i=137899:s2at=10:gtgl=3:kws=precedence:add=on:bd=preordered:gtg=position_2999 on theBenchmark for (2999ds/137899Mi)
% 5.79/1.66  % (747978)dis-21_1_sil=8000:lcm=predicate:random_seed=4103139428:st=5:avsq=on:i=117:avsqr=1,16:sd=3:aac=none:ep=RS:fsr=off:ss=included_2999 on theBenchmark for (2999ds/117Mi)
% 5.79/1.66  % (747977)dis-1011_1_sil=16000:fde=unused:s2agt=70:random_seed=1036567049:s2a=on:i=180:gtg=position_2999 on theBenchmark for (2999ds/180Mi)
% 5.79/1.66  % (747973)lrs+10_1_ncem=casc2026/models/loop8.pt:sil=128000:npcc=on:urr=on:br=off:random_seed=692136224:i=132376:av=off_2999 on theBenchmark for (2999ds/132376Mi)
% 5.79/1.66  % (747972)lrs+10_1_ncem=casc2026/models/loop8.pt:sil=128000:tgt=full:npcc=on:drc=off:sp=weighted_frequency:spb=goal:fd=preordered:foolp=on:random_seed=2577557801:i=140167_2999 on theBenchmark for (2999ds/140167Mi)
% 5.79/1.66  % (747976)dis-1002_1_to=lpo:sil=16000:fd=off:random_seed=2883527427:st=1.5:i=114:aac=none:ins=7:ss=axioms:fsd=on_2999 on theBenchmark for (2999ds/114Mi)
% 5.79/1.66  % (747975)lrs+10_1_sil=8000:sp=occurrence:random_seed=2527951672:i=107:sd=3:ss=axioms:sgt=8_2999 on theBenchmark for (2999ds/107Mi)
% 5.79/1.66  % (747978)Instruction limit reached! 
% 5.79/1.66  % (747978)------------------------------
% 5.79/1.66  % (747978)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 5.79/1.66  % (747978)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 5.79/1.66  % (747978)CaDiCaL version: 2.1.3
% 5.79/1.66  % (747978)Termination reason: Instruction limit
% 5.79/1.66  % (747978)Termination phase: Saturation
% 5.79/1.66  % (747978)Time elapsed: 0.082 s
% 5.79/1.66  % (747978)Peak memory usage: 89 MB
% 5.79/1.66  % (747978)Instructions burned: 117 (million)
% 5.79/1.66  % (747975)Instruction limit reached! 
% 5.79/1.66  % (747975)------------------------------
% 5.79/1.66  % (747975)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 5.79/1.66  % (747975)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 5.79/1.66  % (747975)CaDiCaL version: 2.1.3
% 5.79/1.66  % (747975)Termination reason: Instruction limit
% 5.79/1.66  % (747975)Termination phase: Saturation
% 5.79/1.66  % (747975)Time elapsed: 0.112 s
% 5.79/1.66  % (747975)Peak memory usage: 89 MB
% 5.79/1.66  % (747975)Instructions burned: 107 (million)
% 5.79/1.66  % (747976)Instruction limit reached! 
% 5.79/1.66  % (747976)------------------------------
% 5.79/1.66  % (747976)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 5.79/1.66  % (747976)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 5.79/1.66  % (747976)CaDiCaL version: 2.1.3
% 5.79/1.66  % (747976)Termination reason: Instruction limit
% 5.79/1.66  % (747976)Termination phase: Saturation
% 5.79/1.66  % (747976)Time elapsed: 0.118 s
% 5.79/1.66  % (747976)Peak memory usage: 89 MB
% 5.79/1.66  % (747976)Instructions burned: 115 (million)
% 5.79/1.66  % (747977)Instruction limit reached! 
% 5.79/1.66  % (747977)------------------------------
% 5.79/1.66  % (747977)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 5.79/1.66  % (747977)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 5.79/1.66  % (747977)CaDiCaL version: 2.1.3
% 5.79/1.66  % (747977)Termination reason: Instruction limit
% 5.79/1.66  % (747977)Termination phase: Saturation
% 5.79/1.66  % (747977)Time elapsed: 0.182 s
% 5.79/1.66  % (747977)Peak memory usage: 90 MB
% 5.79/1.66  % (747977)Instructions burned: 180 (million)
% 5.79/1.66  % (747986)dis+1010_3_sil=8000:plsq=on:drc=off:fde=none:plsqc=1:bsd=on:plsqr=7,2:sos=on:spb=goal_then_units:random_seed=982214643:i=143:sd=2:aac=none:ss=axioms:sgt=16_2997 on theBenchmark for (2997ds/143Mi)
% 5.79/1.66  % (747986)First to succeed.
% 5.79/1.66  % (747986)Solution written to "/export/starexec/sandbox2/tmp/vampire-proof-747967"
% 5.79/1.66  % (747987)ott-1010_1_to=lpo:sil=16000:sos=on:spb=units:urr=on:bce=on:br=off:random_seed=2526483953:st=3:avsq=on:s2a=on:i=189:s2at=1.2:avsqr=1,16:sd=2:bd=all:nm=64:ss=axioms:sgt=30_2996 on theBenchmark for (2996ds/189Mi)
% 5.79/1.66  % (747988)lrs-1002_1_to=lpo:sil=8000:fde=none:sos=on:random_seed=651855598:st=4:i=219:sd=3:ss=axioms_2996 on theBenchmark for (2996ds/219Mi)
% 5.79/1.66  % (747988)Refutation not found, incomplete strategy
% 5.79/1.66  % (747988)------------------------------
% 5.79/1.66  % (747988)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 7.56/1.97  % (747988)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 7.56/1.97  % (747988)CaDiCaL version: 2.1.3
% 7.56/1.97  % (747988)Termination reason: Refutation not found, incomplete strategy
% 7.56/1.97  % (747988)Time elapsed: 0.018 s
% 7.56/1.97  % (747988)Peak memory usage: 88 MB
% 7.56/1.97  % (747988)Instructions burned: 17 (million)
% 7.56/1.97  % (747989)lrs+10_64_to=lpo:sil=8000:random_seed=1809150913:i=126:bd=preordered_2995 on theBenchmark for (2995ds/126Mi)
% 7.56/1.97  % (747987)Also succeeded, but the first one will report.
% 7.56/1.97  % (747989)Instruction limit reached! 
% 7.56/1.97  % (747989)------------------------------
% 7.56/1.97  % (747989)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 7.56/1.97  % (747989)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 7.56/1.97  % (747989)CaDiCaL version: 2.1.3
% 7.56/1.97  % (747989)Termination reason: Instruction limit
% 7.56/1.97  % (747989)Termination phase: Saturation
% 7.56/1.97  % (747989)Time elapsed: 0.113 s
% 7.56/1.97  % (747989)Peak memory usage: 89 MB
% 7.56/1.97  % (747989)Instructions burned: 127 (million)
% 7.56/1.97  % (747986)Refutation found. Thanks to Tanya!
% 7.56/1.97  % SZS status Unsatisfiable for theBenchmark
% 7.56/1.97  % SZS output start Proof for theBenchmark
% See solution above
% 7.56/1.97  % (747986)------------------------------
% 7.56/1.97  % (747986)Version: Vampire 5.0.1 (Release build, commit ea8961452 on 2026-07-16 15:14:34 +0200)
% 7.56/1.97  % (747986)Linked with Z3 4.14.0.0 3c47fd96cf5645d0c42b2c819d9e9a84380aa721 z3-4.8.4-9178-g3c47fd96c
% 7.56/1.97  % (747986)CaDiCaL version: 2.1.3
% 7.56/1.97  % (747986)Termination reason: Refutation
% 7.56/1.97  % (747986)Time elapsed: 0.013 s
% 7.56/1.97  % (747986)Peak memory usage: 90 MB
% 7.56/1.97  % (747986)Instructions burned: 10 (million)
% 7.56/1.97  % (747986)------------------------------
% 7.56/1.97  % (747986)------------------------------
% 7.56/1.97  % (747967)Success in time 0.969 s
% 7.56/1.97  % Vampire exiting
%------------------------------------------------------------------------------