TSTP Solution File: SWV164+1 by Zenon---0.7.1

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zenon---0.7.1
% Problem  : SWV164+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_zenon %s %d

% Computer : n004.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  : 600s
% DateTime : Wed Jul 20 23:03:10 EDT 2022

% Result   : Theorem 90.44s 90.70s
% Output   : Proof 90.52s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.13  % Problem  : SWV164+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% 0.07/0.13  % Command  : run_zenon %s %d
% 0.14/0.34  % Computer : n004.cluster.edu
% 0.14/0.34  % Model    : x86_64 x86_64
% 0.14/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.34  % Memory   : 8042.1875MB
% 0.14/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.34  % CPULimit : 300
% 0.14/0.34  % WCLimit  : 600
% 0.14/0.34  % DateTime : Thu Jun 16 01:12:54 EDT 2022
% 0.14/0.35  % CPUTime  : 
% 90.44/90.70  (* PROOF-FOUND *)
% 90.44/90.70  % SZS status Theorem
% 90.44/90.70  (* BEGIN-PROOF *)
% 90.44/90.70  % SZS output start Proof
% 90.44/90.70  Theorem cl5_nebula_norm_0014 : (((leq (n0) (pv10))/\((leq (pv10) (n135299))/\(forall A : zenon_U, (((leq (n0) A)/\(leq A (pred (pv10))))->((sum (n0) (n4) (a_select3 (q) A (tptp_sum_index))) = (n1))))))->(forall B : zenon_U, (((leq (n0) B)/\(leq B (tptp_minus_1)))->((a_select3 (q) (pv10) B) = (divide (divide (times (exp (divide (divide (times (minus (a_select2 (x) (pv10)) (a_select2 (mu) B)) (minus (a_select2 (x) (pv10)) (a_select2 (mu) B))) (tptp_minus_2)) (times (a_select2 (sigma) B) (a_select2 (sigma) B)))) (a_select2 (rho) B)) (times (sqrt (times (n2) (tptp_pi))) (a_select2 (sigma) B))) (sum (n0) (n4) (divide (times (exp (divide (divide (times (minus (a_select2 (x) (pv10)) (a_select2 (mu) (tptp_sum_index))) (minus (a_select2 (x) (pv10)) (a_select2 (mu) (tptp_sum_index)))) (tptp_minus_2)) (times (a_select2 (sigma) (tptp_sum_index)) (a_select2 (sigma) (tptp_sum_index))))) (a_select2 (rho) (tptp_sum_index))) (times (sqrt (times (n2) (tptp_pi))) (a_select2 (sigma) (tptp_sum_index)))))))))).
% 90.44/90.70  Proof.
% 90.44/90.70  assert (zenon_L1_ : (~((n3) = (n3))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H64.
% 90.44/90.70  apply zenon_H64. apply refl_equal.
% 90.44/90.70  (* end of lemma zenon_L1_ *)
% 90.44/90.70  assert (zenon_L2_ : (~((n2) = (n2))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H65.
% 90.44/90.70  apply zenon_H65. apply refl_equal.
% 90.44/90.70  (* end of lemma zenon_L2_ *)
% 90.44/90.70  assert (zenon_L3_ : (~((n1) = (n1))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H66.
% 90.44/90.70  apply zenon_H66. apply refl_equal.
% 90.44/90.70  (* end of lemma zenon_L3_ *)
% 90.44/90.70  assert (zenon_L4_ : (~((n0) = (n0))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H67.
% 90.44/90.70  apply zenon_H67. apply refl_equal.
% 90.44/90.70  (* end of lemma zenon_L4_ *)
% 90.44/90.70  assert (zenon_L5_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (~(leq (n0) zenon_TB_ec)) -> False).
% 90.44/90.70  do 1 intro. intros zenon_H68 zenon_H69.
% 90.44/90.70  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.44/90.70  generalize (zenon_H6b zenon_TB_ec). zenon_intro zenon_H6c.
% 90.44/90.70  apply (zenon_equiv_s _ _ zenon_H6c); [ zenon_intro zenon_H69; zenon_intro zenon_H6e | zenon_intro zenon_H6d; zenon_intro zenon_H68 ].
% 90.44/90.70  exact (zenon_H6e zenon_H68).
% 90.44/90.70  exact (zenon_H69 zenon_H6d).
% 90.44/90.70  (* end of lemma zenon_L5_ *)
% 90.44/90.70  assert (zenon_L6_ : (~((n4) = (n4))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H6f.
% 90.44/90.70  apply zenon_H6f. apply refl_equal.
% 90.44/90.70  (* end of lemma zenon_L6_ *)
% 90.44/90.70  assert (zenon_L7_ : (~(gt (n1) (succ (tptp_minus_1)))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H70.
% 90.44/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.44/90.70  cut ((gt (n1) (n0)) = (gt (n1) (succ (tptp_minus_1)))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H70.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact gt_1_0.
% 90.44/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.44/90.70  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.44/90.70  congruence.
% 90.44/90.70  apply zenon_H66. apply refl_equal.
% 90.44/90.70  exact (zenon_H72 zenon_H71).
% 90.44/90.70  apply zenon_H72. apply sym_equal. exact succ_tptp_minus_1.
% 90.44/90.70  (* end of lemma zenon_L7_ *)
% 90.44/90.70  assert (zenon_L8_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (succ (tptp_minus_1)))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H73 zenon_H74.
% 90.44/90.70  elim (classic (gt (n1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H75 | zenon_intro zenon_H70 ].
% 90.44/90.70  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.44/90.70  generalize (zenon_H76 (n1)). zenon_intro zenon_H77.
% 90.44/90.70  generalize (zenon_H77 (succ (tptp_minus_1))). zenon_intro zenon_H78.
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H78); [ zenon_intro zenon_H7a | zenon_intro zenon_H79 ].
% 90.44/90.70  exact (zenon_H7a gt_2_1).
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H79); [ zenon_intro zenon_H70 | zenon_intro zenon_H7b ].
% 90.44/90.70  exact (zenon_H70 zenon_H75).
% 90.44/90.70  exact (zenon_H74 zenon_H7b).
% 90.44/90.70  apply (zenon_L7_); trivial.
% 90.44/90.70  (* end of lemma zenon_L8_ *)
% 90.44/90.70  assert (zenon_L9_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n3) (succ (tptp_minus_1)))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H73 zenon_H7c.
% 90.44/90.70  elim (classic (gt (n2) (succ (tptp_minus_1)))); [ zenon_intro zenon_H7b | zenon_intro zenon_H74 ].
% 90.44/90.70  generalize (zenon_H73 (n3)). zenon_intro zenon_H7d.
% 90.44/90.70  generalize (zenon_H7d (n2)). zenon_intro zenon_H7e.
% 90.44/90.70  generalize (zenon_H7e (succ (tptp_minus_1))). zenon_intro zenon_H7f.
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H7f); [ zenon_intro zenon_H81 | zenon_intro zenon_H80 ].
% 90.44/90.70  exact (zenon_H81 gt_3_2).
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H80); [ zenon_intro zenon_H74 | zenon_intro zenon_H82 ].
% 90.44/90.70  exact (zenon_H74 zenon_H7b).
% 90.44/90.70  exact (zenon_H7c zenon_H82).
% 90.44/90.70  apply (zenon_L8_); trivial.
% 90.44/90.70  (* end of lemma zenon_L9_ *)
% 90.44/90.70  assert (zenon_L10_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n4) (succ (tptp_minus_1)))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H73 zenon_H83.
% 90.44/90.70  elim (classic (gt (n3) (succ (tptp_minus_1)))); [ zenon_intro zenon_H82 | zenon_intro zenon_H7c ].
% 90.44/90.70  generalize (zenon_H73 (n4)). zenon_intro zenon_H84.
% 90.44/90.70  generalize (zenon_H84 (n3)). zenon_intro zenon_H85.
% 90.44/90.70  generalize (zenon_H85 (succ (tptp_minus_1))). zenon_intro zenon_H86.
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H86); [ zenon_intro zenon_H88 | zenon_intro zenon_H87 ].
% 90.44/90.70  exact (zenon_H88 gt_4_3).
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_H87); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 90.44/90.70  exact (zenon_H7c zenon_H82).
% 90.44/90.70  exact (zenon_H83 zenon_H89).
% 90.44/90.70  apply (zenon_L9_); trivial.
% 90.44/90.70  (* end of lemma zenon_L10_ *)
% 90.44/90.70  assert (zenon_L11_ : (~((succ (n3)) = (succ (succ (succ (succ (n0))))))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H8a.
% 90.44/90.70  cut (((n3) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 90.44/90.70  congruence.
% 90.44/90.70  apply zenon_H8b. apply sym_equal. exact successor_3.
% 90.44/90.70  (* end of lemma zenon_L11_ *)
% 90.44/90.70  assert (zenon_L12_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n3)) (succ (tptp_minus_1)))) -> False).
% 90.44/90.70  do 0 intro. intros zenon_H73 zenon_H8c.
% 90.44/90.70  elim (classic (gt (n4) (succ (tptp_minus_1)))); [ zenon_intro zenon_H89 | zenon_intro zenon_H83 ].
% 90.44/90.70  elim (classic (gt (succ (succ (succ (succ (n0))))) (succ (tptp_minus_1)))); [ zenon_intro zenon_H8d | zenon_intro zenon_H8e ].
% 90.44/90.70  cut ((gt (succ (succ (succ (succ (n0))))) (succ (tptp_minus_1))) = (gt (succ (n3)) (succ (tptp_minus_1)))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H8c.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H8d.
% 90.44/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.44/90.70  cut (((succ (succ (succ (succ (n0))))) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 90.44/90.70  congruence.
% 90.44/90.70  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H91 | zenon_intro zenon_H92 ].
% 90.44/90.70  cut (((succ (n3)) = (succ (n3))) = ((succ (succ (succ (succ (n0))))) = (succ (n3)))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H90.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H91.
% 90.44/90.70  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H92].
% 90.44/90.70  cut (((succ (n3)) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H8a].
% 90.44/90.70  congruence.
% 90.44/90.70  apply (zenon_L11_); trivial.
% 90.44/90.70  apply zenon_H92. apply refl_equal.
% 90.44/90.70  apply zenon_H92. apply refl_equal.
% 90.44/90.70  apply zenon_H8f. apply refl_equal.
% 90.44/90.70  cut ((gt (n4) (succ (tptp_minus_1))) = (gt (succ (succ (succ (succ (n0))))) (succ (tptp_minus_1)))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H8e.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H89.
% 90.44/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.44/90.70  cut (((n4) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H93].
% 90.44/90.70  congruence.
% 90.44/90.70  elim (classic ((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [ zenon_intro zenon_H94 | zenon_intro zenon_H95 ].
% 90.44/90.70  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0)))))) = ((n4) = (succ (succ (succ (succ (n0))))))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H93.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H94.
% 90.44/90.70  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 90.44/90.70  cut (((succ (succ (succ (succ (n0))))) = (n4))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 90.44/90.70  congruence.
% 90.44/90.70  exact (zenon_H96 successor_4).
% 90.44/90.70  apply zenon_H95. apply refl_equal.
% 90.44/90.70  apply zenon_H95. apply refl_equal.
% 90.44/90.70  apply zenon_H8f. apply refl_equal.
% 90.44/90.70  apply (zenon_L10_); trivial.
% 90.44/90.70  (* end of lemma zenon_L12_ *)
% 90.44/90.70  assert (zenon_L13_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(leq zenon_TB_ec (n3))) -> False).
% 90.44/90.70  do 1 intro. intros zenon_H73 zenon_H97 zenon_H98.
% 90.44/90.70  generalize (leq_succ_gt_equiv zenon_TB_ec). zenon_intro zenon_H99.
% 90.44/90.70  generalize (zenon_H99 (n3)). zenon_intro zenon_H9a.
% 90.44/90.70  apply (zenon_equiv_s _ _ zenon_H9a); [ zenon_intro zenon_H98; zenon_intro zenon_H9d | zenon_intro zenon_H9c; zenon_intro zenon_H9b ].
% 90.44/90.70  elim (classic ((~((succ (n3)) = (succ (tptp_minus_1))))/\(~(gt (succ (n3)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 90.44/90.70  apply (zenon_and_s _ _ zenon_H9e). zenon_intro zenon_Ha0. zenon_intro zenon_H8c.
% 90.44/90.70  apply (zenon_L12_); trivial.
% 90.44/90.70  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n3)) zenon_TB_ec)).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_H9d.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H97.
% 90.44/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.44/90.70  cut (((succ (tptp_minus_1)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_Ha2].
% 90.44/90.70  congruence.
% 90.44/90.70  apply (zenon_notand_s _ _ zenon_H9f); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Ha3 ].
% 90.44/90.70  apply zenon_Ha4. zenon_intro zenon_Ha5.
% 90.44/90.70  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H91 | zenon_intro zenon_H92 ].
% 90.44/90.70  cut (((succ (n3)) = (succ (n3))) = ((succ (tptp_minus_1)) = (succ (n3)))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_Ha2.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H91.
% 90.44/90.70  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H92].
% 90.44/90.70  cut (((succ (n3)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 90.44/90.70  congruence.
% 90.44/90.70  exact (zenon_Ha0 zenon_Ha5).
% 90.44/90.70  apply zenon_H92. apply refl_equal.
% 90.44/90.70  apply zenon_H92. apply refl_equal.
% 90.44/90.70  apply zenon_Ha3. zenon_intro zenon_Ha6.
% 90.44/90.70  generalize (zenon_H73 (succ (n3))). zenon_intro zenon_Ha7.
% 90.44/90.70  generalize (zenon_Ha7 (succ (tptp_minus_1))). zenon_intro zenon_Ha8.
% 90.44/90.70  generalize (zenon_Ha8 zenon_TB_ec). zenon_intro zenon_Ha9.
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_Ha9); [ zenon_intro zenon_H8c | zenon_intro zenon_Haa ].
% 90.44/90.70  exact (zenon_H8c zenon_Ha6).
% 90.44/90.70  apply (zenon_imply_s _ _ zenon_Haa); [ zenon_intro zenon_Hab | zenon_intro zenon_H9b ].
% 90.44/90.70  exact (zenon_Hab zenon_H97).
% 90.44/90.70  exact (zenon_H9d zenon_H9b).
% 90.44/90.70  apply zenon_Ha1. apply refl_equal.
% 90.44/90.70  exact (zenon_H98 zenon_H9c).
% 90.44/90.70  (* end of lemma zenon_L13_ *)
% 90.44/90.70  assert (zenon_L14_ : forall (zenon_TB_ec : zenon_U), (~(gt (succ (tptp_minus_1)) (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (zenon_TB_ec = (n1)) -> False).
% 90.44/90.70  do 1 intro. intros zenon_Hac zenon_H97 zenon_Had.
% 90.44/90.70  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (tptp_minus_1)) (n1))).
% 90.44/90.70  intro zenon_D_pnotp.
% 90.44/90.70  apply zenon_Hac.
% 90.44/90.70  rewrite <- zenon_D_pnotp.
% 90.44/90.70  exact zenon_H97.
% 90.44/90.70  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.44/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.44/90.70  congruence.
% 90.44/90.70  apply zenon_H8f. apply refl_equal.
% 90.44/90.70  exact (zenon_Hae zenon_Had).
% 90.44/90.70  (* end of lemma zenon_L14_ *)
% 90.44/90.70  assert (zenon_L15_ : (~(gt (succ (n0)) (succ (tptp_minus_1)))) -> False).
% 90.52/90.70  do 0 intro. intros zenon_Haf.
% 90.52/90.70  elim (classic (gt (n1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H75 | zenon_intro zenon_H70 ].
% 90.52/90.70  cut ((gt (n1) (succ (tptp_minus_1))) = (gt (succ (n0)) (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Haf.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H75.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hb1.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply (zenon_L7_); trivial.
% 90.52/90.70  (* end of lemma zenon_L15_ *)
% 90.52/90.70  assert (zenon_L16_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n0))) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H68 zenon_H97 zenon_Hb4 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.70  generalize (finite_domain_3 zenon_TB_ec). zenon_intro zenon_Hb7.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hb7); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hb8 ].
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_Hb9); [ zenon_intro zenon_H69 | zenon_intro zenon_H98 ].
% 90.52/90.70  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_L13_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ].
% 90.52/90.70  exact (zenon_Hb4 zenon_Hbb).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hba); [ zenon_intro zenon_Had | zenon_intro zenon_Hbc ].
% 90.52/90.70  exact (zenon_Hae zenon_Had).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hbc); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hbd ].
% 90.52/90.70  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.70  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.70  (* end of lemma zenon_L16_ *)
% 90.52/90.70  assert (zenon_L17_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_Hbf zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.70  elim (classic (zenon_TB_ec = (n0))); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hb4 ].
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hbf.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H97.
% 90.52/90.70  cut ((zenon_TB_ec = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb4 zenon_Hbb).
% 90.52/90.70  apply (zenon_L16_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L17_ *)
% 90.52/90.70  assert (zenon_L18_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_Hc0 zenon_H73.
% 90.52/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.70  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) (n0)) = (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc1.
% 90.52/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  exact (zenon_H72 zenon_H71).
% 90.52/90.70  apply (zenon_L17_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H72.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc2.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L18_ *)
% 90.52/90.70  assert (zenon_L19_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (tptp_minus_1)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_Hc4 zenon_H73.
% 90.52/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.70  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.70  elim (classic (gt (n0) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hc7 ].
% 90.52/90.70  cut ((gt (n0) (succ (tptp_minus_1))) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc4.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc6.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec) = ((n0) = zenon_TB_ec)).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc8.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc9.
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.70  cut ((zenon_TB_ec = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_L16_ zenon_TB_ec); trivial.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (n0) (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc5.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.70  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc3.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hca.
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_H72 zenon_H71).
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply (zenon_L18_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H72.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc2.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L19_ *)
% 90.52/90.70  assert (zenon_L20_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_Hcb zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.70  cut ((gt zenon_TB_ec (succ (tptp_minus_1))) = (gt zenon_TB_ec (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hcb.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hcc.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply (zenon_L19_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L20_ *)
% 90.52/90.70  assert (zenon_L21_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_Hcd zenon_Hce zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hcf | zenon_intro zenon_Hd0 ].
% 90.52/90.70  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.70  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.70  generalize (zenon_Hd2 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_Hd3.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hd3); [ zenon_intro zenon_Hab | zenon_intro zenon_Hd4 ].
% 90.52/90.70  exact (zenon_Hab zenon_H97).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hd4); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hd5 ].
% 90.52/90.70  exact (zenon_Hd0 zenon_Hcf).
% 90.52/90.70  exact (zenon_Hcd zenon_Hd5).
% 90.52/90.70  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.70  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.70  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hd0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd8.
% 90.52/90.70  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.70  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hd7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd9.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hdb zenon_Hce).
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L21_ *)
% 90.52/90.70  assert (zenon_L22_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_Hdc zenon_Hce zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.70  cut ((gt (n0) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hdc.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hdd.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hd7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd9.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hdb zenon_Hce).
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.70  elim (classic (gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd5 | zenon_intro zenon_Hcd ].
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hde.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd5.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.70  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc3.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hca.
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_H72 zenon_H71).
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  apply (zenon_L21_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H72.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc2.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L22_ *)
% 90.52/90.70  assert (zenon_L23_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H73 zenon_Hdf zenon_Hce.
% 90.52/90.70  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.70  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.70  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (n0) (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hdf.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_He0.
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.70  cut (((n0) = (n0)) = ((sum (n0) (tptp_minus_1) zenon_E) = (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hdb.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hca.
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_He2 | zenon_intro zenon_Hdc ].
% 90.52/90.70  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_He1.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_He2.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  exact (zenon_Hdb zenon_Hce).
% 90.52/90.70  apply (zenon_L22_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hd7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd9.
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.70  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hdb zenon_Hce).
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  apply zenon_Hda. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L23_ *)
% 90.52/90.70  assert (zenon_L24_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((succ (n0)) = (succ zenon_TB_ec))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_He3 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.70  congruence.
% 90.52/90.70  generalize (finite_domain_3 zenon_TB_ec). zenon_intro zenon_Hb7.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hb7); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hb8 ].
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_Hb9); [ zenon_intro zenon_H69 | zenon_intro zenon_H98 ].
% 90.52/90.70  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_L13_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ].
% 90.52/90.70  apply zenon_Hc8. apply sym_equal. exact zenon_Hbb.
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hba); [ zenon_intro zenon_Had | zenon_intro zenon_Hbc ].
% 90.52/90.70  exact (zenon_Hae zenon_Had).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hbc); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hbd ].
% 90.52/90.70  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.70  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.70  (* end of lemma zenon_L24_ *)
% 90.52/90.70  assert (zenon_L25_ : (~((tptp_minus_1) = (tptp_minus_1))) -> False).
% 90.52/90.70  do 0 intro. intros zenon_He4.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L25_ *)
% 90.52/90.70  assert (zenon_L26_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n0))) -> (~((tptp_minus_1) = (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_He5 zenon_He6 zenon_He7 zenon_He8.
% 90.52/90.70  generalize (finite_domain_3 zenon_TB_ec). zenon_intro zenon_Hb7.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hb7); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hb8 ].
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_Hb9); [ zenon_intro zenon_H69 | zenon_intro zenon_H98 ].
% 90.52/90.70  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_L13_ zenon_TB_ec); trivial.
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ].
% 90.52/90.70  generalize (finite_domain_3 (tptp_minus_1)). zenon_intro zenon_He9.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_He9); [ zenon_intro zenon_Heb | zenon_intro zenon_Hea ].
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_Heb); [ zenon_intro zenon_Hed | zenon_intro zenon_Hec ].
% 90.52/90.70  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.70  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.70  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.70  apply (zenon_L17_ zenon_TB_ec); trivial.
% 90.52/90.70  exact (zenon_Hed zenon_Hef).
% 90.52/90.70  generalize (leq_succ_gt_equiv (tptp_minus_1)). zenon_intro zenon_Hf0.
% 90.52/90.70  generalize (zenon_Hf0 (n3)). zenon_intro zenon_Hf1.
% 90.52/90.70  apply (zenon_equiv_s _ _ zenon_Hf1); [ zenon_intro zenon_Hec; zenon_intro zenon_Hf4 | zenon_intro zenon_Hf3; zenon_intro zenon_Hf2 ].
% 90.52/90.70  elim (classic ((~((succ (n3)) = (n0)))/\(~(gt (succ (n3)) (n0))))); [ zenon_intro zenon_Hf5 | zenon_intro zenon_Hf6 ].
% 90.52/90.70  apply (zenon_and_s _ _ zenon_Hf5). zenon_intro zenon_Hf8. zenon_intro zenon_Hf7.
% 90.52/90.70  elim (classic ((~((succ (n3)) = (succ (tptp_minus_1))))/\(~(gt (succ (n3)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 90.52/90.70  apply (zenon_and_s _ _ zenon_H9e). zenon_intro zenon_Ha0. zenon_intro zenon_H8c.
% 90.52/90.70  apply (zenon_L12_); trivial.
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n3)) (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hf7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H97.
% 90.52/90.70  cut ((zenon_TB_ec = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_Ha2].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_H9f); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Ha3 ].
% 90.52/90.70  apply zenon_Ha4. zenon_intro zenon_Ha5.
% 90.52/90.70  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H91 | zenon_intro zenon_H92 ].
% 90.52/90.70  cut (((succ (n3)) = (succ (n3))) = ((succ (tptp_minus_1)) = (succ (n3)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Ha2.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H91.
% 90.52/90.70  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H92].
% 90.52/90.70  cut (((succ (n3)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Ha0 zenon_Ha5).
% 90.52/90.70  apply zenon_H92. apply refl_equal.
% 90.52/90.70  apply zenon_H92. apply refl_equal.
% 90.52/90.70  apply zenon_Ha3. zenon_intro zenon_Ha6.
% 90.52/90.70  generalize (zenon_H73 (succ (n3))). zenon_intro zenon_Ha7.
% 90.52/90.70  generalize (zenon_Ha7 (succ (tptp_minus_1))). zenon_intro zenon_Ha8.
% 90.52/90.70  generalize (zenon_Ha8 zenon_TB_ec). zenon_intro zenon_Ha9.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Ha9); [ zenon_intro zenon_H8c | zenon_intro zenon_Haa ].
% 90.52/90.70  exact (zenon_H8c zenon_Ha6).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Haa); [ zenon_intro zenon_Hab | zenon_intro zenon_H9b ].
% 90.52/90.70  exact (zenon_Hab zenon_H97).
% 90.52/90.70  cut ((gt (succ (n3)) zenon_TB_ec) = (gt (succ (n3)) (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hf7.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H9b.
% 90.52/90.70  cut ((zenon_TB_ec = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 90.52/90.70  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H92].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_H92. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb4 zenon_Hbb).
% 90.52/90.70  exact (zenon_Hb4 zenon_Hbb).
% 90.52/90.70  cut ((gt (n0) (tptp_minus_1)) = (gt (succ (n3)) (tptp_minus_1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hf4.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact gt_0_tptp_minus_1.
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.70  cut (((n0) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_Hf9].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_Hf6); [ zenon_intro zenon_Hfb | zenon_intro zenon_Hfa ].
% 90.52/90.70  apply zenon_Hfb. zenon_intro zenon_Hfc.
% 90.52/90.70  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H91 | zenon_intro zenon_H92 ].
% 90.52/90.70  cut (((succ (n3)) = (succ (n3))) = ((n0) = (succ (n3)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hf9.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H91.
% 90.52/90.70  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H92].
% 90.52/90.70  cut (((succ (n3)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hf8].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hf8 zenon_Hfc).
% 90.52/90.70  apply zenon_H92. apply refl_equal.
% 90.52/90.70  apply zenon_H92. apply refl_equal.
% 90.52/90.70  apply zenon_Hfa. zenon_intro zenon_Hfd.
% 90.52/90.70  generalize (zenon_H73 (succ (n3))). zenon_intro zenon_Ha7.
% 90.52/90.70  generalize (zenon_Ha7 (n0)). zenon_intro zenon_Hfe.
% 90.52/90.70  generalize (zenon_Hfe (tptp_minus_1)). zenon_intro zenon_Hff.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_Hff); [ zenon_intro zenon_Hf7 | zenon_intro zenon_H100 ].
% 90.52/90.70  exact (zenon_Hf7 zenon_Hfd).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H100); [ zenon_intro zenon_H101 | zenon_intro zenon_Hf2 ].
% 90.52/90.70  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.70  exact (zenon_Hf4 zenon_Hf2).
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  exact (zenon_Hec zenon_Hf3).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H103 | zenon_intro zenon_H102 ].
% 90.52/90.70  exact (zenon_He5 zenon_H103).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_H102); [ zenon_intro zenon_H105 | zenon_intro zenon_H104 ].
% 90.52/90.70  exact (zenon_He6 zenon_H105).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_H104); [ zenon_intro zenon_H107 | zenon_intro zenon_H106 ].
% 90.52/90.70  exact (zenon_He7 zenon_H107).
% 90.52/90.70  exact (zenon_He8 zenon_H106).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hba); [ zenon_intro zenon_Had | zenon_intro zenon_Hbc ].
% 90.52/90.70  exact (zenon_Hae zenon_Had).
% 90.52/90.70  apply (zenon_or_s _ _ zenon_Hbc); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hbd ].
% 90.52/90.70  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.70  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.70  (* end of lemma zenon_L26_ *)
% 90.52/90.70  assert (zenon_L27_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((succ (tptp_minus_1)) = (succ (n0)))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H108 zenon_He8 zenon_He7 zenon_He6 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  cut (((tptp_minus_1) = (n0))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_L26_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L27_ *)
% 90.52/90.70  assert (zenon_L28_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (n0)))) -> (~((tptp_minus_1) = (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H109 zenon_He6 zenon_He7 zenon_He8 zenon_H73.
% 90.52/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.70  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.70  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.70  cut ((gt zenon_TB_ec (succ (tptp_minus_1))) = (gt zenon_TB_ec (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H109.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hcc.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  apply (zenon_L27_ zenon_TB_ec); trivial.
% 90.52/90.70  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc4.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hd8.
% 90.52/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.70  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Ha1. apply refl_equal.
% 90.52/90.70  exact (zenon_H72 zenon_H71).
% 90.52/90.70  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H72.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc2.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L28_ *)
% 90.52/90.70  assert (zenon_L29_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (~((tptp_minus_1) = (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H10a zenon_He6 zenon_He7 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.70  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.70  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.70  generalize (zenon_Hd2 (succ (n0))). zenon_intro zenon_H10c.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H10c); [ zenon_intro zenon_Hab | zenon_intro zenon_H10d ].
% 90.52/90.70  exact (zenon_Hab zenon_H97).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_H109 | zenon_intro zenon_H10e ].
% 90.52/90.70  exact (zenon_H109 zenon_H10b).
% 90.52/90.70  exact (zenon_H10a zenon_H10e).
% 90.52/90.70  apply (zenon_L28_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L29_ *)
% 90.52/90.70  assert (zenon_L30_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (tptp_minus_1) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_He6 zenon_He7 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H10f zenon_H73.
% 90.52/90.70  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.70  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.70  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.70  cut ((gt (n0) (succ (n0))) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H10f.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H110.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((n0) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n0) = (tptp_minus_1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H112.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H113.
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.70  cut (((tptp_minus_1) = (n0))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_L26_ zenon_TB_ec); trivial.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (n0) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H111.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H10e.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.70  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hc3.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hca.
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_H72 zenon_H71).
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply (zenon_L29_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H72.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hc2.
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.70  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  apply zenon_H8f. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L30_ *)
% 90.52/90.70  assert (zenon_L31_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H111 zenon_He8 zenon_He7 zenon_He6 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.70  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.70  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.70  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.70  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.70  exact (zenon_H10f zenon_H114).
% 90.52/90.70  exact (zenon_H111 zenon_H110).
% 90.52/90.70  apply (zenon_L30_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L31_ *)
% 90.52/90.70  assert (zenon_L32_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (n0)))) -> (~((tptp_minus_1) = (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H119 zenon_He6 zenon_He7 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic ((~((succ (n0)) = (succ zenon_TB_ec)))/\(~(gt (succ (n0)) (succ zenon_TB_ec))))); [ zenon_intro zenon_H11a | zenon_intro zenon_H11b ].
% 90.52/90.70  apply (zenon_and_s _ _ zenon_H11a). zenon_intro zenon_He3. zenon_intro zenon_H11c.
% 90.52/90.70  apply (zenon_L24_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.70  generalize (zenon_H73 (succ zenon_TB_ec)). zenon_intro zenon_H11d.
% 90.52/90.70  generalize (zenon_H11d (n0)). zenon_intro zenon_H11e.
% 90.52/90.70  generalize (zenon_H11e (succ (n0))). zenon_intro zenon_H11f.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H11f); [ zenon_intro zenon_H6e | zenon_intro zenon_H120 ].
% 90.52/90.70  exact (zenon_H6e zenon_H68).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H120); [ zenon_intro zenon_H111 | zenon_intro zenon_H121 ].
% 90.52/90.70  exact (zenon_H111 zenon_H110).
% 90.52/90.70  cut ((gt (succ zenon_TB_ec) (succ (n0))) = (gt (succ (n0)) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H119.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H121.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ zenon_TB_ec) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H122].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_notand_s _ _ zenon_H11b); [ zenon_intro zenon_H124 | zenon_intro zenon_H123 ].
% 90.52/90.70  apply zenon_H124. zenon_intro zenon_H125.
% 90.52/90.70  apply zenon_H122. apply sym_equal. exact zenon_H125.
% 90.52/90.70  apply zenon_H123. zenon_intro zenon_H126.
% 90.52/90.70  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.70  generalize (zenon_H127 (succ zenon_TB_ec)). zenon_intro zenon_H128.
% 90.52/90.70  generalize (zenon_H128 (succ (n0))). zenon_intro zenon_H129.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H129); [ zenon_intro zenon_H11c | zenon_intro zenon_H12a ].
% 90.52/90.70  exact (zenon_H11c zenon_H126).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H12a); [ zenon_intro zenon_H12c | zenon_intro zenon_H12b ].
% 90.52/90.70  exact (zenon_H12c zenon_H121).
% 90.52/90.70  exact (zenon_H119 zenon_H12b).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply (zenon_L31_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L32_ *)
% 90.52/90.70  assert (zenon_L33_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n1))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_He8 zenon_He7 zenon_He6 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H73 zenon_H12d.
% 90.52/90.70  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.70  elim (classic (gt (succ (n0)) (n1))); [ zenon_intro zenon_H12f | zenon_intro zenon_H130 ].
% 90.52/90.70  cut ((gt (succ (n0)) (n1)) = (gt (n1) (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H12d.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H12f.
% 90.52/90.70  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.70  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb3.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H131.
% 90.52/90.70  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  elim (classic (gt (succ (n0)) (succ (n0)))); [ zenon_intro zenon_H12b | zenon_intro zenon_H119 ].
% 90.52/90.70  cut ((gt (succ (n0)) (succ (n0))) = (gt (succ (n0)) (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H130.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H12b.
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply (zenon_L32_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hb1.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L33_ *)
% 90.52/90.70  assert (zenon_L34_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (n1))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H132 zenon_He8 zenon_He7 zenon_He6 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.70  cut ((gt (tptp_minus_1) (succ (n0))) = (gt (tptp_minus_1) (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H132.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H114.
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply (zenon_L30_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L34_ *)
% 90.52/90.70  assert (zenon_L35_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n1))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H133 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_He7 zenon_He8.
% 90.52/90.70  elim (classic ((tptp_minus_1) = (n1))); [ zenon_intro zenon_H105 | zenon_intro zenon_He6 ].
% 90.52/90.70  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H133.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact gt_0_tptp_minus_1.
% 90.52/90.70  cut (((tptp_minus_1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_He6].
% 90.52/90.70  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_H67. apply refl_equal.
% 90.52/90.70  exact (zenon_He6 zenon_H105).
% 90.52/90.70  elim (classic (gt (tptp_minus_1) (n1))); [ zenon_intro zenon_H134 | zenon_intro zenon_H132 ].
% 90.52/90.70  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.70  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.70  generalize (zenon_H116 (n1)). zenon_intro zenon_H135.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H135); [ zenon_intro zenon_H101 | zenon_intro zenon_H136 ].
% 90.52/90.70  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H136); [ zenon_intro zenon_H132 | zenon_intro zenon_H137 ].
% 90.52/90.70  exact (zenon_H132 zenon_H134).
% 90.52/90.70  exact (zenon_H133 zenon_H137).
% 90.52/90.70  apply (zenon_L34_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L35_ *)
% 90.52/90.70  assert (zenon_L36_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H12d zenon_He8 zenon_He7 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (n0) (n1))); [ zenon_intro zenon_H137 | zenon_intro zenon_H133 ].
% 90.52/90.70  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.70  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.70  generalize (zenon_H139 (n1)). zenon_intro zenon_H13a.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H13a); [ zenon_intro zenon_H13c | zenon_intro zenon_H13b ].
% 90.52/90.70  exact (zenon_H13c gt_1_0).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H13b); [ zenon_intro zenon_H133 | zenon_intro zenon_H13d ].
% 90.52/90.70  exact (zenon_H133 zenon_H137).
% 90.52/90.70  exact (zenon_H12d zenon_H13d).
% 90.52/90.70  apply (zenon_L35_ zenon_TB_ec); trivial.
% 90.52/90.70  (* end of lemma zenon_L36_ *)
% 90.52/90.70  assert (zenon_L37_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (n0)))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H119 zenon_He8 zenon_He7 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.70  cut ((gt (n1) (succ (n0))) = (gt (succ (n0)) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H119.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H13e.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hb1.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.70  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.70  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H13f.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H13d.
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.70  apply (zenon_L36_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hb1.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L37_ *)
% 90.52/90.70  assert (zenon_L38_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (~((tptp_minus_1) = (n3))) -> (~((tptp_minus_1) = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.70  do 1 intro. intros zenon_H73 zenon_H111 zenon_He8 zenon_He7 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.70  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.70  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.70  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.70  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.70  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.70  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.70  exact (zenon_H10f zenon_H114).
% 90.52/90.70  exact (zenon_H111 zenon_H110).
% 90.52/90.70  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.70  elim (classic (gt (tptp_minus_1) (n1))); [ zenon_intro zenon_H134 | zenon_intro zenon_H132 ].
% 90.52/90.70  cut ((gt (tptp_minus_1) (n1)) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H10f.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H134.
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.70  congruence.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.70  elim (classic (gt (succ (n0)) (succ (n0)))); [ zenon_intro zenon_H12b | zenon_intro zenon_H119 ].
% 90.52/90.70  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.70  cut ((gt (n1) (succ (n0))) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H10f.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H13e.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((n1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H140].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n1) = (tptp_minus_1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H140.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H113.
% 90.52/90.70  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.70  cut (((tptp_minus_1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_He6].
% 90.52/90.70  congruence.
% 90.52/90.70  apply (zenon_L34_ zenon_TB_ec); trivial.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  apply zenon_He4. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  cut ((gt (succ (n0)) (succ (n0))) = (gt (n1) (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_H13f.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H12b.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.70  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb3.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_H131.
% 90.52/90.70  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.70  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  apply zenon_H66. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply (zenon_L37_ zenon_TB_ec); trivial.
% 90.52/90.70  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.70  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.70  intro zenon_D_pnotp.
% 90.52/90.70  apply zenon_Hb0.
% 90.52/90.70  rewrite <- zenon_D_pnotp.
% 90.52/90.70  exact zenon_Hb1.
% 90.52/90.70  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.70  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.70  congruence.
% 90.52/90.70  exact (zenon_Hb3 successor_1).
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  apply zenon_Hb2. apply refl_equal.
% 90.52/90.70  (* end of lemma zenon_L38_ *)
% 90.52/90.71  assert (zenon_L39_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_He7 zenon_He8 zenon_H10a zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.71  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.71  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.71  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.71  generalize (zenon_H141 (succ (n0))). zenon_intro zenon_H142.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H142); [ zenon_intro zenon_Hbf | zenon_intro zenon_H143 ].
% 90.52/90.71  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H143); [ zenon_intro zenon_H111 | zenon_intro zenon_H10e ].
% 90.52/90.71  exact (zenon_H111 zenon_H110).
% 90.52/90.71  exact (zenon_H10a zenon_H10e).
% 90.52/90.71  apply (zenon_L38_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hbf.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc5.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply (zenon_L18_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L39_ *)
% 90.52/90.71  assert (zenon_L40_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (n0)))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H109 zenon_He7 zenon_He8 zenon_H73.
% 90.52/90.71  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.71  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.71  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.71  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.71  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.71  generalize (zenon_H145 (succ (n0))). zenon_intro zenon_H146.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H146); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H147 ].
% 90.52/90.71  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H147); [ zenon_intro zenon_H10a | zenon_intro zenon_H10b ].
% 90.52/90.71  exact (zenon_H10a zenon_H10e).
% 90.52/90.71  exact (zenon_H109 zenon_H10b).
% 90.52/90.71  apply (zenon_L39_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hc4.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd8.
% 90.52/90.71  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  exact (zenon_H72 zenon_H71).
% 90.52/90.71  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H72.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc2.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L40_ *)
% 90.52/90.71  assert (zenon_L41_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> (~((tptp_minus_1) = (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H148 zenon_He7 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.71  cut ((gt zenon_TB_ec (succ (n0))) = (gt zenon_TB_ec (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H148.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H10b.
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply (zenon_L40_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L41_ *)
% 90.52/90.71  assert (zenon_L42_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n2))) -> (~(gt zenon_TB_ec (n1))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H149 zenon_H148 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_He8.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (n2))); [ zenon_intro zenon_H107 | zenon_intro zenon_He7 ].
% 90.52/90.71  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n2))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H149.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_0_tptp_minus_1.
% 90.52/90.71  cut (((tptp_minus_1) = (n2))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  exact (zenon_He7 zenon_H107).
% 90.52/90.71  apply (zenon_L41_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L42_ *)
% 90.52/90.71  assert (zenon_L43_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H14a zenon_He8 zenon_H148 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic (gt (n0) (n2))); [ zenon_intro zenon_H14b | zenon_intro zenon_H149 ].
% 90.52/90.71  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.71  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.71  generalize (zenon_H139 (n2)). zenon_intro zenon_H14c.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H14c); [ zenon_intro zenon_H13c | zenon_intro zenon_H14d ].
% 90.52/90.71  exact (zenon_H13c gt_1_0).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H14d); [ zenon_intro zenon_H149 | zenon_intro zenon_H14e ].
% 90.52/90.71  exact (zenon_H149 zenon_H14b).
% 90.52/90.71  exact (zenon_H14a zenon_H14e).
% 90.52/90.71  apply (zenon_L42_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L43_ *)
% 90.52/90.71  assert (zenon_L44_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_He8 zenon_H148 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H73 zenon_H12d.
% 90.52/90.71  elim (classic ((~((n1) = (n2)))/\(~(gt (n1) (n2))))); [ zenon_intro zenon_H14f | zenon_intro zenon_H150 ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H14f). zenon_intro zenon_H151. zenon_intro zenon_H14a.
% 90.52/90.71  apply (zenon_L43_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n2) (n1)) = (gt (n1) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H12d.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_2_1.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n2) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H152].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H150); [ zenon_intro zenon_H154 | zenon_intro zenon_H153 ].
% 90.52/90.71  apply zenon_H154. zenon_intro zenon_H155.
% 90.52/90.71  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.71  cut (((n1) = (n1)) = ((n2) = (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H152.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H131.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n1) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H151].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H151 zenon_H155).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H153. zenon_intro zenon_H14e.
% 90.52/90.71  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.71  generalize (zenon_H138 (n2)). zenon_intro zenon_H156.
% 90.52/90.71  generalize (zenon_H156 (n1)). zenon_intro zenon_H157.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H157); [ zenon_intro zenon_H14a | zenon_intro zenon_H158 ].
% 90.52/90.71  exact (zenon_H14a zenon_H14e).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H158); [ zenon_intro zenon_H7a | zenon_intro zenon_H13d ].
% 90.52/90.71  exact (zenon_H7a gt_2_1).
% 90.52/90.71  exact (zenon_H12d zenon_H13d).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L44_ *)
% 90.52/90.71  assert (zenon_L45_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H73 zenon_H12d.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (succ (n0)) (n1))); [ zenon_intro zenon_H12f | zenon_intro zenon_H130 ].
% 90.52/90.71  cut ((gt (succ (n0)) (n1)) = (gt (n1) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H12d.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H12f.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.71  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb3.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H131.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  elim (classic ((~((succ (n0)) = (succ (tptp_minus_1))))/\(~(gt (succ (n0)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H159 | zenon_intro zenon_H15a ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H159). zenon_intro zenon_H15b. zenon_intro zenon_Haf.
% 90.52/90.71  apply (zenon_L15_); trivial.
% 90.52/90.71  elim (classic (zenon_TB_ec = (n1))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n0)) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H130.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H97.
% 90.52/90.71  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H15a); [ zenon_intro zenon_H15d | zenon_intro zenon_H15c ].
% 90.52/90.71  apply zenon_H15d. zenon_intro zenon_H15e.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((succ (tptp_minus_1)) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H108.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H15b zenon_H15e).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_H15c. zenon_intro zenon_H15f.
% 90.52/90.71  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.71  generalize (zenon_H127 (succ (tptp_minus_1))). zenon_intro zenon_H160.
% 90.52/90.71  generalize (zenon_H160 zenon_TB_ec). zenon_intro zenon_H161.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H161); [ zenon_intro zenon_Haf | zenon_intro zenon_H162 ].
% 90.52/90.71  exact (zenon_Haf zenon_H15f).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H162); [ zenon_intro zenon_Hab | zenon_intro zenon_H163 ].
% 90.52/90.71  exact (zenon_Hab zenon_H97).
% 90.52/90.71  cut ((gt (succ (n0)) zenon_TB_ec) = (gt (succ (n0)) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H130.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H163.
% 90.52/90.71  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  exact (zenon_Hae zenon_Had).
% 90.52/90.71  exact (zenon_Hae zenon_Had).
% 90.52/90.71  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.71  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.71  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.71  generalize (zenon_Hd2 (n1)). zenon_intro zenon_H165.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H165); [ zenon_intro zenon_Hab | zenon_intro zenon_H166 ].
% 90.52/90.71  exact (zenon_Hab zenon_H97).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H166); [ zenon_intro zenon_H148 | zenon_intro zenon_H167 ].
% 90.52/90.71  exact (zenon_H148 zenon_H164).
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (n1)) = (gt (succ (n0)) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H130.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H167.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H15a); [ zenon_intro zenon_H15d | zenon_intro zenon_H15c ].
% 90.52/90.71  apply zenon_H15d. zenon_intro zenon_H15e.
% 90.52/90.71  apply zenon_H108. apply sym_equal. exact zenon_H15e.
% 90.52/90.71  apply zenon_H15c. zenon_intro zenon_H15f.
% 90.52/90.71  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.71  generalize (zenon_H127 (succ (tptp_minus_1))). zenon_intro zenon_H160.
% 90.52/90.71  generalize (zenon_H160 (n1)). zenon_intro zenon_H168.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H168); [ zenon_intro zenon_Haf | zenon_intro zenon_H169 ].
% 90.52/90.71  exact (zenon_Haf zenon_H15f).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H169); [ zenon_intro zenon_Hac | zenon_intro zenon_H12f ].
% 90.52/90.71  exact (zenon_Hac zenon_H167).
% 90.52/90.71  exact (zenon_H130 zenon_H12f).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply (zenon_L44_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L45_ *)
% 90.52/90.71  assert (zenon_L46_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (n1))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_He6 zenon_H73 zenon_H132 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic ((~((tptp_minus_1) = (n2)))/\(~(gt (tptp_minus_1) (n2))))); [ zenon_intro zenon_H16a | zenon_intro zenon_H16b ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H16a). zenon_intro zenon_He7. zenon_intro zenon_H16c.
% 90.52/90.71  apply (zenon_L34_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n2) (n1)) = (gt (tptp_minus_1) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H132.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_2_1.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n2) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H16d].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H16b); [ zenon_intro zenon_H16f | zenon_intro zenon_H16e ].
% 90.52/90.71  apply zenon_H16f. zenon_intro zenon_H107.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n2) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H16d.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n2))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_He7 zenon_H107).
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_H16e. zenon_intro zenon_H170.
% 90.52/90.71  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.71  generalize (zenon_H171 (n2)). zenon_intro zenon_H172.
% 90.52/90.71  generalize (zenon_H172 (n1)). zenon_intro zenon_H173.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H173); [ zenon_intro zenon_H16c | zenon_intro zenon_H174 ].
% 90.52/90.71  exact (zenon_H16c zenon_H170).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H174); [ zenon_intro zenon_H7a | zenon_intro zenon_H134 ].
% 90.52/90.71  exact (zenon_H7a gt_2_1).
% 90.52/90.71  exact (zenon_H132 zenon_H134).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L46_ *)
% 90.52/90.71  assert (zenon_L47_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H119 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148 zenon_He8.
% 90.52/90.71  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.71  cut ((gt (n1) (succ (n0))) = (gt (succ (n0)) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H119.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.71  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H13f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13d.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply (zenon_L44_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L47_ *)
% 90.52/90.71  assert (zenon_L48_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H111 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_He8 zenon_H148.
% 90.52/90.71  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.71  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.71  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.71  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.71  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.71  exact (zenon_H10f zenon_H114).
% 90.52/90.71  exact (zenon_H111 zenon_H110).
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (tptp_minus_1) (n1))); [ zenon_intro zenon_H134 | zenon_intro zenon_H132 ].
% 90.52/90.71  cut ((gt (tptp_minus_1) (n1)) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H10f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H134.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  elim (classic (gt (succ (n0)) (succ (n0)))); [ zenon_intro zenon_H12b | zenon_intro zenon_H119 ].
% 90.52/90.71  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.71  cut ((gt (n1) (succ (n0))) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H10f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((n1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H140].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n1) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H140.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_He6].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_L46_ zenon_TB_ec); trivial.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  cut ((gt (succ (n0)) (succ (n0))) = (gt (n1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H13f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H12b.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.71  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb3.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H131.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply (zenon_L47_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L48_ *)
% 90.52/90.71  assert (zenon_L49_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H148 zenon_He8 zenon_H10a zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.71  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.71  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.71  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.71  generalize (zenon_H141 (succ (n0))). zenon_intro zenon_H142.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H142); [ zenon_intro zenon_Hbf | zenon_intro zenon_H143 ].
% 90.52/90.71  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H143); [ zenon_intro zenon_H111 | zenon_intro zenon_H10e ].
% 90.52/90.71  exact (zenon_H111 zenon_H110).
% 90.52/90.71  exact (zenon_H10a zenon_H10e).
% 90.52/90.71  apply (zenon_L48_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hbf.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc5.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply (zenon_L18_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L49_ *)
% 90.52/90.71  assert (zenon_L50_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (n0)))) -> (~(gt zenon_TB_ec (n1))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H109 zenon_H148 zenon_He8 zenon_H73.
% 90.52/90.71  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.71  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.71  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.71  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.71  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.71  generalize (zenon_H145 (succ (n0))). zenon_intro zenon_H146.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H146); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H147 ].
% 90.52/90.71  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H147); [ zenon_intro zenon_H10a | zenon_intro zenon_H10b ].
% 90.52/90.71  exact (zenon_H10a zenon_H10e).
% 90.52/90.71  exact (zenon_H109 zenon_H10b).
% 90.52/90.71  apply (zenon_L49_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hc4.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd8.
% 90.52/90.71  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  exact (zenon_H72 zenon_H71).
% 90.52/90.71  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H72.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc2.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L50_ *)
% 90.52/90.71  assert (zenon_L51_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H148 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.71  cut ((gt zenon_TB_ec (succ (n0))) = (gt zenon_TB_ec (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H148.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H10b.
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply (zenon_L50_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L51_ *)
% 90.52/90.71  assert (zenon_L52_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H175 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (n3))); [ zenon_intro zenon_H106 | zenon_intro zenon_He8 ].
% 90.52/90.71  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n3))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H175.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_0_tptp_minus_1.
% 90.52/90.71  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  exact (zenon_He8 zenon_H106).
% 90.52/90.71  apply (zenon_L51_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L52_ *)
% 90.52/90.71  assert (zenon_L53_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H176 zenon_H148 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic (gt (n0) (n3))); [ zenon_intro zenon_H177 | zenon_intro zenon_H175 ].
% 90.52/90.71  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.71  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.71  generalize (zenon_H139 (n3)). zenon_intro zenon_H178.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H178); [ zenon_intro zenon_H13c | zenon_intro zenon_H179 ].
% 90.52/90.71  exact (zenon_H13c gt_1_0).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H179); [ zenon_intro zenon_H175 | zenon_intro zenon_H17a ].
% 90.52/90.71  exact (zenon_H175 zenon_H177).
% 90.52/90.71  exact (zenon_H176 zenon_H17a).
% 90.52/90.71  apply (zenon_L52_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L53_ *)
% 90.52/90.71  assert (zenon_L54_ : forall (zenon_TB_ec : zenon_U), (~(gt zenon_TB_ec (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H148 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H73 zenon_H12d.
% 90.52/90.71  elim (classic ((~((n1) = (n3)))/\(~(gt (n1) (n3))))); [ zenon_intro zenon_H17b | zenon_intro zenon_H17c ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H17b). zenon_intro zenon_H17d. zenon_intro zenon_H176.
% 90.52/90.71  apply (zenon_L53_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n3) (n1)) = (gt (n1) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H12d.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_3_1.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n3) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H17e].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H17c); [ zenon_intro zenon_H180 | zenon_intro zenon_H17f ].
% 90.52/90.71  apply zenon_H180. zenon_intro zenon_H181.
% 90.52/90.71  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.71  cut (((n1) = (n1)) = ((n3) = (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H17e.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H131.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H17d].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H17d zenon_H181).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H17f. zenon_intro zenon_H17a.
% 90.52/90.71  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.71  generalize (zenon_H138 (n3)). zenon_intro zenon_H182.
% 90.52/90.71  generalize (zenon_H182 (n1)). zenon_intro zenon_H183.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H183); [ zenon_intro zenon_H176 | zenon_intro zenon_H184 ].
% 90.52/90.71  exact (zenon_H176 zenon_H17a).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H184); [ zenon_intro zenon_H185 | zenon_intro zenon_H13d ].
% 90.52/90.71  exact (zenon_H185 gt_3_1).
% 90.52/90.71  exact (zenon_H12d zenon_H13d).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L54_ *)
% 90.52/90.71  assert (zenon_L55_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H119 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148.
% 90.52/90.71  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.71  cut ((gt (n1) (succ (n0))) = (gt (succ (n0)) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H119.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.71  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H13f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13d.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply (zenon_L54_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L55_ *)
% 90.52/90.71  assert (zenon_L56_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(gt (tptp_minus_1) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148 zenon_H10f zenon_H73.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (tptp_minus_1) (n1))); [ zenon_intro zenon_H134 | zenon_intro zenon_H132 ].
% 90.52/90.71  cut ((gt (tptp_minus_1) (n1)) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H10f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H134.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  elim (classic (gt (succ (n0)) (succ (n0)))); [ zenon_intro zenon_H12b | zenon_intro zenon_H119 ].
% 90.52/90.71  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.71  cut ((gt (n1) (succ (n0))) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H10f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((n1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H140].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n1) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H140.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_He6].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((~((tptp_minus_1) = (n3)))/\(~(gt (tptp_minus_1) (n3))))); [ zenon_intro zenon_H186 | zenon_intro zenon_H187 ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H186). zenon_intro zenon_He8. zenon_intro zenon_H188.
% 90.52/90.71  apply (zenon_L46_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n3) (n1)) = (gt (tptp_minus_1) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H132.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_3_1.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n3) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H187); [ zenon_intro zenon_H18b | zenon_intro zenon_H18a ].
% 90.52/90.71  apply zenon_H18b. zenon_intro zenon_H106.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n3) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H189.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_He8 zenon_H106).
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_H18a. zenon_intro zenon_H18c.
% 90.52/90.71  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.71  generalize (zenon_H171 (n3)). zenon_intro zenon_H18d.
% 90.52/90.71  generalize (zenon_H18d (n1)). zenon_intro zenon_H18e.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H18e); [ zenon_intro zenon_H188 | zenon_intro zenon_H18f ].
% 90.52/90.71  exact (zenon_H188 zenon_H18c).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H18f); [ zenon_intro zenon_H185 | zenon_intro zenon_H134 ].
% 90.52/90.71  exact (zenon_H185 gt_3_1).
% 90.52/90.71  exact (zenon_H132 zenon_H134).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  cut ((gt (succ (n0)) (succ (n0))) = (gt (n1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H13f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H12b.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.71  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb3.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H131.
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply (zenon_L55_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L56_ *)
% 90.52/90.71  assert (zenon_L57_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H119 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8.
% 90.52/90.71  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.71  cut ((gt (n1) (succ (n0))) = (gt (succ (n0)) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H119.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.71  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H13f.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H13d.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H66. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  apply (zenon_L45_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L57_ *)
% 90.52/90.71  assert (zenon_L58_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt (tptp_minus_1) (succ (n0)))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_H10f zenon_H10a zenon_H73.
% 90.52/90.71  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (n1)) = (gt (succ (tptp_minus_1)) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H10a.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H167.
% 90.52/90.71  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.71  elim (classic (zenon_TB_ec = (n1))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hac.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H97.
% 90.52/90.71  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  exact (zenon_Hae zenon_Had).
% 90.52/90.71  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.71  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.71  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.71  generalize (zenon_Hd2 (n1)). zenon_intro zenon_H165.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H165); [ zenon_intro zenon_Hab | zenon_intro zenon_H166 ].
% 90.52/90.71  exact (zenon_Hab zenon_H97).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H166); [ zenon_intro zenon_H148 | zenon_intro zenon_H167 ].
% 90.52/90.71  exact (zenon_H148 zenon_H164).
% 90.52/90.71  exact (zenon_Hac zenon_H167).
% 90.52/90.71  apply (zenon_L56_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.71  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hb0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hb1.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L58_ *)
% 90.52/90.71  assert (zenon_L59_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt (tptp_minus_1) (succ (n0)))) -> (~(gt (n0) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_H10f zenon_H111 zenon_H73.
% 90.52/90.71  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (n0) (succ (n0)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H111.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H10e.
% 90.52/90.71  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.71  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hc3.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hca.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H72 zenon_H71).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_Hb2. apply refl_equal.
% 90.52/90.71  apply (zenon_L58_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H72.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc2.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L59_ *)
% 90.52/90.71  assert (zenon_L60_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H111 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6.
% 90.52/90.71  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.71  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.71  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.71  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.71  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.71  exact (zenon_H10f zenon_H114).
% 90.52/90.71  exact (zenon_H111 zenon_H110).
% 90.52/90.71  apply (zenon_L59_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L60_ *)
% 90.52/90.71  assert (zenon_L61_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_He8 zenon_H148 zenon_H73 zenon_H190 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.71  elim (classic ((~((tptp_minus_1) = (n2)))/\(~(gt (tptp_minus_1) (n2))))); [ zenon_intro zenon_H16a | zenon_intro zenon_H16b ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H16a). zenon_intro zenon_He7. zenon_intro zenon_H16c.
% 90.52/90.71  apply (zenon_L41_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n2) (n0)) = (gt (tptp_minus_1) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H190.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_2_0.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n2) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H16d].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H16b); [ zenon_intro zenon_H16f | zenon_intro zenon_H16e ].
% 90.52/90.71  apply zenon_H16f. zenon_intro zenon_H107.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n2) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H16d.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n2))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_He7 zenon_H107).
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_H16e. zenon_intro zenon_H170.
% 90.52/90.71  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.71  generalize (zenon_H171 (n2)). zenon_intro zenon_H172.
% 90.52/90.71  generalize (zenon_H172 (n0)). zenon_intro zenon_H191.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H191); [ zenon_intro zenon_H16c | zenon_intro zenon_H192 ].
% 90.52/90.71  exact (zenon_H16c zenon_H170).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H192); [ zenon_intro zenon_H194 | zenon_intro zenon_H193 ].
% 90.52/90.71  exact (zenon_H194 gt_2_0).
% 90.52/90.71  exact (zenon_H190 zenon_H193).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L61_ *)
% 90.52/90.71  assert (zenon_L62_ : forall (zenon_TB_ec : zenon_U), (~(gt zenon_TB_ec (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H148 zenon_H73 zenon_H190 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.71  elim (classic ((~((tptp_minus_1) = (n3)))/\(~(gt (tptp_minus_1) (n3))))); [ zenon_intro zenon_H186 | zenon_intro zenon_H187 ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H186). zenon_intro zenon_He8. zenon_intro zenon_H188.
% 90.52/90.71  apply (zenon_L61_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n3) (n0)) = (gt (tptp_minus_1) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H190.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_3_0.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n3) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H187); [ zenon_intro zenon_H18b | zenon_intro zenon_H18a ].
% 90.52/90.71  apply zenon_H18b. zenon_intro zenon_H106.
% 90.52/90.71  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n3) = (tptp_minus_1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H189.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H113.
% 90.52/90.71  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.71  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_He8 zenon_H106).
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_He4. apply refl_equal.
% 90.52/90.71  apply zenon_H18a. zenon_intro zenon_H18c.
% 90.52/90.71  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.71  generalize (zenon_H171 (n3)). zenon_intro zenon_H18d.
% 90.52/90.71  generalize (zenon_H18d (n0)). zenon_intro zenon_H195.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H195); [ zenon_intro zenon_H188 | zenon_intro zenon_H196 ].
% 90.52/90.71  exact (zenon_H188 zenon_H18c).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H196); [ zenon_intro zenon_H197 | zenon_intro zenon_H193 ].
% 90.52/90.71  exact (zenon_H197 gt_3_0).
% 90.52/90.71  exact (zenon_H190 zenon_H193).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L62_ *)
% 90.52/90.71  assert (zenon_L63_ : forall (zenon_TB_ec : zenon_U), (~(gt (tptp_minus_1) (n0))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H190 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H73 zenon_Hcb.
% 90.52/90.71  elim (classic ((~(zenon_TB_ec = (n1)))/\(~(gt zenon_TB_ec (n1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H198). zenon_intro zenon_Hae. zenon_intro zenon_H148.
% 90.52/90.71  apply (zenon_L62_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n1) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hcb.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_1_0.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n1) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H199); [ zenon_intro zenon_H19c | zenon_intro zenon_H19b ].
% 90.52/90.71  apply zenon_H19c. zenon_intro zenon_Had.
% 90.52/90.71  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec) = ((n1) = zenon_TB_ec)).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H19a.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc9.
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hae zenon_Had).
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  apply zenon_H19b. zenon_intro zenon_H164.
% 90.52/90.71  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.71  generalize (zenon_H144 (n1)). zenon_intro zenon_H19d.
% 90.52/90.71  generalize (zenon_H19d (n0)). zenon_intro zenon_H19e.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H19e); [ zenon_intro zenon_H148 | zenon_intro zenon_H19f ].
% 90.52/90.71  exact (zenon_H148 zenon_H164).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H19f); [ zenon_intro zenon_H13c | zenon_intro zenon_Hd8 ].
% 90.52/90.71  exact (zenon_H13c gt_1_0).
% 90.52/90.71  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L63_ *)
% 90.52/90.71  assert (zenon_L64_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (tptp_minus_1) (n0))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_Hcd zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H190.
% 90.52/90.71  elim (classic (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hcf | zenon_intro zenon_Hd0 ].
% 90.52/90.71  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.71  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.71  generalize (zenon_Hd2 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_Hd3.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_Hd3); [ zenon_intro zenon_Hab | zenon_intro zenon_Hd4 ].
% 90.52/90.71  exact (zenon_Hab zenon_H97).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_Hd4); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hd5 ].
% 90.52/90.71  exact (zenon_Hd0 zenon_Hcf).
% 90.52/90.71  exact (zenon_Hcd zenon_Hd5).
% 90.52/90.71  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.71  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.71  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hd0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd8.
% 90.52/90.71  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.71  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Ha1. apply refl_equal.
% 90.52/90.71  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.71  apply (zenon_L63_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hd7.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd9.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hdb zenon_Hce).
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L64_ *)
% 90.52/90.71  assert (zenon_L65_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (tptp_minus_1) (n0))) -> (~(gt (n0) (sum (n0) (tptp_minus_1) zenon_E))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H190 zenon_Hde zenon_H73.
% 90.52/90.71  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.71  elim (classic (gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd5 | zenon_intro zenon_Hcd ].
% 90.52/90.71  cut ((gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hde.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd5.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.71  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hc3.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hca.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H72 zenon_H71).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply (zenon_L64_ zenon_TB_ec); trivial.
% 90.52/90.71  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H72.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hc2.
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.71  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  apply zenon_H8f. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L65_ *)
% 90.52/90.71  assert (zenon_L66_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (tptp_minus_1) (n0))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_Hdc zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H190.
% 90.52/90.71  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.71  cut ((gt (n0) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hdc.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hdd.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hd7.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd9.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hdb zenon_Hce).
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply (zenon_L65_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L66_ *)
% 90.52/90.71  assert (zenon_L67_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))) -> (~(gt (tptp_minus_1) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H73 zenon_H1a0 zenon_H190 zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.71  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))); [ zenon_intro zenon_H1a1 | zenon_intro zenon_H1a2 ].
% 90.52/90.71  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n1))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H1a0.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_H1a1.
% 90.52/90.71  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  exact (zenon_Hb3 successor_1).
% 90.52/90.71  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_He2 | zenon_intro zenon_Hdc ].
% 90.52/90.71  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.71  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.71  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.71  generalize (zenon_H1a3 (n0)). zenon_intro zenon_H1a4.
% 90.52/90.71  generalize (zenon_H1a4 (succ (n0))). zenon_intro zenon_H1a5.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H1a5); [ zenon_intro zenon_He1 | zenon_intro zenon_H1a6 ].
% 90.52/90.71  exact (zenon_He1 zenon_He0).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H1a6); [ zenon_intro zenon_H111 | zenon_intro zenon_H1a1 ].
% 90.52/90.71  exact (zenon_H111 zenon_H110).
% 90.52/90.71  exact (zenon_H1a2 zenon_H1a1).
% 90.52/90.71  apply (zenon_L60_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_He1.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_He2.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  congruence.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  exact (zenon_Hdb zenon_Hce).
% 90.52/90.71  apply (zenon_L66_ zenon_TB_ec); trivial.
% 90.52/90.71  (* end of lemma zenon_L67_ *)
% 90.52/90.71  assert (zenon_L68_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (tptp_minus_1) (n0))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n0))) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H190 zenon_H73 zenon_He1.
% 90.52/90.71  elim (classic ((~((sum (n0) (tptp_minus_1) zenon_E) = (n1)))/\(~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))))); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1a8 ].
% 90.52/90.71  apply (zenon_and_s _ _ zenon_H1a7). zenon_intro zenon_H1a9. zenon_intro zenon_H1a0.
% 90.52/90.71  apply (zenon_L67_ zenon_TB_ec); trivial.
% 90.52/90.71  cut ((gt (n1) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_He1.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact gt_1_0.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n1) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 90.52/90.71  congruence.
% 90.52/90.71  apply (zenon_notand_s _ _ zenon_H1a8); [ zenon_intro zenon_H1ac | zenon_intro zenon_H1ab ].
% 90.52/90.71  apply zenon_H1ac. zenon_intro zenon_H1ad.
% 90.52/90.71  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n1) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_H1aa.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hd9.
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H1a9].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_H1a9 zenon_H1ad).
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply zenon_Hda. apply refl_equal.
% 90.52/90.71  apply zenon_H1ab. zenon_intro zenon_H1ae.
% 90.52/90.71  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.71  generalize (zenon_H1a3 (n1)). zenon_intro zenon_H1af.
% 90.52/90.71  generalize (zenon_H1af (n0)). zenon_intro zenon_H1b0.
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H1b0); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H1b1 ].
% 90.52/90.71  exact (zenon_H1a0 zenon_H1ae).
% 90.52/90.71  apply (zenon_imply_s _ _ zenon_H1b1); [ zenon_intro zenon_H13c | zenon_intro zenon_He0 ].
% 90.52/90.71  exact (zenon_H13c gt_1_0).
% 90.52/90.71  exact (zenon_He1 zenon_He0).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  (* end of lemma zenon_L68_ *)
% 90.52/90.71  assert (zenon_L69_ : forall (zenon_TB_ec : zenon_U), (~(gt (tptp_minus_1) (n0))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.71  do 1 intro. intros zenon_H190 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H73 zenon_Hdf zenon_Hce.
% 90.52/90.71  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.71  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.71  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (n0) (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hdf.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_He0.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.71  congruence.
% 90.52/90.71  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.71  cut (((n0) = (n0)) = ((sum (n0) (tptp_minus_1) zenon_E) = (n0))).
% 90.52/90.71  intro zenon_D_pnotp.
% 90.52/90.71  apply zenon_Hdb.
% 90.52/90.71  rewrite <- zenon_D_pnotp.
% 90.52/90.71  exact zenon_Hca.
% 90.52/90.71  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.71  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.71  congruence.
% 90.52/90.71  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.71  apply zenon_H67. apply refl_equal.
% 90.52/90.72  apply (zenon_L68_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hd7.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd9.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hdb zenon_Hce).
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L69_ *)
% 90.52/90.72  assert (zenon_L70_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_Hdf zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt (tptp_minus_1) (n0))); [ zenon_intro zenon_H193 | zenon_intro zenon_H190 ].
% 90.52/90.72  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.72  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.72  generalize (zenon_H116 (n0)). zenon_intro zenon_H1b2.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1b2); [ zenon_intro zenon_H101 | zenon_intro zenon_H1b3 ].
% 90.52/90.72  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1b3); [ zenon_intro zenon_H190 | zenon_intro zenon_H1b4 ].
% 90.52/90.72  exact (zenon_H190 zenon_H193).
% 90.52/90.72  exact (zenon_Hdf zenon_H1b4).
% 90.52/90.72  apply (zenon_L69_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L70_ *)
% 90.52/90.72  assert (zenon_L71_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(leq (tptp_minus_1) (n0))) -> False).
% 90.52/90.72  do 0 intro. intros zenon_H73 zenon_H1b5.
% 90.52/90.72  generalize (leq_succ_gt_equiv (tptp_minus_1)). zenon_intro zenon_Hf0.
% 90.52/90.72  generalize (zenon_Hf0 (n0)). zenon_intro zenon_H1b6.
% 90.52/90.72  apply (zenon_equiv_s _ _ zenon_H1b6); [ zenon_intro zenon_H1b5; zenon_intro zenon_H1b9 | zenon_intro zenon_H1b8; zenon_intro zenon_H1b7 ].
% 90.52/90.72  elim (classic ((~((succ (n0)) = (n1)))/\(~(gt (succ (n0)) (n1))))); [ zenon_intro zenon_H1ba | zenon_intro zenon_H1bb ].
% 90.52/90.72  apply (zenon_and_s _ _ zenon_H1ba). zenon_intro zenon_Hb3. zenon_intro zenon_H130.
% 90.52/90.72  exact (zenon_Hb3 successor_1).
% 90.52/90.72  cut ((gt (n1) (tptp_minus_1)) = (gt (succ (n0)) (tptp_minus_1))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1b9.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_1_tptp_minus_1.
% 90.52/90.72  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.72  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H1bb); [ zenon_intro zenon_H1bd | zenon_intro zenon_H1bc ].
% 90.52/90.72  apply zenon_H1bd. zenon_intro successor_1.
% 90.52/90.72  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.72  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hb0.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hb1.
% 90.52/90.72  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.72  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hb3 successor_1).
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  apply zenon_H1bc. zenon_intro zenon_H12f.
% 90.52/90.72  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.72  generalize (zenon_H127 (n1)). zenon_intro zenon_H1be.
% 90.52/90.72  generalize (zenon_H1be (tptp_minus_1)). zenon_intro zenon_H1bf.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1bf); [ zenon_intro zenon_H130 | zenon_intro zenon_H1c0 ].
% 90.52/90.72  exact (zenon_H130 zenon_H12f).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1c0); [ zenon_intro zenon_H1c1 | zenon_intro zenon_H1b7 ].
% 90.52/90.72  exact (zenon_H1c1 gt_1_tptp_minus_1).
% 90.52/90.72  exact (zenon_H1b9 zenon_H1b7).
% 90.52/90.72  apply zenon_He4. apply refl_equal.
% 90.52/90.72  exact (zenon_H1b5 zenon_H1b8).
% 90.52/90.72  (* end of lemma zenon_L71_ *)
% 90.52/90.72  assert (zenon_L72_ : (~((succ (tptp_minus_1)) = (succ (n0)))) -> ((tptp_minus_1) = (n0)) -> False).
% 90.52/90.72  do 0 intro. intros zenon_H108 zenon_H103.
% 90.52/90.72  cut (((tptp_minus_1) = (n0))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_He5 zenon_H103).
% 90.52/90.72  (* end of lemma zenon_L72_ *)
% 90.52/90.72  assert (zenon_L73_ : forall (zenon_TB_ec : zenon_U), ((tptp_minus_1) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(leq zenon_TB_ec (n0))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H103 zenon_H97 zenon_H1c2.
% 90.52/90.72  generalize (leq_succ_gt_equiv zenon_TB_ec). zenon_intro zenon_H99.
% 90.52/90.72  generalize (zenon_H99 (n0)). zenon_intro zenon_H1c3.
% 90.52/90.72  apply (zenon_equiv_s _ _ zenon_H1c3); [ zenon_intro zenon_H1c2; zenon_intro zenon_H1c5 | zenon_intro zenon_H1c4; zenon_intro zenon_H163 ].
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n0)) zenon_TB_ec)).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1c5.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H97.
% 90.52/90.72  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_L72_); trivial.
% 90.52/90.72  apply zenon_Ha1. apply refl_equal.
% 90.52/90.72  exact (zenon_H1c2 zenon_H1c4).
% 90.52/90.72  (* end of lemma zenon_L73_ *)
% 90.52/90.72  assert (zenon_L74_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> ((tptp_minus_1) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~((n0) = zenon_TB_ec)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H103 zenon_H97 zenon_Hc8.
% 90.52/90.72  generalize (finite_domain_0 zenon_TB_ec). zenon_intro zenon_H1c6.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1c6); [ zenon_intro zenon_H1c7 | zenon_intro zenon_Hbb ].
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H1c7); [ zenon_intro zenon_H69 | zenon_intro zenon_H1c2 ].
% 90.52/90.72  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.72  apply (zenon_L73_ zenon_TB_ec); trivial.
% 90.52/90.72  apply zenon_Hc8. apply sym_equal. exact zenon_Hbb.
% 90.52/90.72  (* end of lemma zenon_L74_ *)
% 90.52/90.72  assert (zenon_L75_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((succ (n0)) = (succ zenon_TB_ec))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_He3 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.72  congruence.
% 90.52/90.72  generalize (finite_domain_3 zenon_TB_ec). zenon_intro zenon_Hb7.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_Hb7); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hb8 ].
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_Hb9); [ zenon_intro zenon_H69 | zenon_intro zenon_H98 ].
% 90.52/90.72  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.72  apply (zenon_L13_ zenon_TB_ec); trivial.
% 90.52/90.72  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ].
% 90.52/90.72  apply zenon_Hc8. apply sym_equal. exact zenon_Hbb.
% 90.52/90.72  apply (zenon_or_s _ _ zenon_Hba); [ zenon_intro zenon_Had | zenon_intro zenon_Hbc ].
% 90.52/90.72  generalize (finite_domain_0 (tptp_minus_1)). zenon_intro zenon_H1c8.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1c8); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H103 ].
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H1c9); [ zenon_intro zenon_Hed | zenon_intro zenon_H1b5 ].
% 90.52/90.72  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.72  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.72  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.72  elim (classic ((~((succ (tptp_minus_1)) = (n1)))/\(~(gt (succ (tptp_minus_1)) (n1))))); [ zenon_intro zenon_H1ca | zenon_intro zenon_H1cb ].
% 90.52/90.72  apply (zenon_and_s _ _ zenon_H1ca). zenon_intro zenon_H1cc. zenon_intro zenon_Hac.
% 90.52/90.72  apply (zenon_L14_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n1) (n0)) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hbf.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_1_0.
% 90.52/90.72  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.72  cut (((n1) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H1cd].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H1cb); [ zenon_intro zenon_H1cf | zenon_intro zenon_H1ce ].
% 90.52/90.72  apply zenon_H1cf. zenon_intro zenon_H1d0.
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n1) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1cd.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H1cc].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1cc zenon_H1d0).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H1ce. zenon_intro zenon_H167.
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.72  generalize (zenon_H1d1 (n0)). zenon_intro zenon_H1d2.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1d2); [ zenon_intro zenon_Hac | zenon_intro zenon_H1d3 ].
% 90.52/90.72  exact (zenon_Hac zenon_H167).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1d3); [ zenon_intro zenon_H13c | zenon_intro zenon_Hc1 ].
% 90.52/90.72  exact (zenon_H13c gt_1_0).
% 90.52/90.72  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.72  apply zenon_H67. apply refl_equal.
% 90.52/90.72  exact (zenon_Hed zenon_Hef).
% 90.52/90.72  apply (zenon_L71_); trivial.
% 90.52/90.72  apply (zenon_L74_ zenon_TB_ec); trivial.
% 90.52/90.72  apply (zenon_or_s _ _ zenon_Hbc); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hbd ].
% 90.52/90.72  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.72  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.72  (* end of lemma zenon_L75_ *)
% 90.52/90.72  assert (zenon_L76_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (n1) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8 zenon_H1d4 zenon_H73.
% 90.52/90.72  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.72  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.72  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.72  cut ((gt (n1) (succ (n0))) = (gt (n1) (succ zenon_TB_ec))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1d4.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H13e.
% 90.52/90.72  cut (((succ (n0)) = (succ zenon_TB_ec))); [idtac | apply NNPP; zenon_intro zenon_He3].
% 90.52/90.72  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H66. apply refl_equal.
% 90.52/90.72  apply (zenon_L75_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H13f.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H13d.
% 90.52/90.72  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.72  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H66. apply refl_equal.
% 90.52/90.72  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.72  apply (zenon_L45_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.72  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hb0.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hb1.
% 90.52/90.72  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.72  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hb3 successor_1).
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L76_ *)
% 90.52/90.72  assert (zenon_L77_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H111 zenon_H10a zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.72  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.72  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.72  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.72  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.72  exact (zenon_H10f zenon_H114).
% 90.52/90.72  exact (zenon_H111 zenon_H110).
% 90.52/90.72  apply (zenon_L58_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L77_ *)
% 90.52/90.72  assert (zenon_L78_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_H10a.
% 90.52/90.72  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.72  cut ((gt (n0) (succ (n0))) = (gt (succ (tptp_minus_1)) (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H10a.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H110.
% 90.52/90.72  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.72  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H72.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  apply (zenon_L77_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L78_ *)
% 90.52/90.72  assert (zenon_L79_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H1d5 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.72  elim (classic (gt (n1) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d6 | zenon_intro zenon_H1d4 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.72  generalize (zenon_H1d1 (succ zenon_TB_ec)). zenon_intro zenon_H1d7.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1d7); [ zenon_intro zenon_Hac | zenon_intro zenon_H1d8 ].
% 90.52/90.72  exact (zenon_Hac zenon_H167).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1d8); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H1d9 ].
% 90.52/90.72  exact (zenon_H1d4 zenon_H1d6).
% 90.52/90.72  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.72  apply (zenon_L76_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hac.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H10e.
% 90.52/90.72  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_Hb3 successor_1).
% 90.52/90.72  apply (zenon_L78_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L79_ *)
% 90.52/90.72  assert (zenon_L80_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_He8 zenon_H148 zenon_H1da zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6.
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.72  elim (classic (gt (n0) (n2))); [ zenon_intro zenon_H14b | zenon_intro zenon_H149 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.72  generalize (zenon_H141 (n2)). zenon_intro zenon_H1db.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1db); [ zenon_intro zenon_Hbf | zenon_intro zenon_H1dc ].
% 90.52/90.72  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1dc); [ zenon_intro zenon_H149 | zenon_intro zenon_H1dd ].
% 90.52/90.72  exact (zenon_H149 zenon_H14b).
% 90.52/90.72  exact (zenon_H1da zenon_H1dd).
% 90.52/90.72  apply (zenon_L42_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hbf.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc5.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply (zenon_L18_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L80_ *)
% 90.52/90.72  assert (zenon_L81_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8 zenon_H1da zenon_H73 zenon_Hcb.
% 90.52/90.72  elim (classic ((~(zenon_TB_ec = (n1)))/\(~(gt zenon_TB_ec (n1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 90.52/90.72  apply (zenon_and_s _ _ zenon_H198). zenon_intro zenon_Hae. zenon_intro zenon_H148.
% 90.52/90.72  apply (zenon_L80_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n1) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hcb.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_1_0.
% 90.52/90.72  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.72  cut (((n1) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H199); [ zenon_intro zenon_H19c | zenon_intro zenon_H19b ].
% 90.52/90.72  apply zenon_H19c. zenon_intro zenon_Had.
% 90.52/90.72  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.72  cut ((zenon_TB_ec = zenon_TB_ec) = ((n1) = zenon_TB_ec)).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H19a.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc9.
% 90.52/90.72  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.72  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hae zenon_Had).
% 90.52/90.72  apply zenon_Ha1. apply refl_equal.
% 90.52/90.72  apply zenon_Ha1. apply refl_equal.
% 90.52/90.72  apply zenon_H19b. zenon_intro zenon_H164.
% 90.52/90.72  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.72  generalize (zenon_H144 (n1)). zenon_intro zenon_H19d.
% 90.52/90.72  generalize (zenon_H19d (n0)). zenon_intro zenon_H19e.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H19e); [ zenon_intro zenon_H148 | zenon_intro zenon_H19f ].
% 90.52/90.72  exact (zenon_H148 zenon_H164).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H19f); [ zenon_intro zenon_H13c | zenon_intro zenon_Hd8 ].
% 90.52/90.72  exact (zenon_H13c gt_1_0).
% 90.52/90.72  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.72  apply zenon_H67. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L81_ *)
% 90.52/90.72  assert (zenon_L82_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_Hcd zenon_H1da zenon_Hce zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hcf | zenon_intro zenon_Hd0 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.72  generalize (zenon_Hd2 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_Hd3.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_Hd3); [ zenon_intro zenon_Hab | zenon_intro zenon_Hd4 ].
% 90.52/90.72  exact (zenon_Hab zenon_H97).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_Hd4); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hd5 ].
% 90.52/90.72  exact (zenon_Hd0 zenon_Hcf).
% 90.52/90.72  exact (zenon_Hcd zenon_Hd5).
% 90.52/90.72  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.72  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.72  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hd0.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd8.
% 90.52/90.72  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.72  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_Ha1. apply refl_equal.
% 90.52/90.72  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.72  apply (zenon_L81_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hd7.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd9.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hdb zenon_Hce).
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L82_ *)
% 90.52/90.72  assert (zenon_L83_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_Hdc zenon_H1da zenon_Hce zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.72  cut ((gt (n0) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hdc.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hdd.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hd7.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd9.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hdb zenon_Hce).
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd5 | zenon_intro zenon_Hcd ].
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hde.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd5.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.72  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hc3.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hca.
% 90.52/90.72  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.72  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H72 zenon_H71).
% 90.52/90.72  apply zenon_H67. apply refl_equal.
% 90.52/90.72  apply zenon_H67. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply (zenon_L82_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H72.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L83_ *)
% 90.52/90.72  assert (zenon_L84_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (succ (tptp_minus_1)) (n2))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_He1 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8 zenon_Hce zenon_H1da.
% 90.52/90.72  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_He2 | zenon_intro zenon_Hdc ].
% 90.52/90.72  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_He1.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_He2.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  exact (zenon_Hdb zenon_Hce).
% 90.52/90.72  apply (zenon_L83_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L84_ *)
% 90.52/90.72  assert (zenon_L85_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~((tptp_minus_1) = (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_He8 zenon_H1de zenon_H1da zenon_H73 zenon_Hce.
% 90.52/90.72  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.72  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.72  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.72  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ zenon_TB_ec))); [ zenon_intro zenon_H1df | zenon_intro zenon_H1e0 ].
% 90.52/90.72  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.72  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.72  generalize (zenon_H1e1 (succ zenon_TB_ec)). zenon_intro zenon_H1e2.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1e2); [ zenon_intro zenon_Hde | zenon_intro zenon_H1e3 ].
% 90.52/90.72  exact (zenon_Hde zenon_Hdd).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1e3); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e4 ].
% 90.52/90.72  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.72  exact (zenon_H1de zenon_H1e4).
% 90.52/90.72  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.72  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.72  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))); [ zenon_intro zenon_H1e5 | zenon_intro zenon_H1e6 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d9 | zenon_intro zenon_H1d5 ].
% 90.52/90.72  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.72  generalize (zenon_H1a3 (succ (tptp_minus_1))). zenon_intro zenon_H1e7.
% 90.52/90.72  generalize (zenon_H1e7 (succ zenon_TB_ec)). zenon_intro zenon_H1e8.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1e8); [ zenon_intro zenon_H1e6 | zenon_intro zenon_H1e9 ].
% 90.52/90.72  exact (zenon_H1e6 zenon_H1e5).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1e9); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H1df ].
% 90.52/90.72  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.72  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.72  apply (zenon_L79_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1e6.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_He0.
% 90.52/90.72  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  exact (zenon_H72 zenon_H71).
% 90.52/90.72  apply (zenon_L84_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H72.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hde.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1b4.
% 90.52/90.72  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.72  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H67. apply refl_equal.
% 90.52/90.72  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.72  apply (zenon_L70_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hd7.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hd9.
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.72  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hdb zenon_Hce).
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  apply zenon_Hda. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L85_ *)
% 90.52/90.72  assert (zenon_L86_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_He8 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H1de zenon_H1ea zenon_H73.
% 90.52/90.72  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n2))); [ zenon_intro zenon_H1dd | zenon_intro zenon_H1da ].
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (n2)) = (gt (succ (tptp_minus_1)) (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ea.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1dd.
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.72  apply (zenon_L85_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ec.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ed.
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L86_ *)
% 90.52/90.72  assert (zenon_L87_ : forall (zenon_TB_ec : zenon_U), (~(gt (n1) (succ (succ (n0))))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H1f0 zenon_H1de zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_He8 zenon_H73.
% 90.52/90.72  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.72  elim (classic (gt (n1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H75 | zenon_intro zenon_H70 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.72  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.72  generalize (zenon_H138 (succ (tptp_minus_1))). zenon_intro zenon_H1f2.
% 90.52/90.72  generalize (zenon_H1f2 (succ (succ (n0)))). zenon_intro zenon_H1f3.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1f3); [ zenon_intro zenon_H70 | zenon_intro zenon_H1f4 ].
% 90.52/90.72  exact (zenon_H70 zenon_H75).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H1f4); [ zenon_intro zenon_H1ea | zenon_intro zenon_H1f5 ].
% 90.52/90.72  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.72  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.72  apply (zenon_L86_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n1) (n0)) = (gt (n1) (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H70.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_1_0.
% 90.52/90.72  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.72  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H66. apply refl_equal.
% 90.52/90.72  exact (zenon_H72 zenon_H71).
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H72.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L87_ *)
% 90.52/90.72  assert (zenon_L88_ : (~(gt (n2) (succ (n0)))) -> False).
% 90.52/90.72  do 0 intro. intros zenon_H1f6.
% 90.52/90.72  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.72  cut ((gt (n2) (n1)) = (gt (n2) (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1f6.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_2_1.
% 90.52/90.72  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.72  apply zenon_Hb0. apply sym_equal. exact successor_1.
% 90.52/90.72  (* end of lemma zenon_L88_ *)
% 90.52/90.72  assert (zenon_L89_ : (~(gt (succ (succ (n0))) (succ (n0)))) -> False).
% 90.52/90.72  do 0 intro. intros zenon_H1f7.
% 90.52/90.72  elim (classic (gt (n2) (succ (n0)))); [ zenon_intro zenon_H1f8 | zenon_intro zenon_H1f6 ].
% 90.52/90.72  cut ((gt (n2) (succ (n0))) = (gt (succ (succ (n0))) (succ (n0)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1f7.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1f8.
% 90.52/90.72  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ec.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ed.
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_Hb2. apply refl_equal.
% 90.52/90.72  apply (zenon_L88_); trivial.
% 90.52/90.72  (* end of lemma zenon_L89_ *)
% 90.52/90.72  assert (zenon_L90_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_He8 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H1de zenon_H73 zenon_H1f9.
% 90.52/90.72  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.72  elim (classic (gt (succ (succ (n0))) (n2))); [ zenon_intro zenon_H1fa | zenon_intro zenon_H1fb ].
% 90.52/90.72  cut ((gt (succ (succ (n0))) (n2)) = (gt (n2) (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1f9.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1fa.
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.72  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ef.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1fc.
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  elim (classic (gt (succ (succ (n0))) (succ (succ (n0))))); [ zenon_intro zenon_H1fd | zenon_intro zenon_H1fe ].
% 90.52/90.72  cut ((gt (succ (succ (n0))) (succ (succ (n0)))) = (gt (succ (succ (n0))) (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1fb.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1fd.
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  elim (classic (gt (succ (succ (n0))) (succ (n0)))); [ zenon_intro zenon_H1ff | zenon_intro zenon_H1f7 ].
% 90.52/90.72  elim (classic (gt (succ (succ (n0))) (n1))); [ zenon_intro zenon_H200 | zenon_intro zenon_H201 ].
% 90.52/90.72  elim (classic (gt (n1) (succ (succ (n0))))); [ zenon_intro zenon_H1f5 | zenon_intro zenon_H1f0 ].
% 90.52/90.72  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.72  generalize (zenon_H202 (n1)). zenon_intro zenon_H203.
% 90.52/90.72  generalize (zenon_H203 (succ (succ (n0)))). zenon_intro zenon_H204.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H204); [ zenon_intro zenon_H201 | zenon_intro zenon_H205 ].
% 90.52/90.72  exact (zenon_H201 zenon_H200).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H205); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H1fd ].
% 90.52/90.72  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.72  exact (zenon_H1fe zenon_H1fd).
% 90.52/90.72  apply (zenon_L87_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (succ (succ (n0))) (succ (n0))) = (gt (succ (succ (n0))) (n1))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H201.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ff.
% 90.52/90.72  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  exact (zenon_Hb3 successor_1).
% 90.52/90.72  apply (zenon_L89_); trivial.
% 90.52/90.72  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ec.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ed.
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L90_ *)
% 90.52/90.72  assert (zenon_L91_ : (~(gt (n3) (succ (succ (n0))))) -> False).
% 90.52/90.72  do 0 intro. intros zenon_H206.
% 90.52/90.72  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.72  cut ((gt (n3) (n2)) = (gt (n3) (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H206.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_3_2.
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  cut (((n3) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H64. apply refl_equal.
% 90.52/90.72  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.72  apply zenon_H1ec. apply sym_equal. exact successor_2.
% 90.52/90.72  (* end of lemma zenon_L91_ *)
% 90.52/90.72  assert (zenon_L92_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H207 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148.
% 90.52/90.72  elim (classic (gt (n1) (n3))); [ zenon_intro zenon_H17a | zenon_intro zenon_H176 ].
% 90.52/90.72  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.72  generalize (zenon_H76 (n1)). zenon_intro zenon_H77.
% 90.52/90.72  generalize (zenon_H77 (n3)). zenon_intro zenon_H208.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H208); [ zenon_intro zenon_H7a | zenon_intro zenon_H209 ].
% 90.52/90.72  exact (zenon_H7a gt_2_1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H209); [ zenon_intro zenon_H176 | zenon_intro zenon_H20a ].
% 90.52/90.72  exact (zenon_H176 zenon_H17a).
% 90.52/90.72  exact (zenon_H207 zenon_H20a).
% 90.52/90.72  apply (zenon_L53_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L92_ *)
% 90.52/90.72  assert (zenon_L93_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(gt (n2) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148 zenon_H20b zenon_H73.
% 90.52/90.72  elim (classic ((n3) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20c | zenon_intro zenon_H8b ].
% 90.52/90.72  elim (classic (gt (n2) (n3))); [ zenon_intro zenon_H20a | zenon_intro zenon_H207 ].
% 90.52/90.72  cut ((gt (n2) (n3)) = (gt (n2) (succ (succ (succ (n0)))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H20b.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H20a.
% 90.52/90.72  cut (((n3) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  exact (zenon_H8b zenon_H20c).
% 90.52/90.72  apply (zenon_L92_ zenon_TB_ec); trivial.
% 90.52/90.72  elim (classic ((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20d | zenon_intro zenon_H20e ].
% 90.52/90.72  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0))))) = ((n3) = (succ (succ (succ (n0)))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H8b.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H20d.
% 90.52/90.72  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.72  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H20f successor_3).
% 90.52/90.72  apply zenon_H20e. apply refl_equal.
% 90.52/90.72  apply zenon_H20e. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L93_ *)
% 90.52/90.72  assert (zenon_L94_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (succ (n0))) (succ (succ (succ (n0)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H210 zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148.
% 90.52/90.72  elim (classic (gt (n2) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H211 | zenon_intro zenon_H20b ].
% 90.52/90.72  cut ((gt (n2) (succ (succ (succ (n0))))) = (gt (succ (succ (n0))) (succ (succ (succ (n0)))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H210.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H211.
% 90.52/90.72  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  congruence.
% 90.52/90.72  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ec.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ed.
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H20e. apply refl_equal.
% 90.52/90.72  apply (zenon_L93_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L94_ *)
% 90.52/90.72  assert (zenon_L95_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148 zenon_H73 zenon_H1f9.
% 90.52/90.72  elim (classic ((~((n2) = (n3)))/\(~(gt (n2) (n3))))); [ zenon_intro zenon_H212 | zenon_intro zenon_H213 ].
% 90.52/90.72  apply (zenon_and_s _ _ zenon_H212). zenon_intro zenon_H214. zenon_intro zenon_H207.
% 90.52/90.72  apply (zenon_L92_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n3) (n2)) = (gt (n2) (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1f9.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_3_2.
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  cut (((n3) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H215].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H213); [ zenon_intro zenon_H217 | zenon_intro zenon_H216 ].
% 90.52/90.72  apply zenon_H217. zenon_intro zenon_H218.
% 90.52/90.72  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.72  cut (((n2) = (n2)) = ((n3) = (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H215.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1fc.
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  cut (((n2) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H214].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H214 zenon_H218).
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  apply zenon_H216. zenon_intro zenon_H20a.
% 90.52/90.72  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.72  generalize (zenon_H76 (n3)). zenon_intro zenon_H219.
% 90.52/90.72  generalize (zenon_H219 (n2)). zenon_intro zenon_H21a.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H21a); [ zenon_intro zenon_H207 | zenon_intro zenon_H21b ].
% 90.52/90.72  exact (zenon_H207 zenon_H20a).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H21b); [ zenon_intro zenon_H81 | zenon_intro zenon_H21c ].
% 90.52/90.72  exact (zenon_H81 gt_3_2).
% 90.52/90.72  exact (zenon_H1f9 zenon_H21c).
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L95_ *)
% 90.52/90.72  assert (zenon_L96_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n1))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (n1))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hae zenon_Hb5 zenon_Hb6 zenon_H148 zenon_H21d zenon_H73.
% 90.52/90.72  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n2))); [ zenon_intro zenon_H1dd | zenon_intro zenon_H1da ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.72  elim (classic (gt (succ (succ (n0))) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H21e | zenon_intro zenon_H210 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (succ (succ (n0)))). zenon_intro zenon_H21f.
% 90.52/90.72  generalize (zenon_H21f (succ (succ (succ (n0))))). zenon_intro zenon_H220.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H220); [ zenon_intro zenon_H1ea | zenon_intro zenon_H221 ].
% 90.52/90.72  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H221); [ zenon_intro zenon_H210 | zenon_intro zenon_H222 ].
% 90.52/90.72  exact (zenon_H210 zenon_H21e).
% 90.52/90.72  exact (zenon_H21d zenon_H222).
% 90.52/90.72  apply (zenon_L94_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (n2)) = (gt (succ (tptp_minus_1)) (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ea.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1dd.
% 90.52/90.72  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.72  elim (classic ((~((succ (tptp_minus_1)) = (n3)))/\(~(gt (succ (tptp_minus_1)) (n3))))); [ zenon_intro zenon_H223 | zenon_intro zenon_H224 ].
% 90.52/90.72  apply (zenon_and_s _ _ zenon_H223). zenon_intro zenon_H226. zenon_intro zenon_H225.
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.72  elim (classic (gt (n0) (n3))); [ zenon_intro zenon_H177 | zenon_intro zenon_H175 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.72  generalize (zenon_H141 (n3)). zenon_intro zenon_H227.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H227); [ zenon_intro zenon_Hbf | zenon_intro zenon_H228 ].
% 90.52/90.72  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H228); [ zenon_intro zenon_H175 | zenon_intro zenon_H229 ].
% 90.52/90.72  exact (zenon_H175 zenon_H177).
% 90.52/90.72  exact (zenon_H225 zenon_H229).
% 90.52/90.72  apply (zenon_L52_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_Hbf.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc5.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.72  apply (zenon_L18_ zenon_TB_ec); trivial.
% 90.52/90.72  cut ((gt (n3) (n2)) = (gt (succ (tptp_minus_1)) (n2))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1da.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact gt_3_2.
% 90.52/90.72  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.72  cut (((n3) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H22a].
% 90.52/90.72  congruence.
% 90.52/90.72  apply (zenon_notand_s _ _ zenon_H224); [ zenon_intro zenon_H22c | zenon_intro zenon_H22b ].
% 90.52/90.72  apply zenon_H22c. zenon_intro zenon_H22d.
% 90.52/90.72  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n3) = (succ (tptp_minus_1)))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H22a.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_Hc2.
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H226].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H226 zenon_H22d).
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  apply zenon_H22b. zenon_intro zenon_H229.
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n3)). zenon_intro zenon_H22e.
% 90.52/90.72  generalize (zenon_H22e (n2)). zenon_intro zenon_H22f.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H22f); [ zenon_intro zenon_H225 | zenon_intro zenon_H230 ].
% 90.52/90.72  exact (zenon_H225 zenon_H229).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H230); [ zenon_intro zenon_H81 | zenon_intro zenon_H1dd ].
% 90.52/90.72  exact (zenon_H81 gt_3_2).
% 90.52/90.72  exact (zenon_H1da zenon_H1dd).
% 90.52/90.72  apply zenon_H65. apply refl_equal.
% 90.52/90.72  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H1ec.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H1ed.
% 90.52/90.72  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.72  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.72  congruence.
% 90.52/90.72  exact (zenon_H1ef successor_2).
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  apply zenon_H1ee. apply refl_equal.
% 90.52/90.72  (* end of lemma zenon_L96_ *)
% 90.52/90.72  assert (zenon_L97_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (n0))))) -> (~(gt zenon_TB_ec (n1))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.72  do 1 intro. intros zenon_H73 zenon_H1ea zenon_H148 zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68.
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H222 | zenon_intro zenon_H21d ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (n3))); [ zenon_intro zenon_H229 | zenon_intro zenon_H225 ].
% 90.52/90.72  elim (classic (gt (n3) (succ (succ (n0))))); [ zenon_intro zenon_H231 | zenon_intro zenon_H206 ].
% 90.52/90.72  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.72  generalize (zenon_Hd1 (n3)). zenon_intro zenon_H22e.
% 90.52/90.72  generalize (zenon_H22e (succ (succ (n0)))). zenon_intro zenon_H232.
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H232); [ zenon_intro zenon_H225 | zenon_intro zenon_H233 ].
% 90.52/90.72  exact (zenon_H225 zenon_H229).
% 90.52/90.72  apply (zenon_imply_s _ _ zenon_H233); [ zenon_intro zenon_H206 | zenon_intro zenon_H1f1 ].
% 90.52/90.72  exact (zenon_H206 zenon_H231).
% 90.52/90.72  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.72  apply (zenon_L91_); trivial.
% 90.52/90.72  cut ((gt (succ (tptp_minus_1)) (succ (succ (succ (n0))))) = (gt (succ (tptp_minus_1)) (n3))).
% 90.52/90.72  intro zenon_D_pnotp.
% 90.52/90.72  apply zenon_H225.
% 90.52/90.72  rewrite <- zenon_D_pnotp.
% 90.52/90.72  exact zenon_H222.
% 90.52/90.72  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.72  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.72  congruence.
% 90.52/90.72  apply zenon_H8f. apply refl_equal.
% 90.52/90.72  exact (zenon_H20f successor_3).
% 90.52/90.72  apply (zenon_L96_ zenon_TB_ec); trivial.
% 90.52/90.72  (* end of lemma zenon_L97_ *)
% 90.52/90.72  assert (zenon_L98_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n1))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (succ (n0))))) -> (~(gt zenon_TB_ec (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.72  do 1 intro. intros zenon_Hb6 zenon_Hb5 zenon_Hae zenon_H97 zenon_H68 zenon_H234 zenon_H148 zenon_H73.
% 90.52/90.72  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.72  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.72  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.72  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.73  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.73  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.73  generalize (zenon_H145 (succ (succ (n0)))). zenon_intro zenon_H235.
% 90.52/90.73  apply (zenon_imply_s _ _ zenon_H235); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H236 ].
% 90.52/90.73  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.73  apply (zenon_imply_s _ _ zenon_H236); [ zenon_intro zenon_H1ea | zenon_intro zenon_H237 ].
% 90.52/90.73  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.73  exact (zenon_H234 zenon_H237).
% 90.52/90.73  apply (zenon_L97_ zenon_TB_ec); trivial.
% 90.52/90.73  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.73  intro zenon_D_pnotp.
% 90.52/90.73  apply zenon_Hc4.
% 90.52/90.73  rewrite <- zenon_D_pnotp.
% 90.52/90.73  exact zenon_Hd8.
% 90.52/90.73  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.73  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.73  congruence.
% 90.52/90.73  apply zenon_Ha1. apply refl_equal.
% 90.52/90.73  exact (zenon_H72 zenon_H71).
% 90.52/90.73  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.73  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.73  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.73  intro zenon_D_pnotp.
% 90.52/90.73  apply zenon_H72.
% 90.52/90.73  rewrite <- zenon_D_pnotp.
% 90.52/90.73  exact zenon_Hc2.
% 90.52/90.73  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.73  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.73  congruence.
% 90.52/90.73  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.73  apply zenon_H8f. apply refl_equal.
% 90.52/90.73  apply zenon_H8f. apply refl_equal.
% 90.52/90.73  (* end of lemma zenon_L98_ *)
% 90.52/90.73  assert (zenon_L99_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> False).
% 90.52/90.73  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_H234 zenon_H73 zenon_Hcb.
% 90.52/90.73  elim (classic ((~(zenon_TB_ec = (n1)))/\(~(gt zenon_TB_ec (n1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 90.52/90.73  apply (zenon_and_s _ _ zenon_H198). zenon_intro zenon_Hae. zenon_intro zenon_H148.
% 90.52/90.73  apply (zenon_L98_ zenon_TB_ec); trivial.
% 90.52/90.73  cut ((gt (n1) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.73  intro zenon_D_pnotp.
% 90.52/90.73  apply zenon_Hcb.
% 90.52/90.73  rewrite <- zenon_D_pnotp.
% 90.52/90.73  exact gt_1_0.
% 90.52/90.73  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.73  cut (((n1) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 90.52/90.73  congruence.
% 90.52/90.73  apply (zenon_notand_s _ _ zenon_H199); [ zenon_intro zenon_H19c | zenon_intro zenon_H19b ].
% 90.52/90.73  apply zenon_H19c. zenon_intro zenon_Had.
% 90.52/90.73  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.73  cut ((zenon_TB_ec = zenon_TB_ec) = ((n1) = zenon_TB_ec)).
% 90.52/90.73  intro zenon_D_pnotp.
% 90.52/90.73  apply zenon_H19a.
% 90.52/90.73  rewrite <- zenon_D_pnotp.
% 90.52/90.73  exact zenon_Hc9.
% 90.52/90.73  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.73  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.73  congruence.
% 90.52/90.73  exact (zenon_Hae zenon_Had).
% 90.52/90.73  apply zenon_Ha1. apply refl_equal.
% 90.52/90.73  apply zenon_Ha1. apply refl_equal.
% 90.52/90.73  apply zenon_H19b. zenon_intro zenon_H164.
% 90.52/90.73  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.73  generalize (zenon_H144 (n1)). zenon_intro zenon_H19d.
% 90.52/90.73  generalize (zenon_H19d (n0)). zenon_intro zenon_H19e.
% 90.52/90.73  apply (zenon_imply_s _ _ zenon_H19e); [ zenon_intro zenon_H148 | zenon_intro zenon_H19f ].
% 90.52/90.73  exact (zenon_H148 zenon_H164).
% 90.52/90.73  apply (zenon_imply_s _ _ zenon_H19f); [ zenon_intro zenon_H13c | zenon_intro zenon_Hd8 ].
% 90.52/90.73  exact (zenon_H13c gt_1_0).
% 90.52/90.73  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.73  apply zenon_H67. apply refl_equal.
% 90.52/90.73  (* end of lemma zenon_L99_ *)
% 90.52/90.73  assert (zenon_L100_ : forall (zenon_TB_ec : zenon_U), (~(gt zenon_TB_ec (succ (succ (n0))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H234 zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H1de zenon_He8 zenon_H73.
% 90.52/90.74  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.74  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.74  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.74  generalize (zenon_H145 (succ (succ (n0)))). zenon_intro zenon_H235.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H235); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H236 ].
% 90.52/90.74  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H236); [ zenon_intro zenon_H1ea | zenon_intro zenon_H237 ].
% 90.52/90.74  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.74  exact (zenon_H234 zenon_H237).
% 90.52/90.74  apply (zenon_L86_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hc4.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd8.
% 90.52/90.74  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  exact (zenon_H72 zenon_H71).
% 90.52/90.74  apply (zenon_L99_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H72.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L100_ *)
% 90.52/90.74  assert (zenon_L101_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n2))) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H238 zenon_H1de zenon_He8 zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt zenon_TB_ec (succ (succ (n0))))); [ zenon_intro zenon_H237 | zenon_intro zenon_H234 ].
% 90.52/90.74  cut ((gt zenon_TB_ec (succ (succ (n0)))) = (gt zenon_TB_ec (n2))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H238.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H237.
% 90.52/90.74  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  exact (zenon_H1ef successor_2).
% 90.52/90.74  apply (zenon_L100_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L101_ *)
% 90.52/90.74  assert (zenon_L102_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n3))) -> (~(gt zenon_TB_ec (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H175 zenon_H238 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H1de.
% 90.52/90.74  elim (classic ((tptp_minus_1) = (n3))); [ zenon_intro zenon_H106 | zenon_intro zenon_He8 ].
% 90.52/90.74  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n3))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H175.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_0_tptp_minus_1.
% 90.52/90.74  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  exact (zenon_He8 zenon_H106).
% 90.52/90.74  apply (zenon_L101_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L102_ *)
% 90.52/90.74  assert (zenon_L103_ : forall (zenon_TB_ec : zenon_U), (~(gt zenon_TB_ec (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H238 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_Hce zenon_H1de zenon_H73 zenon_Hdf.
% 90.52/90.74  elim (classic ((~((n0) = (n3)))/\(~(gt (n0) (n3))))); [ zenon_intro zenon_H239 | zenon_intro zenon_H23a ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H239). zenon_intro zenon_H23b. zenon_intro zenon_H175.
% 90.52/90.74  apply (zenon_L102_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n3) (n0)) = (gt (n0) (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hdf.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_3_0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n3) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H23c].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H23a); [ zenon_intro zenon_H23e | zenon_intro zenon_H23d ].
% 90.52/90.74  apply zenon_H23e. zenon_intro zenon_H23f.
% 90.52/90.74  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.74  cut (((n0) = (n0)) = ((n3) = (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H23c.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hca.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n0) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H23b].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H23b zenon_H23f).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_H23d. zenon_intro zenon_H177.
% 90.52/90.74  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.74  generalize (zenon_H115 (n3)). zenon_intro zenon_H240.
% 90.52/90.74  generalize (zenon_H240 (n0)). zenon_intro zenon_H241.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H241); [ zenon_intro zenon_H175 | zenon_intro zenon_H242 ].
% 90.52/90.74  exact (zenon_H175 zenon_H177).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H242); [ zenon_intro zenon_H197 | zenon_intro zenon_H1b4 ].
% 90.52/90.74  exact (zenon_H197 gt_3_0).
% 90.52/90.74  exact (zenon_Hdf zenon_H1b4).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L103_ *)
% 90.52/90.74  assert (zenon_L104_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (n2))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H176 zenon_H1de zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H238.
% 90.52/90.74  elim (classic (gt (n0) (n3))); [ zenon_intro zenon_H177 | zenon_intro zenon_H175 ].
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.74  generalize (zenon_H139 (n3)). zenon_intro zenon_H178.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H178); [ zenon_intro zenon_H13c | zenon_intro zenon_H179 ].
% 90.52/90.74  exact (zenon_H13c gt_1_0).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H179); [ zenon_intro zenon_H175 | zenon_intro zenon_H17a ].
% 90.52/90.74  exact (zenon_H175 zenon_H177).
% 90.52/90.74  exact (zenon_H176 zenon_H17a).
% 90.52/90.74  apply (zenon_L102_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L104_ *)
% 90.52/90.74  assert (zenon_L105_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (n2))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H238 zenon_H73 zenon_H12d.
% 90.52/90.74  elim (classic ((~((n1) = (n3)))/\(~(gt (n1) (n3))))); [ zenon_intro zenon_H17b | zenon_intro zenon_H17c ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H17b). zenon_intro zenon_H17d. zenon_intro zenon_H176.
% 90.52/90.74  apply (zenon_L104_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n3) (n1)) = (gt (n1) (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H12d.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_3_1.
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  cut (((n3) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H17e].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H17c); [ zenon_intro zenon_H180 | zenon_intro zenon_H17f ].
% 90.52/90.74  apply zenon_H180. zenon_intro zenon_H181.
% 90.52/90.74  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.74  cut (((n1) = (n1)) = ((n3) = (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H17e.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H131.
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  cut (((n1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H17d].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H17d zenon_H181).
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  apply zenon_H17f. zenon_intro zenon_H17a.
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (n3)). zenon_intro zenon_H182.
% 90.52/90.74  generalize (zenon_H182 (n1)). zenon_intro zenon_H183.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H183); [ zenon_intro zenon_H176 | zenon_intro zenon_H184 ].
% 90.52/90.74  exact (zenon_H176 zenon_H17a).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H184); [ zenon_intro zenon_H185 | zenon_intro zenon_H13d ].
% 90.52/90.74  exact (zenon_H185 gt_3_1).
% 90.52/90.74  exact (zenon_H12d zenon_H13d).
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L105_ *)
% 90.52/90.74  assert (zenon_L106_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~(gt (tptp_minus_1) (succ (n0)))) -> (~(gt (n0) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_H10f zenon_H111 zenon_H73.
% 90.52/90.74  apply (zenon_L59_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L106_ *)
% 90.52/90.74  assert (zenon_L107_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H111 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6.
% 90.52/90.74  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.74  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.74  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.74  generalize (zenon_H116 (succ (n0))). zenon_intro zenon_H117.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H117); [ zenon_intro zenon_H101 | zenon_intro zenon_H118 ].
% 90.52/90.74  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H118); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 90.52/90.74  exact (zenon_H10f zenon_H114).
% 90.52/90.74  exact (zenon_H111 zenon_H110).
% 90.52/90.74  apply (zenon_L106_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L107_ *)
% 90.52/90.74  assert (zenon_L108_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H10a zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.74  cut ((gt (n0) (succ (n0))) = (gt (succ (tptp_minus_1)) (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H10a.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H110.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H72.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply (zenon_L107_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L108_ *)
% 90.52/90.74  assert (zenon_L109_ : forall (zenon_TB_ec : zenon_U), (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_Hb6 zenon_H97 zenon_H68 zenon_H10a zenon_H73 zenon_H148.
% 90.52/90.74  elim (classic ((~(zenon_TB_ec = (n2)))/\(~(gt zenon_TB_ec (n2))))); [ zenon_intro zenon_H243 | zenon_intro zenon_H244 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_Hb5. zenon_intro zenon_H238.
% 90.52/90.74  apply (zenon_L108_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n2) (n1)) = (gt zenon_TB_ec (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H148.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_2_1.
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  cut (((n2) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H245].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H244); [ zenon_intro zenon_H247 | zenon_intro zenon_H246 ].
% 90.52/90.74  apply zenon_H247. zenon_intro zenon_Hbe.
% 90.52/90.74  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec) = ((n2) = zenon_TB_ec)).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H245.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc9.
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_H246. zenon_intro zenon_H248.
% 90.52/90.74  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.74  generalize (zenon_H144 (n2)). zenon_intro zenon_H249.
% 90.52/90.74  generalize (zenon_H249 (n1)). zenon_intro zenon_H24a.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24a); [ zenon_intro zenon_H238 | zenon_intro zenon_H24b ].
% 90.52/90.74  exact (zenon_H238 zenon_H248).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24b); [ zenon_intro zenon_H7a | zenon_intro zenon_H164 ].
% 90.52/90.74  exact (zenon_H7a gt_2_1).
% 90.52/90.74  exact (zenon_H148 zenon_H164).
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L109_ *)
% 90.52/90.74  assert (zenon_L110_ : forall (zenon_TB_ec : zenon_U), (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~(gt zenon_TB_ec (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H10a zenon_H68 zenon_H97 zenon_Hb6 zenon_H109 zenon_H73.
% 90.52/90.74  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.74  cut ((gt zenon_TB_ec (n1)) = (gt zenon_TB_ec (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H109.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H164.
% 90.52/90.74  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.74  apply (zenon_L109_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.74  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hb0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hb1.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L110_ *)
% 90.52/90.74  assert (zenon_L111_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H10a zenon_H68 zenon_H97 zenon_Hb6.
% 90.52/90.74  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.74  generalize (zenon_Hd2 (succ (n0))). zenon_intro zenon_H10c.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H10c); [ zenon_intro zenon_Hab | zenon_intro zenon_H10d ].
% 90.52/90.74  exact (zenon_Hab zenon_H97).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_H109 | zenon_intro zenon_H10e ].
% 90.52/90.74  exact (zenon_H109 zenon_H10b).
% 90.52/90.74  exact (zenon_H10a zenon_H10e).
% 90.52/90.74  apply (zenon_L110_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L111_ *)
% 90.52/90.74  assert (zenon_L112_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~(gt (n0) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_H111 zenon_H73.
% 90.52/90.74  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.74  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (n0) (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H111.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H10e.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.74  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hc3.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hca.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H72 zenon_H71).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply (zenon_L111_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H72.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L112_ *)
% 90.52/90.74  assert (zenon_L113_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H1a2 zenon_H68 zenon_H97 zenon_Hb6 zenon_Hce.
% 90.52/90.74  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.74  cut ((gt (n0) (succ (n0))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1a2.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H110.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hd7.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd9.
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hdb zenon_Hce).
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply (zenon_L112_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L113_ *)
% 90.52/90.74  assert (zenon_L114_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H1a0 zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))); [ zenon_intro zenon_H1a1 | zenon_intro zenon_H1a2 ].
% 90.52/90.74  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1a0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H1a1.
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply (zenon_L113_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L114_ *)
% 90.52/90.74  assert (zenon_L115_ : forall (zenon_TB_ec : zenon_U), ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n0))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H73 zenon_He1.
% 90.52/90.74  elim (classic ((~((sum (n0) (tptp_minus_1) zenon_E) = (n1)))/\(~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))))); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1a8 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H1a7). zenon_intro zenon_H1a9. zenon_intro zenon_H1a0.
% 90.52/90.74  apply (zenon_L114_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n1) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_He1.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_1_0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n1) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H1a8); [ zenon_intro zenon_H1ac | zenon_intro zenon_H1ab ].
% 90.52/90.74  apply zenon_H1ac. zenon_intro zenon_H1ad.
% 90.52/90.74  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n1) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1aa.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd9.
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H1a9].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H1a9 zenon_H1ad).
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_H1ab. zenon_intro zenon_H1ae.
% 90.52/90.74  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.74  generalize (zenon_H1a3 (n1)). zenon_intro zenon_H1af.
% 90.52/90.74  generalize (zenon_H1af (n0)). zenon_intro zenon_H1b0.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1b0); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H1b1 ].
% 90.52/90.74  exact (zenon_H1a0 zenon_H1ae).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1b1); [ zenon_intro zenon_H13c | zenon_intro zenon_He0 ].
% 90.52/90.74  exact (zenon_H13c gt_1_0).
% 90.52/90.74  exact (zenon_He1 zenon_He0).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L115_ *)
% 90.52/90.74  assert (zenon_L116_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_H73 zenon_Hdf zenon_Hce.
% 90.52/90.74  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.74  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (n0) (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hdf.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_He0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.74  cut (((n0) = (n0)) = ((sum (n0) (tptp_minus_1) zenon_E) = (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hdb.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hca.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  apply (zenon_L115_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hd7.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd9.
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hdb zenon_Hce).
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L116_ *)
% 90.52/90.74  assert (zenon_L117_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H12d zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (n0) (n1))); [ zenon_intro zenon_H137 | zenon_intro zenon_H133 ].
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.74  generalize (zenon_H139 (n1)). zenon_intro zenon_H13a.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H13a); [ zenon_intro zenon_H13c | zenon_intro zenon_H13b ].
% 90.52/90.74  exact (zenon_H13c gt_1_0).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H13b); [ zenon_intro zenon_H133 | zenon_intro zenon_H13d ].
% 90.52/90.74  exact (zenon_H133 zenon_H137).
% 90.52/90.74  exact (zenon_H12d zenon_H13d).
% 90.52/90.74  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.74  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.74  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n1))); [ zenon_intro zenon_H1ae | zenon_intro zenon_H1a0 ].
% 90.52/90.74  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.74  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.74  generalize (zenon_H1e1 (n1)). zenon_intro zenon_H24c.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24c); [ zenon_intro zenon_Hde | zenon_intro zenon_H24d ].
% 90.52/90.74  exact (zenon_Hde zenon_Hdd).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24d); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H137 ].
% 90.52/90.74  exact (zenon_H1a0 zenon_H1ae).
% 90.52/90.74  exact (zenon_H133 zenon_H137).
% 90.52/90.74  apply (zenon_L114_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hde.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H1b4.
% 90.52/90.74  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.74  apply (zenon_L116_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hd7.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd9.
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hdb zenon_Hce).
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L117_ *)
% 90.52/90.74  assert (zenon_L118_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H1da zenon_H68 zenon_H97 zenon_Hb6 zenon_Hce zenon_He8 zenon_H1de.
% 90.52/90.74  elim (classic (zenon_TB_ec = (n2))); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hb5 ].
% 90.52/90.74  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (tptp_minus_1)) (n2))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1da.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H97.
% 90.52/90.74  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.74  elim (classic (gt zenon_TB_ec (n2))); [ zenon_intro zenon_H248 | zenon_intro zenon_H238 ].
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.74  generalize (zenon_Hd2 (n2)). zenon_intro zenon_H24e.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24e); [ zenon_intro zenon_Hab | zenon_intro zenon_H24f ].
% 90.52/90.74  exact (zenon_Hab zenon_H97).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H24f); [ zenon_intro zenon_H238 | zenon_intro zenon_H1dd ].
% 90.52/90.74  exact (zenon_H238 zenon_H248).
% 90.52/90.74  exact (zenon_H1da zenon_H1dd).
% 90.52/90.74  apply (zenon_L101_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L118_ *)
% 90.52/90.74  assert (zenon_L119_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~((n0) = zenon_TB_ec)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H1de zenon_He8 zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_Hc8.
% 90.52/90.74  generalize (finite_domain_0 (tptp_minus_1)). zenon_intro zenon_H1c8.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1c8); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H103 ].
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H1c9); [ zenon_intro zenon_Hed | zenon_intro zenon_H1b5 ].
% 90.52/90.74  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.74  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.74  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.74  elim (classic ((~((succ (tptp_minus_1)) = (n2)))/\(~(gt (succ (tptp_minus_1)) (n2))))); [ zenon_intro zenon_H250 | zenon_intro zenon_H251 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H250). zenon_intro zenon_H252. zenon_intro zenon_H1da.
% 90.52/90.74  apply (zenon_L118_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n2) (n0)) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hbf.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_2_0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n2) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H253].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H251); [ zenon_intro zenon_H255 | zenon_intro zenon_H254 ].
% 90.52/90.74  apply zenon_H255. zenon_intro zenon_H256.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n2) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H253.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H252].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H252 zenon_H256).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H254. zenon_intro zenon_H1dd.
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 (n2)). zenon_intro zenon_H257.
% 90.52/90.74  generalize (zenon_H257 (n0)). zenon_intro zenon_H258.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H258); [ zenon_intro zenon_H1da | zenon_intro zenon_H259 ].
% 90.52/90.74  exact (zenon_H1da zenon_H1dd).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H259); [ zenon_intro zenon_H194 | zenon_intro zenon_Hc1 ].
% 90.52/90.74  exact (zenon_H194 gt_2_0).
% 90.52/90.74  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  exact (zenon_Hed zenon_Hef).
% 90.52/90.74  apply (zenon_L71_); trivial.
% 90.52/90.74  apply (zenon_L74_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L119_ *)
% 90.52/90.74  assert (zenon_L120_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n1) (succ zenon_TB_ec))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H1d4 zenon_He8 zenon_H73.
% 90.52/90.74  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.74  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.74  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.74  cut ((gt (n1) (succ (n0))) = (gt (n1) (succ zenon_TB_ec))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1d4.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H13e.
% 90.52/90.74  cut (((succ (n0)) = (succ zenon_TB_ec))); [idtac | apply NNPP; zenon_intro zenon_He3].
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_L119_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H13f.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H13d.
% 90.52/90.74  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.74  apply (zenon_L117_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.74  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hb0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hb1.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L120_ *)
% 90.52/90.74  assert (zenon_L121_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_He8 zenon_H1d5 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.74  elim (classic (gt (n1) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d6 | zenon_intro zenon_H1d4 ].
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.74  generalize (zenon_H1d1 (succ zenon_TB_ec)). zenon_intro zenon_H1d7.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1d7); [ zenon_intro zenon_Hac | zenon_intro zenon_H1d8 ].
% 90.52/90.74  exact (zenon_Hac zenon_H167).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1d8); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H1d9 ].
% 90.52/90.74  exact (zenon_H1d4 zenon_H1d6).
% 90.52/90.74  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.74  apply (zenon_L120_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hac.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H10e.
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply (zenon_L111_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L121_ *)
% 90.52/90.74  assert (zenon_L122_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hb6 zenon_H97 zenon_H68 zenon_He8 zenon_H73 zenon_Hce.
% 90.52/90.74  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.74  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.74  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ zenon_TB_ec))); [ zenon_intro zenon_H1df | zenon_intro zenon_H1e0 ].
% 90.52/90.74  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.74  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.74  generalize (zenon_H1e1 (succ zenon_TB_ec)). zenon_intro zenon_H1e2.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1e2); [ zenon_intro zenon_Hde | zenon_intro zenon_H1e3 ].
% 90.52/90.74  exact (zenon_Hde zenon_Hdd).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1e3); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e4 ].
% 90.52/90.74  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.74  exact (zenon_H1de zenon_H1e4).
% 90.52/90.74  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.74  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))); [ zenon_intro zenon_H1e5 | zenon_intro zenon_H1e6 ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d9 | zenon_intro zenon_H1d5 ].
% 90.52/90.74  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.74  generalize (zenon_H1a3 (succ (tptp_minus_1))). zenon_intro zenon_H1e7.
% 90.52/90.74  generalize (zenon_H1e7 (succ zenon_TB_ec)). zenon_intro zenon_H1e8.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1e8); [ zenon_intro zenon_H1e6 | zenon_intro zenon_H1e9 ].
% 90.52/90.74  exact (zenon_H1e6 zenon_H1e5).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H1e9); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H1df ].
% 90.52/90.74  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.74  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.74  apply (zenon_L121_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1e6.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_He0.
% 90.52/90.74  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  exact (zenon_H72 zenon_H71).
% 90.52/90.74  apply (zenon_L115_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H72.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hde.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H1b4.
% 90.52/90.74  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.74  apply (zenon_L116_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hd7.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd9.
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.74  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hdb zenon_Hce).
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  apply zenon_Hda. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L122_ *)
% 90.52/90.74  assert (zenon_L123_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H175 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic ((tptp_minus_1) = (n3))); [ zenon_intro zenon_H106 | zenon_intro zenon_He8 ].
% 90.52/90.74  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n3))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H175.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_0_tptp_minus_1.
% 90.52/90.74  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  exact (zenon_He8 zenon_H106).
% 90.52/90.74  apply (zenon_L122_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L123_ *)
% 90.52/90.74  assert (zenon_L124_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H176 zenon_H68 zenon_H97 zenon_Hb6 zenon_Hce zenon_H1de.
% 90.52/90.74  elim (classic (gt (n0) (n3))); [ zenon_intro zenon_H177 | zenon_intro zenon_H175 ].
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.74  generalize (zenon_H139 (n3)). zenon_intro zenon_H178.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H178); [ zenon_intro zenon_H13c | zenon_intro zenon_H179 ].
% 90.52/90.74  exact (zenon_H13c gt_1_0).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H179); [ zenon_intro zenon_H175 | zenon_intro zenon_H17a ].
% 90.52/90.74  exact (zenon_H175 zenon_H177).
% 90.52/90.74  exact (zenon_H176 zenon_H17a).
% 90.52/90.74  apply (zenon_L123_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L124_ *)
% 90.52/90.74  assert (zenon_L125_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H207 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (n1) (n3))); [ zenon_intro zenon_H17a | zenon_intro zenon_H176 ].
% 90.52/90.74  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.74  generalize (zenon_H76 (n1)). zenon_intro zenon_H77.
% 90.52/90.74  generalize (zenon_H77 (n3)). zenon_intro zenon_H208.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H208); [ zenon_intro zenon_H7a | zenon_intro zenon_H209 ].
% 90.52/90.74  exact (zenon_H7a gt_2_1).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H209); [ zenon_intro zenon_H176 | zenon_intro zenon_H20a ].
% 90.52/90.74  exact (zenon_H176 zenon_H17a).
% 90.52/90.74  exact (zenon_H207 zenon_H20a).
% 90.52/90.74  apply (zenon_L124_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L125_ *)
% 90.52/90.74  assert (zenon_L126_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n3) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H25a zenon_H68 zenon_H97 zenon_Hb6 zenon_Hce zenon_H1de.
% 90.52/90.74  elim (classic (gt (n2) (n3))); [ zenon_intro zenon_H20a | zenon_intro zenon_H207 ].
% 90.52/90.74  generalize (zenon_H73 (n3)). zenon_intro zenon_H7d.
% 90.52/90.74  generalize (zenon_H7d (n2)). zenon_intro zenon_H7e.
% 90.52/90.74  generalize (zenon_H7e (n3)). zenon_intro zenon_H25b.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H25b); [ zenon_intro zenon_H81 | zenon_intro zenon_H25c ].
% 90.52/90.74  exact (zenon_H81 gt_3_2).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H25c); [ zenon_intro zenon_H207 | zenon_intro zenon_H25d ].
% 90.52/90.74  exact (zenon_H207 zenon_H20a).
% 90.52/90.74  exact (zenon_H25a zenon_H25d).
% 90.52/90.74  apply (zenon_L125_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L126_ *)
% 90.52/90.74  assert (zenon_L127_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n2) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H20b zenon_H73.
% 90.52/90.74  elim (classic ((n3) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20c | zenon_intro zenon_H8b ].
% 90.52/90.74  elim (classic (gt (n2) (n3))); [ zenon_intro zenon_H20a | zenon_intro zenon_H207 ].
% 90.52/90.74  cut ((gt (n2) (n3)) = (gt (n2) (succ (succ (succ (n0)))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H20b.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H20a.
% 90.52/90.74  cut (((n3) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 90.52/90.74  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H65. apply refl_equal.
% 90.52/90.74  exact (zenon_H8b zenon_H20c).
% 90.52/90.74  apply (zenon_L125_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20d | zenon_intro zenon_H20e ].
% 90.52/90.74  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0))))) = ((n3) = (succ (succ (succ (n0)))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H8b.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H20d.
% 90.52/90.74  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.74  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H20f successor_3).
% 90.52/90.74  apply zenon_H20e. apply refl_equal.
% 90.52/90.74  apply zenon_H20e. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L127_ *)
% 90.52/90.74  assert (zenon_L128_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (succ (n0))) (succ (succ (succ (n0)))))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H210 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (n2) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H211 | zenon_intro zenon_H20b ].
% 90.52/90.74  cut ((gt (n2) (succ (succ (succ (n0))))) = (gt (succ (succ (n0))) (succ (succ (succ (n0)))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H210.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H211.
% 90.52/90.74  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.74  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.74  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1ec.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H1ed.
% 90.52/90.74  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.74  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H1ef successor_2).
% 90.52/90.74  apply zenon_H1ee. apply refl_equal.
% 90.52/90.74  apply zenon_H1ee. apply refl_equal.
% 90.52/90.74  apply zenon_H20e. apply refl_equal.
% 90.52/90.74  apply (zenon_L127_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L128_ *)
% 90.52/90.74  assert (zenon_L129_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n1) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H25e zenon_H73.
% 90.52/90.74  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.74  elim (classic (gt (n1) (n2))); [ zenon_intro zenon_H14e | zenon_intro zenon_H14a ].
% 90.52/90.74  elim (classic (gt (n1) (succ (succ (n0))))); [ zenon_intro zenon_H1f5 | zenon_intro zenon_H1f0 ].
% 90.52/90.74  elim (classic (gt (succ (succ (n0))) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H21e | zenon_intro zenon_H210 ].
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (succ (succ (n0)))). zenon_intro zenon_H25f.
% 90.52/90.74  generalize (zenon_H25f (succ (succ (succ (n0))))). zenon_intro zenon_H260.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H260); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H261 ].
% 90.52/90.74  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H261); [ zenon_intro zenon_H210 | zenon_intro zenon_H262 ].
% 90.52/90.74  exact (zenon_H210 zenon_H21e).
% 90.52/90.74  exact (zenon_H25e zenon_H262).
% 90.52/90.74  apply (zenon_L128_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n1) (n2)) = (gt (n1) (succ (succ (n0))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1f0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H14e.
% 90.52/90.74  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.74  elim (classic ((~((n1) = (n3)))/\(~(gt (n1) (n3))))); [ zenon_intro zenon_H17b | zenon_intro zenon_H17c ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H17b). zenon_intro zenon_H17d. zenon_intro zenon_H176.
% 90.52/90.74  apply (zenon_L124_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n3) (n2)) = (gt (n1) (n2))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H14a.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_3_2.
% 90.52/90.74  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.74  cut (((n3) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H17e].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H17c); [ zenon_intro zenon_H180 | zenon_intro zenon_H17f ].
% 90.52/90.74  apply zenon_H180. zenon_intro zenon_H181.
% 90.52/90.74  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.74  cut (((n1) = (n1)) = ((n3) = (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H17e.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H131.
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  cut (((n1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H17d].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H17d zenon_H181).
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  apply zenon_H17f. zenon_intro zenon_H17a.
% 90.52/90.74  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.74  generalize (zenon_H138 (n3)). zenon_intro zenon_H182.
% 90.52/90.74  generalize (zenon_H182 (n2)). zenon_intro zenon_H263.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H263); [ zenon_intro zenon_H176 | zenon_intro zenon_H264 ].
% 90.52/90.74  exact (zenon_H176 zenon_H17a).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H264); [ zenon_intro zenon_H81 | zenon_intro zenon_H14e ].
% 90.52/90.74  exact (zenon_H81 gt_3_2).
% 90.52/90.74  exact (zenon_H14a zenon_H14e).
% 90.52/90.74  apply zenon_H65. apply refl_equal.
% 90.52/90.74  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.74  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H1ec.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H1ed.
% 90.52/90.74  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.74  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_H1ef successor_2).
% 90.52/90.74  apply zenon_H1ee. apply refl_equal.
% 90.52/90.74  apply zenon_H1ee. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L129_ *)
% 90.52/90.74  assert (zenon_L130_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (succ (succ (n0)))))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_H265 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt (n1) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H262 | zenon_intro zenon_H25e ].
% 90.52/90.74  cut ((gt (n1) (succ (succ (succ (n0))))) = (gt (succ (n0)) (succ (succ (succ (n0)))))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H265.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H262.
% 90.52/90.74  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.74  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.74  congruence.
% 90.52/90.74  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.74  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hb0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hb1.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply zenon_H20e. apply refl_equal.
% 90.52/90.74  apply (zenon_L129_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L130_ *)
% 90.52/90.74  assert (zenon_L131_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_Hcb zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6.
% 90.52/90.74  elim (classic ((~(zenon_TB_ec = (n1)))/\(~(gt zenon_TB_ec (n1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H198). zenon_intro zenon_Hae. zenon_intro zenon_H148.
% 90.52/90.74  apply (zenon_L20_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n1) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hcb.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_1_0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n1) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H199); [ zenon_intro zenon_H19c | zenon_intro zenon_H19b ].
% 90.52/90.74  apply zenon_H19c. zenon_intro zenon_Had.
% 90.52/90.74  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec) = ((n1) = zenon_TB_ec)).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H19a.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc9.
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  cut ((zenon_TB_ec = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hae zenon_Had).
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_H19b. zenon_intro zenon_H164.
% 90.52/90.74  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.74  generalize (zenon_H144 (n1)). zenon_intro zenon_H19d.
% 90.52/90.74  generalize (zenon_H19d (n0)). zenon_intro zenon_H19e.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H19e); [ zenon_intro zenon_H148 | zenon_intro zenon_H19f ].
% 90.52/90.74  exact (zenon_H148 zenon_H164).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H19f); [ zenon_intro zenon_H13c | zenon_intro zenon_Hd8 ].
% 90.52/90.74  exact (zenon_H13c gt_1_0).
% 90.52/90.74  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L131_ *)
% 90.52/90.74  assert (zenon_L132_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_H73 zenon_Hcb.
% 90.52/90.74  elim (classic ((~(zenon_TB_ec = (n2)))/\(~(gt zenon_TB_ec (n2))))); [ zenon_intro zenon_H243 | zenon_intro zenon_H244 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_Hb5. zenon_intro zenon_H238.
% 90.52/90.74  apply (zenon_L131_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n2) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hcb.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_2_0.
% 90.52/90.74  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.74  cut (((n2) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H245].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H244); [ zenon_intro zenon_H247 | zenon_intro zenon_H246 ].
% 90.52/90.74  apply zenon_H247. zenon_intro zenon_Hbe.
% 90.52/90.74  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec) = ((n2) = zenon_TB_ec)).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H245.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc9.
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  apply zenon_H246. zenon_intro zenon_H248.
% 90.52/90.74  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.74  generalize (zenon_H144 (n2)). zenon_intro zenon_H249.
% 90.52/90.74  generalize (zenon_H249 (n0)). zenon_intro zenon_H266.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H266); [ zenon_intro zenon_H238 | zenon_intro zenon_H267 ].
% 90.52/90.74  exact (zenon_H238 zenon_H248).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H267); [ zenon_intro zenon_H194 | zenon_intro zenon_Hd8 ].
% 90.52/90.74  exact (zenon_H194 gt_2_0).
% 90.52/90.74  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.74  apply zenon_H67. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L132_ *)
% 90.52/90.74  assert (zenon_L133_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_Hc0 zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.74  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.74  generalize (zenon_Hd2 (succ (tptp_minus_1))). zenon_intro zenon_H268.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H268); [ zenon_intro zenon_Hab | zenon_intro zenon_H269 ].
% 90.52/90.74  exact (zenon_Hab zenon_H97).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H269); [ zenon_intro zenon_Hc4 | zenon_intro zenon_Hc5 ].
% 90.52/90.74  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.74  exact (zenon_Hc0 zenon_Hc5).
% 90.52/90.74  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.74  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hc4.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hd8.
% 90.52/90.74  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.74  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_Ha1. apply refl_equal.
% 90.52/90.74  exact (zenon_H72 zenon_H71).
% 90.52/90.74  apply (zenon_L132_ zenon_TB_ec); trivial.
% 90.52/90.74  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H72.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc2.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  (* end of lemma zenon_L133_ *)
% 90.52/90.74  assert (zenon_L134_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((n0) = zenon_TB_ec)) -> (~(gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H73 zenon_Hc8 zenon_H21d zenon_H68 zenon_H97 zenon_Hb6 zenon_Hce zenon_H1de.
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.74  elim (classic (gt (n0) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H26a | zenon_intro zenon_H26b ].
% 90.52/90.74  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.74  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.74  generalize (zenon_H141 (succ (succ (succ (n0))))). zenon_intro zenon_H26c.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H26c); [ zenon_intro zenon_Hbf | zenon_intro zenon_H26d ].
% 90.52/90.74  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H26d); [ zenon_intro zenon_H26b | zenon_intro zenon_H222 ].
% 90.52/90.74  exact (zenon_H26b zenon_H26a).
% 90.52/90.74  exact (zenon_H21d zenon_H222).
% 90.52/90.74  elim (classic (gt (tptp_minus_1) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H26e | zenon_intro zenon_H26f ].
% 90.52/90.74  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.74  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.74  generalize (zenon_H116 (succ (succ (succ (n0))))). zenon_intro zenon_H270.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H270); [ zenon_intro zenon_H101 | zenon_intro zenon_H271 ].
% 90.52/90.74  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H271); [ zenon_intro zenon_H26f | zenon_intro zenon_H26a ].
% 90.52/90.74  exact (zenon_H26f zenon_H26e).
% 90.52/90.74  exact (zenon_H26b zenon_H26a).
% 90.52/90.74  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.74  elim (classic (gt (tptp_minus_1) (n1))); [ zenon_intro zenon_H134 | zenon_intro zenon_H132 ].
% 90.52/90.74  elim (classic (gt (tptp_minus_1) (succ (n0)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H10f ].
% 90.52/90.74  elim (classic (gt (succ (n0)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H272 | zenon_intro zenon_H265 ].
% 90.52/90.74  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.74  generalize (zenon_H171 (succ (n0))). zenon_intro zenon_H273.
% 90.52/90.74  generalize (zenon_H273 (succ (succ (succ (n0))))). zenon_intro zenon_H274.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H274); [ zenon_intro zenon_H10f | zenon_intro zenon_H275 ].
% 90.52/90.74  exact (zenon_H10f zenon_H114).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H275); [ zenon_intro zenon_H265 | zenon_intro zenon_H26e ].
% 90.52/90.74  exact (zenon_H265 zenon_H272).
% 90.52/90.74  exact (zenon_H26f zenon_H26e).
% 90.52/90.74  apply (zenon_L130_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (tptp_minus_1) (n1)) = (gt (tptp_minus_1) (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H10f.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H134.
% 90.52/90.74  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.74  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_He4. apply refl_equal.
% 90.52/90.74  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.74  elim (classic ((~((tptp_minus_1) = (n3)))/\(~(gt (tptp_minus_1) (n3))))); [ zenon_intro zenon_H186 | zenon_intro zenon_H187 ].
% 90.52/90.74  apply (zenon_and_s _ _ zenon_H186). zenon_intro zenon_He8. zenon_intro zenon_H188.
% 90.52/90.74  apply (zenon_L119_ zenon_TB_ec); trivial.
% 90.52/90.74  cut ((gt (n3) (n1)) = (gt (tptp_minus_1) (n1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H132.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact gt_3_1.
% 90.52/90.74  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.74  cut (((n3) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 90.52/90.74  congruence.
% 90.52/90.74  apply (zenon_notand_s _ _ zenon_H187); [ zenon_intro zenon_H18b | zenon_intro zenon_H18a ].
% 90.52/90.74  apply zenon_H18b. zenon_intro zenon_H106.
% 90.52/90.74  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.74  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n3) = (tptp_minus_1))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_H189.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_H113.
% 90.52/90.74  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.74  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_He8 zenon_H106).
% 90.52/90.74  apply zenon_He4. apply refl_equal.
% 90.52/90.74  apply zenon_He4. apply refl_equal.
% 90.52/90.74  apply zenon_H18a. zenon_intro zenon_H18c.
% 90.52/90.74  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.74  generalize (zenon_H171 (n3)). zenon_intro zenon_H18d.
% 90.52/90.74  generalize (zenon_H18d (n1)). zenon_intro zenon_H18e.
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H18e); [ zenon_intro zenon_H188 | zenon_intro zenon_H18f ].
% 90.52/90.74  exact (zenon_H188 zenon_H18c).
% 90.52/90.74  apply (zenon_imply_s _ _ zenon_H18f); [ zenon_intro zenon_H185 | zenon_intro zenon_H134 ].
% 90.52/90.74  exact (zenon_H185 gt_3_1).
% 90.52/90.74  exact (zenon_H132 zenon_H134).
% 90.52/90.74  apply zenon_H66. apply refl_equal.
% 90.52/90.74  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.74  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hb0.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hb1.
% 90.52/90.74  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.74  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.74  congruence.
% 90.52/90.74  exact (zenon_Hb3 successor_1).
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  apply zenon_Hb2. apply refl_equal.
% 90.52/90.74  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.74  intro zenon_D_pnotp.
% 90.52/90.74  apply zenon_Hbf.
% 90.52/90.74  rewrite <- zenon_D_pnotp.
% 90.52/90.74  exact zenon_Hc5.
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.74  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.74  congruence.
% 90.52/90.74  apply zenon_H8f. apply refl_equal.
% 90.52/90.74  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.74  apply (zenon_L133_ zenon_TB_ec); trivial.
% 90.52/90.74  (* end of lemma zenon_L134_ *)
% 90.52/90.74  assert (zenon_L135_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (succ (succ (n0)))))) -> (~((n0) = zenon_TB_ec)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.74  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H276 zenon_Hc8 zenon_H73.
% 90.52/90.74  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.74  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.74  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H222 | zenon_intro zenon_H21d ].
% 90.52/90.74  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.74  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.74  generalize (zenon_H145 (succ (succ (succ (n0))))). zenon_intro zenon_H277.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H277); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H278 ].
% 90.52/90.75  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H278); [ zenon_intro zenon_H21d | zenon_intro zenon_H279 ].
% 90.52/90.75  exact (zenon_H21d zenon_H222).
% 90.52/90.75  exact (zenon_H276 zenon_H279).
% 90.52/90.75  apply (zenon_L134_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc4.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd8.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply (zenon_L132_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L135_ *)
% 90.52/90.75  assert (zenon_L136_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n3))) -> (~((n0) = zenon_TB_ec)) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H27a zenon_Hc8 zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt zenon_TB_ec (succ (succ (succ (n0)))))); [ zenon_intro zenon_H279 | zenon_intro zenon_H276 ].
% 90.52/90.75  cut ((gt zenon_TB_ec (succ (succ (succ (n0))))) = (gt zenon_TB_ec (n3))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H27a.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H279.
% 90.52/90.75  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H20f successor_3).
% 90.52/90.75  apply (zenon_L135_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L136_ *)
% 90.52/90.75  assert (zenon_L137_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~((n0) = zenon_TB_ec)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H225 zenon_H68 zenon_H97 zenon_Hce zenon_H1de zenon_Hc8.
% 90.52/90.75  elim (classic (zenon_TB_ec = (n3))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hb6 ].
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (tptp_minus_1)) (n3))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H225.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H97.
% 90.52/90.75  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n3))); [ zenon_intro zenon_H27b | zenon_intro zenon_H27a ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.75  generalize (zenon_Hd2 (n3)). zenon_intro zenon_H27c.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H27c); [ zenon_intro zenon_Hab | zenon_intro zenon_H27d ].
% 90.52/90.75  exact (zenon_Hab zenon_H97).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H27d); [ zenon_intro zenon_H27a | zenon_intro zenon_H229 ].
% 90.52/90.75  exact (zenon_H27a zenon_H27b).
% 90.52/90.75  exact (zenon_H225 zenon_H229).
% 90.52/90.75  apply (zenon_L136_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L137_ *)
% 90.52/90.75  assert (zenon_L138_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H21d zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.75  elim (classic (gt (n1) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H262 | zenon_intro zenon_H25e ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.75  generalize (zenon_H1d1 (succ (succ (succ (n0))))). zenon_intro zenon_H27e.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H27e); [ zenon_intro zenon_Hac | zenon_intro zenon_H27f ].
% 90.52/90.75  exact (zenon_Hac zenon_H167).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H27f); [ zenon_intro zenon_H25e | zenon_intro zenon_H222 ].
% 90.52/90.75  exact (zenon_H25e zenon_H262).
% 90.52/90.75  exact (zenon_H21d zenon_H222).
% 90.52/90.75  apply (zenon_L129_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hac.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H10e.
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply (zenon_L111_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L138_ *)
% 90.52/90.75  assert (zenon_L139_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H276 zenon_H73.
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H222 | zenon_intro zenon_H21d ].
% 90.52/90.75  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.75  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.75  generalize (zenon_H145 (succ (succ (succ (n0))))). zenon_intro zenon_H277.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H277); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H278 ].
% 90.52/90.75  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H278); [ zenon_intro zenon_H21d | zenon_intro zenon_H279 ].
% 90.52/90.75  exact (zenon_H21d zenon_H222).
% 90.52/90.75  exact (zenon_H276 zenon_H279).
% 90.52/90.75  apply (zenon_L138_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc4.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd8.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply (zenon_L132_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L139_ *)
% 90.52/90.75  assert (zenon_L140_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n3))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H27a zenon_H1de zenon_Hce zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt zenon_TB_ec (succ (succ (succ (n0)))))); [ zenon_intro zenon_H279 | zenon_intro zenon_H276 ].
% 90.52/90.75  cut ((gt zenon_TB_ec (succ (succ (succ (n0))))) = (gt zenon_TB_ec (n3))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H27a.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H279.
% 90.52/90.75  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H20f successor_3).
% 90.52/90.75  apply (zenon_L139_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L140_ *)
% 90.52/90.75  assert (zenon_L141_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1de zenon_Hce zenon_H97 zenon_H68 zenon_H73 zenon_H148.
% 90.52/90.75  elim (classic ((~(zenon_TB_ec = (n3)))/\(~(gt zenon_TB_ec (n3))))); [ zenon_intro zenon_H280 | zenon_intro zenon_H281 ].
% 90.52/90.75  apply (zenon_and_s _ _ zenon_H280). zenon_intro zenon_Hb6. zenon_intro zenon_H27a.
% 90.52/90.75  apply (zenon_L140_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n3) (n1)) = (gt zenon_TB_ec (n1))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H148.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact gt_3_1.
% 90.52/90.75  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.75  cut (((n3) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H282].
% 90.52/90.75  congruence.
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H281); [ zenon_intro zenon_H284 | zenon_intro zenon_H283 ].
% 90.52/90.75  apply zenon_H284. zenon_intro zenon_Hbd.
% 90.52/90.75  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec) = ((n3) = zenon_TB_ec)).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H282.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc9.
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_H283. zenon_intro zenon_H27b.
% 90.52/90.75  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.75  generalize (zenon_H144 (n3)). zenon_intro zenon_H285.
% 90.52/90.75  generalize (zenon_H285 (n1)). zenon_intro zenon_H286.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H286); [ zenon_intro zenon_H27a | zenon_intro zenon_H287 ].
% 90.52/90.75  exact (zenon_H27a zenon_H27b).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H287); [ zenon_intro zenon_H185 | zenon_intro zenon_H164 ].
% 90.52/90.75  exact (zenon_H185 gt_3_1).
% 90.52/90.75  exact (zenon_H148 zenon_H164).
% 90.52/90.75  apply zenon_H66. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L141_ *)
% 90.52/90.75  assert (zenon_L142_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt zenon_TB_ec (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_H1de zenon_H109 zenon_H73.
% 90.52/90.75  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.75  cut ((gt zenon_TB_ec (n1)) = (gt zenon_TB_ec (succ (n0)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H109.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H164.
% 90.52/90.75  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.75  apply (zenon_L141_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.75  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hb0.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hb1.
% 90.52/90.75  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply zenon_Hb2. apply refl_equal.
% 90.52/90.75  apply zenon_Hb2. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L142_ *)
% 90.52/90.75  assert (zenon_L143_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H10a zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.75  generalize (zenon_Hd2 (succ (n0))). zenon_intro zenon_H10c.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H10c); [ zenon_intro zenon_Hab | zenon_intro zenon_H10d ].
% 90.52/90.75  exact (zenon_Hab zenon_H97).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_H109 | zenon_intro zenon_H10e ].
% 90.52/90.75  exact (zenon_H109 zenon_H10b).
% 90.52/90.75  exact (zenon_H10a zenon_H10e).
% 90.52/90.75  apply (zenon_L142_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L143_ *)
% 90.52/90.75  assert (zenon_L144_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt (n0) (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_H1de zenon_H111 zenon_H73.
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (n0) (succ (n0)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H111.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H10e.
% 90.52/90.75  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.75  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc3.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hca.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_Hb2. apply refl_equal.
% 90.52/90.75  apply (zenon_L143_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L144_ *)
% 90.52/90.75  assert (zenon_L145_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n0))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1de zenon_Hce zenon_H97 zenon_H68 zenon_H73 zenon_Hcb.
% 90.52/90.75  elim (classic ((~(zenon_TB_ec = (n3)))/\(~(gt zenon_TB_ec (n3))))); [ zenon_intro zenon_H280 | zenon_intro zenon_H281 ].
% 90.52/90.75  apply (zenon_and_s _ _ zenon_H280). zenon_intro zenon_Hb6. zenon_intro zenon_H27a.
% 90.52/90.75  apply (zenon_L140_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n3) (n0)) = (gt zenon_TB_ec (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hcb.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact gt_3_0.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n3) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H282].
% 90.52/90.75  congruence.
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H281); [ zenon_intro zenon_H284 | zenon_intro zenon_H283 ].
% 90.52/90.75  apply zenon_H284. zenon_intro zenon_Hbd.
% 90.52/90.75  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec) = ((n3) = zenon_TB_ec)).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H282.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc9.
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_H283. zenon_intro zenon_H27b.
% 90.52/90.75  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.75  generalize (zenon_H144 (n3)). zenon_intro zenon_H285.
% 90.52/90.75  generalize (zenon_H285 (n0)). zenon_intro zenon_H288.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H288); [ zenon_intro zenon_H27a | zenon_intro zenon_H289 ].
% 90.52/90.75  exact (zenon_H27a zenon_H27b).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H289); [ zenon_intro zenon_H197 | zenon_intro zenon_Hd8 ].
% 90.52/90.75  exact (zenon_H197 gt_3_0).
% 90.52/90.75  exact (zenon_Hcb zenon_Hd8).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L145_ *)
% 90.52/90.75  assert (zenon_L146_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_Hcd zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hcf | zenon_intro zenon_Hd0 ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.75  generalize (zenon_Hd2 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_Hd3.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_Hd3); [ zenon_intro zenon_Hab | zenon_intro zenon_Hd4 ].
% 90.52/90.75  exact (zenon_Hab zenon_H97).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_Hd4); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hd5 ].
% 90.52/90.75  exact (zenon_Hd0 zenon_Hcf).
% 90.52/90.75  exact (zenon_Hcd zenon_Hd5).
% 90.52/90.75  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.75  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd0.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd8.
% 90.52/90.75  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.75  apply (zenon_L145_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd7.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L146_ *)
% 90.52/90.75  assert (zenon_L147_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_Hdc zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.75  cut ((gt (n0) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hdc.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hdd.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.75  congruence.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd7.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd5 | zenon_intro zenon_Hcd ].
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hde.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd5.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.75  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc3.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hca.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply (zenon_L146_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L147_ *)
% 90.52/90.75  assert (zenon_L148_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H1a2 zenon_H1de zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_He2 | zenon_intro zenon_Hdc ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.75  elim (classic (gt (n0) (succ (n0)))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 90.52/90.75  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.75  generalize (zenon_H1a3 (n0)). zenon_intro zenon_H1a4.
% 90.52/90.75  generalize (zenon_H1a4 (succ (n0))). zenon_intro zenon_H1a5.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1a5); [ zenon_intro zenon_He1 | zenon_intro zenon_H1a6 ].
% 90.52/90.75  exact (zenon_He1 zenon_He0).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1a6); [ zenon_intro zenon_H111 | zenon_intro zenon_H1a1 ].
% 90.52/90.75  exact (zenon_H111 zenon_H110).
% 90.52/90.75  exact (zenon_H1a2 zenon_H1a1).
% 90.52/90.75  apply (zenon_L144_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (sum (n0) (tptp_minus_1) zenon_E)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_He1.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_He2.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply (zenon_L147_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L148_ *)
% 90.52/90.75  assert (zenon_L149_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H1a0 zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0)))); [ zenon_intro zenon_H1a1 | zenon_intro zenon_H1a2 ].
% 90.52/90.75  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (succ (n0))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n1))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1a0.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1a1.
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply (zenon_L148_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L149_ *)
% 90.52/90.75  assert (zenon_L150_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n0))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_H1de zenon_H73 zenon_He1.
% 90.52/90.75  elim (classic ((~((sum (n0) (tptp_minus_1) zenon_E) = (n1)))/\(~(gt (sum (n0) (tptp_minus_1) zenon_E) (n1))))); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1a8 ].
% 90.52/90.75  apply (zenon_and_s _ _ zenon_H1a7). zenon_intro zenon_H1a9. zenon_intro zenon_H1a0.
% 90.52/90.75  apply (zenon_L149_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n1) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_He1.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact gt_1_0.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n1) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 90.52/90.75  congruence.
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H1a8); [ zenon_intro zenon_H1ac | zenon_intro zenon_H1ab ].
% 90.52/90.75  apply zenon_H1ac. zenon_intro zenon_H1ad.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n1) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1aa.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H1a9].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H1a9 zenon_H1ad).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_H1ab. zenon_intro zenon_H1ae.
% 90.52/90.75  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.75  generalize (zenon_H1a3 (n1)). zenon_intro zenon_H1af.
% 90.52/90.75  generalize (zenon_H1af (n0)). zenon_intro zenon_H1b0.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1b0); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H1b1 ].
% 90.52/90.75  exact (zenon_H1a0 zenon_H1ae).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1b1); [ zenon_intro zenon_H13c | zenon_intro zenon_He0 ].
% 90.52/90.75  exact (zenon_H13c gt_1_0).
% 90.52/90.75  exact (zenon_He1 zenon_He0).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L150_ *)
% 90.52/90.75  assert (zenon_L151_ : forall (zenon_TB_ec : zenon_U), (~(gt (n0) (succ zenon_TB_ec))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1de zenon_H97 zenon_H68 zenon_H73 zenon_Hdf zenon_Hce.
% 90.52/90.75  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.75  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (n0) (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hdf.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_He0.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.75  cut (((n0) = (n0)) = ((sum (n0) (tptp_minus_1) zenon_E) = (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hdb.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hca.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  apply (zenon_L150_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd7.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L151_ *)
% 90.52/90.75  assert (zenon_L152_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt (n0) (n1))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_H1de zenon_H133 zenon_H73 zenon_Hce.
% 90.52/90.75  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.75  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.75  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n1))); [ zenon_intro zenon_H1ae | zenon_intro zenon_H1a0 ].
% 90.52/90.75  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.75  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.75  generalize (zenon_H1e1 (n1)). zenon_intro zenon_H24c.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H24c); [ zenon_intro zenon_Hde | zenon_intro zenon_H24d ].
% 90.52/90.75  exact (zenon_Hde zenon_Hdd).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H24d); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H137 ].
% 90.52/90.75  exact (zenon_H1a0 zenon_H1ae).
% 90.52/90.75  exact (zenon_H133 zenon_H137).
% 90.52/90.75  apply (zenon_L149_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hde.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1b4.
% 90.52/90.75  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.75  apply (zenon_L151_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd7.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L152_ *)
% 90.52/90.75  assert (zenon_L153_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n1) (n1))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H12d zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt (n0) (n1))); [ zenon_intro zenon_H137 | zenon_intro zenon_H133 ].
% 90.52/90.75  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.75  generalize (zenon_H138 (n0)). zenon_intro zenon_H139.
% 90.52/90.75  generalize (zenon_H139 (n1)). zenon_intro zenon_H13a.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H13a); [ zenon_intro zenon_H13c | zenon_intro zenon_H13b ].
% 90.52/90.75  exact (zenon_H13c gt_1_0).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H13b); [ zenon_intro zenon_H133 | zenon_intro zenon_H13d ].
% 90.52/90.75  exact (zenon_H133 zenon_H137).
% 90.52/90.75  exact (zenon_H12d zenon_H13d).
% 90.52/90.75  apply (zenon_L152_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L153_ *)
% 90.52/90.75  assert (zenon_L154_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> (~(gt (n1) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_H1de zenon_H1d4 zenon_H73.
% 90.52/90.75  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.75  elim (classic (gt (n1) (n1))); [ zenon_intro zenon_H13d | zenon_intro zenon_H12d ].
% 90.52/90.75  elim (classic (gt (n1) (succ (n0)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 90.52/90.75  cut ((gt (n1) (succ (n0))) = (gt (n1) (succ zenon_TB_ec))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1d4.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H13e.
% 90.52/90.75  cut (((succ (n0)) = (succ zenon_TB_ec))); [idtac | apply NNPP; zenon_intro zenon_He3].
% 90.52/90.75  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H66. apply refl_equal.
% 90.52/90.75  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.75  congruence.
% 90.52/90.75  generalize (finite_domain_0 (tptp_minus_1)). zenon_intro zenon_H1c8.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1c8); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H103 ].
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H1c9); [ zenon_intro zenon_Hed | zenon_intro zenon_H1b5 ].
% 90.52/90.75  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.75  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.75  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.75  elim (classic ((~((succ (tptp_minus_1)) = (n3)))/\(~(gt (succ (tptp_minus_1)) (n3))))); [ zenon_intro zenon_H223 | zenon_intro zenon_H224 ].
% 90.52/90.75  apply (zenon_and_s _ _ zenon_H223). zenon_intro zenon_H226. zenon_intro zenon_H225.
% 90.52/90.75  apply (zenon_L137_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n3) (n0)) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hbf.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact gt_3_0.
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  cut (((n3) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H22a].
% 90.52/90.75  congruence.
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H224); [ zenon_intro zenon_H22c | zenon_intro zenon_H22b ].
% 90.52/90.75  apply zenon_H22c. zenon_intro zenon_H22d.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n3) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H22a.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H226].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H226 zenon_H22d).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H22b. zenon_intro zenon_H229.
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 (n3)). zenon_intro zenon_H22e.
% 90.52/90.75  generalize (zenon_H22e (n0)). zenon_intro zenon_H28a.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H28a); [ zenon_intro zenon_H225 | zenon_intro zenon_H28b ].
% 90.52/90.75  exact (zenon_H225 zenon_H229).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H28b); [ zenon_intro zenon_H197 | zenon_intro zenon_Hc1 ].
% 90.52/90.75  exact (zenon_H197 gt_3_0).
% 90.52/90.75  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  exact (zenon_Hed zenon_Hef).
% 90.52/90.75  apply (zenon_L71_); trivial.
% 90.52/90.75  apply (zenon_L74_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n1) (n1)) = (gt (n1) (succ (n0)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H13f.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H13d.
% 90.52/90.75  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.75  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H66. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.75  apply (zenon_L153_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.75  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hb0.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hb1.
% 90.52/90.75  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply zenon_Hb2. apply refl_equal.
% 90.52/90.75  apply zenon_Hb2. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L154_ *)
% 90.52/90.75  assert (zenon_L155_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))) -> (~(gt (n0) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H1d5 zenon_H1de zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.75  elim (classic (gt (n1) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d6 | zenon_intro zenon_H1d4 ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.75  generalize (zenon_H1d1 (succ zenon_TB_ec)). zenon_intro zenon_H1d7.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1d7); [ zenon_intro zenon_Hac | zenon_intro zenon_H1d8 ].
% 90.52/90.75  exact (zenon_Hac zenon_H167).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1d8); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H1d9 ].
% 90.52/90.75  exact (zenon_H1d4 zenon_H1d6).
% 90.52/90.75  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.75  apply (zenon_L154_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hac.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H10e.
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply (zenon_L143_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L155_ *)
% 90.52/90.75  assert (zenon_L156_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(gt (n0) (succ zenon_TB_ec))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_H1de zenon_H73 zenon_Hce.
% 90.52/90.75  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.75  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.75  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ zenon_TB_ec))); [ zenon_intro zenon_H1df | zenon_intro zenon_H1e0 ].
% 90.52/90.75  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.75  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.75  generalize (zenon_H1e1 (succ zenon_TB_ec)). zenon_intro zenon_H1e2.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1e2); [ zenon_intro zenon_Hde | zenon_intro zenon_H1e3 ].
% 90.52/90.75  exact (zenon_Hde zenon_Hdd).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1e3); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e4 ].
% 90.52/90.75  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.75  exact (zenon_H1de zenon_H1e4).
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n0))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 90.52/90.75  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))); [ zenon_intro zenon_H1e5 | zenon_intro zenon_H1e6 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ zenon_TB_ec))); [ zenon_intro zenon_H1d9 | zenon_intro zenon_H1d5 ].
% 90.52/90.75  generalize (zenon_H73 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1a3.
% 90.52/90.75  generalize (zenon_H1a3 (succ (tptp_minus_1))). zenon_intro zenon_H1e7.
% 90.52/90.75  generalize (zenon_H1e7 (succ zenon_TB_ec)). zenon_intro zenon_H1e8.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1e8); [ zenon_intro zenon_H1e6 | zenon_intro zenon_H1e9 ].
% 90.52/90.75  exact (zenon_H1e6 zenon_H1e5).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1e9); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H1df ].
% 90.52/90.75  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.75  exact (zenon_H1e0 zenon_H1df).
% 90.52/90.75  apply (zenon_L155_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (n0)) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1e6.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_He0.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply (zenon_L150_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hde.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1b4.
% 90.52/90.75  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.75  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H67. apply refl_equal.
% 90.52/90.75  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.75  apply (zenon_L151_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hd7.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd9.
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.75  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hdb zenon_Hce).
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  apply zenon_Hda. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L156_ *)
% 90.52/90.75  assert (zenon_L157_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(gt (n0) (succ zenon_TB_ec))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_Hc0 zenon_H68 zenon_H97 zenon_Hce zenon_H1de.
% 90.52/90.75  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.75  generalize (zenon_Hd2 (succ (tptp_minus_1))). zenon_intro zenon_H268.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H268); [ zenon_intro zenon_Hab | zenon_intro zenon_H269 ].
% 90.52/90.75  exact (zenon_Hab zenon_H97).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H269); [ zenon_intro zenon_Hc4 | zenon_intro zenon_Hc5 ].
% 90.52/90.75  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.75  exact (zenon_Hc0 zenon_Hc5).
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.75  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc4.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd8.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply (zenon_L145_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L157_ *)
% 90.52/90.75  assert (zenon_L158_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H1d5 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc5 | zenon_intro zenon_Hc0 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (n0))); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hbf ].
% 90.52/90.75  elim (classic (gt (n0) (succ zenon_TB_ec))); [ zenon_intro zenon_H1e4 | zenon_intro zenon_H1de ].
% 90.52/90.75  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.75  generalize (zenon_Hd1 (n0)). zenon_intro zenon_H141.
% 90.52/90.75  generalize (zenon_H141 (succ zenon_TB_ec)). zenon_intro zenon_H28c.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H28c); [ zenon_intro zenon_Hbf | zenon_intro zenon_H28d ].
% 90.52/90.75  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H28d); [ zenon_intro zenon_H1de | zenon_intro zenon_H1d9 ].
% 90.52/90.75  exact (zenon_H1de zenon_H1e4).
% 90.52/90.75  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.75  apply (zenon_L156_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (succ (tptp_minus_1))) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hbf.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc5.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  elim (classic (gt (n0) (succ zenon_TB_ec))); [ zenon_intro zenon_H1e4 | zenon_intro zenon_H1de ].
% 90.52/90.75  cut ((gt (n0) (succ zenon_TB_ec)) = (gt (succ (tptp_minus_1)) (succ zenon_TB_ec))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1d5.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1e4.
% 90.52/90.75  cut (((succ zenon_TB_ec) = (succ zenon_TB_ec))); [idtac | apply NNPP; zenon_intro zenon_H28e].
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  congruence.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H28e. apply refl_equal.
% 90.52/90.75  apply (zenon_L157_ zenon_TB_ec); trivial.
% 90.52/90.75  (* end of lemma zenon_L158_ *)
% 90.52/90.75  assert (zenon_L159_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (succ (n0))) (succ (tptp_minus_1)))) -> False).
% 90.52/90.75  do 0 intro. intros zenon_H73 zenon_H28f.
% 90.52/90.75  elim (classic (gt (succ (succ (n0))) (succ (n0)))); [ zenon_intro zenon_H1ff | zenon_intro zenon_H1f7 ].
% 90.52/90.75  elim (classic (gt (succ (succ (n0))) (n1))); [ zenon_intro zenon_H200 | zenon_intro zenon_H201 ].
% 90.52/90.75  elim (classic (gt (n1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H75 | zenon_intro zenon_H70 ].
% 90.52/90.75  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.75  generalize (zenon_H202 (n1)). zenon_intro zenon_H203.
% 90.52/90.75  generalize (zenon_H203 (succ (tptp_minus_1))). zenon_intro zenon_H290.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H290); [ zenon_intro zenon_H201 | zenon_intro zenon_H291 ].
% 90.52/90.75  exact (zenon_H201 zenon_H200).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H291); [ zenon_intro zenon_H70 | zenon_intro zenon_H292 ].
% 90.52/90.75  exact (zenon_H70 zenon_H75).
% 90.52/90.75  exact (zenon_H28f zenon_H292).
% 90.52/90.75  apply (zenon_L7_); trivial.
% 90.52/90.75  cut ((gt (succ (succ (n0))) (succ (n0))) = (gt (succ (succ (n0))) (n1))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H201.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1ff.
% 90.52/90.75  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.75  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H1ee. apply refl_equal.
% 90.52/90.75  exact (zenon_Hb3 successor_1).
% 90.52/90.75  apply (zenon_L89_); trivial.
% 90.52/90.75  (* end of lemma zenon_L159_ *)
% 90.52/90.75  assert (zenon_L160_ : forall (zenon_TB_ec : zenon_U), (~(gt (succ (tptp_minus_1)) (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (tptp_minus_1)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1da zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_Hc4 zenon_H73.
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.75  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_Hc4.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hd8.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  apply (zenon_L81_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L160_ *)
% 90.52/90.75  assert (zenon_L161_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H73 zenon_H1da zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.75  generalize (irreflexivity_gt zenon_TB_ec). zenon_intro zenon_H293.
% 90.52/90.75  elim (classic ((~(zenon_TB_ec = (succ (tptp_minus_1))))/\(~(gt zenon_TB_ec (succ (tptp_minus_1)))))); [ zenon_intro zenon_H294 | zenon_intro zenon_H295 ].
% 90.52/90.75  apply (zenon_and_s _ _ zenon_H294). zenon_intro zenon_H296. zenon_intro zenon_Hc4.
% 90.52/90.75  apply (zenon_L160_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt zenon_TB_ec zenon_TB_ec)).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H293.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H97.
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H297].
% 90.52/90.75  congruence.
% 90.52/90.75  apply (zenon_notand_s _ _ zenon_H295); [ zenon_intro zenon_H299 | zenon_intro zenon_H298 ].
% 90.52/90.75  apply zenon_H299. zenon_intro zenon_H29a.
% 90.52/90.75  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec) = ((succ (tptp_minus_1)) = zenon_TB_ec)).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H297.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc9.
% 90.52/90.75  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.75  cut ((zenon_TB_ec = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H296].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H296 zenon_H29a).
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  apply zenon_H298. zenon_intro zenon_Hcc.
% 90.52/90.75  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.75  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.75  generalize (zenon_H145 zenon_TB_ec). zenon_intro zenon_H29b.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H29b); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H29c ].
% 90.52/90.75  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H29c); [ zenon_intro zenon_Hab | zenon_intro zenon_H29d ].
% 90.52/90.75  exact (zenon_Hab zenon_H97).
% 90.52/90.75  exact (zenon_H293 zenon_H29d).
% 90.52/90.75  apply zenon_Ha1. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L161_ *)
% 90.52/90.75  assert (zenon_L162_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8 zenon_H1ea zenon_H73.
% 90.52/90.75  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (n2))); [ zenon_intro zenon_H1dd | zenon_intro zenon_H1da ].
% 90.52/90.75  cut ((gt (succ (tptp_minus_1)) (n2)) = (gt (succ (tptp_minus_1)) (succ (succ (n0))))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1ea.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1dd.
% 90.52/90.75  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.75  apply (zenon_L161_ zenon_TB_ec); trivial.
% 90.52/90.75  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.75  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H1ec.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_H1ed.
% 90.52/90.75  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.75  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_H1ef successor_2).
% 90.52/90.75  apply zenon_H1ee. apply refl_equal.
% 90.52/90.75  apply zenon_H1ee. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L162_ *)
% 90.52/90.75  assert (zenon_L163_ : forall (zenon_TB_ec : zenon_U), (~(gt (n1) (succ (succ (n0))))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H1f0 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_H73.
% 90.52/90.75  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.75  elim (classic (gt (n1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H75 | zenon_intro zenon_H70 ].
% 90.52/90.75  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.75  generalize (zenon_H73 (n1)). zenon_intro zenon_H138.
% 90.52/90.75  generalize (zenon_H138 (succ (tptp_minus_1))). zenon_intro zenon_H1f2.
% 90.52/90.75  generalize (zenon_H1f2 (succ (succ (n0)))). zenon_intro zenon_H1f3.
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1f3); [ zenon_intro zenon_H70 | zenon_intro zenon_H1f4 ].
% 90.52/90.75  exact (zenon_H70 zenon_H75).
% 90.52/90.75  apply (zenon_imply_s _ _ zenon_H1f4); [ zenon_intro zenon_H1ea | zenon_intro zenon_H1f5 ].
% 90.52/90.75  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.75  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.75  apply (zenon_L162_ zenon_TB_ec); trivial.
% 90.52/90.75  cut ((gt (n1) (n0)) = (gt (n1) (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H70.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact gt_1_0.
% 90.52/90.75  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.75  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.75  congruence.
% 90.52/90.75  apply zenon_H66. apply refl_equal.
% 90.52/90.75  exact (zenon_H72 zenon_H71).
% 90.52/90.75  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.75  intro zenon_D_pnotp.
% 90.52/90.75  apply zenon_H72.
% 90.52/90.75  rewrite <- zenon_D_pnotp.
% 90.52/90.75  exact zenon_Hc2.
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.75  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.75  congruence.
% 90.52/90.75  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  apply zenon_H8f. apply refl_equal.
% 90.52/90.75  (* end of lemma zenon_L163_ *)
% 90.52/90.75  assert (zenon_L164_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.75  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8 zenon_H73 zenon_H1f9.
% 90.52/90.75  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n2))); [ zenon_intro zenon_H1fa | zenon_intro zenon_H1fb ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (n2)) = (gt (n2) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1f9.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fa.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ef.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (succ (succ (n0))))); [ zenon_intro zenon_H1fd | zenon_intro zenon_H1fe ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (succ (succ (n0)))) = (gt (succ (succ (n0))) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1fb.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fd.
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (succ (n0)))); [ zenon_intro zenon_H1ff | zenon_intro zenon_H1f7 ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n1))); [ zenon_intro zenon_H200 | zenon_intro zenon_H201 ].
% 90.52/90.76  elim (classic (gt (n1) (succ (succ (n0))))); [ zenon_intro zenon_H1f5 | zenon_intro zenon_H1f0 ].
% 90.52/90.76  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.76  generalize (zenon_H202 (n1)). zenon_intro zenon_H203.
% 90.52/90.76  generalize (zenon_H203 (succ (succ (n0)))). zenon_intro zenon_H204.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H204); [ zenon_intro zenon_H201 | zenon_intro zenon_H205 ].
% 90.52/90.76  exact (zenon_H201 zenon_H200).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H205); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H1fd ].
% 90.52/90.76  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.76  exact (zenon_H1fe zenon_H1fd).
% 90.52/90.76  apply (zenon_L163_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (succ (succ (n0))) (succ (n0))) = (gt (succ (succ (n0))) (n1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H201.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ff.
% 90.52/90.76  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb3 successor_1).
% 90.52/90.76  apply (zenon_L89_); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L164_ *)
% 90.52/90.76  assert (zenon_L165_ : forall (zenon_TB_ec : zenon_U), (~(gt zenon_TB_ec (succ (succ (n0))))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H234 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68 zenon_He8 zenon_H73.
% 90.52/90.76  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.76  elim (classic (gt zenon_TB_ec (n0))); [ zenon_intro zenon_Hd8 | zenon_intro zenon_Hcb ].
% 90.52/90.76  elim (classic (gt zenon_TB_ec (succ (tptp_minus_1)))); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hc4 ].
% 90.52/90.76  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.76  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.76  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.76  generalize (zenon_H145 (succ (succ (n0)))). zenon_intro zenon_H235.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H235); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H236 ].
% 90.52/90.76  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H236); [ zenon_intro zenon_H1ea | zenon_intro zenon_H237 ].
% 90.52/90.76  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.76  exact (zenon_H234 zenon_H237).
% 90.52/90.76  apply (zenon_L162_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt zenon_TB_ec (n0)) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hc4.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hd8.
% 90.52/90.76  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  exact (zenon_H72 zenon_H71).
% 90.52/90.76  apply (zenon_L99_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H72.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc2.
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L165_ *)
% 90.52/90.76  assert (zenon_L166_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H238 zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic (gt zenon_TB_ec (succ (succ (n0))))); [ zenon_intro zenon_H237 | zenon_intro zenon_H234 ].
% 90.52/90.76  cut ((gt zenon_TB_ec (succ (succ (n0)))) = (gt zenon_TB_ec (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H238.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H237.
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply (zenon_L165_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L166_ *)
% 90.52/90.76  assert (zenon_L167_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_He8 zenon_H73 zenon_H1f9.
% 90.52/90.76  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n2))); [ zenon_intro zenon_H1fa | zenon_intro zenon_H1fb ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (n2)) = (gt (n2) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1f9.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fa.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ef.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  elim (classic ((~((succ (succ (n0))) = (succ (tptp_minus_1))))/\(~(gt (succ (succ (n0))) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H29e | zenon_intro zenon_H29f ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H29e). zenon_intro zenon_H2a0. zenon_intro zenon_H28f.
% 90.52/90.76  apply (zenon_L159_); trivial.
% 90.52/90.76  elim (classic (zenon_TB_ec = (n2))); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hb5 ].
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (succ (n0))) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1fb.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H97.
% 90.52/90.76  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H2a1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H29f); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2a2 ].
% 90.52/90.76  apply zenon_H2a3. zenon_intro zenon_H2a4.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((succ (tptp_minus_1)) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2a1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H2a0].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H2a0 zenon_H2a4).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H2a2. zenon_intro zenon_H292.
% 90.52/90.76  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.76  generalize (zenon_H202 (succ (tptp_minus_1))). zenon_intro zenon_H2a5.
% 90.52/90.76  generalize (zenon_H2a5 zenon_TB_ec). zenon_intro zenon_H2a6.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a6); [ zenon_intro zenon_H28f | zenon_intro zenon_H2a7 ].
% 90.52/90.76  exact (zenon_H28f zenon_H292).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a7); [ zenon_intro zenon_Hab | zenon_intro zenon_H2a8 ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  cut ((gt (succ (succ (n0))) zenon_TB_ec) = (gt (succ (succ (n0))) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1fb.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2a8.
% 90.52/90.76  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.76  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.76  elim (classic (gt zenon_TB_ec (n2))); [ zenon_intro zenon_H248 | zenon_intro zenon_H238 ].
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.76  generalize (zenon_Hd2 (n2)). zenon_intro zenon_H24e.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H24e); [ zenon_intro zenon_Hab | zenon_intro zenon_H24f ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H24f); [ zenon_intro zenon_H238 | zenon_intro zenon_H1dd ].
% 90.52/90.76  exact (zenon_H238 zenon_H248).
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) (n2)) = (gt (succ (succ (n0))) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1fb.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1dd.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H2a1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H29f); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2a2 ].
% 90.52/90.76  apply zenon_H2a3. zenon_intro zenon_H2a4.
% 90.52/90.76  apply zenon_H2a1. apply sym_equal. exact zenon_H2a4.
% 90.52/90.76  apply zenon_H2a2. zenon_intro zenon_H292.
% 90.52/90.76  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.76  generalize (zenon_H202 (succ (tptp_minus_1))). zenon_intro zenon_H2a5.
% 90.52/90.76  generalize (zenon_H2a5 (n2)). zenon_intro zenon_H2a9.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a9); [ zenon_intro zenon_H28f | zenon_intro zenon_H2aa ].
% 90.52/90.76  exact (zenon_H28f zenon_H292).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2aa); [ zenon_intro zenon_H1da | zenon_intro zenon_H1fa ].
% 90.52/90.76  exact (zenon_H1da zenon_H1dd).
% 90.52/90.76  exact (zenon_H1fb zenon_H1fa).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply (zenon_L166_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L167_ *)
% 90.52/90.76  assert (zenon_L168_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (succ (n0))))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (~(zenon_TB_ec = (n2))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2ab zenon_He8 zenon_Hb6 zenon_Hb5 zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic ((~((succ (n0)) = (succ (tptp_minus_1))))/\(~(gt (succ (n0)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H159 | zenon_intro zenon_H15a ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H159). zenon_intro zenon_H15b. zenon_intro zenon_Haf.
% 90.52/90.76  apply (zenon_L15_); trivial.
% 90.52/90.76  elim (classic (gt zenon_TB_ec (succ (succ (n0))))); [ zenon_intro zenon_H237 | zenon_intro zenon_H234 ].
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.76  generalize (zenon_Hd2 (succ (succ (n0)))). zenon_intro zenon_H2ac.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2ac); [ zenon_intro zenon_Hab | zenon_intro zenon_H2ad ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2ad); [ zenon_intro zenon_H234 | zenon_intro zenon_H1f1 ].
% 90.52/90.76  exact (zenon_H234 zenon_H237).
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) (succ (succ (n0)))) = (gt (succ (n0)) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2ab.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1f1.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H15a); [ zenon_intro zenon_H15d | zenon_intro zenon_H15c ].
% 90.52/90.76  apply zenon_H15d. zenon_intro zenon_H15e.
% 90.52/90.76  apply zenon_H108. apply sym_equal. exact zenon_H15e.
% 90.52/90.76  apply zenon_H15c. zenon_intro zenon_H15f.
% 90.52/90.76  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.76  generalize (zenon_H127 (succ (tptp_minus_1))). zenon_intro zenon_H160.
% 90.52/90.76  generalize (zenon_H160 (succ (succ (n0)))). zenon_intro zenon_H2ae.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2ae); [ zenon_intro zenon_Haf | zenon_intro zenon_H2af ].
% 90.52/90.76  exact (zenon_Haf zenon_H15f).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2af); [ zenon_intro zenon_H1ea | zenon_intro zenon_H2b0 ].
% 90.52/90.76  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.76  exact (zenon_H2ab zenon_H2b0).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply (zenon_L165_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L168_ *)
% 90.52/90.76  assert (zenon_L169_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n2))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2b1 zenon_H68 zenon_H97 zenon_Hb5 zenon_Hb6 zenon_He8.
% 90.52/90.76  elim (classic (gt (succ (n0)) (succ (succ (n0))))); [ zenon_intro zenon_H2b0 | zenon_intro zenon_H2ab ].
% 90.52/90.76  cut ((gt (succ (n0)) (succ (succ (n0)))) = (gt (succ (n0)) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2b0.
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply (zenon_L168_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L169_ *)
% 90.52/90.76  assert (zenon_L170_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2b1 zenon_He8 zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic ((~((succ (n0)) = (succ (tptp_minus_1))))/\(~(gt (succ (n0)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H159 | zenon_intro zenon_H15a ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H159). zenon_intro zenon_H15b. zenon_intro zenon_Haf.
% 90.52/90.76  apply (zenon_L15_); trivial.
% 90.52/90.76  elim (classic (zenon_TB_ec = (n2))); [ zenon_intro zenon_Hbe | zenon_intro zenon_Hb5 ].
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n0)) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H97.
% 90.52/90.76  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H15a); [ zenon_intro zenon_H15d | zenon_intro zenon_H15c ].
% 90.52/90.76  apply zenon_H15d. zenon_intro zenon_H15e.
% 90.52/90.76  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0))) = ((succ (tptp_minus_1)) = (succ (n0)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H108.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hb1.
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  cut (((succ (n0)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H15b zenon_H15e).
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  apply zenon_H15c. zenon_intro zenon_H15f.
% 90.52/90.76  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.76  generalize (zenon_H127 (succ (tptp_minus_1))). zenon_intro zenon_H160.
% 90.52/90.76  generalize (zenon_H160 zenon_TB_ec). zenon_intro zenon_H161.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H161); [ zenon_intro zenon_Haf | zenon_intro zenon_H162 ].
% 90.52/90.76  exact (zenon_Haf zenon_H15f).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H162); [ zenon_intro zenon_Hab | zenon_intro zenon_H163 ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  cut ((gt (succ (n0)) zenon_TB_ec) = (gt (succ (n0)) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H163.
% 90.52/90.76  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.76  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.76  apply (zenon_L169_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L170_ *)
% 90.52/90.76  assert (zenon_L171_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (succ (n0)) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_He8 zenon_Hb6 zenon_H97 zenon_H68 zenon_H2ab zenon_H73.
% 90.52/90.76  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (succ (n0)) (n2))); [ zenon_intro zenon_H2b2 | zenon_intro zenon_H2b1 ].
% 90.52/90.76  cut ((gt (succ (n0)) (n2)) = (gt (succ (n0)) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2ab.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2b2.
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply (zenon_L170_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L171_ *)
% 90.52/90.76  assert (zenon_L172_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_He8 zenon_Hb6 zenon_H97 zenon_H68 zenon_H73 zenon_H148.
% 90.52/90.76  elim (classic ((~(zenon_TB_ec = (n2)))/\(~(gt zenon_TB_ec (n2))))); [ zenon_intro zenon_H243 | zenon_intro zenon_H244 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_Hb5. zenon_intro zenon_H238.
% 90.52/90.76  apply (zenon_L166_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (n2) (n1)) = (gt zenon_TB_ec (n1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H148.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact gt_2_1.
% 90.52/90.76  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.76  cut (((n2) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H245].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H244); [ zenon_intro zenon_H247 | zenon_intro zenon_H246 ].
% 90.52/90.76  apply zenon_H247. zenon_intro zenon_Hbe.
% 90.52/90.76  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec) = ((n2) = zenon_TB_ec)).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H245.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc9.
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  cut ((zenon_TB_ec = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hb5 zenon_Hbe).
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_H246. zenon_intro zenon_H248.
% 90.52/90.76  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.76  generalize (zenon_H144 (n2)). zenon_intro zenon_H249.
% 90.52/90.76  generalize (zenon_H249 (n1)). zenon_intro zenon_H24a.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H24a); [ zenon_intro zenon_H238 | zenon_intro zenon_H24b ].
% 90.52/90.76  exact (zenon_H238 zenon_H248).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H24b); [ zenon_intro zenon_H7a | zenon_intro zenon_H164 ].
% 90.52/90.76  exact (zenon_H7a gt_2_1).
% 90.52/90.76  exact (zenon_H148 zenon_H164).
% 90.52/90.76  apply zenon_H66. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L172_ *)
% 90.52/90.76  assert (zenon_L173_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> (~(gt zenon_TB_ec (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_He8 zenon_H109 zenon_H73.
% 90.52/90.76  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.76  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.76  cut ((gt zenon_TB_ec (n1)) = (gt zenon_TB_ec (succ (n0)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H109.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H164.
% 90.52/90.76  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.76  apply (zenon_L172_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hb0.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hb1.
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hb3 successor_1).
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L173_ *)
% 90.52/90.76  assert (zenon_L174_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H10a zenon_H68 zenon_H97 zenon_Hb6 zenon_He8.
% 90.52/90.76  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.76  generalize (zenon_Hd2 (succ (n0))). zenon_intro zenon_H10c.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H10c); [ zenon_intro zenon_Hab | zenon_intro zenon_H10d ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_H109 | zenon_intro zenon_H10e ].
% 90.52/90.76  exact (zenon_H109 zenon_H10b).
% 90.52/90.76  exact (zenon_H10a zenon_H10e).
% 90.52/90.76  apply (zenon_L173_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L174_ *)
% 90.52/90.76  assert (zenon_L175_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (n0))))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H1ea zenon_He8 zenon_Hb6 zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.76  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.76  elim (classic (gt (n1) (succ (succ (n0))))); [ zenon_intro zenon_H1f5 | zenon_intro zenon_H1f0 ].
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.76  generalize (zenon_H1d1 (succ (succ (n0)))). zenon_intro zenon_H2b3.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2b3); [ zenon_intro zenon_Hac | zenon_intro zenon_H2b4 ].
% 90.52/90.76  exact (zenon_Hac zenon_H167).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2b4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H1f1 ].
% 90.52/90.76  exact (zenon_H1f0 zenon_H1f5).
% 90.52/90.76  exact (zenon_H1ea zenon_H1f1).
% 90.52/90.76  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.76  elim (classic (gt (succ (n0)) (succ (succ (n0))))); [ zenon_intro zenon_H2b0 | zenon_intro zenon_H2ab ].
% 90.52/90.76  cut ((gt (succ (n0)) (succ (succ (n0)))) = (gt (n1) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1f0.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2b0.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.76  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hb3.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H131.
% 90.52/90.76  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.76  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.76  apply zenon_H66. apply refl_equal.
% 90.52/90.76  apply zenon_H66. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply (zenon_L171_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.76  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hb0.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hb1.
% 90.52/90.76  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.76  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hb3 successor_1).
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  apply zenon_Hb2. apply refl_equal.
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hac.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H10e.
% 90.52/90.76  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb3 successor_1).
% 90.52/90.76  apply (zenon_L174_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L175_ *)
% 90.52/90.76  assert (zenon_L176_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_He8 zenon_Hce zenon_Hb6 zenon_H97 zenon_H68 zenon_H2b5 zenon_H73.
% 90.52/90.76  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.76  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (n0))))); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1ea ].
% 90.52/90.76  elim (classic (gt (n0) (succ (succ (n0))))); [ zenon_intro zenon_H2b6 | zenon_intro zenon_H2b7 ].
% 90.52/90.76  cut ((gt (n0) (succ (succ (n0)))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b5.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2b6.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hd7.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hd9.
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hdb zenon_Hce).
% 90.52/90.76  apply zenon_Hda. apply refl_equal.
% 90.52/90.76  apply zenon_Hda. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) (succ (succ (n0)))) = (gt (n0) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b7.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1f1.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.76  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hc3.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hca.
% 90.52/90.76  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.76  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H72 zenon_H71).
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply (zenon_L175_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H72.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc2.
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L176_ *)
% 90.52/90.76  assert (zenon_L177_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (n2))) -> (~((tptp_minus_1) = (n3))) -> (~(zenon_TB_ec = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2b8 zenon_He8 zenon_Hb6 zenon_H97 zenon_H68 zenon_Hce.
% 90.52/90.76  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (n0))))); [ zenon_intro zenon_H2b9 | zenon_intro zenon_H2b5 ].
% 90.52/90.76  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (n0)))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2b8.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2b9.
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_Hda. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply (zenon_L176_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L177_ *)
% 90.52/90.76  assert (zenon_L178_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_H73 zenon_Hdf zenon_Hce.
% 90.52/90.76  apply (zenon_L116_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L178_ *)
% 90.52/90.76  assert (zenon_L179_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~(zenon_TB_ec = (n3))) -> (~(gt (n0) (n2))) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hb6 zenon_H149 zenon_He8 zenon_H73 zenon_Hce.
% 90.52/90.76  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.76  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.76  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.76  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n2))); [ zenon_intro zenon_H2ba | zenon_intro zenon_H2b8 ].
% 90.52/90.76  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.76  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.76  generalize (zenon_H1e1 (n2)). zenon_intro zenon_H2bb.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2bb); [ zenon_intro zenon_Hde | zenon_intro zenon_H2bc ].
% 90.52/90.76  exact (zenon_Hde zenon_Hdd).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2bc); [ zenon_intro zenon_H2b8 | zenon_intro zenon_H14b ].
% 90.52/90.76  exact (zenon_H2b8 zenon_H2ba).
% 90.52/90.76  exact (zenon_H149 zenon_H14b).
% 90.52/90.76  apply (zenon_L177_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hde.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1b4.
% 90.52/90.76  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.76  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.76  apply (zenon_L178_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hd7.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hd9.
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.76  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hdb zenon_Hce).
% 90.52/90.76  apply zenon_Hda. apply refl_equal.
% 90.52/90.76  apply zenon_Hda. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L179_ *)
% 90.52/90.76  assert (zenon_L180_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(leq (n0) (tptp_minus_1))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_Hb6 zenon_He8 zenon_Hce zenon_H97 zenon_H68 zenon_Hed.
% 90.52/90.76  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.76  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.76  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.76  elim (classic ((~((succ (tptp_minus_1)) = (n2)))/\(~(gt (succ (tptp_minus_1)) (n2))))); [ zenon_intro zenon_H250 | zenon_intro zenon_H251 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H250). zenon_intro zenon_H252. zenon_intro zenon_H1da.
% 90.52/90.76  elim (classic ((~((succ (tptp_minus_1)) = (succ zenon_TB_ec)))/\(~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))))); [ zenon_intro zenon_H2bd | zenon_intro zenon_H2be ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H2bd). zenon_intro zenon_H2bf. zenon_intro zenon_H1d5.
% 90.52/90.76  apply (zenon_L158_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic (gt (n0) (n2))); [ zenon_intro zenon_H14b | zenon_intro zenon_H149 ].
% 90.52/90.76  generalize (zenon_H73 (succ zenon_TB_ec)). zenon_intro zenon_H11d.
% 90.52/90.76  generalize (zenon_H11d (n0)). zenon_intro zenon_H11e.
% 90.52/90.76  generalize (zenon_H11e (n2)). zenon_intro zenon_H2c0.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2c0); [ zenon_intro zenon_H6e | zenon_intro zenon_H2c1 ].
% 90.52/90.76  exact (zenon_H6e zenon_H68).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2c1); [ zenon_intro zenon_H149 | zenon_intro zenon_H2c2 ].
% 90.52/90.76  exact (zenon_H149 zenon_H14b).
% 90.52/90.76  cut ((gt (succ zenon_TB_ec) (n2)) = (gt (succ (tptp_minus_1)) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1da.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2c2.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((succ zenon_TB_ec) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H2c3].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H2be); [ zenon_intro zenon_H2c5 | zenon_intro zenon_H2c4 ].
% 90.52/90.76  apply zenon_H2c5. zenon_intro zenon_H2c6.
% 90.52/90.76  apply zenon_H2c3. apply sym_equal. exact zenon_H2c6.
% 90.52/90.76  apply zenon_H2c4. zenon_intro zenon_H1d9.
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 (succ zenon_TB_ec)). zenon_intro zenon_H2c7.
% 90.52/90.76  generalize (zenon_H2c7 (n2)). zenon_intro zenon_H2c8.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2c8); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H2c9 ].
% 90.52/90.76  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2c9); [ zenon_intro zenon_H2ca | zenon_intro zenon_H1dd ].
% 90.52/90.76  exact (zenon_H2ca zenon_H2c2).
% 90.52/90.76  exact (zenon_H1da zenon_H1dd).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply (zenon_L179_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (n2) (n0)) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hbf.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact gt_2_0.
% 90.52/90.76  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.76  cut (((n2) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H253].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H251); [ zenon_intro zenon_H255 | zenon_intro zenon_H254 ].
% 90.52/90.76  apply zenon_H255. zenon_intro zenon_H256.
% 90.52/90.76  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n2) = (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H253.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc2.
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H252].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H252 zenon_H256).
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  apply zenon_H254. zenon_intro zenon_H1dd.
% 90.52/90.76  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.76  generalize (zenon_Hd1 (n2)). zenon_intro zenon_H257.
% 90.52/90.76  generalize (zenon_H257 (n0)). zenon_intro zenon_H258.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H258); [ zenon_intro zenon_H1da | zenon_intro zenon_H259 ].
% 90.52/90.76  exact (zenon_H1da zenon_H1dd).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H259); [ zenon_intro zenon_H194 | zenon_intro zenon_Hc1 ].
% 90.52/90.76  exact (zenon_H194 gt_2_0).
% 90.52/90.76  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  exact (zenon_Hed zenon_Hef).
% 90.52/90.76  (* end of lemma zenon_L180_ *)
% 90.52/90.76  assert (zenon_L181_ : forall (zenon_TB_ec : zenon_U), (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n0))) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H97 zenon_Hce zenon_H73 zenon_Hdf zenon_H68.
% 90.52/90.76  elim (classic ((~((n0) = (succ zenon_TB_ec)))/\(~(gt (n0) (succ zenon_TB_ec))))); [ zenon_intro zenon_H2cb | zenon_intro zenon_H2cc ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H2cb). zenon_intro zenon_H2cd. zenon_intro zenon_H1de.
% 90.52/90.76  apply (zenon_L151_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (succ zenon_TB_ec) (n0)) = (gt (n0) (n0))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hdf.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H68.
% 90.52/90.76  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.76  cut (((succ zenon_TB_ec) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H2ce].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H2cc); [ zenon_intro zenon_H2d0 | zenon_intro zenon_H2cf ].
% 90.52/90.76  apply zenon_H2d0. zenon_intro zenon_H2d1.
% 90.52/90.76  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.76  cut (((n0) = (n0)) = ((succ zenon_TB_ec) = (n0))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2ce.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hca.
% 90.52/90.76  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.76  cut (((n0) = (succ zenon_TB_ec))); [idtac | apply NNPP; zenon_intro zenon_H2cd].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H2cd zenon_H2d1).
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  apply zenon_H2cf. zenon_intro zenon_H1e4.
% 90.52/90.76  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.76  generalize (zenon_H115 (succ zenon_TB_ec)). zenon_intro zenon_H2d2.
% 90.52/90.76  generalize (zenon_H2d2 (n0)). zenon_intro zenon_H2d3.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2d3); [ zenon_intro zenon_H1de | zenon_intro zenon_H2d4 ].
% 90.52/90.76  exact (zenon_H1de zenon_H1e4).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2d4); [ zenon_intro zenon_H6e | zenon_intro zenon_H1b4 ].
% 90.52/90.76  exact (zenon_H6e zenon_H68).
% 90.52/90.76  exact (zenon_Hdf zenon_H1b4).
% 90.52/90.76  apply zenon_H67. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L181_ *)
% 90.52/90.76  assert (zenon_L182_ : ((tptp_minus_1) = (n0)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (tptp_minus_1))) -> False).
% 90.52/90.76  do 0 intro. intros zenon_H103 zenon_H73 zenon_H2d5.
% 90.52/90.76  elim (classic ((~((tptp_minus_1) = (n0)))/\(~(gt (tptp_minus_1) (n0))))); [ zenon_intro zenon_H2d6 | zenon_intro zenon_H2d7 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H2d6). zenon_intro zenon_He5. zenon_intro zenon_H190.
% 90.52/90.76  exact (zenon_He5 zenon_H103).
% 90.52/90.76  cut ((gt (n0) (tptp_minus_1)) = (gt (tptp_minus_1) (tptp_minus_1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2d5.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact gt_0_tptp_minus_1.
% 90.52/90.76  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.76  cut (((n0) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H2d7); [ zenon_intro zenon_H2d9 | zenon_intro zenon_H2d8 ].
% 90.52/90.76  apply zenon_H2d9. zenon_intro zenon_H103.
% 90.52/90.76  elim (classic ((tptp_minus_1) = (tptp_minus_1))); [ zenon_intro zenon_H113 | zenon_intro zenon_He4 ].
% 90.52/90.76  cut (((tptp_minus_1) = (tptp_minus_1)) = ((n0) = (tptp_minus_1))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H112.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H113.
% 90.52/90.76  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.76  cut (((tptp_minus_1) = (n0))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_He5 zenon_H103).
% 90.52/90.76  apply zenon_He4. apply refl_equal.
% 90.52/90.76  apply zenon_He4. apply refl_equal.
% 90.52/90.76  apply zenon_H2d8. zenon_intro zenon_H193.
% 90.52/90.76  generalize (zenon_H73 (tptp_minus_1)). zenon_intro zenon_H171.
% 90.52/90.76  generalize (zenon_H171 (n0)). zenon_intro zenon_H2da.
% 90.52/90.76  generalize (zenon_H2da (tptp_minus_1)). zenon_intro zenon_H2db.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2db); [ zenon_intro zenon_H190 | zenon_intro zenon_H2dc ].
% 90.52/90.76  exact (zenon_H190 zenon_H193).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2dc); [ zenon_intro zenon_H101 | zenon_intro zenon_H2dd ].
% 90.52/90.76  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.76  exact (zenon_H2d5 zenon_H2dd).
% 90.52/90.76  apply zenon_He4. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L182_ *)
% 90.52/90.76  assert (zenon_L183_ : (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (tptp_minus_1) (succ (tptp_minus_1)))) -> ((tptp_minus_1) = (n0)) -> False).
% 90.52/90.76  do 0 intro. intros zenon_H73 zenon_H2de zenon_H103.
% 90.52/90.76  elim (classic (gt (tptp_minus_1) (tptp_minus_1))); [ zenon_intro zenon_H2dd | zenon_intro zenon_H2d5 ].
% 90.52/90.76  elim (classic (gt (tptp_minus_1) (n0))); [ zenon_intro zenon_H193 | zenon_intro zenon_H190 ].
% 90.52/90.76  cut ((gt (tptp_minus_1) (n0)) = (gt (tptp_minus_1) (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2de.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H193.
% 90.52/90.76  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.76  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_He4. apply refl_equal.
% 90.52/90.76  apply zenon_H72. apply sym_equal. exact succ_tptp_minus_1.
% 90.52/90.76  cut ((gt (tptp_minus_1) (tptp_minus_1)) = (gt (tptp_minus_1) (n0))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H190.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2dd.
% 90.52/90.76  cut (((tptp_minus_1) = (n0))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 90.52/90.76  cut (((tptp_minus_1) = (tptp_minus_1))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_He4. apply refl_equal.
% 90.52/90.76  exact (zenon_He5 zenon_H103).
% 90.52/90.76  apply (zenon_L182_); trivial.
% 90.52/90.76  (* end of lemma zenon_L183_ *)
% 90.52/90.76  assert (zenon_L184_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (gt (succ zenon_TB_ec) (n0)) -> ((tptp_minus_1) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H68 zenon_H103 zenon_H97.
% 90.52/90.76  generalize (finite_domain_0 zenon_TB_ec). zenon_intro zenon_H1c6.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H1c6); [ zenon_intro zenon_H1c7 | zenon_intro zenon_Hbb ].
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H1c7); [ zenon_intro zenon_H69 | zenon_intro zenon_H1c2 ].
% 90.52/90.76  apply (zenon_L5_ zenon_TB_ec); trivial.
% 90.52/90.76  apply (zenon_L73_ zenon_TB_ec); trivial.
% 90.52/90.76  generalize (irreflexivity_gt zenon_TB_ec). zenon_intro zenon_H293.
% 90.52/90.76  elim (classic ((~(zenon_TB_ec = (succ (tptp_minus_1))))/\(~(gt zenon_TB_ec (succ (tptp_minus_1)))))); [ zenon_intro zenon_H294 | zenon_intro zenon_H295 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H294). zenon_intro zenon_H296. zenon_intro zenon_Hc4.
% 90.52/90.76  elim (classic (gt (n0) (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hc7 ].
% 90.52/90.76  cut ((gt (n0) (succ (tptp_minus_1))) = (gt zenon_TB_ec (succ (tptp_minus_1)))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hc4.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc6.
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.76  cut (((n0) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec) = ((n0) = zenon_TB_ec)).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_Hc8.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc9.
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  cut ((zenon_TB_ec = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_Hb4 zenon_Hbb).
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_H8f. apply refl_equal.
% 90.52/90.76  elim (classic (gt (tptp_minus_1) (succ (tptp_minus_1)))); [ zenon_intro zenon_H2df | zenon_intro zenon_H2de ].
% 90.52/90.76  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.76  generalize (zenon_H115 (tptp_minus_1)). zenon_intro zenon_H116.
% 90.52/90.76  generalize (zenon_H116 (succ (tptp_minus_1))). zenon_intro zenon_H2e0.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2e0); [ zenon_intro zenon_H101 | zenon_intro zenon_H2e1 ].
% 90.52/90.76  exact (zenon_H101 gt_0_tptp_minus_1).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2e1); [ zenon_intro zenon_H2de | zenon_intro zenon_Hc6 ].
% 90.52/90.76  exact (zenon_H2de zenon_H2df).
% 90.52/90.76  exact (zenon_Hc7 zenon_Hc6).
% 90.52/90.76  apply (zenon_L183_); trivial.
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt zenon_TB_ec zenon_TB_ec)).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H293.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H97.
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H297].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H295); [ zenon_intro zenon_H299 | zenon_intro zenon_H298 ].
% 90.52/90.76  apply zenon_H299. zenon_intro zenon_H29a.
% 90.52/90.76  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec) = ((succ (tptp_minus_1)) = zenon_TB_ec)).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H297.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_Hc9.
% 90.52/90.76  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.76  cut ((zenon_TB_ec = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H296].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H296 zenon_H29a).
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  apply zenon_H298. zenon_intro zenon_Hcc.
% 90.52/90.76  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.76  generalize (zenon_H144 (succ (tptp_minus_1))). zenon_intro zenon_H145.
% 90.52/90.76  generalize (zenon_H145 zenon_TB_ec). zenon_intro zenon_H29b.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H29b); [ zenon_intro zenon_Hc4 | zenon_intro zenon_H29c ].
% 90.52/90.76  exact (zenon_Hc4 zenon_Hcc).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H29c); [ zenon_intro zenon_Hab | zenon_intro zenon_H29d ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  exact (zenon_H293 zenon_H29d).
% 90.52/90.76  apply zenon_Ha1. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L184_ *)
% 90.52/90.76  assert (zenon_L185_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(zenon_TB_ec = (n3))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_Hb6 zenon_He8 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.76  generalize (finite_domain_0 (tptp_minus_1)). zenon_intro zenon_H1c8.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H1c8); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H103 ].
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H1c9); [ zenon_intro zenon_Hed | zenon_intro zenon_H1b5 ].
% 90.52/90.76  apply (zenon_L180_ zenon_TB_ec); trivial.
% 90.52/90.76  apply (zenon_L71_); trivial.
% 90.52/90.76  apply (zenon_L184_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L185_ *)
% 90.52/90.76  assert (zenon_L186_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (succ (n0))) (n3))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2e2 zenon_He8 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic ((~((succ (succ (n0))) = (succ (tptp_minus_1))))/\(~(gt (succ (succ (n0))) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H29e | zenon_intro zenon_H29f ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H29e). zenon_intro zenon_H2a0. zenon_intro zenon_H28f.
% 90.52/90.76  apply (zenon_L159_); trivial.
% 90.52/90.76  elim (classic (zenon_TB_ec = (n3))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hb6 ].
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (succ (n0))) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2e2.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H97.
% 90.52/90.76  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H2a1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H29f); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2a2 ].
% 90.52/90.76  apply zenon_H2a3. zenon_intro zenon_H2a4.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((succ (tptp_minus_1)) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2a1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H2a0].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H2a0 zenon_H2a4).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H2a2. zenon_intro zenon_H292.
% 90.52/90.76  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.76  generalize (zenon_H202 (succ (tptp_minus_1))). zenon_intro zenon_H2a5.
% 90.52/90.76  generalize (zenon_H2a5 zenon_TB_ec). zenon_intro zenon_H2a6.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a6); [ zenon_intro zenon_H28f | zenon_intro zenon_H2a7 ].
% 90.52/90.76  exact (zenon_H28f zenon_H292).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a7); [ zenon_intro zenon_Hab | zenon_intro zenon_H2a8 ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  cut ((gt (succ (succ (n0))) zenon_TB_ec) = (gt (succ (succ (n0))) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2e2.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2a8.
% 90.52/90.76  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.76  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.76  apply (zenon_L185_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L186_ *)
% 90.52/90.76  assert (zenon_L187_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n2) (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_He8 zenon_Hce zenon_H97 zenon_H68 zenon_H207 zenon_H73.
% 90.52/90.76  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n3))); [ zenon_intro zenon_H2e3 | zenon_intro zenon_H2e2 ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (n3)) = (gt (n2) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H207.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2e3.
% 90.52/90.76  cut (((n3) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ef.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H64. apply refl_equal.
% 90.52/90.76  apply (zenon_L186_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L187_ *)
% 90.52/90.76  assert (zenon_L188_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n3) (n3))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H25a zenon_He8 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic (gt (n2) (n3))); [ zenon_intro zenon_H20a | zenon_intro zenon_H207 ].
% 90.52/90.76  generalize (zenon_H73 (n3)). zenon_intro zenon_H7d.
% 90.52/90.76  generalize (zenon_H7d (n2)). zenon_intro zenon_H7e.
% 90.52/90.76  generalize (zenon_H7e (n3)). zenon_intro zenon_H25b.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H25b); [ zenon_intro zenon_H81 | zenon_intro zenon_H25c ].
% 90.52/90.76  exact (zenon_H81 gt_3_2).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H25c); [ zenon_intro zenon_H207 | zenon_intro zenon_H25d ].
% 90.52/90.76  exact (zenon_H207 zenon_H20a).
% 90.52/90.76  exact (zenon_H25a zenon_H25d).
% 90.52/90.76  apply (zenon_L187_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L188_ *)
% 90.52/90.76  assert (zenon_L189_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_He8 zenon_H73 zenon_H1f9.
% 90.52/90.76  elim (classic ((~((n2) = (n3)))/\(~(gt (n2) (n3))))); [ zenon_intro zenon_H212 | zenon_intro zenon_H213 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H212). zenon_intro zenon_H214. zenon_intro zenon_H207.
% 90.52/90.76  apply (zenon_L187_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (n3) (n2)) = (gt (n2) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1f9.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact gt_3_2.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n3) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H215].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H213); [ zenon_intro zenon_H217 | zenon_intro zenon_H216 ].
% 90.52/90.76  apply zenon_H217. zenon_intro zenon_H218.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((n3) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H215.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H214].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H214 zenon_H218).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H216. zenon_intro zenon_H20a.
% 90.52/90.76  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.76  generalize (zenon_H76 (n3)). zenon_intro zenon_H219.
% 90.52/90.76  generalize (zenon_H219 (n2)). zenon_intro zenon_H21a.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H21a); [ zenon_intro zenon_H207 | zenon_intro zenon_H21b ].
% 90.52/90.76  exact (zenon_H207 zenon_H20a).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H21b); [ zenon_intro zenon_H81 | zenon_intro zenon_H21c ].
% 90.52/90.76  exact (zenon_H81 gt_3_2).
% 90.52/90.76  exact (zenon_H1f9 zenon_H21c).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L189_ *)
% 90.52/90.76  assert (zenon_L190_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n2) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_He8 zenon_Hce zenon_H97 zenon_H68 zenon_H20b zenon_H73.
% 90.52/90.76  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (n2) (n2))); [ zenon_intro zenon_H21c | zenon_intro zenon_H1f9 ].
% 90.52/90.76  elim (classic (gt (n2) (succ (succ (n0))))); [ zenon_intro zenon_H2e4 | zenon_intro zenon_H2e5 ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H21e | zenon_intro zenon_H210 ].
% 90.52/90.76  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.76  generalize (zenon_H76 (succ (succ (n0)))). zenon_intro zenon_H2e6.
% 90.52/90.76  generalize (zenon_H2e6 (succ (succ (succ (n0))))). zenon_intro zenon_H2e7.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2e7); [ zenon_intro zenon_H2e5 | zenon_intro zenon_H2e8 ].
% 90.52/90.76  exact (zenon_H2e5 zenon_H2e4).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2e8); [ zenon_intro zenon_H210 | zenon_intro zenon_H211 ].
% 90.52/90.76  exact (zenon_H210 zenon_H21e).
% 90.52/90.76  exact (zenon_H20b zenon_H211).
% 90.52/90.76  elim (classic ((n3) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20c | zenon_intro zenon_H8b ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n3))); [ zenon_intro zenon_H2e3 | zenon_intro zenon_H2e2 ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (n3)) = (gt (succ (succ (n0))) (succ (succ (succ (n0)))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H210.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2e3.
% 90.52/90.76  cut (((n3) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_H8b zenon_H20c).
% 90.52/90.76  apply (zenon_L186_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [ zenon_intro zenon_H20d | zenon_intro zenon_H20e ].
% 90.52/90.76  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0))))) = ((n3) = (succ (succ (succ (n0)))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H8b.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H20d.
% 90.52/90.76  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.76  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H20f successor_3).
% 90.52/90.76  apply zenon_H20e. apply refl_equal.
% 90.52/90.76  apply zenon_H20e. apply refl_equal.
% 90.52/90.76  cut ((gt (n2) (n2)) = (gt (n2) (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2e5.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H21c.
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply (zenon_L189_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L190_ *)
% 90.52/90.76  assert (zenon_L191_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (succ (n0))) (n3))) -> (~(gt (succ (n0)) (succ (succ (n0))))) -> (~((tptp_minus_1) = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H73 zenon_H2e2 zenon_H2ab zenon_He8 zenon_H97 zenon_H68.
% 90.52/90.76  elim (classic ((~((succ (succ (n0))) = (succ (tptp_minus_1))))/\(~(gt (succ (succ (n0))) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H29e | zenon_intro zenon_H29f ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H29e). zenon_intro zenon_H2a0. zenon_intro zenon_H28f.
% 90.52/90.76  apply (zenon_L159_); trivial.
% 90.52/90.76  elim (classic (zenon_TB_ec = (n3))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hb6 ].
% 90.52/90.76  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (succ (n0))) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2e2.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H97.
% 90.52/90.76  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.76  cut (((succ (tptp_minus_1)) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H2a1].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H29f); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2a2 ].
% 90.52/90.76  apply zenon_H2a3. zenon_intro zenon_H2a4.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((succ (tptp_minus_1)) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2a1.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H2a0].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H2a0 zenon_H2a4).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H2a2. zenon_intro zenon_H292.
% 90.52/90.76  generalize (zenon_H73 (succ (succ (n0)))). zenon_intro zenon_H202.
% 90.52/90.76  generalize (zenon_H202 (succ (tptp_minus_1))). zenon_intro zenon_H2a5.
% 90.52/90.76  generalize (zenon_H2a5 zenon_TB_ec). zenon_intro zenon_H2a6.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a6); [ zenon_intro zenon_H28f | zenon_intro zenon_H2a7 ].
% 90.52/90.76  exact (zenon_H28f zenon_H292).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H2a7); [ zenon_intro zenon_Hab | zenon_intro zenon_H2a8 ].
% 90.52/90.76  exact (zenon_Hab zenon_H97).
% 90.52/90.76  cut ((gt (succ (succ (n0))) zenon_TB_ec) = (gt (succ (succ (n0))) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H2e2.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2a8.
% 90.52/90.76  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  congruence.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.76  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.76  apply (zenon_L171_ zenon_TB_ec); trivial.
% 90.52/90.76  (* end of lemma zenon_L191_ *)
% 90.52/90.76  assert (zenon_L192_ : forall (zenon_TB_ec : zenon_U), (~(gt (succ (n0)) (succ (succ (n0))))) -> (~((tptp_minus_1) = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (n2) (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H2ab zenon_He8 zenon_H97 zenon_H68 zenon_H207 zenon_H73.
% 90.52/90.76  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.76  elim (classic (gt (succ (succ (n0))) (n3))); [ zenon_intro zenon_H2e3 | zenon_intro zenon_H2e2 ].
% 90.52/90.76  cut ((gt (succ (succ (n0))) (n3)) = (gt (n2) (n3))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H207.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H2e3.
% 90.52/90.76  cut (((n3) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ef.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H64. apply refl_equal.
% 90.52/90.76  apply (zenon_L191_ zenon_TB_ec); trivial.
% 90.52/90.76  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1ec.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1ed.
% 90.52/90.76  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.76  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H1ef successor_2).
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  apply zenon_H1ee. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L192_ *)
% 90.52/90.76  assert (zenon_L193_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~((tptp_minus_1) = (n3))) -> (~(gt (succ (n0)) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n2) (n2))) -> False).
% 90.52/90.76  do 1 intro. intros zenon_H68 zenon_H97 zenon_He8 zenon_H2ab zenon_H73 zenon_H1f9.
% 90.52/90.76  elim (classic ((~((n2) = (n3)))/\(~(gt (n2) (n3))))); [ zenon_intro zenon_H212 | zenon_intro zenon_H213 ].
% 90.52/90.76  apply (zenon_and_s _ _ zenon_H212). zenon_intro zenon_H214. zenon_intro zenon_H207.
% 90.52/90.76  apply (zenon_L192_ zenon_TB_ec); trivial.
% 90.52/90.76  cut ((gt (n3) (n2)) = (gt (n2) (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H1f9.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact gt_3_2.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n3) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H215].
% 90.52/90.76  congruence.
% 90.52/90.76  apply (zenon_notand_s _ _ zenon_H213); [ zenon_intro zenon_H217 | zenon_intro zenon_H216 ].
% 90.52/90.76  apply zenon_H217. zenon_intro zenon_H218.
% 90.52/90.76  elim (classic ((n2) = (n2))); [ zenon_intro zenon_H1fc | zenon_intro zenon_H65 ].
% 90.52/90.76  cut (((n2) = (n2)) = ((n3) = (n2))).
% 90.52/90.76  intro zenon_D_pnotp.
% 90.52/90.76  apply zenon_H215.
% 90.52/90.76  rewrite <- zenon_D_pnotp.
% 90.52/90.76  exact zenon_H1fc.
% 90.52/90.76  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.76  cut (((n2) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H214].
% 90.52/90.76  congruence.
% 90.52/90.76  exact (zenon_H214 zenon_H218).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  apply zenon_H216. zenon_intro zenon_H20a.
% 90.52/90.76  generalize (zenon_H73 (n2)). zenon_intro zenon_H76.
% 90.52/90.76  generalize (zenon_H76 (n3)). zenon_intro zenon_H219.
% 90.52/90.76  generalize (zenon_H219 (n2)). zenon_intro zenon_H21a.
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H21a); [ zenon_intro zenon_H207 | zenon_intro zenon_H21b ].
% 90.52/90.76  exact (zenon_H207 zenon_H20a).
% 90.52/90.76  apply (zenon_imply_s _ _ zenon_H21b); [ zenon_intro zenon_H81 | zenon_intro zenon_H21c ].
% 90.52/90.76  exact (zenon_H81 gt_3_2).
% 90.52/90.76  exact (zenon_H1f9 zenon_H21c).
% 90.52/90.76  apply zenon_H65. apply refl_equal.
% 90.52/90.76  (* end of lemma zenon_L193_ *)
% 90.52/90.76  assert (zenon_L194_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (n2))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H2b1 zenon_H68 zenon_H97 zenon_He8.
% 90.52/90.77  elim (classic ((~((succ (n0)) = (n3)))/\(~(gt (succ (n0)) (n3))))); [ zenon_intro zenon_H2e9 | zenon_intro zenon_H2ea ].
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H2e9). zenon_intro zenon_H2ec. zenon_intro zenon_H2eb.
% 90.52/90.77  elim (classic ((~((succ (n0)) = (succ (tptp_minus_1))))/\(~(gt (succ (n0)) (succ (tptp_minus_1)))))); [ zenon_intro zenon_H159 | zenon_intro zenon_H15a ].
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H159). zenon_intro zenon_H15b. zenon_intro zenon_Haf.
% 90.52/90.77  apply (zenon_L15_); trivial.
% 90.52/90.77  elim (classic (zenon_TB_ec = (n3))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hb6 ].
% 90.52/90.77  cut ((gt (succ (tptp_minus_1)) zenon_TB_ec) = (gt (succ (n0)) (n3))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2eb.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H97.
% 90.52/90.77  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 90.52/90.77  congruence.
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H15a); [ zenon_intro zenon_H15d | zenon_intro zenon_H15c ].
% 90.52/90.77  apply zenon_H15d. zenon_intro zenon_H15e.
% 90.52/90.77  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0))) = ((succ (tptp_minus_1)) = (succ (n0)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H108.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hb1.
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  cut (((succ (n0)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_H15b zenon_H15e).
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_H15c. zenon_intro zenon_H15f.
% 90.52/90.77  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.77  generalize (zenon_H127 (succ (tptp_minus_1))). zenon_intro zenon_H160.
% 90.52/90.77  generalize (zenon_H160 zenon_TB_ec). zenon_intro zenon_H161.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H161); [ zenon_intro zenon_Haf | zenon_intro zenon_H162 ].
% 90.52/90.77  exact (zenon_Haf zenon_H15f).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H162); [ zenon_intro zenon_Hab | zenon_intro zenon_H163 ].
% 90.52/90.77  exact (zenon_Hab zenon_H97).
% 90.52/90.77  cut ((gt (succ (n0)) zenon_TB_ec) = (gt (succ (n0)) (n3))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2eb.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H163.
% 90.52/90.77  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.77  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.77  apply (zenon_L170_ zenon_TB_ec); trivial.
% 90.52/90.77  cut ((gt (n3) (n2)) = (gt (succ (n0)) (n2))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2b1.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact gt_3_2.
% 90.52/90.77  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 90.52/90.77  cut (((n3) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_H2ed].
% 90.52/90.77  congruence.
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H2ea); [ zenon_intro zenon_H2ef | zenon_intro zenon_H2ee ].
% 90.52/90.77  apply zenon_H2ef. zenon_intro zenon_H2f0.
% 90.52/90.77  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0))) = ((n3) = (succ (n0)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2ed.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hb1.
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  cut (((succ (n0)) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H2ec].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_H2ec zenon_H2f0).
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_H2ee. zenon_intro zenon_H2f1.
% 90.52/90.77  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.77  generalize (zenon_H127 (n3)). zenon_intro zenon_H2f2.
% 90.52/90.77  generalize (zenon_H2f2 (n2)). zenon_intro zenon_H2f3.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2f3); [ zenon_intro zenon_H2eb | zenon_intro zenon_H2f4 ].
% 90.52/90.77  exact (zenon_H2eb zenon_H2f1).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2f4); [ zenon_intro zenon_H81 | zenon_intro zenon_H2b2 ].
% 90.52/90.77  exact (zenon_H81 gt_3_2).
% 90.52/90.77  exact (zenon_H2b1 zenon_H2b2).
% 90.52/90.77  apply zenon_H65. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L194_ *)
% 90.52/90.77  assert (zenon_L195_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt (succ (n0)) (succ (succ (n0))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_He8 zenon_H97 zenon_H68 zenon_H2ab zenon_H73.
% 90.52/90.77  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 90.52/90.77  elim (classic (gt (succ (n0)) (n2))); [ zenon_intro zenon_H2b2 | zenon_intro zenon_H2b1 ].
% 90.52/90.77  cut ((gt (succ (n0)) (n2)) = (gt (succ (n0)) (succ (succ (n0))))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2ab.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H2b2.
% 90.52/90.77  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  exact (zenon_H1ec zenon_H1eb).
% 90.52/90.77  apply (zenon_L194_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ].
% 90.52/90.77  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H1ec.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H1ed.
% 90.52/90.77  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 90.52/90.77  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_H1ef successor_2).
% 90.52/90.77  apply zenon_H1ee. apply refl_equal.
% 90.52/90.77  apply zenon_H1ee. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L195_ *)
% 90.52/90.77  assert (zenon_L196_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (n0)) (succ (succ (succ (n0)))))) -> (~((tptp_minus_1) = (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H265 zenon_He8 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.77  elim (classic (gt (succ (n0)) (succ (succ (n0))))); [ zenon_intro zenon_H2b0 | zenon_intro zenon_H2ab ].
% 90.52/90.77  elim (classic (gt (succ (n0)) (n2))); [ zenon_intro zenon_H2b2 | zenon_intro zenon_H2b1 ].
% 90.52/90.77  elim (classic (gt (n2) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H211 | zenon_intro zenon_H20b ].
% 90.52/90.77  generalize (zenon_H73 (succ (n0))). zenon_intro zenon_H127.
% 90.52/90.77  generalize (zenon_H127 (n2)). zenon_intro zenon_H2f5.
% 90.52/90.77  generalize (zenon_H2f5 (succ (succ (succ (n0))))). zenon_intro zenon_H2f6.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2f6); [ zenon_intro zenon_H2b1 | zenon_intro zenon_H2f7 ].
% 90.52/90.77  exact (zenon_H2b1 zenon_H2b2).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2f7); [ zenon_intro zenon_H20b | zenon_intro zenon_H272 ].
% 90.52/90.77  exact (zenon_H20b zenon_H211).
% 90.52/90.77  exact (zenon_H265 zenon_H272).
% 90.52/90.77  apply (zenon_L190_ zenon_TB_ec); trivial.
% 90.52/90.77  cut ((gt (succ (n0)) (succ (succ (n0)))) = (gt (succ (n0)) (n2))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2b1.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H2b0.
% 90.52/90.77  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  exact (zenon_H1ef successor_2).
% 90.52/90.77  apply (zenon_L195_ zenon_TB_ec); trivial.
% 90.52/90.77  (* end of lemma zenon_L196_ *)
% 90.52/90.77  assert (zenon_L197_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (~((tptp_minus_1) = (n3))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt zenon_TB_ec (n1))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H68 zenon_H97 zenon_He8 zenon_H73 zenon_H148.
% 90.52/90.77  elim (classic ((~(zenon_TB_ec = (n3)))/\(~(gt zenon_TB_ec (n3))))); [ zenon_intro zenon_H280 | zenon_intro zenon_H281 ].
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H280). zenon_intro zenon_Hb6. zenon_intro zenon_H27a.
% 90.52/90.77  apply (zenon_L172_ zenon_TB_ec); trivial.
% 90.52/90.77  cut ((gt (n3) (n1)) = (gt zenon_TB_ec (n1))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H148.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact gt_3_1.
% 90.52/90.77  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.77  cut (((n3) = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_H282].
% 90.52/90.77  congruence.
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H281); [ zenon_intro zenon_H284 | zenon_intro zenon_H283 ].
% 90.52/90.77  apply zenon_H284. zenon_intro zenon_Hbd.
% 90.52/90.77  elim (classic (zenon_TB_ec = zenon_TB_ec)); [ zenon_intro zenon_Hc9 | zenon_intro zenon_Ha1 ].
% 90.52/90.77  cut ((zenon_TB_ec = zenon_TB_ec) = ((n3) = zenon_TB_ec)).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H282.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hc9.
% 90.52/90.77  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.77  cut ((zenon_TB_ec = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hb6 zenon_Hbd).
% 90.52/90.77  apply zenon_Ha1. apply refl_equal.
% 90.52/90.77  apply zenon_Ha1. apply refl_equal.
% 90.52/90.77  apply zenon_H283. zenon_intro zenon_H27b.
% 90.52/90.77  generalize (zenon_H73 zenon_TB_ec). zenon_intro zenon_H144.
% 90.52/90.77  generalize (zenon_H144 (n3)). zenon_intro zenon_H285.
% 90.52/90.77  generalize (zenon_H285 (n1)). zenon_intro zenon_H286.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H286); [ zenon_intro zenon_H27a | zenon_intro zenon_H287 ].
% 90.52/90.77  exact (zenon_H27a zenon_H27b).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H287); [ zenon_intro zenon_H185 | zenon_intro zenon_H164 ].
% 90.52/90.77  exact (zenon_H185 gt_3_1).
% 90.52/90.77  exact (zenon_H148 zenon_H164).
% 90.52/90.77  apply zenon_H66. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L197_ *)
% 90.52/90.77  assert (zenon_L198_ : forall (zenon_TB_ec : zenon_U), (~((tptp_minus_1) = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> (~(gt zenon_TB_ec (succ (n0)))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_He8 zenon_H97 zenon_H68 zenon_H109 zenon_H73.
% 90.52/90.77  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.77  elim (classic (gt zenon_TB_ec (n1))); [ zenon_intro zenon_H164 | zenon_intro zenon_H148 ].
% 90.52/90.77  cut ((gt zenon_TB_ec (n1)) = (gt zenon_TB_ec (succ (n0)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H109.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H164.
% 90.52/90.77  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.77  cut ((zenon_TB_ec = zenon_TB_ec)); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_Ha1. apply refl_equal.
% 90.52/90.77  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.77  apply (zenon_L197_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hb0.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hb1.
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hb3 successor_1).
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L198_ *)
% 90.52/90.77  assert (zenon_L199_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (n0)))) -> (~((tptp_minus_1) = (n3))) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H10a zenon_He8 zenon_H97 zenon_H68.
% 90.52/90.77  elim (classic (gt zenon_TB_ec (succ (n0)))); [ zenon_intro zenon_H10b | zenon_intro zenon_H109 ].
% 90.52/90.77  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.77  generalize (zenon_Hd1 zenon_TB_ec). zenon_intro zenon_Hd2.
% 90.52/90.77  generalize (zenon_Hd2 (succ (n0))). zenon_intro zenon_H10c.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H10c); [ zenon_intro zenon_Hab | zenon_intro zenon_H10d ].
% 90.52/90.77  exact (zenon_Hab zenon_H97).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_H109 | zenon_intro zenon_H10e ].
% 90.52/90.77  exact (zenon_H109 zenon_H10b).
% 90.52/90.77  exact (zenon_H10a zenon_H10e).
% 90.52/90.77  apply (zenon_L198_ zenon_TB_ec); trivial.
% 90.52/90.77  (* end of lemma zenon_L199_ *)
% 90.52/90.77  assert (zenon_L200_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H21d zenon_H68 zenon_H97 zenon_Hce zenon_He8.
% 90.52/90.77  elim (classic (gt (succ (tptp_minus_1)) (succ (n0)))); [ zenon_intro zenon_H10e | zenon_intro zenon_H10a ].
% 90.52/90.77  elim (classic (gt (succ (tptp_minus_1)) (n1))); [ zenon_intro zenon_H167 | zenon_intro zenon_Hac ].
% 90.52/90.77  elim (classic (gt (n1) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H262 | zenon_intro zenon_H25e ].
% 90.52/90.77  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.77  generalize (zenon_Hd1 (n1)). zenon_intro zenon_H1d1.
% 90.52/90.77  generalize (zenon_H1d1 (succ (succ (succ (n0))))). zenon_intro zenon_H27e.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H27e); [ zenon_intro zenon_Hac | zenon_intro zenon_H27f ].
% 90.52/90.77  exact (zenon_Hac zenon_H167).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H27f); [ zenon_intro zenon_H25e | zenon_intro zenon_H222 ].
% 90.52/90.77  exact (zenon_H25e zenon_H262).
% 90.52/90.77  exact (zenon_H21d zenon_H222).
% 90.52/90.77  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_H12e | zenon_intro zenon_Hb0 ].
% 90.52/90.77  elim (classic (gt (succ (n0)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H272 | zenon_intro zenon_H265 ].
% 90.52/90.77  cut ((gt (succ (n0)) (succ (succ (succ (n0))))) = (gt (n1) (succ (succ (succ (n0)))))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H25e.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H272.
% 90.52/90.77  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.77  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.77  congruence.
% 90.52/90.77  elim (classic ((n1) = (n1))); [ zenon_intro zenon_H131 | zenon_intro zenon_H66 ].
% 90.52/90.77  cut (((n1) = (n1)) = ((succ (n0)) = (n1))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hb3.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H131.
% 90.52/90.77  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 90.52/90.77  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hb0 zenon_H12e).
% 90.52/90.77  apply zenon_H66. apply refl_equal.
% 90.52/90.77  apply zenon_H66. apply refl_equal.
% 90.52/90.77  apply zenon_H20e. apply refl_equal.
% 90.52/90.77  apply (zenon_L196_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hb2 ].
% 90.52/90.77  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hb0.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hb1.
% 90.52/90.77  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 90.52/90.77  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hb3 successor_1).
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  apply zenon_Hb2. apply refl_equal.
% 90.52/90.77  cut ((gt (succ (tptp_minus_1)) (succ (n0))) = (gt (succ (tptp_minus_1)) (n1))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hac.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H10e.
% 90.52/90.77  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_H8f. apply refl_equal.
% 90.52/90.77  exact (zenon_Hb3 successor_1).
% 90.52/90.77  apply (zenon_L199_ zenon_TB_ec); trivial.
% 90.52/90.77  (* end of lemma zenon_L200_ *)
% 90.52/90.77  assert (zenon_L201_ : forall (zenon_TB_ec : zenon_U), (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (~((tptp_minus_1) = (n3))) -> (~(gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (succ (n0)))))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H68 zenon_H97 zenon_Hce zenon_He8 zenon_H2f8 zenon_H73.
% 90.52/90.77  elim (classic ((n0) = (succ (tptp_minus_1)))); [ zenon_intro zenon_H71 | zenon_intro zenon_H72 ].
% 90.52/90.77  elim (classic (gt (succ (tptp_minus_1)) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H222 | zenon_intro zenon_H21d ].
% 90.52/90.77  elim (classic (gt (n0) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H26a | zenon_intro zenon_H26b ].
% 90.52/90.77  cut ((gt (n0) (succ (succ (succ (n0))))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (succ (n0)))))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2f8.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H26a.
% 90.52/90.77  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.77  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.77  congruence.
% 90.52/90.77  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hd7.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hd9.
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hdb zenon_Hce).
% 90.52/90.77  apply zenon_Hda. apply refl_equal.
% 90.52/90.77  apply zenon_Hda. apply refl_equal.
% 90.52/90.77  apply zenon_H20e. apply refl_equal.
% 90.52/90.77  cut ((gt (succ (tptp_minus_1)) (succ (succ (succ (n0))))) = (gt (n0) (succ (succ (succ (n0)))))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H26b.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H222.
% 90.52/90.77  cut (((succ (succ (succ (n0)))) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H20e].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.77  congruence.
% 90.52/90.77  elim (classic ((n0) = (n0))); [ zenon_intro zenon_Hca | zenon_intro zenon_H67 ].
% 90.52/90.77  cut (((n0) = (n0)) = ((succ (tptp_minus_1)) = (n0))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hc3.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hca.
% 90.52/90.77  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.77  cut (((n0) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_H72 zenon_H71).
% 90.52/90.77  apply zenon_H67. apply refl_equal.
% 90.52/90.77  apply zenon_H67. apply refl_equal.
% 90.52/90.77  apply zenon_H20e. apply refl_equal.
% 90.52/90.77  apply (zenon_L200_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n0) = (succ (tptp_minus_1)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H72.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hc2.
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hc3 succ_tptp_minus_1).
% 90.52/90.77  apply zenon_H8f. apply refl_equal.
% 90.52/90.77  apply zenon_H8f. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L201_ *)
% 90.52/90.77  assert (zenon_L202_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n0) (n3))) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> (gt (succ zenon_TB_ec) (n0)) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H175 zenon_Hce zenon_H97 zenon_H68.
% 90.52/90.77  elim (classic ((tptp_minus_1) = (n3))); [ zenon_intro zenon_H106 | zenon_intro zenon_He8 ].
% 90.52/90.77  cut ((gt (n0) (tptp_minus_1)) = (gt (n0) (n3))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H175.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact gt_0_tptp_minus_1.
% 90.52/90.77  cut (((tptp_minus_1) = (n3))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 90.52/90.77  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_H67. apply refl_equal.
% 90.52/90.77  exact (zenon_He8 zenon_H106).
% 90.52/90.77  elim (classic ((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hd7 ].
% 90.52/90.77  elim (classic (gt (n0) (n0))); [ zenon_intro zenon_H1b4 | zenon_intro zenon_Hdf ].
% 90.52/90.77  elim (classic (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 90.52/90.77  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (n3))); [ zenon_intro zenon_H2f9 | zenon_intro zenon_H2fa ].
% 90.52/90.77  generalize (zenon_H73 (n0)). zenon_intro zenon_H115.
% 90.52/90.77  generalize (zenon_H115 (sum (n0) (tptp_minus_1) zenon_E)). zenon_intro zenon_H1e1.
% 90.52/90.77  generalize (zenon_H1e1 (n3)). zenon_intro zenon_H2fb.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2fb); [ zenon_intro zenon_Hde | zenon_intro zenon_H2fc ].
% 90.52/90.77  exact (zenon_Hde zenon_Hdd).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2fc); [ zenon_intro zenon_H2fa | zenon_intro zenon_H177 ].
% 90.52/90.77  exact (zenon_H2fa zenon_H2f9).
% 90.52/90.77  exact (zenon_H175 zenon_H177).
% 90.52/90.77  elim (classic (gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (succ (n0)))))); [ zenon_intro zenon_H2fd | zenon_intro zenon_H2f8 ].
% 90.52/90.77  cut ((gt (sum (n0) (tptp_minus_1) zenon_E) (succ (succ (succ (n0))))) = (gt (sum (n0) (tptp_minus_1) zenon_E) (n3))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H2fa.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H2fd.
% 90.52/90.77  cut (((succ (succ (succ (n0)))) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H20f].
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_Hda. apply refl_equal.
% 90.52/90.77  exact (zenon_H20f successor_3).
% 90.52/90.77  apply (zenon_L201_ zenon_TB_ec); trivial.
% 90.52/90.77  cut ((gt (n0) (n0)) = (gt (n0) (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hde.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H1b4.
% 90.52/90.77  cut (((n0) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 90.52/90.77  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.77  congruence.
% 90.52/90.77  apply zenon_H67. apply refl_equal.
% 90.52/90.77  exact (zenon_Hd7 zenon_Hd6).
% 90.52/90.77  apply (zenon_L181_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic ((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [ zenon_intro zenon_Hd9 | zenon_intro zenon_Hda ].
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E)) = ((n0) = (sum (n0) (tptp_minus_1) zenon_E))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hd7.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hd9.
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (sum (n0) (tptp_minus_1) zenon_E))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 90.52/90.77  cut (((sum (n0) (tptp_minus_1) zenon_E) = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_Hdb zenon_Hce).
% 90.52/90.77  apply zenon_Hda. apply refl_equal.
% 90.52/90.77  apply zenon_Hda. apply refl_equal.
% 90.52/90.77  (* end of lemma zenon_L202_ *)
% 90.52/90.77  assert (zenon_L203_ : forall (zenon_TB_ec : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (succ (tptp_minus_1)) (n3))) -> (gt (succ zenon_TB_ec) (n0)) -> (gt (succ (tptp_minus_1)) zenon_TB_ec) -> ((sum (n0) (tptp_minus_1) zenon_E) = (n0)) -> False).
% 90.52/90.77  do 1 intro. intros zenon_H73 zenon_H225 zenon_H68 zenon_H97 zenon_Hce.
% 90.52/90.77  elim (classic ((~((succ (tptp_minus_1)) = (succ zenon_TB_ec)))/\(~(gt (succ (tptp_minus_1)) (succ zenon_TB_ec))))); [ zenon_intro zenon_H2bd | zenon_intro zenon_H2be ].
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H2bd). zenon_intro zenon_H2bf. zenon_intro zenon_H1d5.
% 90.52/90.77  apply (zenon_L158_ zenon_TB_ec); trivial.
% 90.52/90.77  elim (classic (gt (n0) (n3))); [ zenon_intro zenon_H177 | zenon_intro zenon_H175 ].
% 90.52/90.77  generalize (zenon_H73 (succ zenon_TB_ec)). zenon_intro zenon_H11d.
% 90.52/90.77  generalize (zenon_H11d (n0)). zenon_intro zenon_H11e.
% 90.52/90.77  generalize (zenon_H11e (n3)). zenon_intro zenon_H2fe.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2fe); [ zenon_intro zenon_H6e | zenon_intro zenon_H2ff ].
% 90.52/90.77  exact (zenon_H6e zenon_H68).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H2ff); [ zenon_intro zenon_H175 | zenon_intro zenon_H300 ].
% 90.52/90.77  exact (zenon_H175 zenon_H177).
% 90.52/90.77  cut ((gt (succ zenon_TB_ec) (n3)) = (gt (succ (tptp_minus_1)) (n3))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H225.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_H300.
% 90.52/90.77  cut (((n3) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 90.52/90.77  cut (((succ zenon_TB_ec) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H2c3].
% 90.52/90.77  congruence.
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H2be); [ zenon_intro zenon_H2c5 | zenon_intro zenon_H2c4 ].
% 90.52/90.77  apply zenon_H2c5. zenon_intro zenon_H2c6.
% 90.52/90.77  apply zenon_H2c3. apply sym_equal. exact zenon_H2c6.
% 90.52/90.77  apply zenon_H2c4. zenon_intro zenon_H1d9.
% 90.52/90.77  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.77  generalize (zenon_Hd1 (succ zenon_TB_ec)). zenon_intro zenon_H2c7.
% 90.52/90.77  generalize (zenon_H2c7 (n3)). zenon_intro zenon_H301.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H301); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H302 ].
% 90.52/90.77  exact (zenon_H1d5 zenon_H1d9).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H302); [ zenon_intro zenon_H303 | zenon_intro zenon_H229 ].
% 90.52/90.77  exact (zenon_H303 zenon_H300).
% 90.52/90.77  exact (zenon_H225 zenon_H229).
% 90.52/90.77  apply zenon_H64. apply refl_equal.
% 90.52/90.77  apply (zenon_L202_ zenon_TB_ec); trivial.
% 90.52/90.77  (* end of lemma zenon_L203_ *)
% 90.52/90.77  apply NNPP. intro zenon_G.
% 90.52/90.77  elim (classic (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z))))))); [ zenon_intro zenon_H73 | zenon_intro zenon_H304 ].
% 90.52/90.77  apply (zenon_notimply_s _ _ zenon_G). zenon_intro zenon_H306. zenon_intro zenon_H305.
% 90.52/90.77  apply (zenon_notallex_s (fun B : zenon_U => (((leq (n0) B)/\(leq B (tptp_minus_1)))->((a_select3 (q) (pv10) B) = (divide (divide (times (exp (divide (divide (times (minus (a_select2 (x) (pv10)) (a_select2 (mu) B)) (minus (a_select2 (x) (pv10)) (a_select2 (mu) B))) (tptp_minus_2)) (times (a_select2 (sigma) B) (a_select2 (sigma) B)))) (a_select2 (rho) B)) (times (sqrt (times (n2) (tptp_pi))) (a_select2 (sigma) B))) (sum (n0) (n4) (divide (times (exp (divide (divide (times (minus (a_select2 (x) (pv10)) (a_select2 (mu) (tptp_sum_index))) (minus (a_select2 (x) (pv10)) (a_select2 (mu) (tptp_sum_index)))) (tptp_minus_2)) (times (a_select2 (sigma) (tptp_sum_index)) (a_select2 (sigma) (tptp_sum_index))))) (a_select2 (rho) (tptp_sum_index))) (times (sqrt (times (n2) (tptp_pi))) (a_select2 (sigma) (tptp_sum_index))))))))) zenon_H305); [ zenon_intro zenon_H307; idtac ].
% 90.52/90.77  elim zenon_H307. zenon_intro zenon_TB_ec. zenon_intro zenon_H308.
% 90.52/90.77  apply (zenon_notimply_s _ _ zenon_H308). zenon_intro zenon_H30a. zenon_intro zenon_H309.
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H30a). zenon_intro zenon_H6d. zenon_intro zenon_H30b.
% 90.52/90.77  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.77  generalize (zenon_H6b zenon_TB_ec). zenon_intro zenon_H6c.
% 90.52/90.77  apply (zenon_equiv_s _ _ zenon_H6c); [ zenon_intro zenon_H69; zenon_intro zenon_H6e | zenon_intro zenon_H6d; zenon_intro zenon_H68 ].
% 90.52/90.77  exact (zenon_H69 zenon_H6d).
% 90.52/90.77  generalize (leq_succ_gt_equiv zenon_TB_ec). zenon_intro zenon_H99.
% 90.52/90.77  generalize (zenon_H99 (tptp_minus_1)). zenon_intro zenon_H30c.
% 90.52/90.77  apply (zenon_equiv_s _ _ zenon_H30c); [ zenon_intro zenon_H30d; zenon_intro zenon_Hab | zenon_intro zenon_H30b; zenon_intro zenon_H97 ].
% 90.52/90.77  exact (zenon_H30d zenon_H30b).
% 90.52/90.77  generalize (sum_plus_base zenon_E). zenon_intro zenon_Hce.
% 90.52/90.77  generalize (finite_domain_0 (tptp_minus_1)). zenon_intro zenon_H1c8.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H1c8); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H103 ].
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H1c9); [ zenon_intro zenon_Hed | zenon_intro zenon_H1b5 ].
% 90.52/90.77  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H6b.
% 90.52/90.77  generalize (zenon_H6b (tptp_minus_1)). zenon_intro zenon_Hee.
% 90.52/90.77  apply (zenon_equiv_s _ _ zenon_Hee); [ zenon_intro zenon_Hed; zenon_intro zenon_Hbf | zenon_intro zenon_Hef; zenon_intro zenon_Hc1 ].
% 90.52/90.77  elim (classic ((~((succ (tptp_minus_1)) = (n3)))/\(~(gt (succ (tptp_minus_1)) (n3))))); [ zenon_intro zenon_H223 | zenon_intro zenon_H224 ].
% 90.52/90.77  apply (zenon_and_s _ _ zenon_H223). zenon_intro zenon_H226. zenon_intro zenon_H225.
% 90.52/90.77  apply (zenon_L203_ zenon_TB_ec); trivial.
% 90.52/90.77  cut ((gt (n3) (n0)) = (gt (succ (tptp_minus_1)) (n0))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_Hbf.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact gt_3_0.
% 90.52/90.77  cut (((n0) = (n0))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 90.52/90.77  cut (((n3) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H22a].
% 90.52/90.77  congruence.
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H224); [ zenon_intro zenon_H22c | zenon_intro zenon_H22b ].
% 90.52/90.77  apply zenon_H22c. zenon_intro zenon_H22d.
% 90.52/90.77  elim (classic ((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_H8f ].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1))) = ((n3) = (succ (tptp_minus_1)))).
% 90.52/90.77  intro zenon_D_pnotp.
% 90.52/90.77  apply zenon_H22a.
% 90.52/90.77  rewrite <- zenon_D_pnotp.
% 90.52/90.77  exact zenon_Hc2.
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (succ (tptp_minus_1)))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 90.52/90.77  cut (((succ (tptp_minus_1)) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H226].
% 90.52/90.77  congruence.
% 90.52/90.77  exact (zenon_H226 zenon_H22d).
% 90.52/90.77  apply zenon_H8f. apply refl_equal.
% 90.52/90.77  apply zenon_H8f. apply refl_equal.
% 90.52/90.77  apply zenon_H22b. zenon_intro zenon_H229.
% 90.52/90.77  generalize (zenon_H73 (succ (tptp_minus_1))). zenon_intro zenon_Hd1.
% 90.52/90.77  generalize (zenon_Hd1 (n3)). zenon_intro zenon_H22e.
% 90.52/90.77  generalize (zenon_H22e (n0)). zenon_intro zenon_H28a.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H28a); [ zenon_intro zenon_H225 | zenon_intro zenon_H28b ].
% 90.52/90.77  exact (zenon_H225 zenon_H229).
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H28b); [ zenon_intro zenon_H197 | zenon_intro zenon_Hc1 ].
% 90.52/90.77  exact (zenon_H197 gt_3_0).
% 90.52/90.77  exact (zenon_Hbf zenon_Hc1).
% 90.52/90.77  apply zenon_H67. apply refl_equal.
% 90.52/90.77  exact (zenon_Hed zenon_Hef).
% 90.52/90.77  apply (zenon_L71_); trivial.
% 90.52/90.77  apply (zenon_L184_ zenon_TB_ec); trivial.
% 90.52/90.77  apply zenon_H304. zenon_intro zenon_Tx_bec. apply NNPP. zenon_intro zenon_H30f.
% 90.52/90.77  apply zenon_H30f. zenon_intro zenon_Ty_bee. apply NNPP. zenon_intro zenon_H311.
% 90.52/90.77  apply zenon_H311. zenon_intro zenon_Tz_beg. apply NNPP. zenon_intro zenon_H313.
% 90.52/90.77  apply (zenon_notimply_s _ _ zenon_H313). zenon_intro zenon_H315. zenon_intro zenon_H314.
% 90.52/90.77  apply (zenon_notimply_s _ _ zenon_H314). zenon_intro zenon_H317. zenon_intro zenon_H316.
% 90.52/90.77  generalize (transitivity_gt zenon_Tx_bec). zenon_intro zenon_H318.
% 90.52/90.77  generalize (zenon_H318 zenon_Ty_bee). zenon_intro zenon_H319.
% 90.52/90.77  generalize (zenon_H319 zenon_Tz_beg). zenon_intro zenon_H31a.
% 90.52/90.77  apply (zenon_imply_s _ _ zenon_H31a); [ zenon_intro zenon_H31c | zenon_intro zenon_H31b ].
% 90.52/90.77  apply (zenon_notand_s _ _ zenon_H31c); [ zenon_intro zenon_H31e | zenon_intro zenon_H31d ].
% 90.52/90.77  exact (zenon_H31e zenon_H315).
% 90.52/90.77  exact (zenon_H31d zenon_H317).
% 90.52/90.77  exact (zenon_H316 zenon_H31b).
% 90.52/90.77  Qed.
% 90.52/90.77  % SZS output end Proof
% 90.52/90.77  (* END-PROOF *)
% 90.52/90.77  nodes searched: 6890034
% 90.52/90.77  max branch formulas: 13547
% 90.52/90.77  proof nodes created: 11517
% 90.52/90.77  formulas created: 2186525
% 90.52/90.77  
%------------------------------------------------------------------------------