%------------------------------------------------------------------------------ % File : cvc5---1.3.4 % Problem : KLE035+1 : TPTP v9.2.1. Released v4.0.0. % Transfm : none % Format : tptp:raw % Command : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM % Computer : n007.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:28:10 AM UTC 2026 % Result : Theorem 0.37s 0.59s % Output : Proof 0.37s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : KLE035+1 : TPTP v9.2.1. Released v4.0.0. % 0.11/0.13 % Command : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM % 0.16/0.34 % Computer : n007.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 05:10:11 EDT 2026 % 0.16/0.34 % CPUTime : % 0.29/0.49 %----Proving TF0_NAR, FOF, or CNF % 0.37/0.59 --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 15... % 0.37/0.59 % SZS status Theorem % 0.37/0.59 % SZS output start Proof % 0.37/0.59 ( % 0.37/0.59 (declare-sort $$unsorted 0) % 0.37/0.59 (declare-const tptp.c (-> $$unsorted $$unsorted)) % 0.37/0.59 (declare-const tptp.test (-> $$unsorted Bool)) % 0.37/0.59 (declare-const tptp.complement (-> $$unsorted $$unsorted Bool)) % 0.37/0.59 (declare-const tptp.multiplication (-> $$unsorted $$unsorted $$unsorted)) % 0.37/0.59 (declare-const tptp.leq (-> $$unsorted $$unsorted Bool)) % 0.37/0.59 (declare-const tptp.zero $$unsorted) % 0.37/0.59 (declare-const tptp.one $$unsorted) % 0.37/0.59 (declare-const tptp.addition (-> $$unsorted $$unsorted $$unsorted)) % 0.37/0.59 (define @t1 () (@var "A" $$unsorted)) % 0.37/0.59 (define @t2 () (@var "B" $$unsorted)) % 0.37/0.59 (define @t3 () (tptp.addition @t1 @t2)) % 0.37/0.59 (define @t4 () (@list @t1 @t2)) % 0.37/0.59 (define @t5 () (forall @t4 (= @t3 (tptp.addition @t2 @t1)))) % 0.37/0.59 (define @t6 () (@var "C" $$unsorted)) % 0.37/0.59 (define @t7 () (tptp.addition @t2 @t6)) % 0.37/0.59 (define @t8 () (tptp.addition @t1 tptp.zero)) % 0.37/0.59 (define @t9 () (@list @t1)) % 0.37/0.59 (define @t10 () (forall @t9 (= @t8 @t1))) % 0.37/0.59 (define @t11 () (tptp.multiplication @t1 @t2)) % 0.37/0.59 (define @t12 () (tptp.multiplication @t2 @t6)) % 0.37/0.59 (define @t13 () (@list @t1 @t2 @t6)) % 0.37/0.59 (define @t14 () (tptp.multiplication @t1 @t6)) % 0.37/0.59 (define @t15 () (forall @t13 (= (tptp.multiplication @t3 @t6) (tptp.addition @t14 @t12)))) % 0.37/0.59 (define @t16 () (tptp.leq @t1 @t2)) % 0.37/0.59 (define @t17 () (= @t16 (= @t3 @t2))) % 0.37/0.59 (define @t18 () (forall @t4 @t17)) % 0.37/0.59 (define @t19 () (@var "X0" $$unsorted)) % 0.37/0.59 (define @t20 () (@var "X1" $$unsorted)) % 0.37/0.59 (define @t21 () (tptp.complement @t20 @t19)) % 0.37/0.59 (define @t22 () (tptp.test @t19)) % 0.37/0.59 (define @t23 () (@list @t19)) % 0.37/0.59 (define @t24 () (tptp.addition @t19 @t20)) % 0.37/0.59 (define @t25 () (@list @t19 @t20)) % 0.37/0.59 (define @t26 () (tptp.c @t19)) % 0.37/0.59 (define @t27 () (@var "X3" $$unsorted)) % 0.37/0.59 (define @t28 () (tptp.c @t27)) % 0.37/0.59 (define @t29 () (@var "X2" $$unsorted)) % 0.37/0.59 (define @t30 () (tptp.leq (tptp.multiplication (tptp.multiplication @t29 @t24) @t28) tptp.zero)) % 0.37/0.59 (define @t31 () (tptp.leq (tptp.multiplication (tptp.multiplication @t29 @t20) @t28) tptp.zero)) % 0.37/0.59 (define @t32 () (tptp.leq (tptp.multiplication (tptp.multiplication @t29 @t19) @t28) tptp.zero)) % 0.37/0.59 (define @t33 () (tptp.test @t29)) % 0.37/0.59 (define @t34 () (tptp.test @t27)) % 0.37/0.59 (define @t35 () (and @t34 @t33 @t32 @t31)) % 0.37/0.59 (define @t36 () (@list @t19 @t20 @t29 @t27)) % 0.37/0.59 (define @t37 () (forall @t36 (=> @t35 @t30))) % 0.37/0.59 (define @t38 () (not @t37)) % 0.37/0.59 (define @t39 () (not @t31)) % 0.37/0.59 (define @t40 () (not @t32)) % 0.37/0.59 (define @t41 () (not @t33)) % 0.37/0.59 (define @t42 () (not @t34)) % 0.37/0.59 (define @t43 () (or @t42 @t41 @t40 @t39 @t30)) % 0.37/0.59 (define @t44 () (forall @t36 @t43)) % 0.37/0.59 (define @t45 () (@quantifiers_skolemize @t44 1)) % 0.37/0.59 (define @t46 () (@quantifiers_skolemize @t44 0)) % 0.37/0.59 (define @t47 () (@quantifiers_skolemize @t44 2)) % 0.37/0.59 (define @t48 () (@quantifiers_skolemize @t44 3)) % 0.37/0.59 (define @t49 () (tptp.c @t48)) % 0.37/0.59 (define @t50 () (tptp.multiplication @t47 @t46)) % 0.37/0.59 (define @t51 () (tptp.multiplication @t50 @t49)) % 0.37/0.59 (define @t52 () (or @t42 @t41 @t40 @t39)) % 0.37/0.59 (define @t53 () (tptp.leq @t51 tptp.zero)) % 0.37/0.59 (define @t54 () (tptp.multiplication @t47 (tptp.addition @t46 @t45))) % 0.37/0.59 (define @t55 () (tptp.multiplication @t54 @t49)) % 0.37/0.59 (define @t56 () (tptp.leq @t55 tptp.zero)) % 0.37/0.59 (define @t57 () (tptp.multiplication @t47 @t45)) % 0.37/0.59 (define @t58 () (tptp.multiplication @t57 @t49)) % 0.37/0.59 (define @t59 () (tptp.leq @t58 tptp.zero)) % 0.37/0.59 (define @t60 () (not @t59)) % 0.37/0.59 (define @t61 () (not @t53)) % 0.37/0.59 (define @t62 () (or (not (tptp.test @t48)) (not (tptp.test @t47)) @t61 @t60 @t56)) % 0.37/0.59 (define @t63 () (@list true)) % 0.37/0.59 (define @t64 () (@list @t62)) % 0.37/0.59 (define @t65 () (tptp.addition @t51 tptp.zero)) % 0.37/0.59 (define @t66 () (= tptp.zero @t65)) % 0.37/0.59 (define @t67 () (= @t53 @t66)) % 0.37/0.59 (define @t68 () (@list false false)) % 0.37/0.59 (define @t69 () (tptp.addition @t58 tptp.zero)) % 0.37/0.59 (define @t70 () (= tptp.zero @t69)) % 0.37/0.59 (define @t71 () (= @t59 @t70)) % 0.37/0.59 (define @t72 () (tptp.addition @t55 tptp.zero)) % 0.37/0.59 (define @t73 () (= tptp.zero @t72)) % 0.37/0.59 (define @t74 () (= @t56 @t73)) % 0.37/0.59 (define @t75 () (not @t73)) % 0.37/0.59 (define @t76 () (tptp.addition tptp.zero @t58)) % 0.37/0.59 (define @t77 () (= @t76 @t69)) % 0.37/0.59 (define @t78 () (@list tptp.zero @t58)) % 0.37/0.59 (define @t79 () (= @t69 @t76)) % 0.37/0.59 (define @t80 () (@list false)) % 0.37/0.59 (define @t81 () (tptp.addition @t50 @t57)) % 0.37/0.59 (define @t82 () (tptp.multiplication @t81 @t49)) % 0.37/0.59 (define @t83 () (tptp.addition @t51 @t58)) % 0.37/0.59 (define @t84 () (= @t82 @t83)) % 0.37/0.59 (define @t85 () (= @t83 @t82)) % 0.37/0.59 (define @t86 () (not @t85)) % 0.37/0.59 (define @t87 () (= @t55 @t72)) % 0.37/0.59 (define @t88 () (not @t87)) % 0.37/0.59 (define @t89 () (= @t51 @t65)) % 0.37/0.59 (define @t90 () (not @t89)) % 0.37/0.59 (define @t91 () (not @t79)) % 0.37/0.59 (define @t92 () (not @t70)) % 0.37/0.59 (define @t93 () (not @t66)) % 0.37/0.59 (define @t94 () (= @t54 @t81)) % 0.37/0.59 (define @t95 () (not @t94)) % 0.37/0.59 (define @t96 () (and @t94 @t66 @t70 @t75 @t79 @t89 @t87)) % 0.37/0.59 (assume @p1 @t5) % 0.37/0.59 (assume @p2 (forall (@list @t6 @t2 @t1) (= (tptp.addition @t1 @t7) (tptp.addition @t3 @t6)))) % 0.37/0.59 (assume @p3 @t10) % 0.37/0.59 (assume @p4 (forall @t9 (= (tptp.addition @t1 @t1) @t1))) % 0.37/0.59 (assume @p5 (forall @t13 (= (tptp.multiplication @t1 @t12) (tptp.multiplication @t11 @t6)))) % 0.37/0.59 (assume @p6 (forall @t9 (= (tptp.multiplication @t1 tptp.one) @t1))) % 0.37/0.59 (assume @p7 (forall @t9 (= (tptp.multiplication tptp.one @t1) @t1))) % 0.37/0.59 (assume @p8 (forall @t13 (= (tptp.multiplication @t1 @t7) (tptp.addition @t11 @t14)))) % 0.37/0.59 (assume @p9 @t15) % 0.37/0.59 (assume @p10 (forall @t9 (= (tptp.multiplication @t1 tptp.zero) tptp.zero))) % 0.37/0.59 (assume @p11 (forall @t9 (= (tptp.multiplication tptp.zero @t1) tptp.zero))) % 0.37/0.59 (assume @p12 @t18) % 0.37/0.59 (assume @p13 (forall @t23 (= @t22 (exists (@list @t20) @t21)))) % 0.37/0.59 (assume @p14 (forall @t25 (= @t21 (and (= (tptp.multiplication @t19 @t20) tptp.zero) (= (tptp.multiplication @t20 @t19) tptp.zero) (= @t24 tptp.one))))) % 0.37/0.59 (assume @p15 (forall @t25 (=> @t22 (= (= @t26 @t20) (tptp.complement @t19 @t20))))) % 0.37/0.59 (assume @p16 (forall @t23 (=> (not @t22) (= @t26 tptp.zero)))) % 0.37/0.59 (assume @p17 @t38) % 0.37/0.59 (assume @p18 true) % 0.37/0.59 (step @p19 :rule instantiate :premises (@p8) :args ((@list @t47 @t46 @t45))) % 0.37/0.59 (step @p20 :rule eq-symm :args (@t3 @t2)) % 0.37/0.59 (step @p21 :rule refl :args (@t16)) % 0.37/0.59 (step @p22 :rule cong :premises (@p21 @p20) :args (@t17)) % 0.37/0.59 (step @p23 :rule cong :premises (@p22) :args (@t18)) % 0.37/0.59 (step @p24 :rule eq_resolve :premises (@p12 @p23)) % 0.37/0.59 (step @p25 :rule instantiate :premises (@p24) :args ((@list @t51 tptp.zero))) % 0.37/0.59 (step @p26 :rule aci_norm :args ((= (or @t52 @t30) @t43))) % 0.37/0.59 (step @p27 :rule refl :args (@t30)) % 0.37/0.59 (step @p28 :rule aci_norm :args ((= (or @t42 (or @t41 (or @t40 @t39))) @t52))) % 0.37/0.59 (step @p29 :rule bool-and-de-morgan :args (@t32 @t31 true)) % 0.37/0.59 (step @p30 :rule refl :args (@t41)) % 0.37/0.59 (step @p31 :rule nary_cong :premises (@p30 @p29) :args ((or @t41 (not (and @t32 @t31))))) % 0.37/0.59 (step @p32 :rule bool-and-de-morgan :args (@t33 @t32 (and @t31))) % 0.37/0.59 (step @p33 :rule trans :premises (@p32 @p31)) % 0.37/0.59 (step @p34 :rule refl :args (@t42)) % 0.37/0.59 (step @p35 :rule nary_cong :premises (@p34 @p33) :args ((or @t42 (not (and @t33 @t32 @t31))))) % 0.37/0.59 (step @p36 :rule bool-and-de-morgan :args (@t34 @t33 (and @t32 @t31))) % 0.37/0.59 (step @p37 :rule trans :premises (@p36 @p35)) % 0.37/0.59 (step @p38 :rule trans :premises (@p37 @p28)) % 0.37/0.59 (step @p39 :rule nary_cong :premises (@p38 @p27) :args ((or (not @t35) @t30))) % 0.37/0.59 (step @p40 :rule trans :premises (@p39 @p26)) % 0.37/0.59 (step @p41 :rule bool-impl-elim :args (@t35 @t30)) % 0.37/0.59 (step @p42 :rule trans :premises (@p41 @p40)) % 0.37/0.59 (step @p43 :rule cong :premises (@p42) :args (@t37)) % 0.37/0.59 (step @p44 :rule cong :premises (@p43) :args (@t38)) % 0.37/0.59 (step @p45 :rule eq_resolve :premises (@p17 @p44)) % 0.37/0.59 (step @p46 :rule skolemize :premises (@p45)) % 0.37/0.59 (step @p47 :rule bool-double-not-elim :args (@t53)) % 0.37/0.59 (step @p48 :rule refl :args (@t62)) % 0.37/0.59 (step @p49 :rule nary_cong :premises (@p48 @p47) :args ((or @t62 (not @t61)))) % 0.37/0.59 (step @p50 :rule cnf_or_neg :args (@t62 2)) % 0.37/0.59 (step @p51 :rule eq_resolve :premises (@p50 @p49)) % 0.37/0.59 (step @p52 :rule reordering :premises (@p51) :args ((or @t53 @t62))) % 0.37/0.59 (step @p53 :rule chain_m_resolution :premises (@p52 @p46) :args (@t53 @t63 @t64)) % 0.37/0.59 (step @p54 :rule cnf_equiv_pos1 :args (@t67)) % 0.37/0.59 (step @p55 :rule reordering :premises (@p54) :args ((or @t61 @t66 (not @t67)))) % 0.37/0.59 (step @p56 :rule chain_m_resolution :premises (@p55 @p53 @p25) :args (@t66 @t68 (@list @t53 @t67))) % 0.37/0.59 (step @p57 :rule instantiate :premises (@p24) :args ((@list @t58 tptp.zero))) % 0.37/0.59 (step @p58 :rule bool-double-not-elim :args (@t59)) % 0.37/0.59 (step @p59 :rule nary_cong :premises (@p48 @p58) :args ((or @t62 (not @t60)))) % 0.37/0.59 (step @p60 :rule cnf_or_neg :args (@t62 3)) % 0.37/0.59 (step @p61 :rule eq_resolve :premises (@p60 @p59)) % 0.37/0.59 (step @p62 :rule reordering :premises (@p61) :args ((or @t59 @t62))) % 0.37/0.59 (step @p63 :rule chain_m_resolution :premises (@p62 @p46) :args (@t59 @t63 @t64)) % 0.37/0.59 (step @p64 :rule cnf_equiv_pos1 :args (@t71)) % 0.37/0.59 (step @p65 :rule reordering :premises (@p64) :args ((or @t60 @t70 (not @t71)))) % 0.37/0.59 (step @p66 :rule chain_m_resolution :premises (@p65 @p63 @p57) :args (@t70 @t68 (@list @t59 @t71))) % 0.37/0.59 (step @p67 :rule instantiate :premises (@p24) :args ((@list @t55 tptp.zero))) % 0.37/0.59 (step @p68 :rule cnf_or_neg :args (@t62 4)) % 0.37/0.59 (step @p69 :rule chain_m_resolution :premises (@p68 @p46) :args ((not @t56) @t63 @t64)) % 0.37/0.59 (step @p70 :rule cnf_equiv_pos2 :args (@t74)) % 0.37/0.59 (step @p71 :rule reordering :premises (@p70) :args ((or @t56 @t75 (not @t74)))) % 0.37/0.59 (step @p72 :rule chain_m_resolution :premises (@p71 @p69 @p67) :args (@t75 (@list true false) (@list @t56 @t74))) % 0.37/0.59 (step @p73 :rule eq-symm :args (@t76 @t69)) % 0.37/0.59 (step @p74 :rule refl :args (@t5)) % 0.37/0.59 (step @p75 :rule cong :premises (@p74 @p73) :args ((=> @t5 @t77))) % 0.37/0.59 (assume-push @p145 @t5) % 0.37/0.59 (step @p77 :rule instantiate :premises (@p1) :args (@t78)) % 0.37/0.59 (step-pop @p146 :rule scope :premises (@p77)) % 0.37/0.59 (step @p78 :rule process_scope :premises (@p146) :args (@t77)) % 0.37/0.59 (step @p80 :rule eq_resolve :premises (@p78 @p75)) % 0.37/0.59 (step @p81 :rule implies_elim :premises (@p80)) % 0.37/0.59 (step @p82 :rule chain_m_resolution :premises (@p81 @p1) :args (@t79 @t80 (@list @t5))) % 0.37/0.59 (step @p83 :rule eq-symm :args (@t8 @t1)) % 0.37/0.59 (step @p84 :rule cong :premises (@p83) :args (@t10)) % 0.37/0.59 (step @p85 :rule eq_resolve :premises (@p3 @p84)) % 0.37/0.59 (step @p86 :rule instantiate :premises (@p85) :args ((@list @t51))) % 0.37/0.59 (step @p87 :rule instantiate :premises (@p85) :args ((@list @t55))) % 0.37/0.59 (step @p88 :rule eq-symm :args (@t82 @t83)) % 0.37/0.59 (step @p89 :rule refl :args (@t15)) % 0.37/0.59 (step @p90 :rule cong :premises (@p89 @p88) :args ((=> @t15 @t84))) % 0.37/0.59 (assume-push @p147 @t15) % 0.37/0.59 (step @p92 :rule instantiate :premises (@p9) :args ((@list @t50 @t57 @t49))) % 0.37/0.59 (step-pop @p148 :rule scope :premises (@p92)) % 0.37/0.59 (step @p93 :rule process_scope :premises (@p148) :args (@t84)) % 0.37/0.59 (step @p95 :rule eq_resolve :premises (@p93 @p90)) % 0.37/0.59 (step @p96 :rule implies_elim :premises (@p95)) % 0.37/0.59 (step @p97 :rule chain_m_resolution :premises (@p96 @p9) :args (@t85 @t80 (@list @t15))) % 0.37/0.59 (step @p98 :rule refl :args (@t86)) % 0.37/0.59 (step @p99 :rule refl :args (@t88)) % 0.37/0.59 (step @p100 :rule refl :args (@t90)) % 0.37/0.59 (step @p101 :rule refl :args (@t91)) % 0.37/0.59 (step @p102 :rule bool-double-not-elim :args (@t73)) % 0.37/0.59 (step @p103 :rule refl :args (@t92)) % 0.37/0.59 (step @p104 :rule refl :args (@t93)) % 0.37/0.59 (step @p105 :rule refl :args (@t95)) % 0.37/0.59 (step @p106 :rule nary_cong :premises (@p105 @p104 @p103 @p102 @p101 @p100 @p99 @p98) :args ((or @t95 @t93 @t92 (not @t75) @t91 @t90 @t88 @t86))) % 0.37/0.59 (assume-push @p149 @t94) % 0.37/0.59 (assume-push @p150 @t66) % 0.37/0.59 (assume-push @p151 @t70) % 0.37/0.59 (assume-push @p152 @t75) % 0.37/0.59 (assume-push @p153 @t79) % 0.37/0.59 (assume-push @p154 @t89) % 0.37/0.59 (assume-push @p155 @t87) % 0.37/0.59 (step @p114 :rule false_intro :premises (@p72)) % 0.37/0.59 (step @p115 :rule refl :args (@t49)) % 0.37/0.59 (step @p116 :rule symm :premises (@p19)) % 0.37/0.59 (step @p117 :rule cong :premises (@p116 @p115) :args (@t82)) % 0.37/0.59 (step @p118 :rule symm :premises (@p117)) % 0.37/0.59 (step @p119 :rule symm :premises (@p87)) % 0.37/0.59 (step @p120 :rule trans :premises (@p119 @p118)) % 0.37/0.59 (step @p121 :rule symm :premises (@p120)) % 0.37/0.59 (step @p122 :rule symm :premises (@p66)) % 0.37/0.59 (step @p77 :rule instantiate :premises (@p1) :args (@t78)) % 0.37/0.59 (step @p123 :rule refl :args (@t58)) % 0.37/0.59 (step @p124 :rule symm :premises (@p56)) % 0.37/0.59 (step @p125 :rule trans :premises (@p86 @p124)) % 0.37/0.59 (step @p126 :rule cong :premises (@p125 @p123) :args (@t83)) % 0.37/0.59 (step @p127 :rule trans :premises (@p126 @p77 @p122)) % 0.37/0.59 (step @p128 :rule cong :premises (@p127 @p121) :args (@t85)) % 0.37/0.59 (step @p129 :rule trans :premises (@p128 @p114)) % 0.37/0.59 (step @p130 :rule false_elim :premises (@p129)) % 0.37/0.59 (step-pop @p156 :rule scope :premises (@p130)) % 0.37/0.59 (step-pop @p157 :rule scope :premises (@p156)) % 0.37/0.59 (step-pop @p158 :rule scope :premises (@p157)) % 0.37/0.59 (step-pop @p159 :rule scope :premises (@p158)) % 0.37/0.59 (step-pop @p160 :rule scope :premises (@p159)) % 0.37/0.59 (step-pop @p161 :rule scope :premises (@p160)) % 0.37/0.59 (step-pop @p162 :rule scope :premises (@p161)) % 0.37/0.59 (step @p131 :rule process_scope :premises (@p162) :args (@t86)) % 0.37/0.59 (step @p139 :rule implies_elim :premises (@p131)) % 0.37/0.59 (step @p140 :rule cnf_and_neg :args (@t96)) % 0.37/0.59 (step @p141 :rule resolution :premises (@p140 @p139) :args (true @t96)) % 0.37/0.59 (step @p142 :rule eq_resolve :premises (@p141 @p106)) % 0.37/0.59 (step @p143 :rule reordering :premises (@p142) :args ((or @t73 @t95 @t93 @t92 @t91 @t90 @t88 @t86))) % 0.37/0.59 (step @p144 false :rule chain_m_resolution :premises (@p143 @p97 @p87 @p86 @p82 @p72 @p66 @p56 @p19) :args (false (@list false false false false true false false false) (@list @t85 @t87 @t89 @t79 @t73 @t70 @t66 @t94))) % 0.37/0.59 ) % 0.37/0.59 % SZS output end Proof % 0.37/0.59 % cvc5 exiting %------------------------------------------------------------------------------