TSTP Solution File: DAT074_1 by cvc5---1.0.5

View Problem - Process Solution

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

% Computer : n020.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:42:58 EDT 2024

% Result   : Theorem 45.61s 45.88s
% Output   : Proof 45.71s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.13  % Problem    : DAT074_1 : TPTP v8.2.0. Released v6.1.0.
% 0.03/0.14  % Command    : do_cvc5 %s %d
% 0.15/0.34  % Computer : n020.cluster.edu
% 0.15/0.34  % Model    : x86_64 x86_64
% 0.15/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.34  % Memory   : 8042.1875MB
% 0.15/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.15/0.34  % CPULimit   : 300
% 0.15/0.34  % WCLimit    : 300
% 0.15/0.34  % DateTime   : Mon May 27 17:23:39 EDT 2024
% 0.15/0.35  % CPUTime    : 
% 0.21/0.49  %----Proving TF0_ARI
% 45.61/45.88  --- Run --finite-model-find --decision=internal at 15...
% 45.61/45.88  --- Run --decision=internal --simplification=none --no-inst-no-entail --no-cbqi --full-saturate-quant at 15...
% 45.61/45.88  --- Run --no-e-matching --full-saturate-quant at 15...
% 45.61/45.88  --- Run --cegqi-all --purify-triggers --full-saturate-quant at 15...
% 45.61/45.88  --- Run --macros-quant --macros-quant-mode=all --nl-ext-tplanes --full-saturate-quant...
% 45.61/45.88  % SZS status Theorem for /export/starexec/sandbox2/tmp/tmp.UYhEuKqi8t/cvc5---1.0.5_31120.smt2
% 45.61/45.88  % SZS output start Proof for /export/starexec/sandbox2/tmp/tmp.UYhEuKqi8t/cvc5---1.0.5_31120.smt2
% 45.61/45.88  (assume a0 (forall ((A tptp.array) (I Int) (V Int)) (= (tptp.read (tptp.write A I V) I) V)))
% 45.61/45.88  (assume a1 (forall ((A tptp.array) (I Int) (J Int) (V Int)) (or (= I J) (= (tptp.read (tptp.write A I V) J) (tptp.read A J)))))
% 45.61/45.88  (assume a2 (forall ((A tptp.array) (B tptp.array)) (=> (forall ((I Int)) (= (tptp.read A I) (tptp.read B I))) (= A B))))
% 45.61/45.88  (assume a3 (forall ((V Int) (I Int)) (= (tptp.read (tptp.init V) I) V)))
% 45.61/45.88  (assume a4 (forall ((A tptp.array) (N Int) (W Int)) (=> (and (forall ((I Int)) (=> (and (> N I) (>= I 0)) (<= (tptp.read A I) W))) (exists ((I Int)) (and (> N I) (>= I 0) (= (tptp.read A I) W)))) (= (tptp.max A N) W))))
% 45.71/45.88  (assume a5 (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J)))))))
% 45.71/45.88  (assume a6 (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)))))))
% 45.71/45.88  (assume a7 (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))))))
% 45.71/45.88  (assume a8 (forall ((A tptp.array) (B tptp.array) (N Int)) (=> (forall ((I Int)) (or (and (>= I 0) (> N I) (= (tptp.read B I) (tptp.read A (- N (+ I 1))))) (and (or (> 0 I) (>= I N)) (= (tptp.read B I) (tptp.read A I))))) (= (tptp.rev A N) B))))
% 45.71/45.88  (assume a9 (not (not (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)))))
% 45.71/45.88  (assume a10 true)
% 45.71/45.88  (step t1 (cl (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (not (= (tptp.read (tptp.init 0) 0) 0)) (not (= (tptp.read (tptp.init 0) 1) 0))) :rule and_neg)
% 45.71/45.88  (step t2 (cl (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) :rule implies_neg1)
% 45.71/45.88  (anchor :step t3)
% 45.71/45.88  (assume t3.a0 (= (tptp.read (tptp.init 0) 0) 0))
% 45.71/45.88  (assume t3.a1 (= (tptp.read (tptp.init 0) 1) 0))
% 45.71/45.88  (step t3.t1 (cl (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) :rule implies_neg1)
% 45.71/45.88  (anchor :step t3.t2)
% 45.71/45.88  (assume t3.t2.a0 (= (tptp.read (tptp.init 0) 1) 0))
% 45.71/45.88  (assume t3.t2.a1 (= (tptp.read (tptp.init 0) 0) 0))
% 45.71/45.88  (step t3.t2.t1 (cl (= 0 (tptp.read (tptp.init 0) 0))) :rule symm :premises (t3.t2.a1))
% 45.71/45.88  (step t3.t2.t2 (cl (= (tptp.read (tptp.init 0) 0) 0)) :rule symm :premises (t3.t2.t1))
% 45.71/45.88  (step t3.t2.t3 (cl (= 0 (tptp.read (tptp.init 0) 1))) :rule symm :premises (t3.t2.a0))
% 45.71/45.88  (step t3.t2.t4 (cl (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule trans :premises (t3.t2.t2 t3.t2.t3))
% 45.71/45.88  (step t3.t2 (cl (not (= (tptp.read (tptp.init 0) 1) 0)) (not (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule subproof :discharge (t3.t2.a0 t3.t2.a1))
% 45.71/45.88  (step t3.t3 (cl (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (= (tptp.read (tptp.init 0) 1) 0)) :rule and_pos)
% 45.71/45.88  (step t3.t4 (cl (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (= (tptp.read (tptp.init 0) 0) 0)) :rule and_pos)
% 45.71/45.88  (step t3.t5 (cl (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)) (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)))) :rule resolution :premises (t3.t2 t3.t3 t3.t4))
% 45.71/45.88  (step t3.t6 (cl (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule reordering :premises (t3.t5))
% 45.71/45.88  (step t3.t7 (cl (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule contraction :premises (t3.t6))
% 45.71/45.88  (step t3.t8 (cl (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t3.t1 t3.t7))
% 45.71/45.88  (step t3.t9 (cl (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule implies_neg2)
% 45.71/45.88  (step t3.t10 (cl (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule resolution :premises (t3.t8 t3.t9))
% 45.71/45.88  (step t3.t11 (cl (=> (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule contraction :premises (t3.t10))
% 45.71/45.88  (step t3.t12 (cl (not (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule implies :premises (t3.t11))
% 45.71/45.88  (step t3.t13 (cl (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0)) (not (= (tptp.read (tptp.init 0) 1) 0)) (not (= (tptp.read (tptp.init 0) 0) 0))) :rule and_neg)
% 45.71/45.88  (step t3.t14 (cl (and (= (tptp.read (tptp.init 0) 1) 0) (= (tptp.read (tptp.init 0) 0) 0))) :rule resolution :premises (t3.t13 t3.a1 t3.a0))
% 45.71/45.88  (step t3.t15 (cl (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t3.t12 t3.t14))
% 45.71/45.88  (step t3 (cl (not (= (tptp.read (tptp.init 0) 0) 0)) (not (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule subproof :discharge (t3.a0 t3.a1))
% 45.71/45.88  (step t4 (cl (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (= (tptp.read (tptp.init 0) 0) 0)) :rule and_pos)
% 45.71/45.88  (step t5 (cl (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (= (tptp.read (tptp.init 0) 1) 0)) :rule and_pos)
% 45.71/45.88  (step t6 (cl (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)) (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)))) :rule resolution :premises (t3 t4 t5))
% 45.71/45.88  (step t7 (cl (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule reordering :premises (t6))
% 45.71/45.88  (step t8 (cl (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule contraction :premises (t7))
% 45.71/45.88  (step t9 (cl (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t2 t8))
% 45.71/45.88  (step t10 (cl (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule implies_neg2)
% 45.71/45.88  (step t11 (cl (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule resolution :premises (t9 t10))
% 45.71/45.88  (step t12 (cl (=> (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule contraction :premises (t11))
% 45.71/45.88  (step t13 (cl (not (and (= (tptp.read (tptp.init 0) 0) 0) (= (tptp.read (tptp.init 0) 1) 0))) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule implies :premises (t12))
% 45.71/45.88  (step t14 (cl (not (= (tptp.read (tptp.init 0) 0) 0)) (not (= (tptp.read (tptp.init 0) 1) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t1 t13))
% 45.71/45.88  (step t15 (cl (not (= (tptp.read (tptp.init 0) 0) 0)) (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)) (not (= (tptp.read (tptp.init 0) 1) 0))) :rule reordering :premises (t14))
% 45.71/45.88  (step t16 (cl (not (= (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))))) (not (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)))) (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))))) :rule equiv_pos2)
% 45.71/45.88  (step t17 (cl (= (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule refl)
% 45.71/45.88  (step t18 (cl (= (>= 1 0) true)) :rule all_simplify)
% 45.71/45.88  (step t19 (cl (= (not (>= 1 0)) (not true))) :rule cong :premises (t18))
% 45.71/45.88  (step t20 (cl (= (not true) false)) :rule all_simplify)
% 45.71/45.88  (step t21 (cl (= (not (>= 1 0)) false)) :rule trans :premises (t19 t20))
% 45.71/45.88  (step t22 (cl (= (>= 0 0) true)) :rule all_simplify)
% 45.71/45.88  (step t23 (cl (= (not (>= 0 0)) (not true))) :rule cong :premises (t22))
% 45.71/45.88  (step t24 (cl (= (not (>= 0 0)) false)) :rule trans :premises (t23 t20))
% 45.71/45.88  (step t25 (cl (= (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))))) :rule refl)
% 45.71/45.88  (step t26 (cl (= (= 0 1) false)) :rule all_simplify)
% 45.71/45.88  (step t27 (cl (= (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)) (or false false (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) false))) :rule cong :premises (t21 t24 t25 t26))
% 45.71/45.88  (step t28 (cl (= (or false false (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) false) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))))) :rule all_simplify)
% 45.71/45.88  (step t29 (cl (= (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))))) :rule trans :premises (t27 t28))
% 45.71/45.88  (step t30 (cl (= (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))))) :rule cong :premises (t17 t29))
% 45.71/45.88  (step t31 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) :rule implies_neg1)
% 45.71/45.88  (anchor :step t32)
% 45.71/45.88  (assume t32.a0 (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))
% 45.71/45.88  (step t32.t1 (cl (or (not (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)))) :rule forall_inst :args ((:= N 0) (:= I 0) (:= J 1)))
% 45.71/45.88  (step t32.t2 (cl (not (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) :rule or :premises (t32.t1))
% 45.71/45.88  (step t32.t3 (cl (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) :rule resolution :premises (t32.t2 t32.a0))
% 45.71/45.88  (step t32 (cl (not (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) :rule subproof :discharge (t32.a0))
% 45.71/45.88  (step t33 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) :rule resolution :premises (t31 t32))
% 45.71/45.88  (step t34 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (not (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)))) :rule implies_neg2)
% 45.71/45.88  (step t35 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1))) (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)))) :rule resolution :premises (t33 t34))
% 45.71/45.88  (step t36 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (or (not (>= 1 0)) (not (>= 0 0)) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))) (= 0 1)))) :rule contraction :premises (t35))
% 45.71/45.88  (step t37 (cl (=> (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1))))) :rule resolution :premises (t16 t30 t36))
% 45.71/45.88  (step t38 (cl (not (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule implies :premises (t37))
% 45.71/45.88  (step t39 (cl (not (= (not (not (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) (not (not (not (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I))))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) :rule equiv_pos2)
% 45.71/45.88  (step t40 (cl (= (not (not (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)))) (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)))) :rule all_simplify)
% 45.71/45.88  (anchor :step t41 :args ((N Int) (:= N N) (I Int) (:= I I)))
% 45.71/45.88  (step t41.t1 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t41.t2 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t41.t3 (cl (and (= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J))))) (= tptp.inRange (lambda ((BOUND_VARIABLE_1012 tptp.array) (BOUND_VARIABLE_1013 Int) (BOUND_VARIABLE_1014 Int)) (forall ((I Int)) (or (not (>= (+ BOUND_VARIABLE_1014 (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ BOUND_VARIABLE_1013 (* (- 1) (tptp.read BOUND_VARIABLE_1012 I))) 0) (>= (tptp.read BOUND_VARIABLE_1012 I) 0)))))) (= tptp.sorted (lambda ((BOUND_VARIABLE_973 tptp.array) (BOUND_VARIABLE_974 Int)) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) J)) 1)) (not (>= (+ (tptp.read BOUND_VARIABLE_973 I) (* (- 1) (tptp.read BOUND_VARIABLE_973 J))) 1))))))) (not (= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))))) (not (= tptp.inRange (lambda ((BOUND_VARIABLE_1012 tptp.array) (BOUND_VARIABLE_1013 Int) (BOUND_VARIABLE_1014 Int)) (forall ((I Int)) (or (not (>= (+ BOUND_VARIABLE_1014 (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ BOUND_VARIABLE_1013 (* (- 1) (tptp.read BOUND_VARIABLE_1012 I))) 0) (>= (tptp.read BOUND_VARIABLE_1012 I) 0))))))) (not (= tptp.sorted (lambda ((BOUND_VARIABLE_973 tptp.array) (BOUND_VARIABLE_974 Int)) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) J)) 1)) (not (>= (+ (tptp.read BOUND_VARIABLE_973 I) (* (- 1) (tptp.read BOUND_VARIABLE_973 J))) 1)))))))) :rule and_neg)
% 45.71/45.88  (step t41.t4 (cl (not (= (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))))) (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J))))))) (not (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J))))))) (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J)))))) :rule equiv_pos2)
% 45.71/45.88  (anchor :step t41.t5 :args ((A tptp.array) (:= A A) (N Int) (:= N N)))
% 45.71/45.88  (step t41.t5.t1 (cl (= A A)) :rule refl)
% 45.71/45.88  (step t41.t5.t2 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t41.t5.t3 (cl (= (tptp.distinct A N) (tptp.distinct A N))) :rule refl)
% 45.71/45.88  (anchor :step t41.t5.t4 :args ((I Int) (:= I I) (J Int) (:= J J)))
% 45.71/45.88  (step t41.t5.t4.t1 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t41.t5.t4.t2 (cl (= J J)) :rule refl)
% 45.71/45.88  (step t41.t5.t4.t3 (cl (= (> N I) (not (<= N I)))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t4 (cl (= (<= N I) (not (>= (+ N (* (- 1) I)) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t5 (cl (= (not (<= N I)) (not (not (>= (+ N (* (- 1) I)) 1))))) :rule cong :premises (t41.t5.t4.t4))
% 45.71/45.88  (step t41.t5.t4.t6 (cl (= (not (not (>= (+ N (* (- 1) I)) 1))) (>= (+ N (* (- 1) I)) 1))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t7 (cl (= (not (<= N I)) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t5.t4.t5 t41.t5.t4.t6))
% 45.71/45.88  (step t41.t5.t4.t8 (cl (= (> N I) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t5.t4.t3 t41.t5.t4.t7))
% 45.71/45.88  (step t41.t5.t4.t9 (cl (= (> N J) (not (<= N J)))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t10 (cl (= (<= N J) (not (>= (+ N (* (- 1) J)) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t11 (cl (= (not (<= N J)) (not (not (>= (+ N (* (- 1) J)) 1))))) :rule cong :premises (t41.t5.t4.t10))
% 45.71/45.88  (step t41.t5.t4.t12 (cl (= (not (not (>= (+ N (* (- 1) J)) 1))) (>= (+ N (* (- 1) J)) 1))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t4.t13 (cl (= (not (<= N J)) (>= (+ N (* (- 1) J)) 1))) :rule trans :premises (t41.t5.t4.t11 t41.t5.t4.t12))
% 45.71/45.88  (step t41.t5.t4.t14 (cl (= (> N J) (>= (+ N (* (- 1) J)) 1))) :rule trans :premises (t41.t5.t4.t9 t41.t5.t4.t13))
% 45.71/45.88  (step t41.t5.t4.t15 (cl (= (>= J 0) (>= J 0))) :rule refl)
% 45.71/45.88  (step t41.t5.t4.t16 (cl (= (>= I 0) (>= I 0))) :rule refl)
% 45.71/45.88  (step t41.t5.t4.t17 (cl (= (and (> N I) (> N J) (>= J 0) (>= I 0)) (and (>= (+ N (* (- 1) I)) 1) (>= (+ N (* (- 1) J)) 1) (>= J 0) (>= I 0)))) :rule cong :premises (t41.t5.t4.t8 t41.t5.t4.t14 t41.t5.t4.t15 t41.t5.t4.t16))
% 45.71/45.88  (step t41.t5.t4.t18 (cl (= (=> (= (tptp.read A I) (tptp.read A J)) (= I J)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))) :rule refl)
% 45.71/45.88  (step t41.t5.t4.t19 (cl (= (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J))) (=> (and (>= (+ N (* (- 1) I)) 1) (>= (+ N (* (- 1) J)) 1) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J))))) :rule cong :premises (t41.t5.t4.t17 t41.t5.t4.t18))
% 45.71/45.88  (step t41.t5.t4 (cl (= (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))) (forall ((I Int) (J Int)) (=> (and (>= (+ N (* (- 1) I)) 1) (>= (+ N (* (- 1) J)) 1) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))))) :rule bind)
% 45.71/45.88  (step t41.t5.t5 (cl (= (forall ((I Int) (J Int)) (=> (and (>= (+ N (* (- 1) I)) 1) (>= (+ N (* (- 1) J)) 1) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J))))) :rule all_simplify)
% 45.71/45.88  (step t41.t5.t6 (cl (= (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J))))) :rule trans :premises (t41.t5.t4 t41.t5.t5))
% 45.71/45.88  (step t41.t5.t7 (cl (= (= (tptp.distinct A N) (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J))))) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J)))))) :rule cong :premises (t41.t5.t3 t41.t5.t6))
% 45.71/45.88  (step t41.t5 (cl (= (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (=> (and (> N I) (> N J) (>= J 0) (>= I 0)) (=> (= (tptp.read A I) (tptp.read A J)) (= I J)))))) (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J))))))) :rule bind)
% 45.71/45.88  (step t41.t6 (cl (forall ((A tptp.array) (N Int)) (= (tptp.distinct A N) (forall ((I Int) (J Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= (+ N (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read A I) (tptp.read A J))) (= I J)))))) :rule resolution :premises (t41.t4 t41.t5 a7))
% 45.71/45.88  (step t41.t7 (cl (= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))))) :rule hole :premises (t41.t6) :args ((= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))))))
% 45.71/45.88  (step t41.t8 (cl (not (= (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)))))) (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))))))) (not (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0))))))) (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0))))))) :rule equiv_pos2)
% 45.71/45.88  (anchor :step t41.t9 :args ((A tptp.array) (:= A A) (R Int) (:= R R) (N Int) (:= N N)))
% 45.71/45.88  (step t41.t9.t1 (cl (= A A)) :rule refl)
% 45.71/45.88  (step t41.t9.t2 (cl (= R R)) :rule refl)
% 45.71/45.88  (step t41.t9.t3 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t41.t9.t4 (cl (= (tptp.inRange A R N) (tptp.inRange A R N))) :rule refl)
% 45.71/45.88  (anchor :step t41.t9.t5 :args ((I Int) (:= I I)))
% 45.71/45.88  (step t41.t9.t5.t1 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t41.t9.t5.t2 (cl (= (> N I) (not (<= N I)))) :rule all_simplify)
% 45.71/45.88  (step t41.t9.t5.t3 (cl (= (<= N I) (not (>= (+ N (* (- 1) I)) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t9.t5.t4 (cl (= (not (<= N I)) (not (not (>= (+ N (* (- 1) I)) 1))))) :rule cong :premises (t41.t9.t5.t3))
% 45.71/45.88  (step t41.t9.t5.t5 (cl (= (not (not (>= (+ N (* (- 1) I)) 1))) (>= (+ N (* (- 1) I)) 1))) :rule all_simplify)
% 45.71/45.88  (step t41.t9.t5.t6 (cl (= (not (<= N I)) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t9.t5.t4 t41.t9.t5.t5))
% 45.71/45.88  (step t41.t9.t5.t7 (cl (= (> N I) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t9.t5.t2 t41.t9.t5.t6))
% 45.71/45.88  (step t41.t9.t5.t8 (cl (= (>= I 0) (>= I 0))) :rule refl)
% 45.71/45.88  (step t41.t9.t5.t9 (cl (= (and (> N I) (>= I 0)) (and (>= (+ N (* (- 1) I)) 1) (>= I 0)))) :rule cong :premises (t41.t9.t5.t7 t41.t9.t5.t8))
% 45.71/45.88  (step t41.t9.t5.t10 (cl (= (>= R (tptp.read A I)) (>= (+ R (* (- 1) (tptp.read A I))) 0))) :rule all_simplify)
% 45.71/45.88  (step t41.t9.t5.t11 (cl (= (>= (tptp.read A I) 0) (>= (tptp.read A I) 0))) :rule refl)
% 45.71/45.88  (step t41.t9.t5.t12 (cl (= (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))) :rule cong :premises (t41.t9.t5.t10 t41.t9.t5.t11))
% 45.71/45.88  (step t41.t9.t5.t13 (cl (= (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0))) (=> (and (>= (+ N (* (- 1) I)) 1) (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0))))) :rule cong :premises (t41.t9.t5.t9 t41.t9.t5.t12))
% 45.71/45.88  (step t41.t9.t5 (cl (= (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)))) (forall ((I Int)) (=> (and (>= (+ N (* (- 1) I)) 1) (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))))) :rule bind)
% 45.71/45.88  (step t41.t9.t6 (cl (= (forall ((I Int)) (=> (and (>= (+ N (* (- 1) I)) 1) (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))))) :rule all_simplify)
% 45.71/45.88  (step t41.t9.t7 (cl (= (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)))) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))))) :rule trans :premises (t41.t9.t5 t41.t9.t6))
% 45.71/45.88  (step t41.t9.t8 (cl (= (= (tptp.inRange A R N) (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0))))) (= (tptp.inRange A R N) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0))))))) :rule cong :premises (t41.t9.t4 t41.t9.t7))
% 45.71/45.88  (step t41.t9 (cl (= (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (=> (and (> N I) (>= I 0)) (and (>= R (tptp.read A I)) (>= (tptp.read A I) 0)))))) (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0)))))))) :rule bind)
% 45.71/45.88  (step t41.t10 (cl (forall ((A tptp.array) (R Int) (N Int)) (= (tptp.inRange A R N) (forall ((I Int)) (or (not (>= (+ N (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ R (* (- 1) (tptp.read A I))) 0) (>= (tptp.read A I) 0))))))) :rule resolution :premises (t41.t8 t41.t9 a6))
% 45.71/45.88  (step t41.t11 (cl (= tptp.inRange (lambda ((BOUND_VARIABLE_1012 tptp.array) (BOUND_VARIABLE_1013 Int) (BOUND_VARIABLE_1014 Int)) (forall ((I Int)) (or (not (>= (+ BOUND_VARIABLE_1014 (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ BOUND_VARIABLE_1013 (* (- 1) (tptp.read BOUND_VARIABLE_1012 I))) 0) (>= (tptp.read BOUND_VARIABLE_1012 I) 0))))))) :rule hole :premises (t41.t10) :args ((= tptp.inRange (lambda ((BOUND_VARIABLE_1012 tptp.array) (BOUND_VARIABLE_1013 Int) (BOUND_VARIABLE_1014 Int)) (forall ((I Int)) (or (not (>= (+ BOUND_VARIABLE_1014 (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ BOUND_VARIABLE_1013 (* (- 1) (tptp.read BOUND_VARIABLE_1012 I))) 0) (>= (tptp.read BOUND_VARIABLE_1012 I) 0))))))))
% 45.71/45.88  (step t41.t12 (cl (not (= (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J)))))) (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))))))) (not (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J))))))) (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1))))))) :rule equiv_pos2)
% 45.71/45.88  (anchor :step t41.t13 :args ((A tptp.array) (:= A A) (N Int) (:= N N)))
% 45.71/45.88  (step t41.t13.t1 (cl (= A A)) :rule refl)
% 45.71/45.88  (step t41.t13.t2 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t41.t13.t3 (cl (= (tptp.sorted A N) (tptp.sorted A N))) :rule refl)
% 45.71/45.88  (anchor :step t41.t13.t4 :args ((I Int) (:= I I) (J Int) (:= J J)))
% 45.71/45.88  (step t41.t13.t4.t1 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t41.t13.t4.t2 (cl (= J J)) :rule refl)
% 45.71/45.88  (step t41.t13.t4.t3 (cl (= (<= 0 I) (>= I 0))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t4 (cl (= (< I N) (not (>= I N)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t5 (cl (= (>= I N) (not (>= (+ N (* (- 1) I)) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t6 (cl (= (not (>= I N)) (not (not (>= (+ N (* (- 1) I)) 1))))) :rule cong :premises (t41.t13.t4.t5))
% 45.71/45.88  (step t41.t13.t4.t7 (cl (= (not (not (>= (+ N (* (- 1) I)) 1))) (>= (+ N (* (- 1) I)) 1))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t8 (cl (= (not (>= I N)) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t13.t4.t6 t41.t13.t4.t7))
% 45.71/45.88  (step t41.t13.t4.t9 (cl (= (< I N) (>= (+ N (* (- 1) I)) 1))) :rule trans :premises (t41.t13.t4.t4 t41.t13.t4.t8))
% 45.71/45.88  (step t41.t13.t4.t10 (cl (= (< I J) (not (>= I J)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t11 (cl (= (>= I J) (>= (+ I (* (- 1) J)) 0))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t12 (cl (= (not (>= I J)) (not (>= (+ I (* (- 1) J)) 0)))) :rule cong :premises (t41.t13.t4.t11))
% 45.71/45.88  (step t41.t13.t4.t13 (cl (= (< I J) (not (>= (+ I (* (- 1) J)) 0)))) :rule trans :premises (t41.t13.t4.t10 t41.t13.t4.t12))
% 45.71/45.88  (step t41.t13.t4.t14 (cl (= (< J N) (not (>= J N)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t15 (cl (= (>= J N) (not (>= (+ N (* (- 1) J)) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t16 (cl (= (not (>= J N)) (not (not (>= (+ N (* (- 1) J)) 1))))) :rule cong :premises (t41.t13.t4.t15))
% 45.71/45.88  (step t41.t13.t4.t17 (cl (= (not (not (>= (+ N (* (- 1) J)) 1))) (>= (+ N (* (- 1) J)) 1))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t18 (cl (= (not (>= J N)) (>= (+ N (* (- 1) J)) 1))) :rule trans :premises (t41.t13.t4.t16 t41.t13.t4.t17))
% 45.71/45.88  (step t41.t13.t4.t19 (cl (= (< J N) (>= (+ N (* (- 1) J)) 1))) :rule trans :premises (t41.t13.t4.t14 t41.t13.t4.t18))
% 45.71/45.88  (step t41.t13.t4.t20 (cl (= (and (<= 0 I) (< I N) (< I J) (< J N)) (and (>= I 0) (>= (+ N (* (- 1) I)) 1) (not (>= (+ I (* (- 1) J)) 0)) (>= (+ N (* (- 1) J)) 1)))) :rule cong :premises (t41.t13.t4.t3 t41.t13.t4.t9 t41.t13.t4.t13 t41.t13.t4.t19))
% 45.71/45.88  (step t41.t13.t4.t21 (cl (= (<= (tptp.read A I) (tptp.read A J)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t4.t22 (cl (= (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J))) (=> (and (>= I 0) (>= (+ N (* (- 1) I)) 1) (not (>= (+ I (* (- 1) J)) 0)) (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1))))) :rule cong :premises (t41.t13.t4.t20 t41.t13.t4.t21))
% 45.71/45.88  (step t41.t13.t4 (cl (= (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J)))) (forall ((I Int) (J Int)) (=> (and (>= I 0) (>= (+ N (* (- 1) I)) 1) (not (>= (+ I (* (- 1) J)) 0)) (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))))) :rule bind)
% 45.71/45.88  (step t41.t13.t5 (cl (= (forall ((I Int) (J Int)) (=> (and (>= I 0) (>= (+ N (* (- 1) I)) 1) (not (>= (+ I (* (- 1) J)) 0)) (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))))) :rule all_simplify)
% 45.71/45.88  (step t41.t13.t6 (cl (= (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J)))) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))))) :rule trans :premises (t41.t13.t4 t41.t13.t5))
% 45.71/45.88  (step t41.t13.t7 (cl (= (= (tptp.sorted A N) (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J))))) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1))))))) :rule cong :premises (t41.t13.t3 t41.t13.t6))
% 45.71/45.88  (step t41.t13 (cl (= (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (=> (and (<= 0 I) (< I N) (< I J) (< J N)) (<= (tptp.read A I) (tptp.read A J)))))) (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1)))))))) :rule bind)
% 45.71/45.88  (step t41.t14 (cl (forall ((A tptp.array) (N Int)) (= (tptp.sorted A N) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ N (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ N (* (- 1) J)) 1)) (not (>= (+ (tptp.read A I) (* (- 1) (tptp.read A J))) 1))))))) :rule resolution :premises (t41.t12 t41.t13 a5))
% 45.71/45.88  (step t41.t15 (cl (= tptp.sorted (lambda ((BOUND_VARIABLE_973 tptp.array) (BOUND_VARIABLE_974 Int)) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) J)) 1)) (not (>= (+ (tptp.read BOUND_VARIABLE_973 I) (* (- 1) (tptp.read BOUND_VARIABLE_973 J))) 1))))))) :rule hole :premises (t41.t14) :args ((= tptp.sorted (lambda ((BOUND_VARIABLE_973 tptp.array) (BOUND_VARIABLE_974 Int)) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) J)) 1)) (not (>= (+ (tptp.read BOUND_VARIABLE_973 I) (* (- 1) (tptp.read BOUND_VARIABLE_973 J))) 1))))))))
% 45.71/45.88  (step t41.t16 (cl (and (= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J))))) (= tptp.inRange (lambda ((BOUND_VARIABLE_1012 tptp.array) (BOUND_VARIABLE_1013 Int) (BOUND_VARIABLE_1014 Int)) (forall ((I Int)) (or (not (>= (+ BOUND_VARIABLE_1014 (* (- 1) I)) 1)) (not (>= I 0)) (and (>= (+ BOUND_VARIABLE_1013 (* (- 1) (tptp.read BOUND_VARIABLE_1012 I))) 0) (>= (tptp.read BOUND_VARIABLE_1012 I) 0)))))) (= tptp.sorted (lambda ((BOUND_VARIABLE_973 tptp.array) (BOUND_VARIABLE_974 Int)) (forall ((I Int) (J Int)) (or (not (>= I 0)) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) I)) 1)) (>= (+ I (* (- 1) J)) 0) (not (>= (+ BOUND_VARIABLE_974 (* (- 1) J)) 1)) (not (>= (+ (tptp.read BOUND_VARIABLE_973 I) (* (- 1) (tptp.read BOUND_VARIABLE_973 J))) 1)))))))) :rule resolution :premises (t41.t3 t41.t7 t41.t11 t41.t15))
% 45.71/45.88  (step t41.t17 (cl (= tptp.distinct (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))))) :rule and :premises (t41.t16))
% 45.71/45.88  (step t41.t18 (cl (= (tptp.init N) (tptp.init N))) :rule refl)
% 45.71/45.88  (step t41.t19 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t41.t20 (cl (= (tptp.distinct (tptp.init N) I) (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I))) :rule hole :premises (t41.t17 t41.t18 t41.t19) :args (24))
% 45.71/45.88  (step t41 (cl (= (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)) (forall ((N Int) (I Int)) (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I)))) :rule bind)
% 45.71/45.88  (anchor :step t42 :args ((N Int) (:= N N) (I Int) (:= I I)))
% 45.71/45.88  (step t42.t1 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t42.t2 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t42.t3 (cl (= (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I) (forall ((I Int) (J Int)) (or (not (>= (+ I (* (- 1) I)) 1)) (not (>= (+ I (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule all_simplify)
% 45.71/45.88  (anchor :step t42.t4 :args ((I Int) (:= I I) (J Int) (:= J J)))
% 45.71/45.88  (step t42.t4.t1 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t42.t4.t2 (cl (= J J)) :rule refl)
% 45.71/45.88  (step t42.t4.t3 (cl (= (+ I (* (- 1) I)) (+ (* (- 1) I) I))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t4 (cl (= 1 1)) :rule refl)
% 45.71/45.88  (step t42.t4.t5 (cl (= (>= (+ I (* (- 1) I)) 1) (>= (+ (* (- 1) I) I) 1))) :rule cong :premises (t42.t4.t3 t42.t4.t4))
% 45.71/45.88  (step t42.t4.t6 (cl (= (>= (+ (* (- 1) I) I) 1) (not (>= (+ I (* (- 1) I)) 0)))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t7 (cl (= (>= (+ I (* (- 1) I)) 1) (not (>= (+ I (* (- 1) I)) 0)))) :rule trans :premises (t42.t4.t5 t42.t4.t6))
% 45.71/45.88  (step t42.t4.t8 (cl (= (not (>= (+ I (* (- 1) I)) 1)) (not (not (>= (+ I (* (- 1) I)) 0))))) :rule cong :premises (t42.t4.t7))
% 45.71/45.88  (step t42.t4.t9 (cl (= (not (not (>= (+ I (* (- 1) I)) 0))) (>= (+ I (* (- 1) I)) 0))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t10 (cl (= (not (>= (+ I (* (- 1) I)) 1)) (>= (+ I (* (- 1) I)) 0))) :rule trans :premises (t42.t4.t8 t42.t4.t9))
% 45.71/45.88  (step t42.t4.t11 (cl (= (+ I (* (- 1) J)) (+ (* (- 1) J) I))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t12 (cl (= (>= (+ I (* (- 1) J)) 1) (>= (+ (* (- 1) J) I) 1))) :rule cong :premises (t42.t4.t11 t42.t4.t4))
% 45.71/45.88  (step t42.t4.t13 (cl (= (>= (+ (* (- 1) J) I) 1) (not (>= (+ J (* (- 1) I)) 0)))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t14 (cl (= (>= (+ I (* (- 1) J)) 1) (not (>= (+ J (* (- 1) I)) 0)))) :rule trans :premises (t42.t4.t12 t42.t4.t13))
% 45.71/45.88  (step t42.t4.t15 (cl (= (not (>= (+ I (* (- 1) J)) 1)) (not (not (>= (+ J (* (- 1) I)) 0))))) :rule cong :premises (t42.t4.t14))
% 45.71/45.88  (step t42.t4.t16 (cl (= (not (not (>= (+ J (* (- 1) I)) 0))) (>= (+ J (* (- 1) I)) 0))) :rule all_simplify)
% 45.71/45.88  (step t42.t4.t17 (cl (= (not (>= (+ I (* (- 1) J)) 1)) (>= (+ J (* (- 1) I)) 0))) :rule trans :premises (t42.t4.t15 t42.t4.t16))
% 45.71/45.88  (step t42.t4.t18 (cl (= (not (>= J 0)) (not (>= J 0)))) :rule refl)
% 45.71/45.88  (step t42.t4.t19 (cl (= (not (>= I 0)) (not (>= I 0)))) :rule refl)
% 45.71/45.88  (step t42.t4.t20 (cl (= (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))))) :rule refl)
% 45.71/45.88  (step t42.t4.t21 (cl (= (= I J) (= I J))) :rule refl)
% 45.71/45.88  (step t42.t4.t22 (cl (= (or (not (>= (+ I (* (- 1) I)) 1)) (not (>= (+ I (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) :rule cong :premises (t42.t4.t10 t42.t4.t17 t42.t4.t18 t42.t4.t19 t42.t4.t20 t42.t4.t21))
% 45.71/45.88  (step t42.t4 (cl (= (forall ((I Int) (J Int)) (or (not (>= (+ I (* (- 1) I)) 1)) (not (>= (+ I (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (forall ((I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule bind)
% 45.71/45.88  (step t42.t5 (cl (= (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I) (forall ((I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t42.t3 t42.t4))
% 45.71/45.88  (step t42 (cl (= (forall ((N Int) (I Int)) (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I)) (forall ((N Int) (I Int)) (forall ((I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))))) :rule bind)
% 45.71/45.88  (step t43 (cl (= (forall ((N Int) (I Int)) (forall ((I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (forall ((N Int) (I Int) (I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule all_simplify)
% 45.71/45.88  (step t44 (cl (= (forall ((N Int) (I Int) (I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (forall ((N Int) (I Int) (J Int)) (or false false (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule all_simplify)
% 45.71/45.88  (anchor :step t45 :args ((N Int) (:= N N) (I Int) (:= I I) (J Int) (:= J J)))
% 45.71/45.88  (step t45.t1 (cl (= N N)) :rule refl)
% 45.71/45.88  (step t45.t2 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t45.t3 (cl (= J J)) :rule refl)
% 45.71/45.88  (step t45.t4 (cl (= (or false false (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) :rule all_simplify)
% 45.71/45.88  (step t45 (cl (= (forall ((N Int) (I Int) (J Int)) (or false false (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule bind)
% 45.71/45.88  (step t46 (cl (= (forall ((N Int) (I Int) (I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t44 t45))
% 45.71/45.88  (step t47 (cl (= (forall ((N Int) (I Int)) (forall ((I Int) (J Int)) (or (>= (+ I (* (- 1) I)) 0) (>= (+ J (* (- 1) I)) 0) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t43 t46))
% 45.71/45.88  (step t48 (cl (= (forall ((N Int) (I Int)) (@ (@ (lambda ((BOUND_VARIABLE_1046 tptp.array) (BOUND_VARIABLE_1047 Int)) (forall ((I Int) (J Int)) (or (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) I)) 1)) (not (>= (+ BOUND_VARIABLE_1047 (* (- 1) J)) 1)) (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read BOUND_VARIABLE_1046 I) (tptp.read BOUND_VARIABLE_1046 J))) (= I J)))) (tptp.init N)) I)) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t42 t47))
% 45.71/45.88  (step t49 (cl (= (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t41 t48))
% 45.71/45.88  (step t50 (cl (= (not (not (forall ((N Int) (I Int)) (tptp.distinct (tptp.init N) I)))) (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J))))) :rule trans :premises (t40 t49))
% 45.71/45.88  (step t51 (cl (forall ((N Int) (I Int) (J Int)) (or (not (>= J 0)) (not (>= I 0)) (not (= (tptp.read (tptp.init N) I) (tptp.read (tptp.init N) J))) (= I J)))) :rule resolution :premises (t39 t50 a9))
% 45.71/45.88  (step t52 (cl (not (= (tptp.read (tptp.init 0) 0) (tptp.read (tptp.init 0) 1)))) :rule resolution :premises (t38 t51))
% 45.71/45.88  (step t53 (cl (not (= (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 1) 0)))) (not (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1)))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 1) 0))) :rule equiv_pos2)
% 45.71/45.88  (step t54 (cl (= (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))))) :rule refl)
% 45.71/45.88  (step t55 (cl (= (= 0 (tptp.read (tptp.init 0) 1)) (= (tptp.read (tptp.init 0) 1) 0))) :rule all_simplify)
% 45.71/45.88  (step t56 (cl (= (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 1) 0)))) :rule cong :premises (t54 t55))
% 45.71/45.88  (step t57 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) :rule implies_neg1)
% 45.71/45.88  (anchor :step t58)
% 45.71/45.88  (assume t58.a0 (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))))
% 45.71/45.88  (step t58.t1 (cl (or (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 1)))) :rule forall_inst :args ((:= V 0) (:= I 1)))
% 45.71/45.88  (step t58.t2 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 1))) :rule or :premises (t58.t1))
% 45.71/45.88  (step t58.t3 (cl (= 0 (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t58.t2 t58.a0))
% 45.71/45.88  (step t58 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 1))) :rule subproof :discharge (t58.a0))
% 45.71/45.88  (step t59 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (= 0 (tptp.read (tptp.init 0) 1))) :rule resolution :premises (t57 t58))
% 45.71/45.88  (step t60 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (not (= 0 (tptp.read (tptp.init 0) 1)))) :rule implies_neg2)
% 45.71/45.88  (step t61 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1)))) :rule resolution :premises (t59 t60))
% 45.71/45.88  (step t62 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 1)))) :rule contraction :premises (t61))
% 45.71/45.88  (step t63 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 1) 0))) :rule resolution :premises (t53 t56 t62))
% 45.71/45.88  (step t64 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= (tptp.read (tptp.init 0) 1) 0)) :rule implies :premises (t63))
% 45.71/45.88  (step t65 (cl (not (= (forall ((V Int) (I Int)) (= (tptp.read (tptp.init V) I) V)) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))))) (not (forall ((V Int) (I Int)) (= (tptp.read (tptp.init V) I) V))) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) :rule equiv_pos2)
% 45.71/45.88  (anchor :step t66 :args ((V Int) (:= V V) (I Int) (:= I I)))
% 45.71/45.88  (step t66.t1 (cl (= V V)) :rule refl)
% 45.71/45.88  (step t66.t2 (cl (= I I)) :rule refl)
% 45.71/45.88  (step t66.t3 (cl (= (= (tptp.read (tptp.init V) I) V) (= V (tptp.read (tptp.init V) I)))) :rule all_simplify)
% 45.71/45.88  (step t66 (cl (= (forall ((V Int) (I Int)) (= (tptp.read (tptp.init V) I) V)) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))))) :rule bind)
% 45.71/45.88  (step t67 (cl (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) :rule resolution :premises (t65 t66 a3))
% 45.71/45.88  (step t68 (cl (= (tptp.read (tptp.init 0) 1) 0)) :rule resolution :premises (t64 t67))
% 45.71/45.88  (step t69 (cl (not (= (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 0) 0)))) (not (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0)))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 0) 0))) :rule equiv_pos2)
% 45.71/45.88  (step t70 (cl (= (= 0 (tptp.read (tptp.init 0) 0)) (= (tptp.read (tptp.init 0) 0) 0))) :rule all_simplify)
% 45.71/45.88  (step t71 (cl (= (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 0) 0)))) :rule cong :premises (t54 t70))
% 45.71/45.88  (step t72 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) :rule implies_neg1)
% 45.71/45.88  (anchor :step t73)
% 45.71/45.88  (assume t73.a0 (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))))
% 45.71/45.88  (step t73.t1 (cl (or (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 0)))) :rule forall_inst :args ((:= V 0) (:= I 0)))
% 45.71/45.88  (step t73.t2 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 0))) :rule or :premises (t73.t1))
% 45.71/45.88  (step t73.t3 (cl (= 0 (tptp.read (tptp.init 0) 0))) :rule resolution :premises (t73.t2 t73.a0))
% 45.71/45.88  (step t73 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= 0 (tptp.read (tptp.init 0) 0))) :rule subproof :discharge (t73.a0))
% 45.71/45.88  (step t74 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (= 0 (tptp.read (tptp.init 0) 0))) :rule resolution :premises (t72 t73))
% 45.71/45.88  (step t75 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (not (= 0 (tptp.read (tptp.init 0) 0)))) :rule implies_neg2)
% 45.71/45.88  (step t76 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0))) (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0)))) :rule resolution :premises (t74 t75))
% 45.71/45.88  (step t77 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= 0 (tptp.read (tptp.init 0) 0)))) :rule contraction :premises (t76))
% 45.71/45.88  (step t78 (cl (=> (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I))) (= (tptp.read (tptp.init 0) 0) 0))) :rule resolution :premises (t69 t71 t77))
% 45.71/45.88  (step t79 (cl (not (forall ((V Int) (I Int)) (= V (tptp.read (tptp.init V) I)))) (= (tptp.read (tptp.init 0) 0) 0)) :rule implies :premises (t78))
% 45.71/45.88  (step t80 (cl (= (tptp.read (tptp.init 0) 0) 0)) :rule resolution :premises (t79 t67))
% 45.71/45.88  (step t81 (cl) :rule resolution :premises (t15 t52 t68 t80))
% 45.71/45.88  
% 45.71/45.88  % SZS output end Proof for /export/starexec/sandbox2/tmp/tmp.UYhEuKqi8t/cvc5---1.0.5_31120.smt2
% 45.71/45.88  % cvc5---1.0.5 exiting
% 45.71/45.88  % cvc5---1.0.5 exiting
%------------------------------------------------------------------------------