↑ Up

cvc5---1.3.4.THM-Prf.s

View TPTP
Problem
Process solution in
SystemOnTSTP
Download .tgz
%------------------------------------------------------------------------------
% File     : cvc5---1.3.4
% Problem  : NUM491+1 : TPTP v9.2.1. Released v4.0.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : /export/starexec/sandbox/solver/bin/do_cvc5 /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM

% Computer : n027.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:39:35 AM UTC 2026

% Result   : Theorem 0.51s 0.70s
% Output   : Proof 0.51s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : NUM491+1 : TPTP v9.2.1. Released v4.0.0.
% 0.12/0.13  % Command  : /export/starexec/sandbox/solver/bin/do_cvc5 /export/starexec/sandbox/benchmark/theBenchmark.p 300 THM
% 0.17/0.34  % Computer : n027.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.35  % CPULimit : 300
% 0.17/0.35  % WCLimit  : 300
% 0.17/0.35  % DateTime : Tue Jun  2 11:23:51 EDT 2026
% 0.17/0.35  % CPUTime  : 
% 0.30/0.51  %----Proving TF0_NAR, FOF, or CNF
% 0.51/0.70  --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 15...
% 0.51/0.70  % SZS status Theorem
% 0.51/0.70  % SZS output start Proof
% 0.51/0.70  (
% 0.51/0.70  (declare-sort $$unsorted 0)
% 0.51/0.70  (declare-const tptp.doDivides0 (-> $$unsorted $$unsorted Bool))
% 0.51/0.70  (declare-const tptp.xm $$unsorted)
% 0.51/0.70  (declare-const tptp.sdtpldt0 (-> $$unsorted $$unsorted $$unsorted))
% 0.51/0.70  (declare-const tptp.xr $$unsorted)
% 0.51/0.70  (declare-const tptp.sdtlseqdt0 (-> $$unsorted $$unsorted Bool))
% 0.51/0.70  (declare-const tptp.xn $$unsorted)
% 0.51/0.70  (declare-const tptp.aNaturalNumber0 (-> $$unsorted Bool))
% 0.51/0.70  (declare-const tptp.sz00 $$unsorted)
% 0.51/0.70  (declare-const tptp.sdtsldt0 (-> $$unsorted $$unsorted $$unsorted))
% 0.51/0.70  (declare-const tptp.sdtasdt0 (-> $$unsorted $$unsorted $$unsorted))
% 0.51/0.70  (declare-const tptp.sdtmndt0 (-> $$unsorted $$unsorted $$unsorted))
% 0.51/0.70  (declare-const tptp.iLess0 (-> $$unsorted $$unsorted Bool))
% 0.51/0.70  (declare-const tptp.isPrime0 (-> $$unsorted Bool))
% 0.51/0.70  (declare-const tptp.sz10 $$unsorted)
% 0.51/0.70  (declare-const tptp.xp $$unsorted)
% 0.51/0.70  (define @t1 () (@var "W0" $$unsorted))
% 0.51/0.70  (define @t2 () (tptp.aNaturalNumber0 @t1))
% 0.51/0.70  (define @t3 () (@list @t1))
% 0.51/0.70  (define @t4 () (@var "W1" $$unsorted))
% 0.51/0.70  (define @t5 () (tptp.sdtpldt0 @t1 @t4))
% 0.51/0.70  (define @t6 () (tptp.aNaturalNumber0 @t4))
% 0.51/0.70  (define @t7 () (and @t2 @t6))
% 0.51/0.70  (define @t8 () (@list @t1 @t4))
% 0.51/0.70  (define @t9 () (tptp.sdtasdt0 @t1 @t4))
% 0.51/0.70  (define @t10 () (tptp.aNaturalNumber0 @t9))
% 0.51/0.70  (define @t11 () (forall @t8 (=> @t7 @t10)))
% 0.51/0.70  (define @t12 () (tptp.sdtpldt0 @t4 @t1))
% 0.51/0.70  (define @t13 () (@var "W2" $$unsorted))
% 0.51/0.70  (define @t14 () (tptp.sdtpldt0 @t4 @t13))
% 0.51/0.70  (define @t15 () (tptp.sdtpldt0 @t5 @t13))
% 0.51/0.70  (define @t16 () (tptp.aNaturalNumber0 @t13))
% 0.51/0.70  (define @t17 () (and @t2 @t6 @t16))
% 0.51/0.70  (define @t18 () (@list @t1 @t4 @t13))
% 0.51/0.70  (define @t19 () (tptp.sdtasdt0 @t4 @t1))
% 0.51/0.70  (define @t20 () (tptp.sdtasdt0 @t13 @t1))
% 0.51/0.70  (define @t21 () (tptp.sdtasdt0 @t1 @t13))
% 0.51/0.70  (define @t22 () (= @t4 @t13))
% 0.51/0.70  (define @t23 () (tptp.sdtpldt0 @t13 @t1))
% 0.51/0.70  (define @t24 () (tptp.sdtpldt0 @t1 @t13))
% 0.51/0.70  (define @t25 () (= @t19 @t20))
% 0.51/0.70  (define @t26 () (= @t9 @t21))
% 0.51/0.70  (define @t27 () (= @t1 tptp.sz00))
% 0.51/0.70  (define @t28 () (not @t27))
% 0.51/0.70  (define @t29 () (= @t4 tptp.sz00))
% 0.51/0.70  (define @t30 () (and @t16 (= @t24 @t4)))
% 0.51/0.70  (define @t31 () (@list @t13))
% 0.51/0.70  (define @t32 () (tptp.sdtlseqdt0 @t1 @t4))
% 0.51/0.70  (define @t33 () (= @t1 @t4))
% 0.51/0.70  (define @t34 () (tptp.sdtlseqdt0 @t4 @t1))
% 0.51/0.70  (define @t35 () (tptp.sdtlseqdt0 @t4 @t13))
% 0.51/0.70  (define @t36 () (= @t4 @t1))
% 0.51/0.70  (define @t37 () (tptp.sdtpldt0 @t13 @t4))
% 0.51/0.70  (define @t38 () (and (not @t33) @t32))
% 0.51/0.70  (define @t39 () (= @t1 tptp.sz10))
% 0.51/0.70  (define @t40 () (tptp.iLess0 @t1 @t4))
% 0.51/0.70  (define @t41 () (= @t4 @t21))
% 0.51/0.70  (define @t42 () (and @t16 @t41))
% 0.51/0.70  (define @t43 () (exists @t31 @t42))
% 0.51/0.70  (define @t44 () (tptp.doDivides0 @t1 @t4))
% 0.51/0.70  (define @t45 () (= @t44 @t43))
% 0.51/0.70  (define @t46 () (=> @t7 @t45))
% 0.51/0.70  (define @t47 () (forall @t8 @t46))
% 0.51/0.70  (define @t48 () (tptp.sdtsldt0 @t4 @t1))
% 0.51/0.70  (define @t49 () (and @t28 @t44))
% 0.51/0.70  (define @t50 () (tptp.doDivides0 @t1 @t13))
% 0.51/0.70  (define @t51 () (tptp.doDivides0 @t1 @t14))
% 0.51/0.70  (define @t52 () (tptp.doDivides0 @t4 @t1))
% 0.51/0.70  (define @t53 () (@list @t4))
% 0.51/0.70  (define @t54 () (not @t39))
% 0.51/0.70  (define @t55 () (tptp.aNaturalNumber0 tptp.xp))
% 0.51/0.70  (define @t56 () (tptp.aNaturalNumber0 tptp.xm))
% 0.51/0.70  (define @t57 () (tptp.sdtasdt0 tptp.xn tptp.xm))
% 0.51/0.70  (define @t58 () (tptp.sdtasdt0 tptp.xr tptp.xm))
% 0.51/0.70  (define @t59 () (tptp.sdtasdt0 tptp.xp tptp.xm))
% 0.51/0.70  (define @t60 () (tptp.doDivides0 tptp.xp @t59))
% 0.51/0.70  (define @t61 () (not @t16))
% 0.51/0.70  (define @t62 () (= @t44 (not (forall @t31 (or @t61 (not @t41))))))
% 0.51/0.70  (define @t63 () (not @t6))
% 0.51/0.70  (define @t64 () (not @t2))
% 0.51/0.70  (define @t65 () (or @t64 @t63))
% 0.51/0.70  (define @t66 () (not @t7))
% 0.51/0.70  (define @t67 () (forall @t31 (not @t42)))
% 0.51/0.70  (define @t68 () (not @t67))
% 0.51/0.70  (define @t69 () (tptp.aNaturalNumber0 @t59))
% 0.51/0.70  (define @t70 () (not @t56))
% 0.51/0.70  (define @t71 () (not @t55))
% 0.51/0.70  (define @t72 () (or @t71 @t70 @t69))
% 0.51/0.70  (define @t73 () (@list false false false))
% 0.51/0.70  (define @t74 () (forall @t31 (or @t61 (not (= @t59 (tptp.sdtasdt0 tptp.xp @t13))))))
% 0.51/0.70  (define @t75 () (not @t74))
% 0.51/0.70  (define @t76 () (= @t60 @t75))
% 0.51/0.70  (define @t77 () (not @t69))
% 0.51/0.70  (define @t78 () (or @t71 @t77 @t76))
% 0.51/0.70  (define @t79 () (not @t76))
% 0.51/0.70  (define @t80 () (not (= @t59 @t59)))
% 0.51/0.70  (define @t81 () (or @t70 @t80))
% 0.51/0.70  (assume @p1 (forall @t3 (=> @t2 true)))
% 0.51/0.70  (assume @p2 (tptp.aNaturalNumber0 tptp.sz00))
% 0.51/0.70  (assume @p3 (and (tptp.aNaturalNumber0 tptp.sz10) (not (= tptp.sz10 tptp.sz00))))
% 0.51/0.70  (assume @p4 (forall @t8 (=> @t7 (tptp.aNaturalNumber0 @t5))))
% 0.51/0.70  (assume @p5 @t11)
% 0.51/0.70  (assume @p6 (forall @t8 (=> @t7 (= @t5 @t12))))
% 0.51/0.70  (assume @p7 (forall @t18 (=> @t17 (= @t15 (tptp.sdtpldt0 @t1 @t14)))))
% 0.51/0.70  (assume @p8 (forall @t3 (=> @t2 (and (= (tptp.sdtpldt0 @t1 tptp.sz00) @t1) (= @t1 (tptp.sdtpldt0 tptp.sz00 @t1))))))
% 0.51/0.70  (assume @p9 (forall @t8 (=> @t7 (= @t9 @t19))))
% 0.51/0.70  (assume @p10 (forall @t18 (=> @t17 (= (tptp.sdtasdt0 @t9 @t13) (tptp.sdtasdt0 @t1 (tptp.sdtasdt0 @t4 @t13))))))
% 0.51/0.70  (assume @p11 (forall @t3 (=> @t2 (and (= (tptp.sdtasdt0 @t1 tptp.sz10) @t1) (= @t1 (tptp.sdtasdt0 tptp.sz10 @t1))))))
% 0.51/0.70  (assume @p12 (forall @t3 (=> @t2 (and (= (tptp.sdtasdt0 @t1 tptp.sz00) tptp.sz00) (= tptp.sz00 (tptp.sdtasdt0 tptp.sz00 @t1))))))
% 0.51/0.70  (assume @p13 (forall @t18 (=> @t17 (and (= (tptp.sdtasdt0 @t1 @t14) (tptp.sdtpldt0 @t9 @t21)) (= (tptp.sdtasdt0 @t14 @t1) (tptp.sdtpldt0 @t19 @t20))))))
% 0.51/0.70  (assume @p14 (forall @t18 (=> @t17 (=> (or (= @t5 @t24) (= @t12 @t23)) @t22))))
% 0.51/0.70  (assume @p15 (forall @t3 (=> @t2 (=> @t28 (forall (@list @t4 @t13) (=> (and @t6 @t16) (=> (or @t26 @t25) @t22)))))))
% 0.51/0.70  (assume @p16 (forall @t8 (=> @t7 (=> (= @t5 tptp.sz00) (and @t27 @t29)))))
% 0.51/0.70  (assume @p17 (forall @t8 (=> @t7 (=> (= @t9 tptp.sz00) (or @t27 @t29)))))
% 0.51/0.70  (assume @p18 (forall @t8 (=> @t7 (= @t32 (exists @t31 @t30)))))
% 0.51/0.70  (assume @p19 (forall @t8 (=> @t7 (=> @t32 (forall @t31 (= (= @t13 (tptp.sdtmndt0 @t4 @t1)) @t30))))))
% 0.51/0.70  (assume @p20 (forall @t3 (=> @t2 (tptp.sdtlseqdt0 @t1 @t1))))
% 0.51/0.70  (assume @p21 (forall @t8 (=> @t7 (=> (and @t32 @t34) @t33))))
% 0.51/0.70  (assume @p22 (forall @t18 (=> @t17 (=> (and @t32 @t35) (tptp.sdtlseqdt0 @t1 @t13)))))
% 0.51/0.70  (assume @p23 (forall @t8 (=> @t7 (or @t32 (and (not @t36) @t34)))))
% 0.51/0.70  (assume @p24 (forall @t8 (=> @t7 (=> @t38 (forall @t31 (=> @t16 (and (not (= @t23 @t37)) (tptp.sdtlseqdt0 @t23 @t37) (not (= @t24 @t14)) (tptp.sdtlseqdt0 @t24 @t14))))))))
% 0.51/0.70  (assume @p25 (forall @t18 (=> @t17 (=> (and @t28 (not @t22) @t35) (and (not @t26) (tptp.sdtlseqdt0 @t9 @t21) (not @t25) (tptp.sdtlseqdt0 @t19 @t20))))))
% 0.51/0.70  (assume @p26 (forall @t3 (=> @t2 (or @t27 @t39 (and (not (= tptp.sz10 @t1)) (tptp.sdtlseqdt0 tptp.sz10 @t1))))))
% 0.51/0.70  (assume @p27 (forall @t8 (=> @t7 (=> @t28 (tptp.sdtlseqdt0 @t4 @t19)))))
% 0.51/0.70  (assume @p28 (forall @t8 (=> @t7 (=> @t40 true))))
% 0.51/0.70  (assume @p29 (forall @t8 (=> @t7 (=> @t38 @t40))))
% 0.51/0.70  (assume @p30 @t47)
% 0.51/0.70  (assume @p31 (forall @t8 (=> @t7 (=> @t49 (forall @t31 (= (= @t13 @t48) @t42))))))
% 0.51/0.70  (assume @p32 (forall @t18 (=> @t17 (=> (and @t44 (tptp.doDivides0 @t4 @t13)) @t50))))
% 0.51/0.70  (assume @p33 (forall @t18 (=> @t17 (=> (and @t44 @t50) @t51))))
% 0.51/0.70  (assume @p34 (forall @t18 (=> @t17 (=> (and @t44 @t51) @t50))))
% 0.51/0.70  (assume @p35 (forall @t8 (=> @t7 (=> (and @t44 (not @t29)) @t32))))
% 0.51/0.70  (assume @p36 (forall @t8 (=> @t7 (=> @t49 (forall @t31 (=> @t16 (= (tptp.sdtasdt0 @t13 @t48) (tptp.sdtsldt0 (tptp.sdtasdt0 @t13 @t4) @t1))))))))
% 0.51/0.70  (assume @p37 (forall @t3 (=> @t2 (= (tptp.isPrime0 @t1) (and @t28 @t54 (forall @t53 (=> (and @t6 @t52) (or (= @t4 tptp.sz10) @t36))))))))
% 0.51/0.70  (assume @p38 (forall @t3 (=> (and @t2 @t28 @t54) (exists @t53 (and @t6 @t52 (tptp.isPrime0 @t4))))))
% 0.51/0.70  (assume @p39 (and (tptp.aNaturalNumber0 tptp.xn) @t56 @t55))
% 0.51/0.70  (assume @p40 (forall @t18 (=> @t17 (=> (and (tptp.isPrime0 @t13) (tptp.doDivides0 @t13 @t9)) (=> (tptp.iLess0 @t15 (tptp.sdtpldt0 (tptp.sdtpldt0 tptp.xn tptp.xm) tptp.xp)) (or (tptp.doDivides0 @t13 @t1) (tptp.doDivides0 @t13 @t4)))))))
% 0.51/0.70  (assume @p41 (and (tptp.isPrime0 tptp.xp) (tptp.doDivides0 tptp.xp @t57)))
% 0.51/0.70  (assume @p42 (tptp.sdtlseqdt0 tptp.xp tptp.xn))
% 0.51/0.70  (assume @p43 (= tptp.xr (tptp.sdtmndt0 tptp.xn tptp.xp)))
% 0.51/0.70  (assume @p44 (and (not (= tptp.xr tptp.xn)) (tptp.sdtlseqdt0 tptp.xr tptp.xn)))
% 0.51/0.70  (assume @p45 (= tptp.xn (tptp.sdtpldt0 tptp.xp tptp.xr)))
% 0.51/0.70  (assume @p46 (= @t57 (tptp.sdtpldt0 @t59 @t58)))
% 0.51/0.70  (assume @p47 (= @t58 (tptp.sdtmndt0 @t57 @t59)))
% 0.51/0.70  (assume @p48 (not @t60))
% 0.51/0.70  (assume @p49 true)
% 0.51/0.70  (step @p50 :rule and_elim :premises (@p39) :args (1))
% 0.51/0.70  (step @p51 :rule aci_norm :args ((= (or @t65 @t62) (or @t64 @t63 @t62))))
% 0.51/0.70  (step @p52 :rule refl :args (@t62))
% 0.51/0.70  (step @p53 :rule bool-and-de-morgan :args (@t2 @t6 true))
% 0.51/0.70  (step @p54 :rule nary_cong :premises (@p53 @p52) :args ((or @t66 @t62)))
% 0.51/0.70  (step @p55 :rule trans :premises (@p54 @p51))
% 0.51/0.70  (step @p56 :rule bool-impl-elim :args (@t7 @t62))
% 0.51/0.70  (step @p57 :rule trans :premises (@p56 @p55))
% 0.51/0.70  (step @p58 :rule cong :premises (@p57) :args ((forall @t8 (=> @t7 @t62))))
% 0.51/0.70  (step @p59 :rule bool-and-de-morgan :args (@t16 @t41 true))
% 0.51/0.70  (step @p60 :rule cong :premises (@p59) :args (@t67))
% 0.51/0.70  (step @p61 :rule cong :premises (@p60) :args (@t68))
% 0.51/0.70  (step @p62 :rule exists-elim :args ((= @t43 @t68)))
% 0.51/0.70  (step @p63 :rule trans :premises (@p62 @p61))
% 0.51/0.70  (step @p64 :rule refl :args (@t44))
% 0.51/0.70  (step @p65 :rule cong :premises (@p64 @p63) :args (@t45))
% 0.51/0.70  (step @p66 :rule refl :args (@t7))
% 0.51/0.70  (step @p67 :rule cong :premises (@p66 @p65) :args (@t46))
% 0.51/0.70  (step @p68 :rule cong :premises (@p67) :args (@t47))
% 0.51/0.70  (step @p69 :rule trans :premises (@p68 @p58))
% 0.51/0.70  (step @p70 :rule eq_resolve :premises (@p30 @p69))
% 0.51/0.70  (step @p71 :rule instantiate :premises (@p70) :args ((@list tptp.xp @t59)))
% 0.51/0.70  (step @p72 :rule aci_norm :args ((= (or @t65 @t10) (or @t64 @t63 @t10))))
% 0.51/0.70  (step @p73 :rule refl :args (@t10))
% 0.51/0.70  (step @p74 :rule nary_cong :premises (@p53 @p73) :args ((or @t66 @t10)))
% 0.51/0.70  (step @p75 :rule trans :premises (@p74 @p72))
% 0.51/0.70  (step @p76 :rule bool-impl-elim :args (@t7 @t10))
% 0.51/0.70  (step @p77 :rule trans :premises (@p76 @p75))
% 0.51/0.70  (step @p78 :rule cong :premises (@p77) :args (@t11))
% 0.51/0.70  (step @p79 :rule eq_resolve :premises (@p5 @p78))
% 0.51/0.70  (step @p80 :rule instantiate :premises (@p79) :args ((@list tptp.xp tptp.xm)))
% 0.51/0.70  (step @p81 :rule and_elim :premises (@p39) :args (2))
% 0.51/0.70  (step @p82 :rule cnf_or_pos :args (@t72))
% 0.51/0.70  (step @p83 :rule reordering :premises (@p82) :args ((or @t70 @t71 @t69 (not @t72))))
% 0.51/0.70  (step @p84 :rule chain_m_resolution :premises (@p83 @p50 @p81 @p80) :args (@t69 @t73 (@list @t56 @t55 @t72)))
% 0.51/0.70  (step @p85 :rule cnf_or_pos :args (@t78))
% 0.51/0.70  (step @p86 :rule reordering :premises (@p85) :args ((or @t71 @t77 @t76 (not @t78))))
% 0.51/0.70  (step @p87 :rule chain_m_resolution :premises (@p86 @p81 @p84 @p71) :args (@t76 @t73 (@list @t55 @t69 @t78)))
% 0.51/0.70  (step @p88 :rule bool-double-not-elim :args (@t74))
% 0.51/0.70  (step @p89 :rule refl :args (@t60))
% 0.51/0.70  (step @p90 :rule refl :args (@t79))
% 0.51/0.70  (step @p91 :rule nary_cong :premises (@p90 @p89 @p88) :args ((or @t79 @t60 (not @t75))))
% 0.51/0.70  (step @p92 :rule cnf_equiv_pos2 :args (@t76))
% 0.51/0.70  (step @p93 :rule eq_resolve :premises (@p92 @p91))
% 0.51/0.70  (step @p94 :rule reordering :premises (@p93) :args ((or @t60 @t74 @t79)))
% 0.51/0.70  (step @p95 :rule chain_m_resolution :premises (@p94 @p48 @p87) :args (@t74 (@list true false) (@list @t60 @t76)))
% 0.51/0.70  (step @p96 :rule aci_norm :args ((= (or @t70 false) @t70)))
% 0.51/0.70  (step @p97 :rule evaluate :args ((not true)))
% 0.51/0.70  (step @p98 :rule eq-refl :args (@t59))
% 0.51/0.70  (step @p99 :rule cong :premises (@p98) :args (@t80))
% 0.51/0.70  (step @p100 :rule trans :premises (@p99 @p97))
% 0.51/0.70  (step @p101 :rule refl :args (@t70))
% 0.51/0.70  (step @p102 :rule nary_cong :premises (@p101 @p100) :args (@t81))
% 0.51/0.70  (step @p103 :rule trans :premises (@p102 @p96))
% 0.51/0.70  (step @p104 :rule refl :args (@t74))
% 0.51/0.70  (step @p105 :rule cong :premises (@p104 @p103) :args ((=> @t74 @t81)))
% 0.51/0.70  (assume-push @p114 @t74)
% 0.51/0.70  (step @p107 :rule instantiate :premises (@p95) :args ((@list tptp.xm)))
% 0.51/0.70  (step-pop @p115 :rule scope :premises (@p107))
% 0.51/0.70  (step @p108 :rule process_scope :premises (@p115) :args (@t81))
% 0.51/0.70  (step @p110 :rule eq_resolve :premises (@p108 @p105))
% 0.51/0.70  (step @p111 :rule implies_elim :premises (@p110))
% 0.51/0.70  (step @p112 :rule reordering :premises (@p111) :args ((or @t70 @t75)))
% 0.51/0.70  (step @p113 false :rule chain_m_resolution :premises (@p112 @p95 @p50) :args (false (@list false false) (@list @t74 @t56)))
% 0.51/0.70  )
% 0.51/0.70  % SZS output end Proof
% 0.51/0.70  % cvc5 exiting
%------------------------------------------------------------------------------