↑ Up

cvc5---1.3.4.THM-Prf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : cvc5---1.3.4
% Problem  : SET814+4 : TPTP v9.2.1. Released v3.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM

% Computer : n028.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 Jun  3 08:48:42 AM UTC 2026

% Result   : Theorem 0.45s 0.66s
% Output   : Proof 0.45s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : SET814+4 : TPTP v9.2.1. Released v3.2.0.
% 0.12/0.13  % Command  : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM
% 0.16/0.34  % Computer : n028.cluster.edu
% 0.16/0.34  % Model    : x86_64 x86_64
% 0.16/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.34  % Memory   : 8042.1875MB
% 0.16/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.16/0.34  % CPULimit : 300
% 0.16/0.34  % WCLimit  : 300
% 0.16/0.34  % DateTime : Tue Jun  2 16:13:05 EDT 2026
% 0.16/0.34  % CPUTime  : 
% 0.27/0.50  %----Proving TF0_NAR, FOF, or CNF
% 0.45/0.66  --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 15...
% 0.45/0.66  % SZS status Theorem
% 0.45/0.66  % SZS output start Proof
% 0.45/0.66  (
% 0.45/0.66  (declare-sort $$unsorted 0)
% 0.45/0.66  (declare-const tptp.strict_order (-> $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.on $$unsorted)
% 0.45/0.66  (declare-const tptp.apply (-> $$unsorted $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.set (-> $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.subset (-> $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.suc (-> $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.singleton (-> $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.sum (-> $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.equal_set (-> $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.initial_segment (-> $$unsorted $$unsorted $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.power_set (-> $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.intersection (-> $$unsorted $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.empty_set $$unsorted)
% 0.45/0.66  (declare-const tptp.product (-> $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.member (-> $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.union (-> $$unsorted $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.least (-> $$unsorted $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.difference (-> $$unsorted $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.strict_well_order (-> $$unsorted $$unsorted Bool))
% 0.45/0.66  (declare-const tptp.unordered_pair (-> $$unsorted $$unsorted $$unsorted))
% 0.45/0.66  (declare-const tptp.member_predicate $$unsorted)
% 0.45/0.66  (define @t1 () (@var "B" $$unsorted))
% 0.45/0.66  (define @t2 () (@var "X" $$unsorted))
% 0.45/0.66  (define @t3 () (tptp.member @t2 @t1))
% 0.45/0.66  (define @t4 () (@var "A" $$unsorted))
% 0.45/0.66  (define @t5 () (tptp.member @t2 @t4))
% 0.45/0.66  (define @t6 () (@list @t2))
% 0.45/0.66  (define @t7 () (forall @t6 (=> @t5 @t3)))
% 0.45/0.66  (define @t8 () (tptp.subset @t4 @t1))
% 0.45/0.66  (define @t9 () (= @t8 @t7))
% 0.45/0.66  (define @t10 () (@list @t4 @t1))
% 0.45/0.66  (define @t11 () (forall @t10 @t9))
% 0.45/0.66  (define @t12 () (tptp.subset @t2 @t4))
% 0.45/0.66  (define @t13 () (@list @t2 @t4))
% 0.45/0.66  (define @t14 () (@list @t2 @t4 @t1))
% 0.45/0.66  (define @t15 () (@var "E" $$unsorted))
% 0.45/0.66  (define @t16 () (= @t2 @t4))
% 0.45/0.66  (define @t17 () (tptp.singleton @t4))
% 0.45/0.66  (define @t18 () (@var "Y" $$unsorted))
% 0.45/0.66  (define @t19 () (tptp.member @t2 @t18))
% 0.45/0.66  (define @t20 () (tptp.member @t18 @t4))
% 0.45/0.66  (define @t21 () (and @t20 @t19))
% 0.45/0.66  (define @t22 () (@list @t18))
% 0.45/0.66  (define @t23 () (exists @t22 @t21))
% 0.45/0.66  (define @t24 () (tptp.sum @t4))
% 0.45/0.66  (define @t25 () (tptp.member @t2 @t24))
% 0.45/0.66  (define @t26 () (= @t25 @t23))
% 0.45/0.66  (define @t27 () (forall @t13 @t26))
% 0.45/0.66  (define @t28 () (forall @t6 (=> @t5 @t12)))
% 0.45/0.66  (define @t29 () (tptp.strict_well_order tptp.member_predicate @t4))
% 0.45/0.66  (define @t30 () (tptp.set @t4))
% 0.45/0.66  (define @t31 () (and @t30 @t29 @t28))
% 0.45/0.66  (define @t32 () (tptp.member @t4 tptp.on))
% 0.45/0.66  (define @t33 () (= @t32 @t31))
% 0.45/0.66  (define @t34 () (@list @t4))
% 0.45/0.66  (define @t35 () (forall @t34 @t33))
% 0.45/0.66  (define @t36 () (@var "R" $$unsorted))
% 0.45/0.66  (define @t37 () (tptp.strict_order @t36 @t15))
% 0.45/0.66  (define @t38 () (@list @t36 @t15))
% 0.45/0.66  (define @t39 () (@var "M" $$unsorted))
% 0.45/0.66  (define @t40 () (tptp.member @t2 @t15))
% 0.45/0.66  (define @t41 () (@list @t2 @t18))
% 0.45/0.66  (define @t42 () (@var "Z" $$unsorted))
% 0.45/0.66  (define @t43 () (tptp.apply @t36 @t2 @t18))
% 0.45/0.66  (define @t44 () (tptp.member @t18 @t15))
% 0.45/0.66  (define @t45 () (tptp.apply @t36 @t18 @t2))
% 0.45/0.66  (define @t46 () (@var "C" $$unsorted))
% 0.45/0.66  (define @t47 () (tptp.subset @t24 @t4))
% 0.45/0.66  (define @t48 () (forall @t34 (=> @t32 @t47)))
% 0.45/0.66  (define @t49 () (not @t48))
% 0.45/0.66  (define @t50 () (@quantifiers_skolemize (forall @t34 (or (not @t32) @t47)) 0))
% 0.45/0.66  (define @t51 () (tptp.member @t2 @t50))
% 0.45/0.66  (define @t52 () (tptp.sum @t50))
% 0.45/0.66  (define @t53 () (forall @t6 (or (not (tptp.member @t2 @t52)) @t51)))
% 0.45/0.66  (define @t54 () (@quantifiers_skolemize @t53 0))
% 0.45/0.66  (define @t55 () (forall @t22 (or (not (tptp.member @t18 @t50)) (not (tptp.member @t54 @t18)))))
% 0.45/0.66  (define @t56 () (@quantifiers_skolemize @t55 0))
% 0.45/0.66  (define @t57 () (tptp.member @t50 tptp.on))
% 0.45/0.66  (define @t58 () (tptp.subset @t52 @t50))
% 0.45/0.66  (define @t59 () (not @t57))
% 0.45/0.66  (define @t60 () (or @t59 @t58))
% 0.45/0.66  (define @t61 () (@list true))
% 0.45/0.66  (define @t62 () (@list @t60))
% 0.45/0.66  (define @t63 () (forall @t6 (or (not @t51) (tptp.subset @t2 @t50))))
% 0.45/0.66  (define @t64 () (and (tptp.set @t50) (tptp.strict_well_order tptp.member_predicate @t50) @t63))
% 0.45/0.66  (define @t65 () (= @t57 @t64))
% 0.45/0.66  (define @t66 () (@list false false))
% 0.45/0.66  (define @t67 () (forall @t22 (not @t21)))
% 0.45/0.66  (define @t68 () (not @t67))
% 0.45/0.66  (define @t69 () (= @t58 @t53))
% 0.45/0.66  (define @t70 () (not @t53))
% 0.45/0.66  (define @t71 () (@list true false))
% 0.45/0.66  (define @t72 () (tptp.member @t54 @t52))
% 0.45/0.66  (define @t73 () (tptp.member @t54 @t50))
% 0.45/0.66  (define @t74 () (not @t72))
% 0.45/0.66  (define @t75 () (or @t74 @t73))
% 0.45/0.66  (define @t76 () (@list @t75))
% 0.45/0.66  (define @t77 () (not @t55))
% 0.45/0.66  (define @t78 () (= @t72 @t77))
% 0.45/0.66  (define @t79 () (tptp.member @t56 @t50))
% 0.45/0.66  (define @t80 () (tptp.member @t54 @t56))
% 0.45/0.66  (define @t81 () (not @t80))
% 0.45/0.66  (define @t82 () (not @t79))
% 0.45/0.66  (define @t83 () (or @t82 @t81))
% 0.45/0.66  (define @t84 () (@list @t83))
% 0.45/0.66  (define @t85 () (tptp.subset @t56 @t50))
% 0.45/0.66  (define @t86 () (or @t82 @t85))
% 0.45/0.66  (define @t87 () (forall @t6 (or (not (tptp.member @t2 @t56)) @t51)))
% 0.45/0.66  (define @t88 () (= @t85 @t87))
% 0.45/0.66  (define @t89 () (or @t81 @t73))
% 0.45/0.66  (define @t90 () (not @t89))
% 0.45/0.66  (assume @p1 @t11)
% 0.45/0.66  (assume @p2 (forall @t10 (= (tptp.equal_set @t4 @t1) (and @t8 (tptp.subset @t1 @t4)))))
% 0.45/0.66  (assume @p3 (forall @t13 (= (tptp.member @t2 (tptp.power_set @t4)) @t12)))
% 0.45/0.66  (assume @p4 (forall @t14 (= (tptp.member @t2 (tptp.intersection @t4 @t1)) (and @t5 @t3))))
% 0.45/0.66  (assume @p5 (forall @t14 (= (tptp.member @t2 (tptp.union @t4 @t1)) (or @t5 @t3))))
% 0.45/0.66  (assume @p6 (forall @t6 (not (tptp.member @t2 tptp.empty_set))))
% 0.45/0.66  (assume @p7 (forall (@list @t1 @t4 @t15) (= (tptp.member @t1 (tptp.difference @t15 @t4)) (and (tptp.member @t1 @t15) (not (tptp.member @t1 @t4))))))
% 0.45/0.66  (assume @p8 (forall @t13 (= (tptp.member @t2 @t17) @t16)))
% 0.45/0.66  (assume @p9 (forall @t14 (= (tptp.member @t2 (tptp.unordered_pair @t4 @t1)) (or @t16 (= @t2 @t1)))))
% 0.45/0.66  (assume @p10 @t27)
% 0.45/0.66  (assume @p11 (forall @t13 (= (tptp.member @t2 (tptp.product @t4)) (forall @t22 (=> @t20 @t19)))))
% 0.45/0.66  (assume @p12 @t35)
% 0.45/0.66  (assume @p13 (forall @t38 (= (tptp.strict_well_order @t36 @t15) (and @t37 (forall @t34 (=> (and (tptp.subset @t4 @t15) (exists @t6 @t5)) (exists @t22 (tptp.least @t18 @t36 @t4))))))))
% 0.45/0.66  (assume @p14 (forall (@list @t36 @t15 @t39) (= (tptp.least @t39 @t36 @t15) (and (tptp.member @t39 @t15) (forall @t6 (=> @t40 (or (= @t39 @t2) (tptp.apply @t36 @t39 @t2))))))))
% 0.45/0.66  (assume @p15 (forall @t41 (= (tptp.apply tptp.member_predicate @t2 @t18) @t19)))
% 0.45/0.66  (assume @p16 (forall @t38 (= @t37 (and (forall @t41 (=> (and @t40 @t44) (not (and @t43 @t45)))) (forall (@list @t2 @t18 @t42) (=> (and @t40 @t44 (tptp.member @t42 @t15)) (=> (and @t43 (tptp.apply @t36 @t18 @t42)) (tptp.apply @t36 @t2 @t42))))))))
% 0.45/0.66  (assume @p17 (forall @t6 (=> (tptp.set @t2) (forall @t22 (=> (tptp.member @t18 @t2) (tptp.set @t18))))))
% 0.45/0.66  (assume @p18 (forall (@list @t2 @t36 @t4 @t18) (= (tptp.member @t18 (tptp.initial_segment @t2 @t36 @t4)) (and @t20 @t45))))
% 0.45/0.66  (assume @p19 (forall (@list @t4 @t2) (= (tptp.member @t2 (tptp.suc @t4)) (tptp.member @t2 (tptp.union @t4 @t17)))))
% 0.45/0.66  (assume @p20 (forall (@list @t4 @t1 @t46) (=> (and @t8 (tptp.subset @t1 @t46)) (tptp.subset @t4 @t46))))
% 0.45/0.66  (assume @p21 @t49)
% 0.45/0.66  (assume @p22 true)
% 0.45/0.66  (step @p23 :rule bool-impl-elim :args (@t5 @t3))
% 0.45/0.66  (step @p24 :rule cong :premises (@p23) :args (@t7))
% 0.45/0.66  (step @p25 :rule refl :args (@t8))
% 0.45/0.66  (step @p26 :rule cong :premises (@p25 @p24) :args (@t9))
% 0.45/0.66  (step @p27 :rule cong :premises (@p26) :args (@t11))
% 0.45/0.66  (step @p28 :rule eq_resolve :premises (@p1 @p27))
% 0.45/0.66  (step @p29 :rule instantiate :premises (@p28) :args ((@list @t56 @t50)))
% 0.45/0.66  (step @p30 :rule bool-impl-elim :args (@t5 @t12))
% 0.45/0.66  (step @p31 :rule cong :premises (@p30) :args (@t28))
% 0.45/0.66  (step @p32 :rule refl :args (@t29))
% 0.45/0.66  (step @p33 :rule refl :args (@t30))
% 0.45/0.66  (step @p34 :rule nary_cong :premises (@p33 @p32 @p31) :args (@t31))
% 0.45/0.66  (step @p35 :rule refl :args (@t32))
% 0.45/0.66  (step @p36 :rule cong :premises (@p35 @p34) :args (@t33))
% 0.45/0.66  (step @p37 :rule cong :premises (@p36) :args (@t35))
% 0.45/0.66  (step @p38 :rule eq_resolve :premises (@p12 @p37))
% 0.45/0.66  (step @p39 :rule instantiate :premises (@p38) :args ((@list @t50)))
% 0.45/0.66  (step @p40 :rule bool-impl-elim :args (@t32 @t47))
% 0.45/0.66  (step @p41 :rule cong :premises (@p40) :args (@t48))
% 0.45/0.66  (step @p42 :rule cong :premises (@p41) :args (@t49))
% 0.45/0.66  (step @p43 :rule eq_resolve :premises (@p21 @p42))
% 0.45/0.66  (step @p44 :rule skolemize :premises (@p43))
% 0.45/0.66  (step @p45 :rule bool-double-not-elim :args (@t57))
% 0.45/0.66  (step @p46 :rule refl :args (@t60))
% 0.45/0.66  (step @p47 :rule nary_cong :premises (@p46 @p45) :args ((or @t60 (not @t59))))
% 0.45/0.66  (step @p48 :rule cnf_or_neg :args (@t60 0))
% 0.45/0.66  (step @p49 :rule eq_resolve :premises (@p48 @p47))
% 0.45/0.66  (step @p50 :rule reordering :premises (@p49) :args ((or @t57 @t60)))
% 0.45/0.66  (step @p51 :rule chain_m_resolution :premises (@p50 @p44) :args (@t57 @t61 @t62))
% 0.45/0.66  (step @p52 :rule cnf_equiv_pos1 :args (@t65))
% 0.45/0.66  (step @p53 :rule reordering :premises (@p52) :args ((or @t59 @t64 (not @t65))))
% 0.45/0.66  (step @p54 :rule chain_m_resolution :premises (@p53 @p51 @p39) :args (@t64 @t66 (@list @t57 @t65)))
% 0.45/0.66  (step @p55 :rule cnf_and_pos :args (@t64 2))
% 0.45/0.66  (step @p56 :rule reordering :premises (@p55) :args ((or @t63 (not @t64))))
% 0.45/0.66  (step @p57 :rule chain_m_resolution :premises (@p56 @p54) :args (@t63 (@list false) (@list @t64)))
% 0.45/0.66  (step @p58 :rule instantiate :premises (@p57) :args ((@list @t56)))
% 0.45/0.66  (step @p59 :rule bool-and-de-morgan :args (@t20 @t19 true))
% 0.45/0.66  (step @p60 :rule cong :premises (@p59) :args (@t67))
% 0.45/0.66  (step @p61 :rule cong :premises (@p60) :args (@t68))
% 0.45/0.66  (step @p62 :rule exists-elim :args ((= @t23 @t68)))
% 0.45/0.66  (step @p63 :rule trans :premises (@p62 @p61))
% 0.45/0.66  (step @p64 :rule refl :args (@t25))
% 0.45/0.66  (step @p65 :rule cong :premises (@p64 @p63) :args (@t26))
% 0.45/0.66  (step @p66 :rule cong :premises (@p65) :args (@t27))
% 0.45/0.66  (step @p67 :rule eq_resolve :premises (@p10 @p66))
% 0.45/0.66  (step @p68 :rule instantiate :premises (@p67) :args ((@list @t54 @t50)))
% 0.45/0.66  (step @p69 :rule instantiate :premises (@p28) :args ((@list @t52 @t50)))
% 0.45/0.66  (step @p70 :rule cnf_or_neg :args (@t60 1))
% 0.45/0.66  (step @p71 :rule chain_m_resolution :premises (@p70 @p44) :args ((not @t58) @t61 @t62))
% 0.45/0.66  (step @p72 :rule cnf_equiv_pos2 :args (@t69))
% 0.45/0.66  (step @p73 :rule reordering :premises (@p72) :args ((or @t58 @t70 (not @t69))))
% 0.45/0.66  (step @p74 :rule chain_m_resolution :premises (@p73 @p71 @p69) :args (@t70 @t71 (@list @t58 @t69)))
% 0.45/0.66  (step @p75 :rule skolemize :premises (@p74))
% 0.45/0.66  (step @p76 :rule bool-double-not-elim :args (@t72))
% 0.45/0.66  (step @p77 :rule refl :args (@t75))
% 0.45/0.66  (step @p78 :rule nary_cong :premises (@p77 @p76) :args ((or @t75 (not @t74))))
% 0.45/0.66  (step @p79 :rule cnf_or_neg :args (@t75 0))
% 0.45/0.66  (step @p80 :rule eq_resolve :premises (@p79 @p78))
% 0.45/0.66  (step @p81 :rule reordering :premises (@p80) :args ((or @t72 @t75)))
% 0.45/0.66  (step @p82 :rule chain_m_resolution :premises (@p81 @p75) :args (@t72 @t61 @t76))
% 0.45/0.66  (step @p83 :rule cnf_equiv_pos1 :args (@t78))
% 0.45/0.66  (step @p84 :rule reordering :premises (@p83) :args ((or @t74 @t77 (not @t78))))
% 0.45/0.66  (step @p85 :rule chain_m_resolution :premises (@p84 @p82 @p68) :args (@t77 @t66 (@list @t72 @t78)))
% 0.45/0.66  (step @p86 :rule skolemize :premises (@p85))
% 0.45/0.66  (step @p87 :rule bool-double-not-elim :args (@t79))
% 0.45/0.66  (step @p88 :rule refl :args (@t83))
% 0.45/0.66  (step @p89 :rule nary_cong :premises (@p88 @p87) :args ((or @t83 (not @t82))))
% 0.45/0.66  (step @p90 :rule cnf_or_neg :args (@t83 0))
% 0.45/0.66  (step @p91 :rule eq_resolve :premises (@p90 @p89))
% 0.45/0.66  (step @p92 :rule reordering :premises (@p91) :args ((or @t79 @t83)))
% 0.45/0.66  (step @p93 :rule chain_m_resolution :premises (@p92 @p86) :args (@t79 @t61 @t84))
% 0.45/0.66  (step @p94 :rule cnf_or_pos :args (@t86))
% 0.45/0.66  (step @p95 :rule reordering :premises (@p94) :args ((or @t82 @t85 (not @t86))))
% 0.45/0.66  (step @p96 :rule chain_m_resolution :premises (@p95 @p93 @p58) :args (@t85 @t66 (@list @t79 @t86)))
% 0.45/0.66  (step @p97 :rule cnf_equiv_pos1 :args (@t88))
% 0.45/0.66  (step @p98 :rule reordering :premises (@p97) :args ((or (not @t85) @t87 (not @t88))))
% 0.45/0.66  (step @p99 :rule chain_m_resolution :premises (@p98 @p96 @p29) :args (@t87 @t66 (@list @t85 @t88)))
% 0.45/0.66  (step @p100 :rule bool-double-not-elim :args (@t80))
% 0.45/0.66  (step @p101 :rule nary_cong :premises (@p88 @p100) :args ((or @t83 (not @t81))))
% 0.45/0.66  (step @p102 :rule cnf_or_neg :args (@t83 1))
% 0.45/0.66  (step @p103 :rule eq_resolve :premises (@p102 @p101))
% 0.45/0.66  (step @p104 :rule reordering :premises (@p103) :args ((or @t80 @t83)))
% 0.45/0.66  (step @p105 :rule chain_m_resolution :premises (@p104 @p86) :args (@t80 @t61 @t84))
% 0.45/0.66  (step @p106 :rule cnf_or_neg :args (@t75 1))
% 0.45/0.66  (step @p107 :rule chain_m_resolution :premises (@p106 @p75) :args ((not @t73) @t61 @t76))
% 0.45/0.66  (step @p108 :rule cnf_or_pos :args (@t89))
% 0.45/0.66  (step @p109 :rule reordering :premises (@p108) :args ((or @t73 @t81 @t90)))
% 0.45/0.66  (step @p110 :rule chain_m_resolution :premises (@p109 @p107 @p105) :args (@t90 @t71 (@list @t73 @t80)))
% 0.45/0.66  (assume-push @p117 @t87)
% 0.45/0.66  (step @p112 :rule instantiate :premises (@p99) :args ((@list @t54)))
% 0.45/0.66  (step-pop @p118 :rule scope :premises (@p112))
% 0.45/0.66  (step @p113 :rule process_scope :premises (@p118) :args (@t89))
% 0.45/0.66  (step @p115 :rule implies_elim :premises (@p113))
% 0.45/0.66  (step @p116 false :rule chain_m_resolution :premises (@p115 @p110 @p99) :args (false @t71 (@list @t89 @t87)))
% 0.45/0.66  )
% 0.45/0.66  % SZS output end Proof
% 0.45/0.66  % cvc5 exiting
%------------------------------------------------------------------------------