TSTP Solution File: SWC096-1 by Prover9---1109a
View Problem
- Process Solution
%------------------------------------------------------------------------------
% File : Prover9---1109a
% Problem : SWC096-1 : TPTP v8.1.0. Released v2.4.0.
% Transfm : none
% Format : tptp:raw
% Command : tptp2X_and_run_prover9 %d %s
% Computer : n022.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 : 600s
% DateTime : Tue Jul 19 21:45:18 EDT 2022
% Result : Unsatisfiable 1.72s 2.01s
% Output : Refutation 1.72s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.04/0.12 % Problem : SWC096-1 : TPTP v8.1.0. Released v2.4.0.
% 0.04/0.12 % Command : tptp2X_and_run_prover9 %d %s
% 0.12/0.33 % Computer : n022.cluster.edu
% 0.12/0.33 % Model : x86_64 x86_64
% 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.33 % Memory : 8042.1875MB
% 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64
% 0.12/0.33 % CPULimit : 300
% 0.12/0.33 % WCLimit : 600
% 0.12/0.33 % DateTime : Sun Jun 12 05:33:03 EDT 2022
% 0.12/0.33 % CPUTime :
% 0.74/1.02 ============================== Prover9 ===============================
% 0.74/1.02 Prover9 (32) version 2009-11A, November 2009.
% 0.74/1.02 Process 23992 was started by sandbox on n022.cluster.edu,
% 0.74/1.02 Sun Jun 12 05:33:04 2022
% 0.74/1.02 The command was "/export/starexec/sandbox/solver/bin/prover9 -t 300 -f /tmp/Prover9_23819_n022.cluster.edu".
% 0.74/1.02 ============================== end of head ===========================
% 0.74/1.02
% 0.74/1.02 ============================== INPUT =================================
% 0.74/1.02
% 0.74/1.02 % Reading from file /tmp/Prover9_23819_n022.cluster.edu
% 0.74/1.02
% 0.74/1.02 set(prolog_style_variables).
% 0.74/1.02 set(auto2).
% 0.74/1.02 % set(auto2) -> set(auto).
% 0.74/1.02 % set(auto) -> set(auto_inference).
% 0.74/1.02 % set(auto) -> set(auto_setup).
% 0.74/1.02 % set(auto_setup) -> set(predicate_elim).
% 0.74/1.02 % set(auto_setup) -> assign(eq_defs, unfold).
% 0.74/1.02 % set(auto) -> set(auto_limits).
% 0.74/1.02 % set(auto_limits) -> assign(max_weight, "100.000").
% 0.74/1.02 % set(auto_limits) -> assign(sos_limit, 20000).
% 0.74/1.02 % set(auto) -> set(auto_denials).
% 0.74/1.02 % set(auto) -> set(auto_process).
% 0.74/1.02 % set(auto2) -> assign(new_constants, 1).
% 0.74/1.02 % set(auto2) -> assign(fold_denial_max, 3).
% 0.74/1.02 % set(auto2) -> assign(max_weight, "200.000").
% 0.74/1.02 % set(auto2) -> assign(max_hours, 1).
% 0.74/1.02 % assign(max_hours, 1) -> assign(max_seconds, 3600).
% 0.74/1.02 % set(auto2) -> assign(max_seconds, 0).
% 0.74/1.02 % set(auto2) -> assign(max_minutes, 5).
% 0.74/1.02 % assign(max_minutes, 5) -> assign(max_seconds, 300).
% 0.74/1.02 % set(auto2) -> set(sort_initial_sos).
% 0.74/1.02 % set(auto2) -> assign(sos_limit, -1).
% 0.74/1.02 % set(auto2) -> assign(lrs_ticks, 3000).
% 0.74/1.02 % set(auto2) -> assign(max_megs, 400).
% 0.74/1.02 % set(auto2) -> assign(stats, some).
% 0.74/1.02 % set(auto2) -> clear(echo_input).
% 0.74/1.02 % set(auto2) -> set(quiet).
% 0.74/1.02 % set(auto2) -> clear(print_initial_clauses).
% 0.74/1.02 % set(auto2) -> clear(print_given).
% 0.74/1.02 assign(lrs_ticks,-1).
% 0.74/1.02 assign(sos_limit,10000).
% 0.74/1.02 assign(order,kbo).
% 0.74/1.02 set(lex_order_vars).
% 0.74/1.02 clear(print_given).
% 0.74/1.02
% 0.74/1.02 % formulas(sos). % not echoed (203 formulas)
% 0.74/1.02
% 0.74/1.02 ============================== end of input ==========================
% 0.74/1.02
% 0.74/1.02 % From the command line: assign(max_seconds, 300).
% 0.74/1.02
% 0.74/1.02 ============================== PROCESS NON-CLAUSAL FORMULAS ==========
% 0.74/1.02
% 0.74/1.02 % Formulas that are not ordinary clauses:
% 0.74/1.02
% 0.74/1.02 ============================== end of process non-clausal formulas ===
% 0.74/1.02
% 0.74/1.02 ============================== PROCESS INITIAL CLAUSES ===============
% 0.74/1.02
% 0.74/1.02 ============================== PREDICATE ELIMINATION =================
% 0.74/1.02 1 app(A,cons(B,cons(C,D))) != E | -ssList(D) | -ssList(A) | -ssItem(C) | -ssItem(B) | -equalelemsP(E) | -ssList(E) | B = C # label(clause180) # label(axiom). [assumption].
% 0.74/1.02 2 equalelemsP(nil) # label(clause1) # label(axiom). [assumption].
% 0.74/1.02 3 -ssItem(A) | equalelemsP(cons(A,nil)) # label(clause64) # label(axiom). [assumption].
% 0.74/1.02 4 skaf79(A) != skaf78(A) | -ssList(A) | equalelemsP(A) # label(clause89) # label(axiom). [assumption].
% 0.74/1.02 5 -ssList(A) | equalelemsP(A) | app(skaf80(A),cons(skaf78(A),cons(skaf79(A),skaf81(A)))) = A # label(clause142) # label(axiom). [assumption].
% 0.74/1.02 Derived: app(A,cons(B,cons(C,D))) != nil | -ssList(D) | -ssList(A) | -ssItem(C) | -ssItem(B) | -ssList(nil) | B = C. [resolve(1,f,2,a)].
% 0.74/1.02 Derived: app(A,cons(B,cons(C,D))) != cons(E,nil) | -ssList(D) | -ssList(A) | -ssItem(C) | -ssItem(B) | -ssList(cons(E,nil)) | B = C | -ssItem(E). [resolve(1,f,3,b)].
% 0.74/1.02 Derived: app(A,cons(B,cons(C,D))) != E | -ssList(D) | -ssList(A) | -ssItem(C) | -ssItem(B) | -ssList(E) | B = C | skaf79(E) != skaf78(E) | -ssList(E). [resolve(1,f,4,c)].
% 0.74/1.02 Derived: app(A,cons(B,cons(C,D))) != E | -ssList(D) | -ssList(A) | -ssItem(C) | -ssItem(B) | -ssList(E) | B = C | -ssList(E) | app(skaf80(E),cons(skaf78(E),cons(skaf79(E),skaf81(E)))) = E. [resolve(1,f,5,b)].
% 0.74/1.02 6 app(app(A,cons(B,C)),cons(B,D)) != E | -ssList(D) | -ssList(C) | -ssList(A) | -ssItem(B) | -duplicatefreeP(E) | -ssList(E) # label(clause179) # label(axiom). [assumption].
% 0.74/1.02 7 duplicatefreeP(nil) # label(clause2) # label(axiom). [assumption].
% 0.74/1.02 8 -ssItem(A) | duplicatefreeP(cons(A,nil)) # label(clause65) # label(axiom). [assumption].
% 0.74/1.02 9 -ssList(A) | duplicatefreeP(A) | ssItem(B) # label(clause72) # label(axiom). [assumption].
% 0.74/1.02 10 -ssList(A) | duplicatefreeP(A) | app(app(skaf75(A),cons(skaf74(A),skaf76(A))),cons(skaf74(A),skaf77(A))) = A # label(clause162) # label(axiom). [assumption].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(B,D)) != nil | -ssList(D) | -ssList(C) | -ssList(A) | -ssItem(B) | -ssList(nil). [resolve(6,f,7,a)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(B,D)) != cons(E,nil) | -ssList(D) | -ssList(C) | -ssList(A) | -ssItem(B) | -ssList(cons(E,nil)) | -ssItem(E). [resolve(6,f,8,b)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(B,D)) != E | -ssList(D) | -ssList(C) | -ssList(A) | -ssItem(B) | -ssList(E) | -ssList(E) | ssItem(F). [resolve(6,f,9,b)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(B,D)) != E | -ssList(D) | -ssList(C) | -ssList(A) | -ssItem(B) | -ssList(E) | -ssList(E) | app(app(skaf75(E),cons(skaf74(E),skaf76(E))),cons(skaf74(E),skaf77(E))) = E. [resolve(6,f,10,b)].
% 0.74/1.03 11 app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -strictorderP(F) | -ssList(F) | lt(B,D) | lt(D,B) # label(clause183) # label(axiom). [assumption].
% 0.74/1.03 12 strictorderP(nil) # label(clause5) # label(axiom). [assumption].
% 0.74/1.03 13 -ssItem(A) | strictorderP(cons(A,nil)) # label(clause68) # label(axiom). [assumption].
% 0.74/1.03 14 -lt(skaf60(A),skaf59(A)) | -ssList(A) | strictorderP(A) # label(clause92) # label(axiom). [assumption].
% 0.74/1.03 15 -lt(skaf59(A),skaf60(A)) | -ssList(A) | strictorderP(A) # label(clause93) # label(axiom). [assumption].
% 0.74/1.03 16 -ssList(A) | strictorderP(A) | app(app(skaf61(A),cons(skaf59(A),skaf62(A))),cons(skaf60(A),skaf63(A))) = A # label(clause165) # label(axiom). [assumption].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != nil | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(nil) | lt(B,D) | lt(D,B). [resolve(11,g,12,a)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != cons(F,nil) | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(cons(F,nil)) | lt(B,D) | lt(D,B) | -ssItem(F). [resolve(11,g,13,b)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | lt(B,D) | lt(D,B) | -lt(skaf60(F),skaf59(F)) | -ssList(F). [resolve(11,g,14,c)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | lt(B,D) | lt(D,B) | -lt(skaf59(F),skaf60(F)) | -ssList(F). [resolve(11,g,15,c)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | lt(B,D) | lt(D,B) | -ssList(F) | app(app(skaf61(F),cons(skaf59(F),skaf62(F))),cons(skaf60(F),skaf63(F))) = F. [resolve(11,g,16,b)].
% 0.74/1.03 17 app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -totalorderP(F) | -ssList(F) | leq(B,D) | leq(D,B) # label(clause184) # label(axiom). [assumption].
% 0.74/1.03 18 totalorderP(nil) # label(clause6) # label(axiom). [assumption].
% 0.74/1.03 19 -ssItem(A) | totalorderP(cons(A,nil)) # label(clause69) # label(axiom). [assumption].
% 0.74/1.03 20 -leq(skaf55(A),skaf54(A)) | -ssList(A) | totalorderP(A) # label(clause94) # label(axiom). [assumption].
% 0.74/1.03 21 -leq(skaf54(A),skaf55(A)) | -ssList(A) | totalorderP(A) # label(clause95) # label(axiom). [assumption].
% 0.74/1.03 22 -ssList(A) | totalorderP(A) | app(app(skaf56(A),cons(skaf54(A),skaf57(A))),cons(skaf55(A),skaf58(A))) = A # label(clause166) # label(axiom). [assumption].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != nil | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(nil) | leq(B,D) | leq(D,B). [resolve(17,g,18,a)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != cons(F,nil) | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(cons(F,nil)) | leq(B,D) | leq(D,B) | -ssItem(F). [resolve(17,g,19,b)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | leq(B,D) | leq(D,B) | -leq(skaf55(F),skaf54(F)) | -ssList(F). [resolve(17,g,20,c)].
% 0.74/1.03 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | leq(B,D) | leq(D,B) | -leq(skaf54(F),skaf55(F)) | -ssList(F). [resolve(17,g,21,c)].
% 1.72/2.01 Derived: app(app(A,cons(B,C)),cons(D,E)) != F | -ssList(E) | -ssList(C) | -ssList(A) | -ssItem(D) | -ssItem(B) | -ssList(F) | leq(B,D) | leq(D,B) | -ssList(F) | app(app(skaf56(F),cons(skaf54(F),skaf57(F))),cons(skaf55(F),skaf58(F))) = F. [resolve(17,g,22,b)].
% 1.72/2.01 23 -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != F | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -cyclefreeP(F) | -ssList(F) # label(clause185) # label(axiom). [assumption].
% 1.72/2.01 24 cyclefreeP(nil) # label(clause7) # label(axiom). [assumption].
% 1.72/2.01 25 -ssItem(A) | cyclefreeP(cons(A,nil)) # label(clause70) # label(axiom). [assumption].
% 1.72/2.01 26 -ssList(A) | cyclefreeP(A) | leq(skaf50(A),skaf49(A)) # label(clause87) # label(axiom). [assumption].
% 1.72/2.01 27 -ssList(A) | cyclefreeP(A) | leq(skaf49(A),skaf50(A)) # label(clause88) # label(axiom). [assumption].
% 1.72/2.01 28 -ssList(A) | cyclefreeP(A) | app(app(skaf51(A),cons(skaf49(A),skaf52(A))),cons(skaf50(A),skaf53(A))) = A # label(clause167) # label(axiom). [assumption].
% 1.72/2.01 Derived: -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != nil | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -ssList(nil). [resolve(23,i,24,a)].
% 1.72/2.01 Derived: -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != cons(F,nil) | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -ssList(cons(F,nil)) | -ssItem(F). [resolve(23,i,25,b)].
% 1.72/2.01 Derived: -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != F | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -ssList(F) | -ssList(F) | leq(skaf50(F),skaf49(F)). [resolve(23,i,26,b)].
% 1.72/2.01 Derived: -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != F | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -ssList(F) | -ssList(F) | leq(skaf49(F),skaf50(F)). [resolve(23,i,27,b)].
% 1.72/2.01 Derived: -leq(A,B) | -leq(B,A) | app(app(C,cons(A,D)),cons(B,E)) != F | -ssList(E) | -ssList(D) | -ssList(C) | -ssItem(B) | -ssItem(A) | -ssList(F) | -ssList(F) | app(app(skaf51(F),cons(skaf49(F),skaf52(F))),cons(skaf50(F),skaf53(F))) = F. [resolve(23,i,28,b)].
% 1.72/2.01
% 1.72/2.01 ============================== end predicate elimination =============
% 1.72/2.01
% 1.72/2.01 Auto_denials: (non-Horn, no changes).
% 1.72/2.01
% 1.72/2.01 Term ordering decisions:
% 1.72/2.01 Function symbol KB weights: nil=1. sk2=1. sk4=1. sk5=1. sk3=1. sk6=1. sk1=1. skac2=1. skac3=1. cons=1. app=1. skaf42=1. skaf43=1. skaf45=1. skaf46=1. skaf47=1. skaf48=1. hd=1. tl=1. skaf49=1. skaf50=1. skaf54=1. skaf55=1. skaf59=1. skaf60=1. skaf64=1. skaf65=1. skaf69=1. skaf70=1. skaf74=1. skaf78=1. skaf79=1. skaf44=1. skaf51=1. skaf52=1. skaf53=1. skaf56=1. skaf57=1. skaf58=1. skaf61=1. skaf62=1. skaf63=1. skaf66=1. skaf67=1. skaf68=1. skaf71=1. skaf72=1. skaf73=1. skaf75=1. skaf76=1. skaf77=1. skaf80=1. skaf81=1. skaf82=1. skaf83=1.
% 1.72/2.01
% 1.72/2.01 ============================== end of process initial clauses ========
% 1.72/2.01
% 1.72/2.01 ============================== CLAUSES FOR SEARCH ====================
% 1.72/2.01
% 1.72/2.01 ============================== end of clauses for search =============
% 1.72/2.01
% 1.72/2.01 ============================== SEARCH ================================
% 1.72/2.01
% 1.72/2.01 % Starting search at 0.20 seconds.
% 1.72/2.01
% 1.72/2.01 Low Water (keep): wt=24.000, iters=3541
% 1.72/2.01
% 1.72/2.01 Low Water (keep): wt=18.000, iters=3431
% 1.72/2.01
% 1.72/2.01 Low Water (keep): wt=17.000, iters=3360
% 1.72/2.01
% 1.72/2.01 NOTE: Back_subsumption disabled, ratio of kept to back_subsumed is 243 (0.00 of 0.84 sec).
% 1.72/2.01
% 1.72/2.01 Low Water (keep): wt=16.000, iters=3768
% 1.72/2.01
% 1.72/2.01 ============================== PROOF =================================
% 1.72/2.01 % SZS status Unsatisfiable
% 1.72/2.01 % SZS output start Refutation
% 1.72/2.01
% 1.72/2.01 % Proof 1 at 1.00 (+ 0.01) seconds.
% 1.72/2.01 % Length of proof is 17.
% 1.72/2.01 % Level of proof is 4.
% 1.72/2.01 % Maximum clause weight is 16.000.
% 1.72/2.01 % Given clauses 1003.
% 1.72/2.01
% 1.72/2.01 188 sk2 = sk4 # label(co1_5) # label(negated_conjecture). [assumption].
% 1.72/2.01 189 sk4 = sk2. [copy(188),flip(a)].
% 1.72/2.01 190 sk1 = sk3 # label(co1_6) # label(negated_conjecture). [assumption].
% 1.72/2.01 191 neq(sk2,nil) | neq(sk2,nil) # label(co1_7) # label(negated_conjecture). [assumption].
% 1.72/2.01 192 neq(sk2,nil). [copy(191),merge(b)].
% 1.72/2.01 196 -ssItem(A) | -ssList(B) | cons(A,nil) != sk1 | app(B,cons(A,nil)) != sk2 | -neq(sk4,nil) # label(co1_14) # label(negated_conjecture). [assumption].
% 1.72/2.01 197 -ssItem(A) | -ssList(B) | cons(A,nil) != sk3 | app(B,cons(A,nil)) != sk2. [copy(196),rewrite([190(5),189(12)]),unit_del(e,192)].
% 1.72/2.01 198 ssItem(sk5) | -neq(sk4,nil) # label(co1_15) # label(negated_conjecture). [assumption].
% 1.72/2.01 199 ssItem(sk5). [copy(198),rewrite([189(3)]),unit_del(b,192)].
% 1.72/2.01 200 ssList(sk6) | -neq(sk4,nil) # label(co1_16) # label(negated_conjecture). [assumption].
% 1.72/2.01 201 ssList(sk6). [copy(200),rewrite([189(3)]),unit_del(b,192)].
% 1.72/2.01 202 cons(sk5,nil) = sk3 | -neq(sk4,nil) # label(co1_17) # label(negated_conjecture). [assumption].
% 1.72/2.01 203 cons(sk5,nil) = sk3. [copy(202),rewrite([189(6)]),unit_del(b,192)].
% 1.72/2.01 204 app(sk6,cons(sk5,nil)) = sk4 | -neq(sk4,nil) # label(co1_18) # label(negated_conjecture). [assumption].
% 1.72/2.01 205 app(sk6,sk3) = sk2. [copy(204),rewrite([203(4),189(4),189(6)]),unit_del(b,192)].
% 1.72/2.01 3397 -ssList(A) | app(A,sk3) != sk2. [resolve(199,a,197,a),rewrite([203(4),203(7)]),xx(b)].
% 1.72/2.01 6460 $F. [resolve(3397,a,201,a),rewrite([205(3)]),xx(a)].
% 1.72/2.01
% 1.72/2.01 % SZS output end Refutation
% 1.72/2.01 ============================== end of proof ==========================
% 1.72/2.01
% 1.72/2.01 ============================== STATISTICS ============================
% 1.72/2.01
% 1.72/2.01 Given=1003. Generated=20975. Kept=6402. proofs=1.
% 1.72/2.01 Usable=1003. Sos=5359. Demods=177. Limbo=4, Disabled=262. Hints=0.
% 1.72/2.01 Megabytes=10.34.
% 1.72/2.01 User_CPU=1.00, System_CPU=0.01, Wall_clock=1.
% 1.72/2.01
% 1.72/2.01 ============================== end of statistics =====================
% 1.72/2.01
% 1.72/2.01 ============================== end of search =========================
% 1.72/2.01
% 1.72/2.01 THEOREM PROVED
% 1.72/2.01 % SZS status Unsatisfiable
% 1.72/2.01
% 1.72/2.01 Exiting with 1 proof.
% 1.72/2.01
% 1.72/2.01 Process 23992 exit (max_proofs) Sun Jun 12 05:33:05 2022
% 1.72/2.01 Prover9 interrupted
%------------------------------------------------------------------------------