%------------------------------------------------------------------------------ % File : cvc5---1.3.4 % Problem : SEU931^5 : 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 : n026.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:53:33 AM UTC 2026 % Result : Theorem 0.40s 0.63s % Output : Proof 0.48s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : SEU931^5 : TPTP v9.2.1. Released v4.0.0. % 0.12/0.13 % Command : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM % 0.17/0.34 % Computer : n026.cluster.edu % 0.17/0.34 % Model : x86_64 x86_64 % 0.17/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.17/0.34 % Memory : 8042.1875MB % 0.17/0.34 % OS : Linux 3.10.0-693.el7.x86_64 % 0.17/0.34 % CPULimit : 300 % 0.17/0.34 % WCLimit : 300 % 0.17/0.34 % DateTime : Tue Jun 2 18:00:55 EDT 2026 % 0.17/0.34 % CPUTime : % 0.31/0.49 %----Proving TH0 % 0.40/0.63 --- Run --mbqi --mbqi-enum --mbqi-enum-choice-grammar --mbqi-enum-global-syms-grammar --sygus-grammar-ho-partial --no-cegqi --no-sygus-inst at 90s... % 0.40/0.63 % SZS status Theorem % 0.40/0.63 % SZS output start Proof % 0.40/0.63 ( % 0.40/0.63 (declare-sort $$unsorted 0) % 0.40/0.63 (declare-const tptp.g (-> $$unsorted $$unsorted)) % 0.40/0.63 (declare-const tptp.f (-> $$unsorted $$unsorted)) % 0.40/0.63 (define @t1 () (@var "Xy" $$unsorted)) % 0.40/0.63 (define @t2 () (_ tptp.f @t1)) % 0.40/0.63 (define @t3 () (@list @t1)) % 0.40/0.63 (define @t4 () (exists @t3 (= @t2 @t1))) % 0.40/0.63 (define @t5 () (@var "Xx" $$unsorted)) % 0.40/0.63 (define @t6 () (@var "Xz" $$unsorted)) % 0.40/0.63 (define @t7 () (_ tptp.g @t6)) % 0.40/0.63 (define @t8 () (=> (= @t7 @t6) (= @t6 @t5))) % 0.40/0.63 (define @t9 () (@list @t6)) % 0.40/0.63 (define @t10 () (forall @t9 @t8)) % 0.40/0.63 (define @t11 () (_ tptp.g @t5)) % 0.40/0.63 (define @t12 () (and (= @t11 @t5) @t10)) % 0.40/0.63 (define @t13 () (@list @t5)) % 0.40/0.63 (define @t14 () (exists @t13 @t12)) % 0.40/0.63 (define @t15 () (=> @t14 @t4)) % 0.40/0.63 (define @t16 () (_ tptp.f @t5)) % 0.40/0.63 (define @t17 () (_ tptp.g @t16)) % 0.40/0.63 (define @t18 () (lambda @t13 @t17)) % 0.40/0.63 (define @t19 () (_ tptp.f @t11)) % 0.40/0.63 (define @t20 () (lambda @t13 @t19)) % 0.40/0.63 (define @t21 () (= @t20 @t18)) % 0.40/0.63 (define @t22 () (=> @t21 @t15)) % 0.40/0.63 (define @t23 () (not @t22)) % 0.40/0.63 (define @t24 () (tptp.f @t1)) % 0.40/0.63 (define @t25 () (= @t5 @t6)) % 0.40/0.63 (define @t26 () (tptp.g @t6)) % 0.40/0.63 (define @t27 () (not (= @t6 @t26))) % 0.40/0.63 (define @t28 () (forall @t9 (or @t27 @t25))) % 0.40/0.63 (define @t29 () (not @t28)) % 0.40/0.63 (define @t30 () (tptp.g @t5)) % 0.40/0.63 (define @t31 () (forall @t13 (or (not (= @t5 @t30)) @t29))) % 0.40/0.63 (define @t32 () (not @t31)) % 0.40/0.63 (define @t33 () (=> @t32 (not (forall @t3 (not (= @t1 @t24)))))) % 0.40/0.63 (define @t34 () (@purify @t20)) % 0.40/0.63 (define @t35 () (@purify @t18)) % 0.40/0.63 (define @t36 () (=> @t21 @t33)) % 0.40/0.63 (define @t37 () (= @t1 @t2)) % 0.40/0.63 (define @t38 () (not @t37)) % 0.40/0.63 (define @t39 () (forall @t3 @t38)) % 0.40/0.63 (define @t40 () (not @t39)) % 0.40/0.63 (define @t41 () (= @t5 @t11)) % 0.40/0.63 (define @t42 () (not @t41)) % 0.40/0.63 (define @t43 () (or @t42 @t29)) % 0.40/0.63 (define @t44 () (and @t41 @t28)) % 0.40/0.63 (define @t45 () (forall @t13 (not @t44))) % 0.40/0.63 (define @t46 () (not @t45)) % 0.40/0.63 (define @t47 () (= @t6 @t7)) % 0.40/0.63 (define @t48 () (not @t47)) % 0.40/0.63 (define @t49 () (or @t48 @t25)) % 0.40/0.63 (define @t50 () (@quantifiers_skolemize @t31 0)) % 0.40/0.63 (define @t51 () (forall @t9 (or @t27 (= @t6 @t50)))) % 0.48/0.63 (define @t52 () (not @t51)) % 0.48/0.63 (define @t53 () (tptp.g @t50)) % 0.48/0.63 (define @t54 () (= @t50 @t53)) % 0.48/0.63 (define @t55 () (not @t54)) % 0.48/0.63 (define @t56 () (or @t55 @t52)) % 0.48/0.63 (define @t57 () (not @t56)) % 0.48/0.63 (define @t58 () (or @t27 (= @t50 @t6))) % 0.48/0.63 (define @t59 () (forall @t9 @t58)) % 0.48/0.63 (define @t60 () (not @t59)) % 0.48/0.63 (define @t61 () (or @t55 @t60)) % 0.48/0.63 (define @t62 () (not @t61)) % 0.48/0.63 (define @t63 () (@list true)) % 0.48/0.63 (define @t64 () (@list @t56)) % 0.48/0.63 (define @t65 () (tptp.f @t5)) % 0.48/0.63 (define @t66 () (tptp.g @t65)) % 0.48/0.63 (define @t67 () (tptp.f @t30)) % 0.48/0.63 (define @t68 () (= @t19 @t17)) % 0.48/0.63 (define @t69 () (forall @t13 (= @t17 @t19))) % 0.48/0.63 (define @t70 () (= @t35 @t34)) % 0.48/0.63 (define @t71 () (=> @t70 @t69)) % 0.48/0.63 (define @t72 () (tptp.f @t50)) % 0.48/0.63 (define @t73 () (tptp.g @t72)) % 0.48/0.63 (define @t74 () (= @t50 @t73)) % 0.48/0.63 (define @t75 () (= @t73 (tptp.g @t73))) % 0.48/0.63 (define @t76 () (not @t75)) % 0.48/0.63 (define @t77 () (or @t76 @t74)) % 0.48/0.63 (define @t78 () (not @t77)) % 0.48/0.63 (define @t79 () (or @t76 (= @t73 @t50))) % 0.48/0.63 (assume @p1 @t23) % 0.48/0.63 (assume @p2 true) % 0.48/0.63 (step @p3 :rule refl :args (@t33)) % 0.48/0.63 (step @p4 :rule eq-symm :args (@t34 @t35)) % 0.48/0.63 (step @p5 :rule eq-refl :args (@t18)) % 0.48/0.63 (step @p6 :rule skolem_intro :args (@t35)) % 0.48/0.63 (step @p7 :rule refl :args (@t18)) % 0.48/0.63 (step @p8 :rule cong :premises (@p7 @p6) :args ((= @t18 @t35))) % 0.48/0.63 (step @p9 :rule trans :premises (@p8 @p5)) % 0.48/0.63 (step @p10 :rule true_elim :premises (@p9)) % 0.48/0.63 (step @p11 :rule eq-refl :args (@t20)) % 0.48/0.63 (step @p12 :rule skolem_intro :args (@t34)) % 0.48/0.63 (step @p13 :rule refl :args (@t20)) % 0.48/0.63 (step @p14 :rule cong :premises (@p13 @p12) :args ((= @t20 @t34))) % 0.48/0.63 (step @p15 :rule trans :premises (@p14 @p11)) % 0.48/0.63 (step @p16 :rule true_elim :premises (@p15)) % 0.48/0.63 (step @p17 :rule cong :premises (@p16 @p10) :args (@t21)) % 0.48/0.63 (step @p18 :rule trans :premises (@p17 @p4)) % 0.48/0.63 (step @p19 :rule cong :premises (@p18 @p3) :args (@t36)) % 0.48/0.63 (step @p20 :rule cong :premises (@p19) :args ((not @t36))) % 0.48/0.63 (step @p21 :rule refl :args (@t24)) % 0.48/0.63 (step @p22 :rule refl :args (@t2)) % 0.48/0.63 (step @p23 :rule cong :premises (@p22 @p21) :args ((= @t2 @t24))) % 0.48/0.63 (step @p24 :rule symm :premises (@p23)) % 0.48/0.63 (step @p25 :rule eq_resolve :premises (@p22 @p24)) % 0.48/0.63 (step @p26 :rule refl :args (@t1)) % 0.48/0.63 (step @p27 :rule cong :premises (@p26 @p25) :args (@t37)) % 0.48/0.63 (step @p28 :rule cong :premises (@p27) :args (@t38)) % 0.48/0.63 (step @p29 :rule cong :premises (@p28) :args (@t39)) % 0.48/0.63 (step @p30 :rule cong :premises (@p29) :args (@t40)) % 0.48/0.63 (step @p31 :rule exists-elim :args ((= (exists @t3 @t37) @t40))) % 0.48/0.63 (step @p32 :rule trans :premises (@p31 @p30)) % 0.48/0.63 (step @p33 :rule eq-symm :args (@t2 @t1)) % 0.48/0.63 (step @p34 :rule cong :premises (@p33) :args (@t4)) % 0.48/0.63 (step @p35 :rule trans :premises (@p34 @p32)) % 0.48/0.63 (step @p36 :rule refl :args (@t29)) % 0.48/0.63 (step @p37 :rule refl :args (@t30)) % 0.48/0.63 (step @p38 :rule refl :args (@t11)) % 0.48/0.63 (step @p39 :rule cong :premises (@p38 @p37) :args ((= @t11 @t30))) % 0.48/0.63 (step @p40 :rule symm :premises (@p39)) % 0.48/0.63 (step @p41 :rule eq_resolve :premises (@p38 @p40)) % 0.48/0.63 (step @p42 :rule refl :args (@t5)) % 0.48/0.63 (step @p43 :rule cong :premises (@p42 @p41) :args (@t41)) % 0.48/0.63 (step @p44 :rule cong :premises (@p43) :args (@t42)) % 0.48/0.63 (step @p45 :rule nary_cong :premises (@p44 @p36) :args (@t43)) % 0.48/0.63 (step @p46 :rule cong :premises (@p45) :args ((forall @t13 @t43))) % 0.48/0.63 (step @p47 :rule bool-and-de-morgan :args (@t41 @t28 true)) % 0.48/0.63 (step @p48 :rule cong :premises (@p47) :args (@t45)) % 0.48/0.63 (step @p49 :rule trans :premises (@p48 @p46)) % 0.48/0.63 (step @p50 :rule cong :premises (@p49) :args (@t46)) % 0.48/0.63 (step @p51 :rule exists-elim :args ((= (exists @t13 @t44) @t46))) % 0.48/0.63 (step @p52 :rule trans :premises (@p51 @p50)) % 0.48/0.63 (step @p53 :rule refl :args (@t25)) % 0.48/0.63 (step @p54 :rule refl :args (@t26)) % 0.48/0.63 (step @p55 :rule refl :args (@t7)) % 0.48/0.63 (step @p56 :rule cong :premises (@p55 @p54) :args ((= @t7 @t26))) % 0.48/0.63 (step @p57 :rule symm :premises (@p56)) % 0.48/0.63 (step @p58 :rule eq_resolve :premises (@p55 @p57)) % 0.48/0.63 (step @p59 :rule refl :args (@t6)) % 0.48/0.63 (step @p60 :rule cong :premises (@p59 @p58) :args (@t47)) % 0.48/0.63 (step @p61 :rule cong :premises (@p60) :args (@t48)) % 0.48/0.63 (step @p62 :rule nary_cong :premises (@p61 @p53) :args (@t49)) % 0.48/0.63 (step @p63 :rule cong :premises (@p62) :args ((forall @t9 @t49))) % 0.48/0.63 (step @p64 :rule bool-impl-elim :args (@t47 @t25)) % 0.48/0.63 (step @p65 :rule cong :premises (@p64) :args ((forall @t9 (=> @t47 @t25)))) % 0.48/0.63 (step @p66 :rule trans :premises (@p65 @p63)) % 0.48/0.63 (step @p67 :rule eq-symm :args (@t6 @t5)) % 0.48/0.63 (step @p68 :rule eq-symm :args (@t7 @t6)) % 0.48/0.63 (step @p69 :rule cong :premises (@p68 @p67) :args (@t8)) % 0.48/0.63 (step @p70 :rule cong :premises (@p69) :args (@t10)) % 0.48/0.63 (step @p71 :rule trans :premises (@p70 @p66)) % 0.48/0.63 (step @p72 :rule eq-symm :args (@t11 @t5)) % 0.48/0.63 (step @p73 :rule nary_cong :premises (@p72 @p71) :args (@t12)) % 0.48/0.63 (step @p74 :rule cong :premises (@p73) :args (@t14)) % 0.48/0.63 (step @p75 :rule trans :premises (@p74 @p52)) % 0.48/0.63 (step @p76 :rule cong :premises (@p75 @p35) :args (@t15)) % 0.48/0.63 (step @p77 :rule refl :args (@t21)) % 0.48/0.63 (step @p78 :rule cong :premises (@p77 @p76) :args (@t22)) % 0.48/0.63 (step @p79 :rule cong :premises (@p78) :args (@t23)) % 0.48/0.63 (step @p80 :rule trans :premises (@p79 @p20)) % 0.48/0.63 (step @p81 :rule eq_resolve :premises (@p1 @p80)) % 0.48/0.63 (step @p82 :rule not_implies_elim2 :premises (@p81)) % 0.48/0.63 (step @p83 :rule not_implies_elim1 :premises (@p82)) % 0.48/0.63 (step @p84 :rule refl :args (@t57)) % 0.48/0.63 (step @p85 :rule bool-double-not-elim :args (@t31)) % 0.48/0.63 (step @p86 :rule nary_cong :premises (@p85 @p84) :args ((or (not @t32) @t57))) % 0.48/0.63 (step @p87 :rule eq-symm :args (@t50 @t6)) % 0.48/0.63 (step @p88 :rule refl :args (@t27)) % 0.48/0.63 (step @p89 :rule nary_cong :premises (@p88 @p87) :args (@t58)) % 0.48/0.63 (step @p90 :rule cong :premises (@p89) :args (@t59)) % 0.48/0.63 (step @p91 :rule cong :premises (@p90) :args (@t60)) % 0.48/0.63 (step @p92 :rule refl :args (@t55)) % 0.48/0.63 (step @p93 :rule nary_cong :premises (@p92 @p91) :args (@t61)) % 0.48/0.63 (step @p94 :rule cong :premises (@p93) :args (@t62)) % 0.48/0.63 (step @p95 :rule refl :args (@t32)) % 0.48/0.63 (step @p96 :rule cong :premises (@p95 @p94) :args ((=> @t32 @t62))) % 0.48/0.63 (assume-push @p184 @t32) % 0.48/0.63 (step @p98 :rule skolemize :premises (@p83)) % 0.48/0.63 (step-pop @p185 :rule scope :premises (@p98)) % 0.48/0.63 (step @p99 :rule process_scope :premises (@p185) :args (@t62)) % 0.48/0.63 (step @p101 :rule eq_resolve :premises (@p99 @p96)) % 0.48/0.63 (step @p102 :rule implies_elim :premises (@p101)) % 0.48/0.63 (step @p103 :rule eq_resolve :premises (@p102 @p86)) % 0.48/0.63 (step @p104 :rule chain_m_resolution :premises (@p103 @p83) :args (@t57 @t63 (@list @t31))) % 0.48/0.63 (step @p105 :rule bool-double-not-elim :args (@t51)) % 0.48/0.63 (step @p106 :rule refl :args (@t56)) % 0.48/0.63 (step @p107 :rule nary_cong :premises (@p106 @p105) :args ((or @t56 (not @t52)))) % 0.48/0.63 (step @p108 :rule cnf_or_neg :args (@t56 1)) % 0.48/0.63 (step @p109 :rule eq_resolve :premises (@p108 @p107)) % 0.48/0.63 (step @p110 :rule reordering :premises (@p109) :args ((or @t51 @t56))) % 0.48/0.63 (step @p111 :rule chain_m_resolution :premises (@p110 @p104) :args (@t51 @t63 @t64)) % 0.48/0.63 (step @p112 :rule not_implies_elim2 :premises (@p82)) % 0.48/0.63 (step @p113 :rule not_not_elim :premises (@p112)) % 0.48/0.63 (step @p114 :rule instantiate :premises (@p113) :args ((@list @t53))) % 0.48/0.63 (step @p115 :rule false_intro :premises (@p114)) % 0.48/0.63 (step @p116 :rule not_implies_elim1 :premises (@p81)) % 0.48/0.63 (step @p117 :rule refl :args ((tptp.g @t16))) % 0.48/0.63 (step @p118 :rule refl :args (@t65)) % 0.48/0.63 (step @p119 :rule cong :premises (@p118) :args (@t66)) % 0.48/0.63 (step @p120 :rule trans :premises (@p119 @p117)) % 0.48/0.63 (step @p121 :rule refl :args (tptp.g)) % 0.48/0.63 (step @p122 :rule ho_cong :premises (@p121 @p118)) % 0.48/0.63 (step @p123 :rule cong :premises (@p122 @p120) :args ((= (_ tptp.g @t65) @t66))) % 0.48/0.63 (step @p124 :rule symm :premises (@p123)) % 0.48/0.63 (step @p125 :rule refl :args (@t17)) % 0.48/0.63 (step @p126 :rule eq_resolve :premises (@p125 @p124)) % 0.48/0.63 (step @p127 :rule refl :args (@t16)) % 0.48/0.63 (step @p128 :rule cong :premises (@p127 @p118) :args ((= @t16 @t65))) % 0.48/0.63 (step @p129 :rule symm :premises (@p128)) % 0.48/0.63 (step @p130 :rule eq_resolve :premises (@p127 @p129)) % 0.48/0.63 (step @p131 :rule ho_cong :premises (@p121 @p130)) % 0.48/0.63 (step @p132 :rule trans :premises (@p131 @p126)) % 0.48/0.63 (step @p133 :rule refl :args ((tptp.f @t11))) % 0.48/0.63 (step @p134 :rule cong :premises (@p37) :args (@t67)) % 0.48/0.63 (step @p135 :rule trans :premises (@p134 @p133)) % 0.48/0.63 (step @p136 :rule refl :args (tptp.f)) % 0.48/0.63 (step @p137 :rule ho_cong :premises (@p136 @p37)) % 0.48/0.63 (step @p138 :rule cong :premises (@p137 @p135) :args ((= (_ tptp.f @t30) @t67))) % 0.48/0.63 (step @p139 :rule symm :premises (@p138)) % 0.48/0.63 (step @p140 :rule refl :args (@t19)) % 0.48/0.63 (step @p141 :rule eq_resolve :premises (@p140 @p139)) % 0.48/0.63 (step @p142 :rule ho_cong :premises (@p136 @p41)) % 0.48/0.63 (step @p143 :rule trans :premises (@p142 @p141)) % 0.48/0.63 (step @p144 :rule cong :premises (@p143 @p132) :args (@t68)) % 0.48/0.63 (step @p145 :rule cong :premises (@p144) :args ((forall @t13 @t68))) % 0.48/0.63 (step @p146 :rule eq-symm :args (@t17 @t19)) % 0.48/0.63 (step @p147 :rule cong :premises (@p146) :args (@t69)) % 0.48/0.63 (step @p148 :rule trans :premises (@p147 @p145)) % 0.48/0.63 (step @p149 :rule refl :args (@t70)) % 0.48/0.63 (step @p150 :rule cong :premises (@p149 @p148) :args (@t71)) % 0.48/0.63 ; WARNING: add trust step for TRUST % 0.48/0.63 ; trust TRUST THEORY_LEMMA % 0.48/0.63 (step @p151 :rule trust :premises () :args (@t71)) % 0.48/0.63 (step @p152 :rule eq_resolve :premises (@p151 @p150)) % 0.48/0.63 (step @p153 :rule implies_elim :premises (@p152)) % 0.48/0.63 (step @p154 :rule chain_m_resolution :premises (@p153 @p116) :args ((forall @t13 (= @t67 @t66)) (@list false) (@list @t70))) % 0.48/0.63 (step @p155 :rule instantiate :premises (@p154) :args ((@list @t50))) % 0.48/0.63 (step @p156 :rule symm :premises (@p155)) % 0.48/0.63 (step @p157 :rule bool-double-not-elim :args (@t54)) % 0.48/0.63 (step @p158 :rule nary_cong :premises (@p106 @p157) :args ((or @t56 (not @t55)))) % 0.48/0.63 (step @p159 :rule cnf_or_neg :args (@t56 0)) % 0.48/0.63 (step @p160 :rule eq_resolve :premises (@p159 @p158)) % 0.48/0.63 (step @p161 :rule reordering :premises (@p160) :args ((or @t54 @t56))) % 0.48/0.63 (step @p162 :rule chain_m_resolution :premises (@p161 @p104) :args (@t54 @t63 @t64)) % 0.48/0.63 (step @p163 :rule cong :premises (@p162 @p156) :args (@t74)) % 0.48/0.63 (step @p164 :rule trans :premises (@p163 @p115)) % 0.48/0.63 (step @p165 :rule false_elim :premises (@p164)) % 0.48/0.63 (step @p166 :rule cong :premises (@p162) :args (@t72)) % 0.48/0.63 (step @p167 :rule trans :premises (@p166 @p155)) % 0.48/0.63 (step @p168 :rule cong :premises (@p167) :args (@t73)) % 0.48/0.63 (step @p169 :rule cnf_or_pos :args (@t77)) % 0.48/0.63 (step @p170 :rule reordering :premises (@p169) :args ((or @t76 @t74 @t78))) % 0.48/0.63 (step @p171 :rule chain_m_resolution :premises (@p170 @p168 @p165) :args (@t78 (@list false true) (@list @t75 @t74))) % 0.48/0.63 (step @p172 :rule eq-symm :args (@t73 @t50)) % 0.48/0.63 (step @p173 :rule refl :args (@t76)) % 0.48/0.63 (step @p174 :rule nary_cong :premises (@p173 @p172) :args (@t79)) % 0.48/0.63 (step @p175 :rule refl :args (@t51)) % 0.48/0.63 (step @p176 :rule cong :premises (@p175 @p174) :args ((=> @t51 @t79))) % 0.48/0.63 (assume-push @p186 @t51) % 0.48/0.63 (step @p178 :rule instantiate :premises (@p111) :args ((@list @t73))) % 0.48/0.63 (step-pop @p187 :rule scope :premises (@p178)) % 0.48/0.63 (step @p179 :rule process_scope :premises (@p187) :args (@t79)) % 0.48/0.63 (step @p181 :rule eq_resolve :premises (@p179 @p176)) % 0.48/0.63 (step @p182 :rule implies_elim :premises (@p181)) % 0.48/0.63 (step @p183 false :rule chain_m_resolution :premises (@p182 @p171 @p111) :args (false (@list true false) (@list @t77 @t51))) % 0.48/0.63 ) % 0.48/0.63 % SZS output end Proof % 0.48/0.63 % cvc5 exiting %------------------------------------------------------------------------------