TSTP Solution File: ARI614_1 by cvc5---1.0.5

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : cvc5---1.0.5
% Problem  : ARI614_1 : TPTP v8.2.0. Released v5.1.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : do_cvc5 %s %d

% 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 May 29 16:34:15 EDT 2024

% Result   : Theorem 0.38s 0.60s
% Output   : Proof 0.38s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.13  % Problem    : ARI614_1 : TPTP v8.2.0. Released v5.1.0.
% 0.03/0.14  % Command    : do_cvc5 %s %d
% 0.14/0.36  % Computer : n021.cluster.edu
% 0.14/0.36  % Model    : x86_64 x86_64
% 0.14/0.36  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.36  % Memory   : 8042.1875MB
% 0.14/0.36  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.36  % CPULimit   : 300
% 0.14/0.36  % WCLimit    : 300
% 0.14/0.36  % DateTime   : Mon May 27 05:08:09 EDT 2024
% 0.14/0.36  % CPUTime    : 
% 0.21/0.49  %----Proving TF0_ARI
% 0.38/0.60  --- Run --finite-model-find --decision=internal at 15...
% 0.38/0.60  --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 15...
% 0.38/0.60  --- Run --no-e-matching --full-saturate-quant at 15...
% 0.38/0.60  --- Run --cegqi-all --purify-triggers --full-saturate-quant at 15...
% 0.38/0.60  % SZS status Theorem for /export/starexec/sandbox/tmp/tmp.KsOeIt6Gbn/cvc5---1.0.5_6013.smt2
% 0.38/0.60  % SZS output start Proof for /export/starexec/sandbox/tmp/tmp.KsOeIt6Gbn/cvc5---1.0.5_6013.smt2
% 0.38/0.60  (assume a0 (not (=> (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0))))))
% 0.38/0.60  (assume a1 true)
% 0.38/0.60  (step t1 (cl (not (= (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) (or (>= tptp.a 0) (not (>= tptp.a 1))))) (not (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1)))) (or (>= tptp.a 0) (not (>= tptp.a 1)))) :rule equiv_pos2)
% 0.38/0.60  (step t2 (cl (= (= (= (not (not (>= tptp.a 0))) (>= tptp.a 0)) true) (= (not (not (>= tptp.a 0))) (>= tptp.a 0)))) :rule equiv_simplify)
% 0.38/0.60  (step t3 (cl (not (= (= (not (not (>= tptp.a 0))) (>= tptp.a 0)) true)) (= (not (not (>= tptp.a 0))) (>= tptp.a 0))) :rule equiv1 :premises (t2))
% 0.38/0.60  (step t4 (cl (= (= (not (not (>= tptp.a 0))) (>= tptp.a 0)) (= (>= tptp.a 0) (not (not (>= tptp.a 0)))))) :rule all_simplify)
% 0.38/0.60  (step t5 (cl (= (>= tptp.a 0) (>= tptp.a 0))) :rule refl)
% 0.38/0.60  (step t6 (cl (= (not (not (>= tptp.a 0))) (>= tptp.a 0))) :rule all_simplify)
% 0.38/0.60  (step t7 (cl (= (= (>= tptp.a 0) (not (not (>= tptp.a 0)))) (= (>= tptp.a 0) (>= tptp.a 0)))) :rule cong :premises (t5 t6))
% 0.38/0.60  (step t8 (cl (= (= (>= tptp.a 0) (>= tptp.a 0)) true)) :rule all_simplify)
% 0.38/0.60  (step t9 (cl (= (= (>= tptp.a 0) (not (not (>= tptp.a 0)))) true)) :rule trans :premises (t7 t8))
% 0.38/0.60  (step t10 (cl (= (= (not (not (>= tptp.a 0))) (>= tptp.a 0)) true)) :rule trans :premises (t4 t9))
% 0.38/0.60  (step t11 (cl (= (not (not (>= tptp.a 0))) (>= tptp.a 0))) :rule resolution :premises (t3 t10))
% 0.38/0.60  (step t12 (cl (= (not (>= tptp.a 1)) (not (>= tptp.a 1)))) :rule refl)
% 0.38/0.60  (step t13 (cl (= (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) (or (>= tptp.a 0) (not (>= tptp.a 1))))) :rule cong :premises (t11 t12))
% 0.38/0.60  (step t14 (cl (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false) (and (not (>= tptp.a 0)) (>= tptp.a 1))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t15)
% 0.38/0.60  (assume t15.a0 (not (>= tptp.a 0)))
% 0.38/0.60  (assume t15.a1 (>= tptp.a 1))
% 0.38/0.60  (step t15.t1 (cl (not (= (not (<= tptp.a (- 1))) (> tptp.a (- 1)))) (not (not (<= tptp.a (- 1)))) (> tptp.a (- 1))) :rule equiv_pos2)
% 0.38/0.60  (step t15.t2 (cl (= (<= tptp.a (- 1)) (not (>= tptp.a 0)))) :rule all_simplify)
% 0.38/0.60  (step t15.t3 (cl (= (not (<= tptp.a (- 1))) (not (not (>= tptp.a 0))))) :rule cong :premises (t15.t2))
% 0.38/0.60  (step t15.t4 (cl (= (not (<= tptp.a (- 1))) (>= tptp.a 0))) :rule trans :premises (t15.t3 t6))
% 0.38/0.60  (step t15.t5 (cl (= (> tptp.a (- 1)) (not (<= tptp.a (- 1))))) :rule all_simplify)
% 0.38/0.60  (step t15.t6 (cl (= (> tptp.a (- 1)) (>= tptp.a 0))) :rule trans :premises (t15.t5 t15.t4))
% 0.38/0.60  (step t15.t7 (cl (= (>= tptp.a 0) (> tptp.a (- 1)))) :rule symm :premises (t15.t6))
% 0.38/0.60  (step t15.t8 (cl (= (not (<= tptp.a (- 1))) (> tptp.a (- 1)))) :rule trans :premises (t15.t4 t15.t7))
% 0.38/0.60  (step t15.t9 (cl (=> (<= tptp.a (- 1)) false) (<= tptp.a (- 1))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t15.t10)
% 0.38/0.60  (assume t15.t10.a0 (<= tptp.a (- 1)))
% 0.38/0.60  (step t15.t10.t1 (cl (not (= (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1))) false)) (not (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1)))) false) :rule equiv_pos2)
% 0.38/0.60  (step t15.t10.t2 (cl (= (* 1.0 tptp.a) (to_real tptp.a))) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t3 (cl (= (* (- 1.0) tptp.a) (to_real (* (- 1) tptp.a)))) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t4 (cl (= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (to_real tptp.a) (to_real (* (- 1) tptp.a))))) :rule cong :premises (t15.t10.t2 t15.t10.t3))
% 0.38/0.60  (step t15.t10.t5 (cl (= (+ (to_real tptp.a) (to_real (* (- 1) tptp.a))) 0.0)) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t6 (cl (= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) 0.0)) :rule trans :premises (t15.t10.t4 t15.t10.t5))
% 0.38/0.60  (step t15.t10.t7 (cl (= (* 1.0 (- 1)) (- 1.0))) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t8 (cl (= (* (- 1.0) 1) (- 1.0))) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t9 (cl (= (+ (* 1.0 (- 1)) (* (- 1.0) 1)) (+ (- 1.0) (- 1.0)))) :rule cong :premises (t15.t10.t7 t15.t10.t8))
% 0.38/0.60  (step t15.t10.t10 (cl (= (+ (- 1.0) (- 1.0)) (- 2.0))) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t11 (cl (= (+ (* 1.0 (- 1)) (* (- 1.0) 1)) (- 2.0))) :rule trans :premises (t15.t10.t9 t15.t10.t10))
% 0.38/0.60  (step t15.t10.t12 (cl (= (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1))) (<= 0.0 (- 2.0)))) :rule cong :premises (t15.t10.t6 t15.t10.t11))
% 0.38/0.60  (step t15.t10.t13 (cl (= (<= 0.0 (- 2.0)) false)) :rule all_simplify)
% 0.38/0.60  (step t15.t10.t14 (cl (= (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1))) false)) :rule trans :premises (t15.t10.t12 t15.t10.t13))
% 0.38/0.60  (step t15.t10.t15 (cl (not (<= (* 1.0 tptp.a) (* 1.0 (- 1)))) (not (<= (* (- 1.0) tptp.a) (* (- 1.0) 1))) (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1)))) :rule la_generic :args (1 1 1))
% 0.38/0.60  (step t15.t10.t16 (cl (=> (and (> 1.0 0) (<= tptp.a (- 1))) (<= (* 1.0 tptp.a) (* 1.0 (- 1))))) :rule la_mult_pos)
% 0.38/0.60  (step t15.t10.t17 (cl (not (and (> 1.0 0) (<= tptp.a (- 1)))) (<= (* 1.0 tptp.a) (* 1.0 (- 1)))) :rule implies :premises (t15.t10.t16))
% 0.38/0.60  (step t15.t10.t18 (cl (and (> 1.0 0) (<= tptp.a (- 1))) (not (> 1.0 0)) (not (<= tptp.a (- 1)))) :rule and_neg)
% 0.38/0.60  (step t15.t10.t19 (cl (= (= (> 1.0 0) true) (> 1.0 0))) :rule equiv_simplify)
% 0.38/0.60  (step t15.t10.t20 (cl (not (= (> 1.0 0) true)) (> 1.0 0)) :rule equiv1 :premises (t15.t10.t19))
% 0.38/0.60  (step t15.t10.t21 (cl (= (> 1.0 0) true)) :rule hole :args ((> 1.0 0)))
% 0.38/0.60  (step t15.t10.t22 (cl (> 1.0 0)) :rule resolution :premises (t15.t10.t20 t15.t10.t21))
% 0.38/0.60  (step t15.t10.t23 (cl (and (> 1.0 0) (<= tptp.a (- 1)))) :rule resolution :premises (t15.t10.t18 t15.t10.t22 t15.t10.a0))
% 0.38/0.60  (step t15.t10.t24 (cl (<= (* 1.0 tptp.a) (* 1.0 (- 1)))) :rule resolution :premises (t15.t10.t17 t15.t10.t23))
% 0.38/0.60  (step t15.t10.t25 (cl (=> (and (< (- 1.0) 0) (>= tptp.a 1)) (<= (* (- 1.0) tptp.a) (* (- 1.0) 1)))) :rule la_mult_neg)
% 0.38/0.60  (step t15.t10.t26 (cl (not (and (< (- 1.0) 0) (>= tptp.a 1))) (<= (* (- 1.0) tptp.a) (* (- 1.0) 1))) :rule implies :premises (t15.t10.t25))
% 0.38/0.60  (step t15.t10.t27 (cl (and (< (- 1.0) 0) (>= tptp.a 1)) (not (< (- 1.0) 0)) (not (>= tptp.a 1))) :rule and_neg)
% 0.38/0.60  (step t15.t10.t28 (cl (= (= (< (- 1.0) 0) true) (< (- 1.0) 0))) :rule equiv_simplify)
% 0.38/0.60  (step t15.t10.t29 (cl (not (= (< (- 1.0) 0) true)) (< (- 1.0) 0)) :rule equiv1 :premises (t15.t10.t28))
% 0.38/0.60  (step t15.t10.t30 (cl (= (< (- 1.0) 0) true)) :rule hole :args ((< (- 1.0) 0)))
% 0.38/0.60  (step t15.t10.t31 (cl (< (- 1.0) 0)) :rule resolution :premises (t15.t10.t29 t15.t10.t30))
% 0.38/0.60  (step t15.t10.t32 (cl (and (< (- 1.0) 0) (>= tptp.a 1))) :rule resolution :premises (t15.t10.t27 t15.t10.t31 t15.a1))
% 0.38/0.60  (step t15.t10.t33 (cl (<= (* (- 1.0) tptp.a) (* (- 1.0) 1))) :rule resolution :premises (t15.t10.t26 t15.t10.t32))
% 0.38/0.60  (step t15.t10.t34 (cl (<= (+ (* 1.0 tptp.a) (* (- 1.0) tptp.a)) (+ (* 1.0 (- 1)) (* (- 1.0) 1)))) :rule resolution :premises (t15.t10.t15 t15.t10.t24 t15.t10.t33))
% 0.38/0.60  (step t15.t10.t35 (cl false) :rule resolution :premises (t15.t10.t1 t15.t10.t14 t15.t10.t34))
% 0.38/0.60  (step t15.t10 (cl (not (<= tptp.a (- 1))) false) :rule subproof :discharge (t15.t10.a0))
% 0.38/0.60  (step t15.t11 (cl (=> (<= tptp.a (- 1)) false) false) :rule resolution :premises (t15.t9 t15.t10))
% 0.38/0.60  (step t15.t12 (cl (=> (<= tptp.a (- 1)) false) (not false)) :rule implies_neg2)
% 0.38/0.60  (step t15.t13 (cl (=> (<= tptp.a (- 1)) false) (=> (<= tptp.a (- 1)) false)) :rule resolution :premises (t15.t11 t15.t12))
% 0.38/0.60  (step t15.t14 (cl (=> (<= tptp.a (- 1)) false)) :rule contraction :premises (t15.t13))
% 0.38/0.60  (step t15.t15 (cl (= (=> (<= tptp.a (- 1)) false) (not (<= tptp.a (- 1))))) :rule implies_simplify)
% 0.38/0.60  (step t15.t16 (cl (not (=> (<= tptp.a (- 1)) false)) (not (<= tptp.a (- 1)))) :rule equiv1 :premises (t15.t15))
% 0.38/0.60  (step t15.t17 (cl (not (<= tptp.a (- 1)))) :rule resolution :premises (t15.t14 t15.t16))
% 0.38/0.60  (step t15.t18 (cl (> tptp.a (- 1))) :rule resolution :premises (t15.t1 t15.t8 t15.t17))
% 0.38/0.60  (step t15.t19 (cl (not (= (<= tptp.a (- 1)) (not (> tptp.a (- 1))))) (not (<= tptp.a (- 1))) (not (> tptp.a (- 1)))) :rule equiv_pos2)
% 0.38/0.60  (step t15.t20 (cl (= (not (> tptp.a (- 1))) (not (>= tptp.a 0)))) :rule cong :premises (t15.t6))
% 0.38/0.60  (step t15.t21 (cl (= (not (>= tptp.a 0)) (not (> tptp.a (- 1))))) :rule symm :premises (t15.t20))
% 0.38/0.60  (step t15.t22 (cl (= (<= tptp.a (- 1)) (not (> tptp.a (- 1))))) :rule trans :premises (t15.t2 t15.t21))
% 0.38/0.60  (step t15.t23 (cl (not (< tptp.a 0)) (<= tptp.a (- 1))) :rule la_generic :args (1 1))
% 0.38/0.60  (step t15.t24 (cl (not (= (not (>= tptp.a 0)) (< tptp.a 0))) (not (not (>= tptp.a 0))) (< tptp.a 0)) :rule equiv_pos2)
% 0.38/0.60  (step t15.t25 (cl (= (< tptp.a 0) (not (>= tptp.a 0)))) :rule all_simplify)
% 0.38/0.60  (step t15.t26 (cl (= (not (>= tptp.a 0)) (< tptp.a 0))) :rule symm :premises (t15.t25))
% 0.38/0.60  (step t15.t27 (cl (< tptp.a 0)) :rule resolution :premises (t15.t24 t15.t26 t15.a0))
% 0.38/0.60  (step t15.t28 (cl (<= tptp.a (- 1))) :rule resolution :premises (t15.t23 t15.t27))
% 0.38/0.60  (step t15.t29 (cl (not (> tptp.a (- 1)))) :rule resolution :premises (t15.t19 t15.t22 t15.t28))
% 0.38/0.60  (step t15.t30 (cl) :rule resolution :premises (t15.t18 t15.t29))
% 0.38/0.60  (step t15 (cl (not (not (>= tptp.a 0))) (not (>= tptp.a 1)) false) :rule subproof :discharge (t15.a0 t15.a1))
% 0.38/0.60  (step t16 (cl (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) (not (>= tptp.a 0))) :rule and_pos)
% 0.38/0.60  (step t17 (cl (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) (>= tptp.a 1)) :rule and_pos)
% 0.38/0.60  (step t18 (cl false (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) (not (and (not (>= tptp.a 0)) (>= tptp.a 1)))) :rule resolution :premises (t15 t16 t17))
% 0.38/0.60  (step t19 (cl (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) false) :rule reordering :premises (t18))
% 0.38/0.60  (step t20 (cl (not (and (not (>= tptp.a 0)) (>= tptp.a 1))) false) :rule contraction :premises (t19))
% 0.38/0.60  (step t21 (cl (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false) false) :rule resolution :premises (t14 t20))
% 0.38/0.60  (step t22 (cl (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false) (not false)) :rule implies_neg2)
% 0.38/0.60  (step t23 (cl (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false) (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false)) :rule resolution :premises (t21 t22))
% 0.38/0.60  (step t24 (cl (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false)) :rule contraction :premises (t23))
% 0.38/0.60  (step t25 (cl (= (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false) (not (and (not (>= tptp.a 0)) (>= tptp.a 1))))) :rule implies_simplify)
% 0.38/0.60  (step t26 (cl (not (=> (and (not (>= tptp.a 0)) (>= tptp.a 1)) false)) (not (and (not (>= tptp.a 0)) (>= tptp.a 1)))) :rule equiv1 :premises (t25))
% 0.38/0.60  (step t27 (cl (not (and (not (>= tptp.a 0)) (>= tptp.a 1)))) :rule resolution :premises (t24 t26))
% 0.38/0.60  (step t28 (cl (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) :rule not_and :premises (t27))
% 0.38/0.60  (step t29 (cl (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) (not (not (not (>= tptp.a 0))))) :rule or_neg)
% 0.38/0.60  (step t30 (cl (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) (not (not (>= tptp.a 1)))) :rule or_neg)
% 0.38/0.60  (step t31 (cl (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1))) (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1)))) :rule resolution :premises (t28 t29 t30))
% 0.38/0.60  (step t32 (cl (or (not (not (>= tptp.a 0))) (not (>= tptp.a 1)))) :rule contraction :premises (t31))
% 0.38/0.60  (step t33 (cl (or (>= tptp.a 0) (not (>= tptp.a 1)))) :rule resolution :premises (t1 t13 t32))
% 0.38/0.60  (step t34 (cl (>= tptp.a 0) (not (>= tptp.a 1))) :rule or :premises (t33))
% 0.38/0.60  (step t35 (cl (not (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a)))) :rule or_pos)
% 0.38/0.60  (step t36 (cl (tptp.q (+ (- 1) (* (- 1) tptp.a))) (not (>= tptp.a 0)) (not (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule reordering :premises (t35))
% 0.38/0.60  (step t37 (cl (not (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule or_pos)
% 0.38/0.60  (step t38 (cl (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))) (not (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule reordering :premises (t37))
% 0.38/0.60  (step t39 (cl (not (= (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (tptp.p (+ 1 tptp.a))))) (not (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (tptp.p (+ 1 tptp.a)))) :rule equiv_pos2)
% 0.38/0.60  (step t40 (cl (= (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))))) :rule refl)
% 0.38/0.60  (step t41 (cl (= tptp.a tptp.a)) :rule refl)
% 0.38/0.60  (step t42 (cl (= (* (- 1) (+ 1 tptp.a)) (+ (- 1) (* (- 1) tptp.a)))) :rule all_simplify)
% 0.38/0.60  (step t43 (cl (= (+ tptp.a (* (- 1) (+ 1 tptp.a))) (+ tptp.a (+ (- 1) (* (- 1) tptp.a))))) :rule cong :premises (t41 t42))
% 0.38/0.60  (step t44 (cl (= (+ tptp.a (+ (- 1) (* (- 1) tptp.a))) (- 1))) :rule all_simplify)
% 0.38/0.60  (step t45 (cl (= (+ tptp.a (* (- 1) (+ 1 tptp.a))) (- 1))) :rule trans :premises (t43 t44))
% 0.38/0.60  (step t46 (cl (= 0 0)) :rule refl)
% 0.38/0.60  (step t47 (cl (= (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (>= (- 1) 0))) :rule cong :premises (t45 t46))
% 0.38/0.60  (step t48 (cl (= (>= (- 1) 0) false)) :rule all_simplify)
% 0.38/0.60  (step t49 (cl (= (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) false)) :rule trans :premises (t47 t48))
% 0.38/0.60  (step t50 (cl (= (tptp.p (+ 1 tptp.a)) (tptp.p (+ 1 tptp.a)))) :rule refl)
% 0.38/0.60  (step t51 (cl (= (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))) (or false (tptp.p (+ 1 tptp.a))))) :rule cong :premises (t49 t50))
% 0.38/0.60  (step t52 (cl (= (or false (tptp.p (+ 1 tptp.a))) (tptp.p (+ 1 tptp.a)))) :rule all_simplify)
% 0.38/0.60  (step t53 (cl (= (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))) (tptp.p (+ 1 tptp.a)))) :rule trans :premises (t51 t52))
% 0.38/0.60  (step t54 (cl (= (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (tptp.p (+ 1 tptp.a))))) :rule cong :premises (t40 t53))
% 0.38/0.60  (step t55 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t56)
% 0.38/0.60  (assume t56.a0 (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))))
% 0.38/0.60  (step t56.t1 (cl (or (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))))) :rule forall_inst :args ((:= X (+ 1 tptp.a))))
% 0.38/0.60  (step t56.t2 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) :rule or :premises (t56.t1))
% 0.38/0.60  (step t56.t3 (cl (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) :rule resolution :premises (t56.t2 t56.a0))
% 0.38/0.60  (step t56 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) :rule subproof :discharge (t56.a0))
% 0.38/0.60  (step t57 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) :rule resolution :premises (t55 t56))
% 0.38/0.60  (step t58 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (not (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))))) :rule implies_neg2)
% 0.38/0.60  (step t59 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a)))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))))) :rule resolution :premises (t57 t58))
% 0.38/0.60  (step t60 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) (+ 1 tptp.a))) 0) (tptp.p (+ 1 tptp.a))))) :rule contraction :premises (t59))
% 0.38/0.60  (step t61 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (tptp.p (+ 1 tptp.a)))) :rule resolution :premises (t39 t54 t60))
% 0.38/0.60  (step t62 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (tptp.p (+ 1 tptp.a))) :rule implies :premises (t61))
% 0.38/0.60  (step t63 (cl (not (= (not (=> (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0))))) (not (=> (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))))) (not (not (=> (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0)))))) (not (=> (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))))) :rule equiv_pos2)
% 0.38/0.60  (anchor :step t64 :args ((X Int) (:= X X)))
% 0.38/0.60  (step t64.t1 (cl (= X X)) :rule refl)
% 0.38/0.60  (step t64.t2 (cl (= (< tptp.a X) (not (>= tptp.a X)))) :rule all_simplify)
% 0.38/0.60  (step t64.t3 (cl (= (>= tptp.a X) (>= (+ tptp.a (* (- 1) X)) 0))) :rule all_simplify)
% 0.38/0.60  (step t64.t4 (cl (= (not (>= tptp.a X)) (not (>= (+ tptp.a (* (- 1) X)) 0)))) :rule cong :premises (t64.t3))
% 0.38/0.60  (step t64.t5 (cl (= (< tptp.a X) (not (>= (+ tptp.a (* (- 1) X)) 0)))) :rule trans :premises (t64.t2 t64.t4))
% 0.38/0.60  (step t64.t6 (cl (= (tptp.p X) (tptp.p X))) :rule refl)
% 0.38/0.60  (step t64.t7 (cl (= (=> (< tptp.a X) (tptp.p X)) (=> (not (>= (+ tptp.a (* (- 1) X)) 0)) (tptp.p X)))) :rule cong :premises (t64.t5 t64.t6))
% 0.38/0.60  (step t64 (cl (= (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (not (>= (+ tptp.a (* (- 1) X)) 0)) (tptp.p X))))) :rule bind)
% 0.38/0.60  (step t65 (cl (= (forall ((X Int)) (=> (not (>= (+ tptp.a (* (- 1) X)) 0)) (tptp.p X))) (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))))) :rule all_simplify)
% 0.38/0.60  (step t66 (cl (= (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))))) :rule trans :premises (t64 t65))
% 0.38/0.60  (anchor :step t67 :args ((X Int) (:= X X)))
% 0.38/0.60  (step t67.t1 (cl (= X X)) :rule refl)
% 0.38/0.60  (step t67.t2 (cl (= (< X 0) (not (>= X 0)))) :rule all_simplify)
% 0.38/0.60  (step t67.t3 (cl (= (tptp.q X) (tptp.q X))) :rule refl)
% 0.38/0.60  (step t67.t4 (cl (= (=> (< X 0) (tptp.q X)) (=> (not (>= X 0)) (tptp.q X)))) :rule cong :premises (t67.t2 t67.t3))
% 0.38/0.60  (step t67 (cl (= (forall ((X Int)) (=> (< X 0) (tptp.q X))) (forall ((X Int)) (=> (not (>= X 0)) (tptp.q X))))) :rule bind)
% 0.38/0.60  (step t68 (cl (= (forall ((X Int)) (=> (not (>= X 0)) (tptp.q X))) (forall ((X Int)) (or (>= X 0) (tptp.q X))))) :rule all_simplify)
% 0.38/0.60  (step t69 (cl (= (forall ((X Int)) (=> (< X 0) (tptp.q X))) (forall ((X Int)) (or (>= X 0) (tptp.q X))))) :rule trans :premises (t67 t68))
% 0.38/0.60  (step t70 (cl (= (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))))) :rule cong :premises (t66 t69))
% 0.38/0.60  (anchor :step t71 :args ((X Int) (:= X X) (Y Int) (:= Y Y)))
% 0.38/0.60  (step t71.t1 (cl (= X X)) :rule refl)
% 0.38/0.60  (step t71.t2 (cl (= Y Y)) :rule refl)
% 0.38/0.60  (step t71.t3 (cl (= (tptp.p X) (tptp.p X))) :rule refl)
% 0.38/0.60  (step t71.t4 (cl (= (tptp.q Y) (tptp.q Y))) :rule refl)
% 0.38/0.60  (step t71.t5 (cl (= (= (+ X Y) 0) (= X (* (- 1) Y)))) :rule all_simplify)
% 0.38/0.60  (step t71.t6 (cl (= (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0)) (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y))))) :rule cong :premises (t71.t3 t71.t4 t71.t5))
% 0.38/0.60  (step t71 (cl (= (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y)))))) :rule bind)
% 0.38/0.60  (step t72 (cl (= (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y)))) (not (forall ((X Int) (Y Int)) (not (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y)))))))) :rule all_simplify)
% 0.38/0.60  (step t73 (cl (= (forall ((X Int) (Y Int)) (not (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y))))) (forall ((X Int) (Y Int)) (or (not (tptp.p X)) (not (tptp.q Y)) (not (= X (* (- 1) Y))))))) :rule all_simplify)
% 0.38/0.60  (step t74 (cl (= (forall ((X Int) (Y Int)) (or (not (tptp.p X)) (not (tptp.q Y)) (not (= X (* (- 1) Y))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) (not (= (* (- 1) Y) (* (- 1) Y))))))) :rule all_simplify)
% 0.38/0.60  (anchor :step t75 :args ((Y Int) (:= Y Y)))
% 0.38/0.60  (step t75.t1 (cl (= Y Y)) :rule refl)
% 0.38/0.60  (step t75.t2 (cl (= (not (tptp.p (* (- 1) Y))) (not (tptp.p (* (- 1) Y))))) :rule refl)
% 0.38/0.60  (step t75.t3 (cl (= (not (tptp.q Y)) (not (tptp.q Y)))) :rule refl)
% 0.38/0.60  (step t75.t4 (cl (= (= (* (- 1) Y) (* (- 1) Y)) true)) :rule all_simplify)
% 0.38/0.60  (step t75.t5 (cl (= (not (= (* (- 1) Y) (* (- 1) Y))) (not true))) :rule cong :premises (t75.t4))
% 0.38/0.60  (step t75.t6 (cl (= (not true) false)) :rule all_simplify)
% 0.38/0.60  (step t75.t7 (cl (= (not (= (* (- 1) Y) (* (- 1) Y))) false)) :rule trans :premises (t75.t5 t75.t6))
% 0.38/0.60  (step t75.t8 (cl (= (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) (not (= (* (- 1) Y) (* (- 1) Y)))) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) false))) :rule cong :premises (t75.t2 t75.t3 t75.t7))
% 0.38/0.60  (step t75.t9 (cl (= (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) false) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule all_simplify)
% 0.38/0.60  (step t75.t10 (cl (= (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) (not (= (* (- 1) Y) (* (- 1) Y)))) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule trans :premises (t75.t8 t75.t9))
% 0.38/0.60  (step t75 (cl (= (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)) (not (= (* (- 1) Y) (* (- 1) Y))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))) :rule bind)
% 0.38/0.60  (step t76 (cl (= (forall ((X Int) (Y Int)) (or (not (tptp.p X)) (not (tptp.q Y)) (not (= X (* (- 1) Y))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))) :rule trans :premises (t74 t75))
% 0.38/0.60  (step t77 (cl (= (forall ((X Int) (Y Int)) (not (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))) :rule trans :premises (t73 t76))
% 0.38/0.60  (step t78 (cl (= (not (forall ((X Int) (Y Int)) (not (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y)))))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))) :rule cong :premises (t77))
% 0.38/0.60  (step t79 (cl (= (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= X (* (- 1) Y)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))) :rule trans :premises (t72 t78))
% 0.38/0.60  (step t80 (cl (= (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))) :rule trans :premises (t71 t79))
% 0.38/0.60  (step t81 (cl (= (=> (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0)))) (=> (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))))) :rule cong :premises (t70 t80))
% 0.38/0.60  (step t82 (cl (= (not (=> (and (forall ((X Int)) (=> (< tptp.a X) (tptp.p X))) (forall ((X Int)) (=> (< X 0) (tptp.q X)))) (exists ((X Int) (Y Int)) (and (tptp.p X) (tptp.q Y) (= (+ X Y) 0))))) (not (=> (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))))) :rule cong :premises (t81))
% 0.38/0.60  (step t83 (cl (not (=> (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))))) :rule resolution :premises (t63 t82 a0))
% 0.38/0.60  (step t84 (cl (and (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (forall ((X Int)) (or (>= X 0) (tptp.q X))))) :rule not_implies1 :premises (t83))
% 0.38/0.60  (step t85 (cl (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) :rule and :premises (t84))
% 0.38/0.60  (step t86 (cl (tptp.p (+ 1 tptp.a))) :rule resolution :premises (t62 t85))
% 0.38/0.60  (step t87 (cl (not (= (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))))) (not (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule equiv_pos2)
% 0.38/0.60  (step t88 (cl (= (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))) :rule refl)
% 0.38/0.60  (step t89 (cl (= (* (- 1) (+ (- 1) (* (- 1) tptp.a))) (+ 1 tptp.a))) :rule all_simplify)
% 0.38/0.60  (step t90 (cl (= (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a)))) (tptp.p (+ 1 tptp.a)))) :rule cong :premises (t89))
% 0.38/0.60  (step t91 (cl (= (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.p (+ 1 tptp.a))))) :rule cong :premises (t90))
% 0.38/0.60  (step t92 (cl (= (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule refl)
% 0.38/0.60  (step t93 (cl (= (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule cong :premises (t91 t92))
% 0.38/0.60  (step t94 (cl (= (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))))) :rule cong :premises (t88 t93))
% 0.38/0.60  (step t95 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t96)
% 0.38/0.60  (assume t96.a0 (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))
% 0.38/0.60  (step t96.t1 (cl (or (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule forall_inst :args ((:= Y (+ (- 1) (* (- 1) tptp.a)))))
% 0.38/0.60  (step t96.t2 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule or :premises (t96.t1))
% 0.38/0.60  (step t96.t3 (cl (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule resolution :premises (t96.t2 t96.a0))
% 0.38/0.60  (step t96 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule subproof :discharge (t96.a0))
% 0.38/0.60  (step t97 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule resolution :premises (t95 t96))
% 0.38/0.60  (step t98 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (not (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule implies_neg2)
% 0.38/0.60  (step t99 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule resolution :premises (t97 t98))
% 0.38/0.60  (step t100 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (+ (- 1) (* (- 1) tptp.a))))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule contraction :premises (t99))
% 0.38/0.60  (step t101 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule resolution :premises (t87 t94 t100))
% 0.38/0.60  (step t102 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule implies :premises (t101))
% 0.38/0.60  (step t103 (cl (not (not (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule not_not)
% 0.38/0.60  (step t104 (cl (not (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))))) :rule not_implies2 :premises (t83))
% 0.38/0.60  (step t105 (cl (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule resolution :premises (t103 t104))
% 0.38/0.60  (step t106 (cl (or (not (tptp.p (+ 1 tptp.a))) (not (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule resolution :premises (t102 t105))
% 0.38/0.60  (step t107 (cl (not (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule resolution :premises (t38 t86 t106))
% 0.38/0.60  (step t108 (cl (not (= (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) (not (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule equiv_pos2)
% 0.38/0.60  (step t109 (cl (= (forall ((X Int)) (or (>= X 0) (tptp.q X))) (forall ((X Int)) (or (>= X 0) (tptp.q X))))) :rule refl)
% 0.38/0.60  (step t110 (cl (= (>= (+ (- 1) (* (- 1) tptp.a)) 0) (not (>= tptp.a 0)))) :rule all_simplify)
% 0.38/0.60  (step t111 (cl (= (tptp.q (+ (- 1) (* (- 1) tptp.a))) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule refl)
% 0.38/0.60  (step t112 (cl (= (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule cong :premises (t110 t111))
% 0.38/0.60  (step t113 (cl (= (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a))))))) :rule cong :premises (t109 t112))
% 0.38/0.60  (step t114 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t115)
% 0.38/0.60  (assume t115.a0 (forall ((X Int)) (or (>= X 0) (tptp.q X))))
% 0.38/0.60  (step t115.t1 (cl (or (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule forall_inst :args ((:= X (+ (- 1) (* (- 1) tptp.a)))))
% 0.38/0.60  (step t115.t2 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule or :premises (t115.t1))
% 0.38/0.60  (step t115.t3 (cl (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule resolution :premises (t115.t2 t115.a0))
% 0.38/0.60  (step t115 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule subproof :discharge (t115.a0))
% 0.38/0.60  (step t116 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule resolution :premises (t114 t115))
% 0.38/0.60  (step t117 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (not (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule implies_neg2)
% 0.38/0.60  (step t118 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule resolution :premises (t116 t117))
% 0.38/0.60  (step t119 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (+ (- 1) (* (- 1) tptp.a)) 0) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule contraction :premises (t118))
% 0.38/0.60  (step t120 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a)))))) :rule resolution :premises (t108 t113 t119))
% 0.38/0.60  (step t121 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule implies :premises (t120))
% 0.38/0.60  (step t122 (cl (forall ((X Int)) (or (>= X 0) (tptp.q X)))) :rule and :premises (t84))
% 0.38/0.60  (step t123 (cl (or (not (>= tptp.a 0)) (tptp.q (+ (- 1) (* (- 1) tptp.a))))) :rule resolution :premises (t121 t122))
% 0.38/0.60  (step t124 (cl (not (>= tptp.a 0))) :rule resolution :premises (t36 t107 t123))
% 0.38/0.60  (step t125 (cl (not (or (>= tptp.a 1) (tptp.p 1))) (>= tptp.a 1) (tptp.p 1)) :rule or_pos)
% 0.38/0.60  (step t126 (cl (tptp.p 1) (>= tptp.a 1) (not (or (>= tptp.a 1) (tptp.p 1)))) :rule reordering :premises (t125))
% 0.38/0.60  (step t127 (cl (not (or (not (tptp.p 1)) (not (tptp.q (- 1))))) (not (tptp.p 1)) (not (tptp.q (- 1)))) :rule or_pos)
% 0.38/0.60  (step t128 (cl (not (tptp.q (- 1))) (not (tptp.p 1)) (not (or (not (tptp.p 1)) (not (tptp.q (- 1)))))) :rule reordering :premises (t127))
% 0.38/0.60  (step t129 (cl (not (= (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (tptp.q (- 1))))) (not (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1))))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (tptp.q (- 1)))) :rule equiv_pos2)
% 0.38/0.60  (step t130 (cl (= (tptp.q (- 1)) (tptp.q (- 1)))) :rule refl)
% 0.38/0.60  (step t131 (cl (= (or (>= (- 1) 0) (tptp.q (- 1))) (or false (tptp.q (- 1))))) :rule cong :premises (t48 t130))
% 0.38/0.60  (step t132 (cl (= (or false (tptp.q (- 1))) (tptp.q (- 1)))) :rule all_simplify)
% 0.38/0.60  (step t133 (cl (= (or (>= (- 1) 0) (tptp.q (- 1))) (tptp.q (- 1)))) :rule trans :premises (t131 t132))
% 0.38/0.60  (step t134 (cl (= (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (tptp.q (- 1))))) :rule cong :premises (t109 t133))
% 0.38/0.60  (step t135 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (forall ((X Int)) (or (>= X 0) (tptp.q X)))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t136)
% 0.38/0.60  (assume t136.a0 (forall ((X Int)) (or (>= X 0) (tptp.q X))))
% 0.38/0.60  (step t136.t1 (cl (or (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (- 1) 0) (tptp.q (- 1))))) :rule forall_inst :args ((:= X (- 1))))
% 0.38/0.60  (step t136.t2 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (- 1) 0) (tptp.q (- 1)))) :rule or :premises (t136.t1))
% 0.38/0.60  (step t136.t3 (cl (or (>= (- 1) 0) (tptp.q (- 1)))) :rule resolution :premises (t136.t2 t136.a0))
% 0.38/0.60  (step t136 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (or (>= (- 1) 0) (tptp.q (- 1)))) :rule subproof :discharge (t136.a0))
% 0.38/0.60  (step t137 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (or (>= (- 1) 0) (tptp.q (- 1)))) :rule resolution :premises (t135 t136))
% 0.38/0.60  (step t138 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (not (or (>= (- 1) 0) (tptp.q (- 1))))) :rule implies_neg2)
% 0.38/0.60  (step t139 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1)))) (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1))))) :rule resolution :premises (t137 t138))
% 0.38/0.60  (step t140 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (or (>= (- 1) 0) (tptp.q (- 1))))) :rule contraction :premises (t139))
% 0.38/0.60  (step t141 (cl (=> (forall ((X Int)) (or (>= X 0) (tptp.q X))) (tptp.q (- 1)))) :rule resolution :premises (t129 t134 t140))
% 0.38/0.60  (step t142 (cl (not (forall ((X Int)) (or (>= X 0) (tptp.q X)))) (tptp.q (- 1))) :rule implies :premises (t141))
% 0.38/0.60  (step t143 (cl (tptp.q (- 1))) :rule resolution :premises (t142 t122))
% 0.38/0.60  (step t144 (cl (not (= (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p 1)) (not (tptp.q (- 1))))))) (not (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p 1)) (not (tptp.q (- 1)))))) :rule equiv_pos2)
% 0.38/0.60  (step t145 (cl (= (* (- 1) (- 1)) 1)) :rule all_simplify)
% 0.38/0.60  (step t146 (cl (= (tptp.p (* (- 1) (- 1))) (tptp.p 1))) :rule cong :premises (t145))
% 0.38/0.60  (step t147 (cl (= (not (tptp.p (* (- 1) (- 1)))) (not (tptp.p 1)))) :rule cong :premises (t146))
% 0.38/0.60  (step t148 (cl (= (not (tptp.q (- 1))) (not (tptp.q (- 1))))) :rule refl)
% 0.38/0.60  (step t149 (cl (= (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))) (or (not (tptp.p 1)) (not (tptp.q (- 1)))))) :rule cong :premises (t147 t148))
% 0.38/0.60  (step t150 (cl (= (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p 1)) (not (tptp.q (- 1))))))) :rule cong :premises (t88 t149))
% 0.38/0.60  (step t151 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t152)
% 0.38/0.60  (assume t152.a0 (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))))
% 0.38/0.60  (step t152.t1 (cl (or (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))))) :rule forall_inst :args ((:= Y (- 1))))
% 0.38/0.60  (step t152.t2 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) :rule or :premises (t152.t1))
% 0.38/0.60  (step t152.t3 (cl (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) :rule resolution :premises (t152.t2 t152.a0))
% 0.38/0.60  (step t152 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) :rule subproof :discharge (t152.a0))
% 0.38/0.60  (step t153 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) :rule resolution :premises (t151 t152))
% 0.38/0.60  (step t154 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (not (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))))) :rule implies_neg2)
% 0.38/0.60  (step t155 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1))))) (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))))) :rule resolution :premises (t153 t154))
% 0.38/0.60  (step t156 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p (* (- 1) (- 1)))) (not (tptp.q (- 1)))))) :rule contraction :premises (t155))
% 0.38/0.60  (step t157 (cl (=> (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y)))) (or (not (tptp.p 1)) (not (tptp.q (- 1)))))) :rule resolution :premises (t144 t150 t156))
% 0.38/0.60  (step t158 (cl (not (forall ((Y Int)) (or (not (tptp.p (* (- 1) Y))) (not (tptp.q Y))))) (or (not (tptp.p 1)) (not (tptp.q (- 1))))) :rule implies :premises (t157))
% 0.38/0.60  (step t159 (cl (or (not (tptp.p 1)) (not (tptp.q (- 1))))) :rule resolution :premises (t158 t105))
% 0.38/0.60  (step t160 (cl (not (tptp.p 1))) :rule resolution :premises (t128 t143 t159))
% 0.38/0.60  (step t161 (cl (not (= (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= tptp.a 1) (tptp.p 1))))) (not (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= tptp.a 1) (tptp.p 1)))) :rule equiv_pos2)
% 0.38/0.60  (step t162 (cl (= (* (- 1) 1) (- 1))) :rule all_simplify)
% 0.38/0.60  (step t163 (cl (= (+ tptp.a (* (- 1) 1)) (+ tptp.a (- 1)))) :rule cong :premises (t41 t162))
% 0.38/0.60  (step t164 (cl (= (+ tptp.a (- 1)) (+ (- 1) tptp.a))) :rule all_simplify)
% 0.38/0.60  (step t165 (cl (= (+ tptp.a (* (- 1) 1)) (+ (- 1) tptp.a))) :rule trans :premises (t163 t164))
% 0.38/0.60  (step t166 (cl (= (>= (+ tptp.a (* (- 1) 1)) 0) (>= (+ (- 1) tptp.a) 0))) :rule cong :premises (t165 t46))
% 0.38/0.60  (step t167 (cl (= (>= (+ (- 1) tptp.a) 0) (>= tptp.a 1))) :rule all_simplify)
% 0.38/0.60  (step t168 (cl (= (>= (+ tptp.a (* (- 1) 1)) 0) (>= tptp.a 1))) :rule trans :premises (t166 t167))
% 0.38/0.60  (step t169 (cl (= (tptp.p 1) (tptp.p 1))) :rule refl)
% 0.38/0.60  (step t170 (cl (= (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)) (or (>= tptp.a 1) (tptp.p 1)))) :rule cong :premises (t168 t169))
% 0.38/0.60  (step t171 (cl (= (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= tptp.a 1) (tptp.p 1))))) :rule cong :premises (t40 t170))
% 0.38/0.60  (step t172 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) :rule implies_neg1)
% 0.38/0.60  (anchor :step t173)
% 0.38/0.60  (assume t173.a0 (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))))
% 0.38/0.60  (step t173.t1 (cl (or (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)))) :rule forall_inst :args ((:= X 1)))
% 0.38/0.60  (step t173.t2 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) :rule or :premises (t173.t1))
% 0.38/0.60  (step t173.t3 (cl (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) :rule resolution :premises (t173.t2 t173.a0))
% 0.38/0.60  (step t173 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) :rule subproof :discharge (t173.a0))
% 0.38/0.60  (step t174 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) :rule resolution :premises (t172 t173))
% 0.38/0.60  (step t175 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (not (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)))) :rule implies_neg2)
% 0.38/0.60  (step t176 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1))) (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)))) :rule resolution :premises (t174 t175))
% 0.38/0.60  (step t177 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= (+ tptp.a (* (- 1) 1)) 0) (tptp.p 1)))) :rule contraction :premises (t176))
% 0.38/0.60  (step t178 (cl (=> (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X))) (or (>= tptp.a 1) (tptp.p 1)))) :rule resolution :premises (t161 t171 t177))
% 0.38/0.60  (step t179 (cl (not (forall ((X Int)) (or (>= (+ tptp.a (* (- 1) X)) 0) (tptp.p X)))) (or (>= tptp.a 1) (tptp.p 1))) :rule implies :premises (t178))
% 0.38/0.60  (step t180 (cl (or (>= tptp.a 1) (tptp.p 1))) :rule resolution :premises (t179 t85))
% 0.38/0.60  (step t181 (cl (>= tptp.a 1)) :rule resolution :premises (t126 t160 t180))
% 0.38/0.60  (step t182 (cl) :rule resolution :premises (t34 t124 t181))
% 0.38/0.60  
% 0.38/0.60  % SZS output end Proof for /export/starexec/sandbox/tmp/tmp.KsOeIt6Gbn/cvc5---1.0.5_6013.smt2
% 0.38/0.60  % cvc5---1.0.5 exiting
% 0.38/0.60  % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------