%------------------------------------------------------------------------------ % File : cvc5---1.3.4 % Problem : SEU465^1 : TPTP v9.2.1. Released v3.6.0. % Transfm : none % Format : tptp:raw % Command : /export/starexec/sandbox2/solver/bin/do_cvc5 /export/starexec/sandbox2/benchmark/theBenchmark.p 300 THM % Computer : n021.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:51:53 AM UTC 2026 % Result : Theorem 0.38s 0.62s % Output : Proof 0.38s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.00/0.12 % Problem : SEU465^1 : TPTP v9.2.1. Released v3.6.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 : n021.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 17:37:35 EDT 2026 % 0.17/0.34 % CPUTime : % 0.29/0.50 %----Proving TH0 % 0.38/0.62 --- 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.38/0.62 % SZS status Theorem % 0.38/0.62 % SZS output start Proof % 0.38/0.62 ( % 0.38/0.62 (declare-sort $$unsorted 0) % 0.38/0.62 (define tptp.subrel () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "S" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_4 _let_3) (forall (@list _let_2 _let_1) (=> (_ (_ _let_4 _let_2) _let_1) (_ (_ _let_3 _let_2) _let_1))))))))) % 0.38/0.62 (define tptp.inv () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_1 _let_2) (_ (_ _let_3 _let_2) _let_1)))))) % 0.38/0.62 (define tptp.idem () (let ((_let_1 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_2 (@var "F" (-> (-> $$unsorted $$unsorted Bool) $$unsorted $$unsorted Bool)))) (let ((_let_3 (_ _let_2 _let_1))) (lambda (@list _let_2) (forall (@list _let_1) (= (_ _let_2 _let_3) _let_3))))))) % 0.38/0.62 (define tptp.infl () (let ((_let_1 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_2 (@var "F" (-> (-> $$unsorted $$unsorted Bool) $$unsorted $$unsorted Bool)))) (lambda (@list _let_2) (forall (@list _let_1) (_ (_ tptp.subrel _let_1) (_ _let_2 _let_1))))))) % 0.38/0.62 (define tptp.mono () (let ((_let_1 (@var "S" (-> $$unsorted $$unsorted Bool)))) (let ((_let_2 (@var "F" (-> (-> $$unsorted $$unsorted Bool) $$unsorted $$unsorted Bool)))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_2) (forall (@list _let_3 _let_1) (=> (_ (_ tptp.subrel _let_3) _let_1) (_ (_ tptp.subrel (_ _let_2 _let_3)) (_ _let_2 _let_1))))))))) % 0.38/0.62 (define tptp.refl () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_2) (forall (@list _let_1) (_ (_ _let_2 _let_1) _let_1)))))) % 0.38/0.62 (define tptp.irrefl () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_2) (forall (@list _let_1) (not (_ (_ _let_2 _let_1) _let_1))))))) % 0.38/0.62 (define tptp.rc () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_2 _let_1) (or (= _let_2 _let_1) (_ (_ _let_3 _let_2) _let_1))))))) % 0.38/0.62 (define tptp.symm () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_1 _let_2) (=> (_ (_ _let_3 _let_1) _let_2) (_ (_ _let_3 _let_2) _let_1)))))))) % 0.38/0.62 (define tptp.antisymm () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_2 _let_1) (=> (and (_ (_ _let_3 _let_2) _let_1) (_ (_ _let_3 _let_1) _let_2)) (= _let_2 _let_1)))))))) % 0.38/0.62 (define tptp.asymm () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_1 _let_2) (=> (_ (_ _let_3 _let_1) _let_2) (not (_ (_ _let_3 _let_2) _let_1))))))))) % 0.38/0.62 (define tptp.sc () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_2 _let_1) (or (_ (_ _let_3 _let_1) _let_2) (_ (_ _let_3 _let_2) _let_1))))))) % 0.38/0.62 (define tptp.trans () (let ((_let_1 (@var "Z" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (_ _let_3 _let_2))) (let ((_let_5 (@var "Y" $$unsorted))) (lambda (@list _let_3) (forall (@list _let_2 _let_5 _let_1) (=> (and (_ _let_4 _let_5) (_ (_ _let_3 _let_5) _let_1)) (_ _let_4 _let_1)))))))))) % 0.38/0.62 (define tptp.tc () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "S" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_4 _let_2 _let_1) (forall (@list _let_3) (=> (and (_ tptp.trans _let_3) (_ (_ tptp.subrel _let_4) _let_3)) (_ (_ _let_3 _let_2) _let_1))))))))) % 0.38/0.62 (define tptp.trc () (let ((_let_1 (@var "__flatten_var_1" $$unsorted))) (let ((_let_2 (@var "__flatten_var_0" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_2 _let_1) (_ (_ (_ tptp.rc (_ tptp.tc _let_3)) _let_2) _let_1)))))) % 0.38/0.62 (define tptp.trsc () (let ((_let_1 (@var "__flatten_var_1" $$unsorted))) (let ((_let_2 (@var "__flatten_var_0" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_2 _let_1) (_ (_ (_ tptp.sc (_ tptp.rc (_ tptp.tc _let_3))) _let_2) _let_1)))))) % 0.38/0.62 (define tptp.po () (let ((_let_1 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_1) (and (_ tptp.refl _let_1) (_ tptp.antisymm _let_1) (_ tptp.trans _let_1))))) % 0.38/0.62 (define tptp.so () (let ((_let_1 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_1) (and (_ tptp.asymm _let_1) (_ tptp.trans _let_1))))) % 0.38/0.62 (define tptp.total () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_1 _let_2) (or (= _let_1 _let_2) (_ (_ _let_3 _let_1) _let_2) (_ (_ _let_3 _let_2) _let_1)))))))) % 0.38/0.62 (define tptp.term () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "A" (-> $$unsorted Bool)))) (let ((_let_5 (_ _let_4 _let_2))) (let ((_let_6 (@list _let_2))) (lambda (@list _let_3) (forall (@list _let_4) (=> (exists _let_6 _let_5) (exists _let_6 (and _let_5 (forall (@list _let_1) (=> (_ _let_4 _let_1) (not (_ (_ _let_3 _let_2) _let_1)))))))))))))))) % 0.38/0.62 (define tptp.ind () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "P" (-> $$unsorted Bool)))) (let ((_let_3 (_ _let_2 _let_1))) (let ((_let_4 (@list _let_1))) (let ((_let_5 (@var "Y" $$unsorted))) (let ((_let_6 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_6) (forall (@list _let_2) (=> (forall _let_4 (=> (forall (@list _let_5) (=> (_ (_ (_ tptp.tc _let_6) _let_1) _let_5) (_ _let_2 _let_5))) _let_3)) (forall _let_4 _let_3))))))))))) % 0.38/0.62 (define tptp.innf () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3 _let_2) (not (exists (@list _let_1) (_ (_ _let_3 _let_2) _let_1)))))))) % 0.38/0.62 (define tptp.nfof () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_3 (@var "Y" $$unsorted))) (lambda (@list _let_2 _let_1 _let_3) (and (_ (_ (_ tptp.trc _let_2) _let_3) _let_1) (_ (_ tptp.innf _let_2) _let_1))))))) % 0.38/0.62 (define tptp.norm () (let ((_let_1 (@var "X" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_1) (exists (@list _let_2) (_ (_ (_ tptp.nfof _let_3) _let_2) _let_1)))))))) % 0.38/0.62 (define tptp.join () (let ((_let_1 (@var "Z" $$unsorted))) (let ((_let_2 (@var "Y" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (_ tptp.trc _let_3))) (let ((_let_5 (@var "X" $$unsorted))) (lambda (@list _let_3 _let_5 _let_2) (exists (@list _let_1) (and (_ (_ _let_4 _let_5) _let_1) (_ (_ _let_4 _let_2) _let_1)))))))))) % 0.38/0.62 (define tptp.lconfl () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "Z" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "X" $$unsorted))) (let ((_let_5 (_ _let_3 _let_4))) (lambda (@list _let_3) (forall (@list _let_4 _let_1 _let_2) (=> (and (_ _let_5 _let_2) (_ _let_5 _let_1)) (_ (_ (_ tptp.join _let_3) _let_2) _let_1)))))))))) % 0.38/0.62 (define tptp.sconfl () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "Z" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "X" $$unsorted))) (lambda (@list _let_3) (forall (@list _let_4 _let_1 _let_2) (=> (and (_ (_ _let_3 _let_4) _let_2) (_ (_ (_ tptp.trc _let_3) _let_4) _let_1)) (_ (_ (_ tptp.join _let_3) _let_2) _let_1))))))))) % 0.38/0.62 (define tptp.confl () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "Z" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (let ((_let_4 (@var "X" $$unsorted))) (let ((_let_5 (_ (_ tptp.trc _let_3) _let_4))) (lambda (@list _let_3) (forall (@list _let_4 _let_1 _let_2) (=> (and (_ _let_5 _let_2) (_ _let_5 _let_1)) (_ (_ (_ tptp.join _let_3) _let_2) _let_1)))))))))) % 0.38/0.62 (define tptp.cr () (let ((_let_1 (@var "Y" $$unsorted))) (let ((_let_2 (@var "X" $$unsorted))) (let ((_let_3 (@var "R" (-> $$unsorted $$unsorted Bool)))) (lambda (@list _let_3) (forall (@list _let_2 _let_1) (=> (_ (_ (_ tptp.trsc _let_3) _let_2) _let_1) (_ (_ (_ tptp.join _let_3) _let_2) _let_1)))))))) % 0.38/0.62 (define @t1 () (@var "Y" $$unsorted)) % 0.38/0.62 (define @t2 () (@var "X" $$unsorted)) % 0.38/0.62 (define @t3 () (@var "S" (-> $$unsorted $$unsorted Bool))) % 0.38/0.62 (define @t4 () (_ (_ @t3 @t2) @t1)) % 0.38/0.62 (define @t5 () (@var "R" (-> $$unsorted $$unsorted Bool))) % 0.38/0.62 (define @t6 () (_ tptp.subrel @t5)) % 0.38/0.62 (define @t7 () (_ @t6 @t3)) % 0.38/0.62 (define @t8 () (_ tptp.trans @t3)) % 0.38/0.62 (define @t9 () (and @t8 @t7)) % 0.38/0.62 (define @t10 () (=> @t9 @t4)) % 0.38/0.62 (define @t11 () (and @t8 @t7 @t10)) % 0.38/0.62 (define @t12 () (=> @t11 @t4)) % 0.38/0.62 (define @t13 () (@list @t5 @t2 @t1 @t3)) % 0.38/0.62 (define @t14 () (forall @t13 @t12)) % 0.38/0.62 (define @t15 () (not @t14)) % 0.38/0.62 (define @t16 () (_ @t5 @t2)) % 0.38/0.62 (define @t17 () (_ @t16 @t1)) % 0.38/0.62 (define @t18 () (@list @t2 @t1)) % 0.38/0.62 (define @t19 () (forall @t18 (=> @t17 @t4))) % 0.38/0.62 (define @t20 () (@list @t5 @t3)) % 0.38/0.62 (define @t21 () (lambda @t20 @t19)) % 0.38/0.62 (define @t22 () (_ @t5 @t1)) % 0.38/0.62 (define @t23 () (_ @t22 @t2)) % 0.38/0.62 (define @t24 () (@list @t5 @t2 @t1)) % 0.38/0.62 (define @t25 () (lambda @t24 @t23)) % 0.38/0.62 (define @t26 () (@var "F" (-> (-> $$unsorted $$unsorted Bool) $$unsorted $$unsorted Bool))) % 0.38/0.62 (define @t27 () (_ @t26 @t5)) % 0.38/0.62 (define @t28 () (@list @t5)) % 0.38/0.62 (define @t29 () (@list @t26)) % 0.38/0.62 (define @t30 () (lambda @t29 (forall @t28 (= (_ @t26 @t27) @t27)))) % 0.38/0.62 (define @t31 () (lambda @t29 (forall @t28 (_ @t6 @t27)))) % 0.38/0.62 (define @t32 () (lambda @t29 (forall @t20 (=> @t7 (_ (_ tptp.subrel @t27) (_ @t26 @t3)))))) % 0.38/0.62 (define @t33 () (_ @t16 @t2)) % 0.38/0.62 (define @t34 () (@list @t2)) % 0.38/0.62 (define @t35 () (lambda @t28 (forall @t34 @t33))) % 0.38/0.62 (define @t36 () (lambda @t28 (forall @t34 (not @t33)))) % 0.38/0.62 (define @t37 () (= @t2 @t1)) % 0.38/0.62 (define @t38 () (lambda @t24 (or @t37 @t17))) % 0.38/0.62 (define @t39 () (lambda @t28 (forall @t18 (=> @t17 @t23)))) % 0.38/0.62 (define @t40 () (lambda @t28 (forall @t18 (=> (and @t17 @t23) @t37)))) % 0.38/0.62 (define @t41 () (lambda @t28 (forall @t18 (=> @t17 (not @t23))))) % 0.38/0.62 (define @t42 () (lambda @t24 (or @t23 @t17))) % 0.38/0.62 (define @t43 () (@var "Z" $$unsorted)) % 0.38/0.62 (define @t44 () (_ @t16 @t43)) % 0.38/0.62 (define @t45 () (_ @t22 @t43)) % 0.38/0.62 (define @t46 () (and @t17 @t45)) % 0.38/0.62 (define @t47 () (@list @t2 @t1 @t43)) % 0.38/0.62 (define @t48 () (forall @t47 (=> @t46 @t44))) % 0.38/0.62 (define @t49 () (lambda @t28 @t48)) % 0.38/0.62 (define @t50 () (@list @t3)) % 0.38/0.62 (define @t51 () (lambda @t24 (forall @t50 @t10))) % 0.38/0.62 (define @t52 () (@var "__flatten_var_1" $$unsorted)) % 0.38/0.62 (define @t53 () (@var "__flatten_var_0" $$unsorted)) % 0.38/0.62 (define @t54 () (_ tptp.tc @t5)) % 0.38/0.62 (define @t55 () (_ tptp.rc @t54)) % 0.38/0.62 (define @t56 () (@list @t5 @t53 @t52)) % 0.38/0.62 (define @t57 () (lambda @t56 (_ (_ @t55 @t53) @t52))) % 0.38/0.62 (define @t58 () (lambda @t56 (_ (_ (_ tptp.sc @t55) @t53) @t52))) % 0.38/0.62 (define @t59 () (_ tptp.trans @t5)) % 0.38/0.62 (define @t60 () (lambda @t28 (and (_ tptp.refl @t5) (_ tptp.antisymm @t5) @t59))) % 0.38/0.62 (define @t61 () (lambda @t28 (and (_ tptp.asymm @t5) @t59))) % 0.38/0.62 (define @t62 () (lambda @t28 (forall @t18 (or @t37 @t17 @t23)))) % 0.38/0.62 (define @t63 () (not @t17)) % 0.38/0.62 (define @t64 () (@var "A" (-> $$unsorted Bool))) % 0.38/0.62 (define @t65 () (@list @t1)) % 0.38/0.62 (define @t66 () (_ @t64 @t2)) % 0.38/0.62 (define @t67 () (lambda @t28 (forall (@list @t64) (=> (exists @t34 @t66) (exists @t34 (and @t66 (forall @t65 (=> (_ @t64 @t1) @t63)))))))) % 0.38/0.62 (define @t68 () (@var "P" (-> $$unsorted Bool))) % 0.38/0.62 (define @t69 () (_ @t68 @t2)) % 0.38/0.62 (define @t70 () (lambda @t28 (forall (@list @t68) (=> (forall @t34 (=> (forall @t65 (=> (_ (_ @t54 @t2) @t1) (_ @t68 @t1))) @t69)) (forall @t34 @t69))))) % 0.38/0.62 (define @t71 () (lambda (@list @t5 @t2) (not (exists @t65 @t17)))) % 0.38/0.62 (define @t72 () (_ tptp.trc @t5)) % 0.38/0.62 (define @t73 () (_ @t72 @t1)) % 0.38/0.62 (define @t74 () (lambda @t24 (and (_ @t73 @t2) (_ (_ tptp.innf @t5) @t2)))) % 0.38/0.62 (define @t75 () (lambda @t28 (forall @t34 (exists @t65 (_ (_ (_ tptp.nfof @t5) @t1) @t2))))) % 0.38/0.62 (define @t76 () (_ @t72 @t2)) % 0.38/0.62 (define @t77 () (_ @t76 @t43)) % 0.38/0.62 (define @t78 () (lambda @t24 (exists (@list @t43) (and @t77 (_ @t73 @t43))))) % 0.38/0.62 (define @t79 () (_ tptp.join @t5)) % 0.38/0.62 (define @t80 () (_ (_ @t79 @t43) @t1)) % 0.38/0.62 (define @t81 () (lambda @t28 (forall @t47 (=> (and @t44 @t17) @t80)))) % 0.38/0.62 (define @t82 () (_ @t76 @t1)) % 0.38/0.62 (define @t83 () (lambda @t28 (forall @t47 (=> (and @t44 @t82) @t80)))) % 0.38/0.62 (define @t84 () (lambda @t28 (forall @t47 (=> (and @t77 @t82) @t80)))) % 0.38/0.62 (define @t85 () (lambda @t28 (forall @t18 (=> (_ (_ (_ tptp.trsc @t5) @t2) @t1) (_ (_ @t79 @t2) @t1))))) % 0.38/0.62 (define @t86 () (_ @t3 @t2 @t1)) % 0.38/0.62 (define @t87 () (not @t86)) % 0.38/0.62 (define @t88 () (@var "BOUND_VARIABLE_8888" $$unsorted)) % 0.38/0.62 (define @t89 () (@var "BOUND_VARIABLE_8886" $$unsorted)) % 0.38/0.62 (define @t90 () (or (not (_ @t5 @t89 @t88)) (_ @t3 @t89 @t88))) % 0.38/0.62 (define @t91 () (@var "BOUND_VARIABLE_8878" $$unsorted)) % 0.38/0.62 (define @t92 () (@var "BOUND_VARIABLE_8874" $$unsorted)) % 0.38/0.62 (define @t93 () (@var "BOUND_VARIABLE_8876" $$unsorted)) % 0.38/0.62 (define @t94 () (or (not (_ @t3 @t92 @t93)) (not (_ @t3 @t93 @t91)) (_ @t3 @t92 @t91))) % 0.38/0.62 (define @t95 () (and @t94 @t90 @t87)) % 0.38/0.62 (define @t96 () (@var "BOUND_VARIABLE_8837" $$unsorted)) % 0.38/0.62 (define @t97 () (@var "BOUND_VARIABLE_8835" $$unsorted)) % 0.38/0.62 (define @t98 () (@list @t97 @t96)) % 0.38/0.62 (define @t99 () (forall @t98 (or (not (_ @t5 @t97 @t96)) (_ @t3 @t97 @t96)))) % 0.38/0.62 (define @t100 () (not @t99)) % 0.38/0.62 (define @t101 () (@var "BOUND_VARIABLE_8845" $$unsorted)) % 0.38/0.62 (define @t102 () (@var "BOUND_VARIABLE_8847" $$unsorted)) % 0.38/0.62 (define @t103 () (@list @t101 @t102 @t43)) % 0.38/0.62 (define @t104 () (forall @t103 (or (not (_ @t3 @t101 @t102)) (not (_ @t3 @t102 @t43)) (_ @t3 @t101 @t43)))) % 0.38/0.62 (define @t105 () (not @t104)) % 0.38/0.62 (define @t106 () (or @t105 @t100 @t95 @t86)) % 0.38/0.62 (define @t107 () (forall (@list @t5 @t2 @t1 @t3 @t92 @t93 @t91 @t89 @t88) @t106)) % 0.38/0.62 (define @t108 () (@list @t92 @t93 @t91 @t89 @t88)) % 0.38/0.62 (define @t109 () (forall @t108 @t106)) % 0.38/0.62 (define @t110 () (forall @t108 @t87)) % 0.38/0.62 (define @t111 () (forall (@list @t89 @t88) @t90)) % 0.38/0.62 (define @t112 () (@list @t97 @t96)) % 0.38/0.62 (define @t113 () (forall @t108 @t90)) % 0.38/0.62 (define @t114 () (forall (@list @t92 @t93 @t91) @t94)) % 0.38/0.62 (define @t115 () (forall @t108 @t94)) % 0.38/0.62 (define @t116 () (and @t115 @t113 @t110)) % 0.38/0.62 (define @t117 () (forall @t108 @t95)) % 0.38/0.62 (define @t118 () (or @t105 @t100 @t117 @t86)) % 0.38/0.62 (define @t119 () (not @t4)) % 0.38/0.62 (define @t120 () (and @t104 @t99 @t119)) % 0.38/0.62 (define @t121 () (or @t105 @t100 @t120 @t4)) % 0.38/0.62 (define @t122 () (and @t104 @t99)) % 0.38/0.62 (define @t123 () (=> @t122 @t4)) % 0.38/0.62 (define @t124 () (not @t123)) % 0.38/0.62 (define @t125 () (or @t105 @t100 @t124)) % 0.38/0.62 (define @t126 () (and @t104 @t99 @t123)) % 0.38/0.62 (define @t127 () (_ @t5 @t2 @t1)) % 0.38/0.62 (define @t128 () (not @t127)) % 0.38/0.62 (define @t129 () (forall @t18 (or @t128 @t86))) % 0.38/0.62 (define @t130 () (@list @t2 @t1)) % 0.38/0.62 (define @t131 () (forall @t47 (or @t87 (not (_ @t3 @t1 @t43)) (_ @t3 @t2 @t43)))) % 0.38/0.62 (define @t132 () (and @t131 @t129)) % 0.38/0.62 (define @t133 () (=> @t132 @t4)) % 0.38/0.62 (define @t134 () (and @t131 @t129 @t133)) % 0.38/0.62 (define @t135 () (=> @t134 @t4)) % 0.38/0.62 (define @t136 () (lambda @t50 @t129)) % 0.38/0.62 (define @t137 () (_ (lambda @t20 @t129) @t5)) % 0.38/0.62 (define @t138 () (_ @t5 @t2 @t43)) % 0.38/0.62 (define @t139 () (_ @t5 @t1 @t43)) % 0.38/0.62 (define @t140 () (_ (lambda @t28 (forall @t47 (or @t128 (not @t139) @t138))) @t3)) % 0.38/0.62 (define @t141 () (_ @t137 @t3)) % 0.38/0.62 (define @t142 () (and @t140 @t141)) % 0.38/0.62 (define @t143 () (=> @t142 @t4)) % 0.38/0.62 (define @t144 () (and @t140 @t141 @t143)) % 0.38/0.62 (define @t145 () (=> @t144 @t4)) % 0.38/0.62 (define @t146 () (forall @t13 @t145)) % 0.38/0.62 (define @t147 () (or @t63 @t4)) % 0.38/0.62 (define @t148 () (not @t45)) % 0.38/0.62 (define @t149 () (or @t63 @t148 @t44)) % 0.38/0.62 (define @t150 () (@quantifiers_skolemize @t107 3)) % 0.38/0.62 (define @t151 () (@quantifiers_skolemize @t107 0)) % 0.38/0.62 (define @t152 () (forall @t98 (or (not (_ @t151 @t97 @t96)) (_ @t150 @t97 @t96)))) % 0.38/0.62 (define @t153 () (_ @t150 (@quantifiers_skolemize @t107 1) (@quantifiers_skolemize @t107 2))) % 0.38/0.62 (define @t154 () (not @t153)) % 0.38/0.62 (define @t155 () (@quantifiers_skolemize @t107 8)) % 0.38/0.62 (define @t156 () (@quantifiers_skolemize @t107 7)) % 0.38/0.62 (define @t157 () (or (not (_ @t151 @t156 @t155)) (_ @t150 @t156 @t155))) % 0.38/0.62 (define @t158 () (@quantifiers_skolemize @t107 6)) % 0.38/0.62 (define @t159 () (@quantifiers_skolemize @t107 4)) % 0.38/0.62 (define @t160 () (@quantifiers_skolemize @t107 5)) % 0.38/0.62 (define @t161 () (or (not (_ @t150 @t159 @t160)) (not (_ @t150 @t160 @t158)) (_ @t150 @t159 @t158))) % 0.38/0.62 (define @t162 () (and @t161 @t157 @t154)) % 0.38/0.62 (define @t163 () (not @t152)) % 0.38/0.62 (define @t164 () (forall @t103 (or (not (_ @t150 @t101 @t102)) (not (_ @t150 @t102 @t43)) (_ @t150 @t101 @t43)))) % 0.38/0.62 (define @t165 () (not @t164)) % 0.38/0.62 (define @t166 () (or @t165 @t163 @t162 @t153)) % 0.38/0.62 (define @t167 () (@list true)) % 0.38/0.62 (define @t168 () (@list @t166)) % 0.38/0.62 (define @t169 () (not @t157)) % 0.38/0.62 (define @t170 () (not @t161)) % 0.38/0.62 (assume @p1 @t15) % 0.38/0.62 (assume @p2 true) % 0.38/0.62 (step @p3 (= tptp.subrel @t21) :rule refl :args (@t21)) % 0.38/0.62 (step @p4 (= tptp.inv @t25) :rule refl :args (@t25)) % 0.38/0.62 (step @p5 (= tptp.idem @t30) :rule refl :args (@t30)) % 0.38/0.62 (step @p6 (= tptp.infl @t31) :rule refl :args (@t31)) % 0.38/0.62 (step @p7 (= tptp.mono @t32) :rule refl :args (@t32)) % 0.38/0.62 (step @p8 (= tptp.refl @t35) :rule refl :args (@t35)) % 0.38/0.62 (step @p9 (= tptp.irrefl @t36) :rule refl :args (@t36)) % 0.38/0.62 (step @p10 (= tptp.rc @t38) :rule refl :args (@t38)) % 0.38/0.62 (step @p11 (= tptp.symm @t39) :rule refl :args (@t39)) % 0.38/0.62 (step @p12 (= tptp.antisymm @t40) :rule refl :args (@t40)) % 0.38/0.62 (step @p13 (= tptp.asymm @t41) :rule refl :args (@t41)) % 0.38/0.62 (step @p14 (= tptp.sc @t42) :rule refl :args (@t42)) % 0.38/0.62 (step @p15 (= tptp.trans @t49) :rule refl :args (@t49)) % 0.38/0.62 (step @p16 (= tptp.tc @t51) :rule refl :args (@t51)) % 0.38/0.62 (step @p17 (= tptp.trc @t57) :rule refl :args (@t57)) % 0.38/0.62 (step @p18 (= tptp.trsc @t58) :rule refl :args (@t58)) % 0.38/0.62 (step @p19 (= tptp.po @t60) :rule refl :args (@t60)) % 0.38/0.62 (step @p20 (= tptp.so @t61) :rule refl :args (@t61)) % 0.38/0.62 (step @p21 (= tptp.total @t62) :rule refl :args (@t62)) % 0.38/0.62 (step @p22 (= tptp.term @t67) :rule refl :args (@t67)) % 0.38/0.62 (step @p23 (= tptp.ind @t70) :rule refl :args (@t70)) % 0.38/0.62 (step @p24 (= tptp.innf @t71) :rule refl :args (@t71)) % 0.38/0.62 (step @p25 (= tptp.nfof @t74) :rule refl :args (@t74)) % 0.38/0.62 (step @p26 (= tptp.norm @t75) :rule refl :args (@t75)) % 0.38/0.62 (step @p27 (= tptp.join @t78) :rule refl :args (@t78)) % 0.38/0.62 (step @p28 (= tptp.lconfl @t81) :rule refl :args (@t81)) % 0.38/0.62 (step @p29 (= tptp.sconfl @t83) :rule refl :args (@t83)) % 0.38/0.62 (step @p30 (= tptp.confl @t84) :rule refl :args (@t84)) % 0.38/0.62 (step @p31 (= tptp.cr @t85) :rule refl :args (@t85)) % 0.38/0.62 (step @p32 :rule quant-merge-prenex :args ((= (forall @t13 @t109) @t107))) % 0.38/0.62 (step @p33 :rule refl :args (@t86)) % 0.38/0.62 (step @p34 :rule quant-unused-vars :args ((= @t110 @t87))) % 0.38/0.62 (step @p35 :rule alpha_equiv :args (@t111 (@list @t89 @t88) @t112)) % 0.38/0.62 (step @p36 :rule quant-unused-vars :args ((= @t113 @t111))) % 0.38/0.62 (step @p37 :rule trans :premises (@p36 @p35)) % 0.38/0.62 (step @p38 :rule alpha_equiv :args (@t114 (@list @t92 @t93 @t91) (@list @t101 @t102 @t43))) % 0.38/0.62 (step @p39 :rule quant-unused-vars :args ((= @t115 @t114))) % 0.38/0.62 (step @p40 :rule trans :premises (@p39 @p38)) % 0.38/0.62 (step @p41 :rule nary_cong :premises (@p40 @p37 @p34) :args (@t116)) % 0.38/0.62 (step @p42 :rule quant-miniscope-and :args ((= @t117 @t116))) % 0.38/0.62 (step @p43 :rule trans :premises (@p42 @p41)) % 0.38/0.62 (step @p44 :rule refl :args (@t100)) % 0.38/0.62 (step @p45 :rule refl :args (@t105)) % 0.38/0.62 (step @p46 :rule nary_cong :premises (@p45 @p44 @p43 @p33) :args (@t118)) % 0.38/0.62 (step @p47 :rule quant-miniscope-or :args ((= @t109 @t118))) % 0.38/0.62 (step @p48 :rule trans :premises (@p47 @p46)) % 0.38/0.62 (step @p49 :rule symm :premises (@p48)) % 0.38/0.62 (step @p50 :rule cong :premises (@p49) :args ((forall @t13 (or @t105 @t100 (and @t104 @t99 @t87) @t86)))) % 0.38/0.62 (step @p51 :rule trans :premises (@p50 @p32)) % 0.38/0.62 (step @p52 :rule refl :args (@t86)) % 0.38/0.62 (step @p53 :rule refl :args (@t4)) % 0.38/0.62 (step @p54 :rule cong :premises (@p53 @p52) :args ((= @t4 @t86))) % 0.38/0.62 (step @p55 :rule symm :premises (@p54)) % 0.38/0.62 (step @p56 :rule eq_resolve :premises (@p53 @p55)) % 0.38/0.62 (step @p57 :rule cong :premises (@p56) :args (@t119)) % 0.38/0.62 (step @p58 :rule refl :args (@t99)) % 0.38/0.62 (step @p59 :rule refl :args (@t104)) % 0.38/0.62 (step @p60 :rule nary_cong :premises (@p59 @p58 @p57) :args (@t120)) % 0.38/0.62 (step @p61 :rule nary_cong :premises (@p45 @p44 @p60 @p56) :args (@t121)) % 0.38/0.62 (step @p62 :rule cong :premises (@p61) :args ((forall @t13 @t121))) % 0.38/0.62 (step @p63 :rule trans :premises (@p62 @p51)) % 0.38/0.62 (step @p64 :rule aci_norm :args ((= (or (or @t105 @t100 @t120) @t4) @t121))) % 0.38/0.62 (step @p65 :rule aci_norm :args ((= (and @t122 @t119) @t120))) % 0.38/0.62 (step @p66 :rule bool-implies-de-morgan :args (@t122 @t4)) % 0.38/0.62 (step @p67 :rule trans :premises (@p66 @p65)) % 0.38/0.62 (step @p68 :rule nary_cong :premises (@p45 @p44 @p67) :args (@t125)) % 0.38/0.62 (step @p69 :rule aci_norm :args ((= (or @t105 (or @t100 @t124)) @t125))) % 0.38/0.62 (step @p70 :rule bool-and-de-morgan :args (@t99 @t123 true)) % 0.38/0.62 (step @p71 :rule nary_cong :premises (@p45 @p70) :args ((or @t105 (not (and @t99 @t123))))) % 0.38/0.62 (step @p72 :rule bool-and-de-morgan :args (@t104 @t99 (and @t123))) % 0.38/0.62 (step @p73 :rule trans :premises (@p72 @p71)) % 0.38/0.62 (step @p74 :rule trans :premises (@p73 @p69)) % 0.38/0.62 (step @p75 :rule trans :premises (@p74 @p68)) % 0.38/0.62 (step @p76 :rule nary_cong :premises (@p75 @p53) :args ((or (not @t126) @t4))) % 0.38/0.62 (step @p77 :rule trans :premises (@p76 @p64)) % 0.38/0.62 (step @p78 :rule bool-impl-elim :args (@t126 @t4)) % 0.38/0.62 (step @p79 :rule trans :premises (@p78 @p77)) % 0.38/0.62 (step @p80 :rule cong :premises (@p79) :args ((forall @t13 (=> @t126 @t4)))) % 0.38/0.62 (step @p81 :rule trans :premises (@p80 @p63)) % 0.38/0.62 (step @p82 :rule alpha_equiv :args (@t129 @t130 @t112)) % 0.38/0.62 (step @p83 :rule alpha_equiv :args (@t131 @t130 (@list @t101 @t102))) % 0.38/0.62 (step @p84 :rule nary_cong :premises (@p83 @p82) :args (@t132)) % 0.38/0.62 (step @p85 :rule cong :premises (@p84 @p53) :args (@t133)) % 0.38/0.62 (step @p86 :rule nary_cong :premises (@p83 @p82 @p85) :args (@t134)) % 0.38/0.62 (step @p87 :rule cong :premises (@p86 @p53) :args (@t135)) % 0.38/0.62 (step @p88 :rule cong :premises (@p87) :args ((forall @t13 @t135))) % 0.38/0.62 (step @p89 :rule trans :premises (@p88 @p81)) % 0.38/0.62 (step @p90 :rule refl :args (@t4)) % 0.38/0.62 (step @p91 :rule beta-reduce :args ((= (_ @t136 @t3) @t129))) % 0.38/0.62 (step @p92 :rule refl :args (@t3)) % 0.38/0.62 (step @p93 :rule beta-reduce :args ((= @t137 @t136))) % 0.38/0.62 (step @p94 :rule ho_cong :premises (@p93 @p92)) % 0.38/0.62 (step @p95 :rule trans :premises (@p94 @p91)) % 0.38/0.62 (step @p96 :rule beta-reduce :args ((= @t140 @t131))) % 0.38/0.62 (step @p97 :rule nary_cong :premises (@p96 @p95) :args (@t142)) % 0.38/0.62 (step @p98 :rule cong :premises (@p97 @p90) :args (@t143)) % 0.38/0.62 (step @p99 :rule nary_cong :premises (@p96 @p95 @p98) :args (@t144)) % 0.38/0.62 (step @p100 :rule cong :premises (@p99 @p90) :args (@t145)) % 0.38/0.62 (step @p101 :rule cong :premises (@p100) :args (@t146)) % 0.38/0.62 (step @p102 :rule trans :premises (@p101 @p89)) % 0.38/0.62 (step @p103 :rule cong :premises (@p102) :args ((not @t146))) % 0.38/0.62 (step @p104 :rule refl :args (@t5)) % 0.38/0.62 (step @p105 :rule refl :args (@t127)) % 0.38/0.62 (step @p106 :rule refl :args (@t17)) % 0.38/0.62 (step @p107 :rule cong :premises (@p106 @p105) :args ((= @t17 @t127))) % 0.38/0.62 (step @p108 :rule symm :premises (@p107)) % 0.38/0.62 (step @p109 :rule eq_resolve :premises (@p106 @p108)) % 0.38/0.62 (step @p110 :rule cong :premises (@p109) :args (@t63)) % 0.38/0.62 (step @p111 :rule nary_cong :premises (@p110 @p56) :args (@t147)) % 0.38/0.62 (step @p112 :rule cong :premises (@p111) :args ((forall @t18 @t147))) % 0.38/0.62 (step @p113 :rule bool-impl-elim :args (@t17 @t4)) % 0.38/0.62 (step @p114 :rule cong :premises (@p113) :args (@t19)) % 0.38/0.62 (step @p115 :rule trans :premises (@p114 @p112)) % 0.38/0.62 (step @p116 :rule cong :premises (@p115) :args (@t21)) % 0.38/0.62 (step @p117 :rule trans :premises (@p3 @p116)) % 0.38/0.62 (step @p118 :rule ho_cong :premises (@p117 @p104)) % 0.38/0.62 (step @p119 :rule ho_cong :premises (@p118 @p92)) % 0.38/0.62 (step @p120 :rule refl :args (@t138)) % 0.38/0.62 (step @p121 :rule refl :args (@t44)) % 0.38/0.62 (step @p122 :rule cong :premises (@p121 @p120) :args ((= @t44 @t138))) % 0.38/0.62 (step @p123 :rule symm :premises (@p122)) % 0.38/0.62 (step @p124 :rule eq_resolve :premises (@p121 @p123)) % 0.38/0.62 (step @p125 :rule refl :args (@t139)) % 0.38/0.62 (step @p126 :rule refl :args (@t45)) % 0.38/0.62 (step @p127 :rule cong :premises (@p126 @p125) :args ((= @t45 @t139))) % 0.38/0.62 (step @p128 :rule symm :premises (@p127)) % 0.38/0.62 (step @p129 :rule eq_resolve :premises (@p126 @p128)) % 0.38/0.62 (step @p130 :rule cong :premises (@p129) :args (@t148)) % 0.38/0.62 (step @p131 :rule nary_cong :premises (@p110 @p130 @p124) :args (@t149)) % 0.38/0.62 (step @p132 :rule cong :premises (@p131) :args ((forall @t47 @t149))) % 0.38/0.62 (step @p133 :rule aci_norm :args ((= (or (or @t63 @t148) @t44) @t149))) % 0.38/0.62 (step @p134 :rule bool-and-de-morgan :args (@t17 @t45 true)) % 0.38/0.62 (step @p135 :rule nary_cong :premises (@p134 @p121) :args ((or (not @t46) @t44))) % 0.38/0.62 (step @p136 :rule trans :premises (@p135 @p133)) % 0.38/0.62 (step @p137 :rule bool-impl-elim :args (@t46 @t44)) % 0.38/0.62 (step @p138 :rule trans :premises (@p137 @p136)) % 0.38/0.62 (step @p139 :rule cong :premises (@p138) :args (@t48)) % 0.38/0.62 (step @p140 :rule trans :premises (@p139 @p132)) % 0.38/0.62 (step @p141 :rule cong :premises (@p140) :args (@t49)) % 0.38/0.62 (step @p142 :rule trans :premises (@p15 @p141)) % 0.38/0.62 (step @p143 :rule ho_cong :premises (@p142 @p92)) % 0.38/0.62 (step @p144 :rule nary_cong :premises (@p143 @p119) :args (@t9)) % 0.38/0.62 (step @p145 :rule cong :premises (@p144 @p90) :args (@t10)) % 0.38/0.62 (step @p146 :rule nary_cong :premises (@p143 @p119 @p145) :args (@t11)) % 0.38/0.62 (step @p147 :rule cong :premises (@p146 @p90) :args (@t12)) % 0.38/0.62 (step @p148 :rule cong :premises (@p147) :args (@t14)) % 0.38/0.62 (step @p149 :rule cong :premises (@p148) :args (@t15)) % 0.38/0.62 (step @p150 :rule trans :premises (@p149 @p103)) % 0.38/0.62 (step @p151 :rule eq_resolve :premises (@p1 @p150)) % 0.38/0.62 (step @p152 :rule skolemize :premises (@p151)) % 0.38/0.62 (step @p153 :rule bool-double-not-elim :args (@t152)) % 0.38/0.62 (step @p154 :rule refl :args (@t166)) % 0.38/0.62 (step @p155 :rule nary_cong :premises (@p154 @p153) :args ((or @t166 (not @t163)))) % 0.38/0.62 (step @p156 :rule cnf_or_neg :args (@t166 1)) % 0.38/0.62 (step @p157 :rule eq_resolve :premises (@p156 @p155)) % 0.38/0.62 (step @p158 :rule reordering :premises (@p157) :args ((or @t152 @t166))) % 0.38/0.62 (step @p159 :rule chain_m_resolution :premises (@p158 @p152) :args (@t152 @t167 @t168)) % 0.38/0.62 (step @p160 :rule bool-double-not-elim :args (@t164)) % 0.38/0.62 (step @p161 :rule nary_cong :premises (@p154 @p160) :args ((or @t166 (not @t165)))) % 0.38/0.62 (step @p162 :rule cnf_or_neg :args (@t166 0)) % 0.38/0.62 (step @p163 :rule eq_resolve :premises (@p162 @p161)) % 0.38/0.62 (step @p164 :rule reordering :premises (@p163) :args ((or @t164 @t166))) % 0.38/0.62 (step @p165 :rule chain_m_resolution :premises (@p164 @p152) :args (@t164 @t167 @t168)) % 0.38/0.62 (step @p166 :rule instantiate :premises (@p165) :args ((@list @t159 @t160 @t158))) % 0.38/0.62 (step @p167 :rule cnf_or_neg :args (@t166 2)) % 0.38/0.62 (step @p168 :rule chain_m_resolution :premises (@p167 @p152) :args ((not @t162) @t167 @t168)) % 0.38/0.62 (step @p169 :rule cnf_or_neg :args (@t166 3)) % 0.38/0.62 (step @p170 :rule reordering :premises (@p169) :args ((or @t154 @t166))) % 0.38/0.62 (step @p171 :rule chain_m_resolution :premises (@p170 @p152) :args (@t154 @t167 @t168)) % 0.38/0.62 (step @p172 :rule bool-double-not-elim :args (@t153)) % 0.38/0.62 (step @p173 :rule refl :args (@t169)) % 0.38/0.62 (step @p174 :rule refl :args (@t170)) % 0.38/0.62 (step @p175 :rule refl :args (@t162)) % 0.38/0.62 (step @p176 :rule nary_cong :premises (@p175 @p174 @p173 @p172) :args ((or @t162 @t170 @t169 (not @t154)))) % 0.38/0.62 (step @p177 :rule cnf_and_neg :args (@t162)) % 0.38/0.62 (step @p178 :rule eq_resolve :premises (@p177 @p176)) % 0.38/0.62 (step @p179 :rule reordering :premises (@p178) :args ((or @t153 @t162 @t170 @t169))) % 0.38/0.62 (step @p180 :rule chain_m_resolution :premises (@p179 @p171 @p168 @p166) :args (@t169 (@list true true false) (@list @t153 @t162 @t161))) % 0.38/0.62 (assume-push @p187 @t152) % 0.38/0.62 (step @p182 :rule instantiate :premises (@p159) :args ((@list @t156 @t155))) % 0.38/0.62 (step-pop @p188 :rule scope :premises (@p182)) % 0.38/0.62 (step @p183 :rule process_scope :premises (@p188) :args (@t157)) % 0.38/0.62 (step @p185 :rule implies_elim :premises (@p183)) % 0.38/0.62 (step @p186 false :rule chain_m_resolution :premises (@p185 @p180 @p159) :args (false (@list true false) (@list @t157 @t152))) % 0.38/0.62 ) % 0.38/0.62 % SZS output end Proof % 0.38/0.62 % cvc5 exiting %------------------------------------------------------------------------------