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

View Problem - Process Solution

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

% Computer : n011.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:19 EDT 2022

% Result   : Theorem 8.47s 8.69s
% Output   : Proof 8.47s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.07/0.12  % Problem  : SWV209+1 : TPTP v8.1.0. Bugfixed v3.3.0.
% 0.07/0.12  % Command  : run_zenon %s %d
% 0.12/0.33  % Computer : n011.cluster.edu
% 0.12/0.33  % Model    : x86_64 x86_64
% 0.12/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.33  % Memory   : 8042.1875MB
% 0.12/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.33  % CPULimit : 300
% 0.12/0.33  % WCLimit  : 600
% 0.12/0.33  % DateTime : Tue Jun 14 18:18:34 EDT 2022
% 0.12/0.34  % CPUTime  : 
% 8.47/8.69  (* PROOF-FOUND *)
% 8.47/8.69  % SZS status Theorem
% 8.47/8.69  (* BEGIN-PROOF *)
% 8.47/8.69  % SZS output start Proof
% 8.47/8.69  Theorem quaternion_ds1_inuse_0020 : ((((a_select2 (rho_defuse) (n0)) = (use))/\(((a_select2 (rho_defuse) (n1)) = (use))/\(((a_select2 (rho_defuse) (n2)) = (use))/\(((a_select2 (sigma_defuse) (n0)) = (use))/\(((a_select2 (sigma_defuse) (n1)) = (use))/\(((a_select2 (sigma_defuse) (n2)) = (use))/\(((a_select2 (sigma_defuse) (n3)) = (use))/\(((a_select2 (sigma_defuse) (n4)) = (use))/\(((a_select2 (sigma_defuse) (n5)) = (use))/\(((a_select3 (u_defuse) (n0) (n0)) = (use))/\(((a_select3 (u_defuse) (n1) (n0)) = (use))/\(((a_select3 (u_defuse) (n2) (n0)) = (use))/\(((a_select2 (xinit_defuse) (n3)) = (use))/\(((a_select2 (xinit_defuse) (n4)) = (use))/\(((a_select2 (xinit_defuse) (n5)) = (use))/\(((a_select2 (xinit_mean_defuse) (n0)) = (use))/\(((a_select2 (xinit_mean_defuse) (n1)) = (use))/\(((a_select2 (xinit_mean_defuse) (n2)) = (use))/\(((a_select2 (xinit_mean_defuse) (n3)) = (use))/\(((a_select2 (xinit_mean_defuse) (n4)) = (use))/\(((a_select2 (xinit_mean_defuse) (n5)) = (use))/\(((a_select2 (xinit_noise_defuse) (n0)) = (use))/\(((a_select2 (xinit_noise_defuse) (n1)) = (use))/\(((a_select2 (xinit_noise_defuse) (n2)) = (use))/\(((a_select2 (xinit_noise_defuse) (n3)) = (use))/\(((a_select2 (xinit_noise_defuse) (n4)) = (use))/\(((a_select2 (xinit_noise_defuse) (n5)) = (use))/\((forall A : zenon_U, (forall B : zenon_U, (((leq (n0) A)/\((leq (n0) B)/\((leq A (n2))/\(leq B (n998)))))->((a_select3 (u_defuse) A B) = (use)))))/\(forall C : zenon_U, (forall D : zenon_U, (((leq (n0) C)/\((leq (n0) D)/\((leq C (n2))/\(leq D (n998)))))->((a_select3 (z_defuse) C D) = (use)))))))))))))))))))))))))))))))))->(forall E : zenon_U, (((leq (n0) E)/\(leq E (n5)))->((a_select2 (xinit_noise_defuse) E) = (use))))).
% 8.47/8.69  Proof.
% 8.47/8.69  assert (zenon_L1_ : (~((xinit_noise_defuse) = (xinit_noise_defuse))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H5c.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L1_ *)
% 8.47/8.69  assert (zenon_L2_ : forall (zenon_TE_dr : zenon_U), (gt (succ zenon_TE_dr) (n0)) -> (~(leq (n0) zenon_TE_dr)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H5d zenon_H5e.
% 8.47/8.69  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H60.
% 8.47/8.69  generalize (zenon_H60 zenon_TE_dr). zenon_intro zenon_H61.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_H61); [ zenon_intro zenon_H5e; zenon_intro zenon_H63 | zenon_intro zenon_H62; zenon_intro zenon_H5d ].
% 8.47/8.69  exact (zenon_H63 zenon_H5d).
% 8.47/8.69  exact (zenon_H5e zenon_H62).
% 8.47/8.69  (* end of lemma zenon_L2_ *)
% 8.47/8.69  assert (zenon_L3_ : (~((n4) = (n4))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H64.
% 8.47/8.69  apply zenon_H64. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L3_ *)
% 8.47/8.69  assert (zenon_L4_ : (~((n3) = (n3))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H65.
% 8.47/8.69  apply zenon_H65. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L4_ *)
% 8.47/8.69  assert (zenon_L5_ : (~((n2) = (n2))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H66.
% 8.47/8.69  apply zenon_H66. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L5_ *)
% 8.47/8.69  assert (zenon_L6_ : forall (zenon_TE_dr : zenon_U), (gt (succ (n5)) zenon_TE_dr) -> (~(leq zenon_TE_dr (n5))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H67 zenon_H68.
% 8.47/8.69  generalize (leq_succ_gt_equiv zenon_TE_dr). zenon_intro zenon_H69.
% 8.47/8.69  generalize (zenon_H69 (n5)). zenon_intro zenon_H6a.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_H6a); [ zenon_intro zenon_H68; zenon_intro zenon_H6c | zenon_intro zenon_H6b; zenon_intro zenon_H67 ].
% 8.47/8.69  exact (zenon_H6c zenon_H67).
% 8.47/8.69  exact (zenon_H68 zenon_H6b).
% 8.47/8.69  (* end of lemma zenon_L6_ *)
% 8.47/8.69  assert (zenon_L7_ : forall (zenon_TE_dr : zenon_U), (gt (succ zenon_TE_dr) (n0)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((n0) = zenon_TE_dr)) -> (~((n1) = zenon_TE_dr)) -> (~((n2) = zenon_TE_dr)) -> (~((n3) = zenon_TE_dr)) -> (~(zenon_TE_dr = (n4))) -> (~(zenon_TE_dr = (n5))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H5d zenon_H67 zenon_H6d zenon_H6e zenon_H6f zenon_H70 zenon_H71 zenon_H72.
% 8.47/8.69  generalize (finite_domain_5 zenon_TE_dr). zenon_intro zenon_H73.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H73); [ zenon_intro zenon_H75 | zenon_intro zenon_H74 ].
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_H75); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 8.47/8.69  apply (zenon_L2_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_L6_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_H74); [ zenon_intro zenon_H77 | zenon_intro zenon_H76 ].
% 8.47/8.69  apply zenon_H6d. apply sym_equal. exact zenon_H77.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_H76); [ zenon_intro zenon_H79 | zenon_intro zenon_H78 ].
% 8.47/8.69  apply zenon_H6e. apply sym_equal. exact zenon_H79.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_H78); [ zenon_intro zenon_H7b | zenon_intro zenon_H7a ].
% 8.47/8.69  apply zenon_H6f. apply sym_equal. exact zenon_H7b.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H7d | zenon_intro zenon_H7c ].
% 8.47/8.69  apply zenon_H70. apply sym_equal. exact zenon_H7d.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_H7c); [ zenon_intro zenon_H7f | zenon_intro zenon_H7e ].
% 8.47/8.69  exact (zenon_H71 zenon_H7f).
% 8.47/8.69  exact (zenon_H72 zenon_H7e).
% 8.47/8.69  (* end of lemma zenon_L7_ *)
% 8.47/8.69  assert (zenon_L8_ : forall (zenon_TE_dr : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n4) zenon_TE_dr)) -> (gt (succ zenon_TE_dr) (n0)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((n0) = zenon_TE_dr)) -> (~(zenon_TE_dr = (n4))) -> (~(zenon_TE_dr = (n5))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_H81 zenon_H5d zenon_H67 zenon_H6d zenon_H71 zenon_H72.
% 8.47/8.69  elim (classic ((n3) = zenon_TE_dr)); [ zenon_intro zenon_H82 | zenon_intro zenon_H70 ].
% 8.47/8.69  cut ((gt (n4) (n3)) = (gt (n4) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H81.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact gt_4_3.
% 8.47/8.69  cut (((n3) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H70].
% 8.47/8.69  cut (((n4) = (n4))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H64. apply refl_equal.
% 8.47/8.69  exact (zenon_H70 zenon_H82).
% 8.47/8.69  elim (classic (gt (n3) zenon_TE_dr)); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 8.47/8.69  generalize (zenon_H80 (n4)). zenon_intro zenon_H85.
% 8.47/8.69  generalize (zenon_H85 (n3)). zenon_intro zenon_H86.
% 8.47/8.69  generalize (zenon_H86 zenon_TE_dr). zenon_intro zenon_H87.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H87); [ zenon_intro zenon_H89 | zenon_intro zenon_H88 ].
% 8.47/8.69  exact (zenon_H89 gt_4_3).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H88); [ zenon_intro zenon_H84 | zenon_intro zenon_H8a ].
% 8.47/8.69  exact (zenon_H84 zenon_H83).
% 8.47/8.69  exact (zenon_H81 zenon_H8a).
% 8.47/8.69  elim (classic ((n2) = zenon_TE_dr)); [ zenon_intro zenon_H8b | zenon_intro zenon_H6f ].
% 8.47/8.69  cut ((gt (n3) (n2)) = (gt (n3) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H84.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact gt_3_2.
% 8.47/8.69  cut (((n2) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 8.47/8.69  cut (((n3) = (n3))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H65. apply refl_equal.
% 8.47/8.69  exact (zenon_H6f zenon_H8b).
% 8.47/8.69  elim (classic (gt (n2) zenon_TE_dr)); [ zenon_intro zenon_H8c | zenon_intro zenon_H8d ].
% 8.47/8.69  generalize (zenon_H80 (n3)). zenon_intro zenon_H8e.
% 8.47/8.69  generalize (zenon_H8e (n2)). zenon_intro zenon_H8f.
% 8.47/8.69  generalize (zenon_H8f zenon_TE_dr). zenon_intro zenon_H90.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H90); [ zenon_intro zenon_H92 | zenon_intro zenon_H91 ].
% 8.47/8.69  exact (zenon_H92 gt_3_2).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H91); [ zenon_intro zenon_H8d | zenon_intro zenon_H83 ].
% 8.47/8.69  exact (zenon_H8d zenon_H8c).
% 8.47/8.69  exact (zenon_H84 zenon_H83).
% 8.47/8.69  elim (classic ((n1) = zenon_TE_dr)); [ zenon_intro zenon_H93 | zenon_intro zenon_H6e ].
% 8.47/8.69  cut ((gt (n2) (n1)) = (gt (n2) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H8d.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact gt_2_1.
% 8.47/8.69  cut (((n1) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 8.47/8.69  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H66. apply refl_equal.
% 8.47/8.69  exact (zenon_H6e zenon_H93).
% 8.47/8.69  apply (zenon_L7_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L8_ *)
% 8.47/8.69  assert (zenon_L9_ : (~((succ (n3)) = (succ (succ (succ (succ (n0))))))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H94.
% 8.47/8.69  cut (((n3) = (succ (succ (succ (n0)))))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H95. apply sym_equal. exact successor_3.
% 8.47/8.69  (* end of lemma zenon_L9_ *)
% 8.47/8.69  assert (zenon_L10_ : forall (zenon_TE_dr : 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 (n3)) zenon_TE_dr)) -> (~(zenon_TE_dr = (n5))) -> (~(zenon_TE_dr = (n4))) -> (~((n0) = zenon_TE_dr)) -> (gt (succ (n5)) zenon_TE_dr) -> (gt (succ zenon_TE_dr) (n0)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_H96 zenon_H72 zenon_H71 zenon_H6d zenon_H67 zenon_H5d.
% 8.47/8.69  elim (classic (gt (n4) zenon_TE_dr)); [ zenon_intro zenon_H8a | zenon_intro zenon_H81 ].
% 8.47/8.69  elim (classic (gt (succ (succ (succ (succ (n0))))) zenon_TE_dr)); [ zenon_intro zenon_H97 | zenon_intro zenon_H98 ].
% 8.47/8.69  cut ((gt (succ (succ (succ (succ (n0))))) zenon_TE_dr) = (gt (succ (n3)) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H96.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H97.
% 8.47/8.69  cut ((zenon_TE_dr = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H99].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 8.47/8.69  cut (((succ (n3)) = (succ (n3))) = ((succ (succ (succ (succ (n0))))) = (succ (n3)))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H9a.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H9b.
% 8.47/8.69  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 8.47/8.69  cut (((succ (n3)) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H94].
% 8.47/8.69  congruence.
% 8.47/8.69  apply (zenon_L9_); trivial.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_H99. apply refl_equal.
% 8.47/8.69  cut ((gt (n4) zenon_TE_dr) = (gt (succ (succ (succ (succ (n0))))) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H98.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H8a.
% 8.47/8.69  cut ((zenon_TE_dr = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H99].
% 8.47/8.69  cut (((n4) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0)))))) = ((n4) = (succ (succ (succ (succ (n0))))))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H9d.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H9e.
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H9f].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (n4))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Ha0 successor_4).
% 8.47/8.69  apply zenon_H9f. apply refl_equal.
% 8.47/8.69  apply zenon_H9f. apply refl_equal.
% 8.47/8.69  apply zenon_H99. apply refl_equal.
% 8.47/8.69  apply (zenon_L8_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L10_ *)
% 8.47/8.69  assert (zenon_L11_ : (~((use) = (use))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_Ha1.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L11_ *)
% 8.47/8.69  assert (zenon_L12_ : forall (zenon_TE_dr : zenon_U), (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> (zenon_TE_dr = (n1)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Ha2 zenon_Ha3 zenon_H79.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n1)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha3.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n1)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha4].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n1)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha4.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n1)))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n1))); [idtac | apply NNPP; zenon_intro zenon_Ha8].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  exact (zenon_Ha8 zenon_H79).
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L12_ *)
% 8.47/8.69  assert (zenon_L13_ : forall (zenon_TE_dr : zenon_U), (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> (zenon_TE_dr = (n2)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Ha2 zenon_Ha9 zenon_H7b.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n2)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha9.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n2)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Haa].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n2)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Haa.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n2)))); [idtac | apply NNPP; zenon_intro zenon_Hab].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hac].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  exact (zenon_Hac zenon_H7b).
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L13_ *)
% 8.47/8.69  assert (zenon_L14_ : forall (zenon_TE_dr : zenon_U), (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> (zenon_TE_dr = (n3)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Ha2 zenon_Had zenon_H7d.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n3)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Had.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n3)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n3)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hae.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n3)))); [idtac | apply NNPP; zenon_intro zenon_Haf].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n3))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  exact (zenon_Hb0 zenon_H7d).
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L14_ *)
% 8.47/8.69  assert (zenon_L15_ : forall (zenon_TE_dr : 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_TE_dr) (n0)) -> (~(zenon_TE_dr = (n5))) -> (~(zenon_TE_dr = (n4))) -> (~((n0) = zenon_TE_dr)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_H5d zenon_H72 zenon_H71 zenon_H6d zenon_H67 zenon_Ha2 zenon_Ha3 zenon_Ha9 zenon_Had.
% 8.47/8.69  generalize (finite_domain_3 zenon_TE_dr). zenon_intro zenon_Hb1.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hb1); [ zenon_intro zenon_Hb3 | zenon_intro zenon_Hb2 ].
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_Hb3); [ zenon_intro zenon_H5e | zenon_intro zenon_Hb4 ].
% 8.47/8.69  apply (zenon_L2_ zenon_TE_dr); trivial.
% 8.47/8.69  generalize (leq_succ_gt_equiv zenon_TE_dr). zenon_intro zenon_H69.
% 8.47/8.69  generalize (zenon_H69 (n3)). zenon_intro zenon_Hb5.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_Hb5); [ zenon_intro zenon_Hb4; zenon_intro zenon_H96 | zenon_intro zenon_Hb7; zenon_intro zenon_Hb6 ].
% 8.47/8.69  apply (zenon_L10_ zenon_TE_dr); trivial.
% 8.47/8.69  exact (zenon_Hb4 zenon_Hb7).
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H77 | zenon_intro zenon_Hb8 ].
% 8.47/8.69  apply zenon_H6d. apply sym_equal. exact zenon_H77.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_H79 | zenon_intro zenon_Hb9 ].
% 8.47/8.69  apply (zenon_L12_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb9); [ zenon_intro zenon_H7b | zenon_intro zenon_H7d ].
% 8.47/8.69  apply (zenon_L13_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_L14_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L15_ *)
% 8.47/8.69  assert (zenon_L16_ : forall (zenon_TE_dr : 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_TE_dr))) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> (gt (succ (n5)) zenon_TE_dr) -> (~(zenon_TE_dr = (n4))) -> (~(zenon_TE_dr = (n5))) -> (gt (succ zenon_TE_dr) (n0)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_Hba zenon_Had zenon_Ha9 zenon_Ha3 zenon_Ha2 zenon_H67 zenon_H71 zenon_H72 zenon_H5d.
% 8.47/8.69  cut (((n0) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 8.47/8.69  congruence.
% 8.47/8.69  apply (zenon_L15_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L16_ *)
% 8.47/8.69  assert (zenon_L17_ : (~((n1) = (n1))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_Hbb.
% 8.47/8.69  apply zenon_Hbb. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L17_ *)
% 8.47/8.69  assert (zenon_L18_ : (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))) (n1))) -> False).
% 8.47/8.69  do 0 intro. intros zenon_H80 zenon_Hbc.
% 8.47/8.69  elim (classic ((~((succ (succ (n0))) = (n2)))/\(~(gt (succ (succ (n0))) (n2))))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hbe ].
% 8.47/8.69  apply (zenon_and_s _ _ zenon_Hbd). zenon_intro zenon_Hc0. zenon_intro zenon_Hbf.
% 8.47/8.69  exact (zenon_Hc0 successor_2).
% 8.47/8.69  cut ((gt (n2) (n1)) = (gt (succ (succ (n0))) (n1))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hbc.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact gt_2_1.
% 8.47/8.69  cut (((n1) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hbb].
% 8.47/8.69  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 8.47/8.69  congruence.
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_Hbe); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hc2 ].
% 8.47/8.69  apply zenon_Hc3. zenon_intro successor_2.
% 8.47/8.69  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_Hc4 | zenon_intro zenon_Hc5 ].
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hc1.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hc4.
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 8.47/8.69  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hc0].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Hc0 successor_2).
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  apply zenon_Hc2. zenon_intro zenon_Hc6.
% 8.47/8.69  generalize (zenon_H80 (succ (succ (n0)))). zenon_intro zenon_Hc7.
% 8.47/8.69  generalize (zenon_Hc7 (n2)). zenon_intro zenon_Hc8.
% 8.47/8.69  generalize (zenon_Hc8 (n1)). zenon_intro zenon_Hc9.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hc9); [ zenon_intro zenon_Hbf | zenon_intro zenon_Hca ].
% 8.47/8.69  exact (zenon_Hbf zenon_Hc6).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hca); [ zenon_intro zenon_Hcc | zenon_intro zenon_Hcb ].
% 8.47/8.69  exact (zenon_Hcc gt_2_1).
% 8.47/8.69  exact (zenon_Hbc zenon_Hcb).
% 8.47/8.69  apply zenon_Hbb. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L18_ *)
% 8.47/8.69  assert (zenon_L19_ : forall (zenon_TE_dr : zenon_U), (~(gt (succ (succ (n0))) (succ zenon_TE_dr))) -> (gt (succ zenon_TE_dr) (n0)) -> (~(zenon_TE_dr = (n5))) -> (~(zenon_TE_dr = (n4))) -> (gt (succ (n5)) zenon_TE_dr) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Hcd zenon_H5d zenon_H72 zenon_H71 zenon_H67 zenon_Ha2 zenon_Ha3 zenon_Ha9 zenon_Had zenon_H80.
% 8.47/8.69  elim (classic ((n1) = (succ (n0)))); [ zenon_intro zenon_Hce | zenon_intro zenon_Hcf ].
% 8.47/8.69  elim (classic (gt (succ (succ (n0))) (n1))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hbc ].
% 8.47/8.69  elim (classic (gt (succ (succ (n0))) (succ (n0)))); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hd1 ].
% 8.47/8.69  cut ((gt (succ (succ (n0))) (succ (n0))) = (gt (succ (succ (n0))) (succ zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hcd.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd0.
% 8.47/8.69  cut (((succ (n0)) = (succ zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hba].
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  apply (zenon_L16_ zenon_TE_dr); trivial.
% 8.47/8.69  cut ((gt (succ (succ (n0))) (n1)) = (gt (succ (succ (n0))) (succ (n0)))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hd1.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hcb.
% 8.47/8.69  cut (((n1) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hcf].
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  exact (zenon_Hcf zenon_Hce).
% 8.47/8.69  apply (zenon_L18_); trivial.
% 8.47/8.69  elim (classic ((succ (n0)) = (succ (n0)))); [ zenon_intro zenon_Hd2 | zenon_intro zenon_Hd3 ].
% 8.47/8.69  cut (((succ (n0)) = (succ (n0))) = ((n1) = (succ (n0)))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hcf.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd2.
% 8.47/8.69  cut (((succ (n0)) = (succ (n0)))); [idtac | apply NNPP; zenon_intro zenon_Hd3].
% 8.47/8.69  cut (((succ (n0)) = (n1))); [idtac | apply NNPP; zenon_intro zenon_Hd4].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Hd4 successor_1).
% 8.47/8.69  apply zenon_Hd3. apply refl_equal.
% 8.47/8.69  apply zenon_Hd3. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L19_ *)
% 8.47/8.69  assert (zenon_L20_ : forall (zenon_TE_dr : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n4)))) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> (gt (succ (n5)) zenon_TE_dr) -> (~(zenon_TE_dr = (n5))) -> (gt (succ zenon_TE_dr) (n0)) -> (~(gt (succ (succ (n0))) (succ zenon_TE_dr))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_Hd5 zenon_Had zenon_Ha9 zenon_Ha3 zenon_Ha2 zenon_H67 zenon_H72 zenon_H5d zenon_Hcd.
% 8.47/8.69  cut ((zenon_TE_dr = (n4))); [idtac | apply NNPP; zenon_intro zenon_H71].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  apply (zenon_L19_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L20_ *)
% 8.47/8.69  assert (zenon_L21_ : forall (zenon_TE_dr : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> ((a_select2 (xinit_noise_defuse) (n4)) = (use)) -> (~(gt (succ (succ (n0))) (succ zenon_TE_dr))) -> (gt (succ zenon_TE_dr) (n0)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n5)) = (use)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_Hd6 zenon_Hcd zenon_H5d zenon_H67 zenon_Ha2 zenon_Ha3 zenon_Ha9 zenon_Had zenon_Hd7.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n4)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd6.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n4)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n4)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hd8.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n4)))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 8.47/8.69  congruence.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n5)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd7.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n5)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hd9].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n5)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hd9.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n5)))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n5))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  apply (zenon_L20_ zenon_TE_dr); trivial.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L21_ *)
% 8.47/8.69  assert (zenon_L22_ : forall (zenon_TE_dr : zenon_U), ((a_select2 (xinit_noise_defuse) (n5)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> (gt (succ (n5)) zenon_TE_dr) -> (gt (succ zenon_TE_dr) (n0)) -> ((a_select2 (xinit_noise_defuse) (n4)) = (use)) -> (~(gt (n2) (succ zenon_TE_dr))) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Hd7 zenon_Had zenon_Ha9 zenon_Ha3 zenon_Ha2 zenon_H67 zenon_H5d zenon_Hd6 zenon_Hdb zenon_H80.
% 8.47/8.69  elim (classic ((n2) = (succ (succ (n0))))); [ zenon_intro zenon_Hdc | zenon_intro zenon_Hc1 ].
% 8.47/8.69  elim (classic (gt (succ (succ (n0))) (succ zenon_TE_dr))); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hcd ].
% 8.47/8.69  cut ((gt (succ (succ (n0))) (succ zenon_TE_dr)) = (gt (n2) (succ zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hdb.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hdd.
% 8.47/8.69  cut (((succ zenon_TE_dr) = (succ zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 8.47/8.69  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hc0].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((n2) = (n2))); [ zenon_intro zenon_Hdf | zenon_intro zenon_H66 ].
% 8.47/8.69  cut (((n2) = (n2)) = ((succ (succ (n0))) = (n2))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hc0.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hdf.
% 8.47/8.69  cut (((n2) = (n2))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 8.47/8.69  cut (((n2) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Hc1 zenon_Hdc).
% 8.47/8.69  apply zenon_H66. apply refl_equal.
% 8.47/8.69  apply zenon_H66. apply refl_equal.
% 8.47/8.69  apply zenon_Hde. apply refl_equal.
% 8.47/8.69  apply (zenon_L21_ zenon_TE_dr); trivial.
% 8.47/8.69  elim (classic ((succ (succ (n0))) = (succ (succ (n0))))); [ zenon_intro zenon_Hc4 | zenon_intro zenon_Hc5 ].
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0)))) = ((n2) = (succ (succ (n0))))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hc1.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hc4.
% 8.47/8.69  cut (((succ (succ (n0))) = (succ (succ (n0))))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 8.47/8.69  cut (((succ (succ (n0))) = (n2))); [idtac | apply NNPP; zenon_intro zenon_Hc0].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Hc0 successor_2).
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  apply zenon_Hc5. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L22_ *)
% 8.47/8.69  assert (zenon_L23_ : forall (zenon_TE_dr : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~(gt (n4) (succ zenon_TE_dr))) -> ((a_select2 (xinit_noise_defuse) (n4)) = (use)) -> (gt (succ zenon_TE_dr) (n0)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n5)) = (use)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_He0 zenon_Hd6 zenon_H5d zenon_H67 zenon_Ha2 zenon_Ha3 zenon_Ha9 zenon_Had zenon_Hd7.
% 8.47/8.69  elim (classic (gt (n3) (succ zenon_TE_dr))); [ zenon_intro zenon_He1 | zenon_intro zenon_He2 ].
% 8.47/8.69  generalize (zenon_H80 (n4)). zenon_intro zenon_H85.
% 8.47/8.69  generalize (zenon_H85 (n3)). zenon_intro zenon_H86.
% 8.47/8.69  generalize (zenon_H86 (succ zenon_TE_dr)). zenon_intro zenon_He3.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_He3); [ zenon_intro zenon_H89 | zenon_intro zenon_He4 ].
% 8.47/8.69  exact (zenon_H89 gt_4_3).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_He4); [ zenon_intro zenon_He2 | zenon_intro zenon_He5 ].
% 8.47/8.69  exact (zenon_He2 zenon_He1).
% 8.47/8.69  exact (zenon_He0 zenon_He5).
% 8.47/8.69  elim (classic (gt (n2) (succ zenon_TE_dr))); [ zenon_intro zenon_He6 | zenon_intro zenon_Hdb ].
% 8.47/8.69  generalize (zenon_H80 (n3)). zenon_intro zenon_H8e.
% 8.47/8.69  generalize (zenon_H8e (n2)). zenon_intro zenon_H8f.
% 8.47/8.69  generalize (zenon_H8f (succ zenon_TE_dr)). zenon_intro zenon_He7.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_He7); [ zenon_intro zenon_H92 | zenon_intro zenon_He8 ].
% 8.47/8.69  exact (zenon_H92 gt_3_2).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_He8); [ zenon_intro zenon_Hdb | zenon_intro zenon_He1 ].
% 8.47/8.69  exact (zenon_Hdb zenon_He6).
% 8.47/8.69  exact (zenon_He2 zenon_He1).
% 8.47/8.69  apply (zenon_L22_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L23_ *)
% 8.47/8.69  assert (zenon_L24_ : forall (zenon_TE_dr : zenon_U), (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n0)) = (use)) -> (zenon_TE_dr = (n0)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_Ha2 zenon_He9 zenon_H77.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n0)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_He9.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n0)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n0)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hea.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n0)))); [idtac | apply NNPP; zenon_intro zenon_Heb].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n0))); [idtac | apply NNPP; zenon_intro zenon_Hec].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  exact (zenon_Hec zenon_H77).
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  (* end of lemma zenon_L24_ *)
% 8.47/8.69  assert (zenon_L25_ : forall (zenon_TE_dr : 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_TE_dr) (n0)) -> ((a_select2 (xinit_noise_defuse) (n4)) = (use)) -> (gt (succ (n5)) zenon_TE_dr) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n5)) = (use)) -> (~(zenon_TE_dr = (n4))) -> (~(zenon_TE_dr = (n5))) -> ((a_select2 (xinit_noise_defuse) (n0)) = (use)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_H5d zenon_Hd6 zenon_H67 zenon_Ha2 zenon_Ha3 zenon_Ha9 zenon_Had zenon_Hd7 zenon_H71 zenon_H72 zenon_He9.
% 8.47/8.69  generalize (finite_domain_3 zenon_TE_dr). zenon_intro zenon_Hb1.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hb1); [ zenon_intro zenon_Hb3 | zenon_intro zenon_Hb2 ].
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_Hb3); [ zenon_intro zenon_H5e | zenon_intro zenon_Hb4 ].
% 8.47/8.69  apply (zenon_L2_ zenon_TE_dr); trivial.
% 8.47/8.69  generalize (leq_succ_gt_equiv zenon_TE_dr). zenon_intro zenon_H69.
% 8.47/8.69  generalize (zenon_H69 (n3)). zenon_intro zenon_Hb5.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_Hb5); [ zenon_intro zenon_Hb4; zenon_intro zenon_H96 | zenon_intro zenon_Hb7; zenon_intro zenon_Hb6 ].
% 8.47/8.69  elim (classic ((~((succ (n3)) = (succ zenon_TE_dr)))/\(~(gt (succ (n3)) (succ zenon_TE_dr))))); [ zenon_intro zenon_Hed | zenon_intro zenon_Hee ].
% 8.47/8.69  apply (zenon_and_s _ _ zenon_Hed). zenon_intro zenon_Hf0. zenon_intro zenon_Hef.
% 8.47/8.69  elim (classic (gt (n4) (succ zenon_TE_dr))); [ zenon_intro zenon_He5 | zenon_intro zenon_He0 ].
% 8.47/8.69  elim (classic (gt (succ (succ (succ (succ (n0))))) (succ zenon_TE_dr))); [ zenon_intro zenon_Hf1 | zenon_intro zenon_Hf2 ].
% 8.47/8.69  cut ((gt (succ (succ (succ (succ (n0))))) (succ zenon_TE_dr)) = (gt (succ (n3)) (succ zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hef.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hf1.
% 8.47/8.69  cut (((succ zenon_TE_dr) = (succ zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 8.47/8.69  cut (((succ (n3)) = (succ (n3))) = ((succ (succ (succ (succ (n0))))) = (succ (n3)))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H9a.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H9b.
% 8.47/8.69  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 8.47/8.69  cut (((succ (n3)) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H94].
% 8.47/8.69  congruence.
% 8.47/8.69  apply (zenon_L9_); trivial.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_Hde. apply refl_equal.
% 8.47/8.69  cut ((gt (n4) (succ zenon_TE_dr)) = (gt (succ (succ (succ (succ (n0))))) (succ zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hf2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_He5.
% 8.47/8.69  cut (((succ zenon_TE_dr) = (succ zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 8.47/8.69  cut (((n4) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0)))))) = ((n4) = (succ (succ (succ (succ (n0))))))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H9d.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H9e.
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (succ (succ (succ (succ (n0))))))); [idtac | apply NNPP; zenon_intro zenon_H9f].
% 8.47/8.69  cut (((succ (succ (succ (succ (n0))))) = (n4))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Ha0 successor_4).
% 8.47/8.69  apply zenon_H9f. apply refl_equal.
% 8.47/8.69  apply zenon_H9f. apply refl_equal.
% 8.47/8.69  apply zenon_Hde. apply refl_equal.
% 8.47/8.69  apply (zenon_L23_ zenon_TE_dr); trivial.
% 8.47/8.69  elim (classic ((n0) = zenon_TE_dr)); [ zenon_intro zenon_Hf3 | zenon_intro zenon_H6d ].
% 8.47/8.69  cut ((gt (succ zenon_TE_dr) (n0)) = (gt (succ (n3)) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H96.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H5d.
% 8.47/8.69  cut (((n0) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 8.47/8.69  cut (((succ zenon_TE_dr) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_Hf4].
% 8.47/8.69  congruence.
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_Hee); [ zenon_intro zenon_Hf6 | zenon_intro zenon_Hf5 ].
% 8.47/8.69  apply zenon_Hf6. zenon_intro zenon_Hf7.
% 8.47/8.69  elim (classic ((succ (n3)) = (succ (n3)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 8.47/8.69  cut (((succ (n3)) = (succ (n3))) = ((succ zenon_TE_dr) = (succ (n3)))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hf4.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_H9b.
% 8.47/8.69  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 8.47/8.69  cut (((succ (n3)) = (succ zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hf0].
% 8.47/8.69  congruence.
% 8.47/8.69  exact (zenon_Hf0 zenon_Hf7).
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  apply zenon_Hf5. zenon_intro zenon_Hf8.
% 8.47/8.69  generalize (zenon_H80 (succ (n3))). zenon_intro zenon_Hf9.
% 8.47/8.69  generalize (zenon_Hf9 (succ zenon_TE_dr)). zenon_intro zenon_Hfa.
% 8.47/8.69  generalize (zenon_Hfa (n0)). zenon_intro zenon_Hfb.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hfb); [ zenon_intro zenon_Hef | zenon_intro zenon_Hfc ].
% 8.47/8.69  exact (zenon_Hef zenon_Hf8).
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_Hfc); [ zenon_intro zenon_H63 | zenon_intro zenon_Hfd ].
% 8.47/8.69  exact (zenon_H63 zenon_H5d).
% 8.47/8.69  cut ((gt (succ (n3)) (n0)) = (gt (succ (n3)) zenon_TE_dr)).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_H96.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hfd.
% 8.47/8.69  cut (((n0) = zenon_TE_dr)); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 8.47/8.69  cut (((succ (n3)) = (succ (n3)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H9c. apply refl_equal.
% 8.47/8.69  exact (zenon_H6d zenon_Hf3).
% 8.47/8.69  exact (zenon_H6d zenon_Hf3).
% 8.47/8.69  apply (zenon_L10_ zenon_TE_dr); trivial.
% 8.47/8.69  exact (zenon_Hb4 zenon_Hb7).
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H77 | zenon_intro zenon_Hb8 ].
% 8.47/8.69  apply (zenon_L24_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_H79 | zenon_intro zenon_Hb9 ].
% 8.47/8.69  apply (zenon_L12_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_or_s _ _ zenon_Hb9); [ zenon_intro zenon_H7b | zenon_intro zenon_H7d ].
% 8.47/8.69  apply (zenon_L13_ zenon_TE_dr); trivial.
% 8.47/8.69  apply (zenon_L14_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L25_ *)
% 8.47/8.69  assert (zenon_L26_ : forall (zenon_TE_dr : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((gt x y)->((gt y z)->(gt x z)))))) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n4)))) -> ((a_select2 (xinit_noise_defuse) (n0)) = (use)) -> (~(zenon_TE_dr = (n5))) -> ((a_select2 (xinit_noise_defuse) (n5)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n3)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n2)) = (use)) -> ((a_select2 (xinit_noise_defuse) (n1)) = (use)) -> (~((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))) -> (gt (succ (n5)) zenon_TE_dr) -> ((a_select2 (xinit_noise_defuse) (n4)) = (use)) -> (gt (succ zenon_TE_dr) (n0)) -> False).
% 8.47/8.69  do 1 intro. intros zenon_H80 zenon_Hd5 zenon_He9 zenon_H72 zenon_Hd7 zenon_Had zenon_Ha9 zenon_Ha3 zenon_Ha2 zenon_H67 zenon_Hd6 zenon_H5d.
% 8.47/8.69  cut ((zenon_TE_dr = (n4))); [idtac | apply NNPP; zenon_intro zenon_H71].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  apply (zenon_L25_ zenon_TE_dr); trivial.
% 8.47/8.69  (* end of lemma zenon_L26_ *)
% 8.47/8.69  apply NNPP. intro zenon_G.
% 8.47/8.69  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_H80 | zenon_intro zenon_Hfe ].
% 8.47/8.69  apply (zenon_notimply_s _ _ zenon_G). zenon_intro zenon_H100. zenon_intro zenon_Hff.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H100). zenon_intro zenon_H102. zenon_intro zenon_H101.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H101). zenon_intro zenon_H104. zenon_intro zenon_H103.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H103). zenon_intro zenon_H106. zenon_intro zenon_H105.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H105). zenon_intro zenon_H108. zenon_intro zenon_H107.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H107). zenon_intro zenon_H10a. zenon_intro zenon_H109.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H109). zenon_intro zenon_H10c. zenon_intro zenon_H10b.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H10b). zenon_intro zenon_H10e. zenon_intro zenon_H10d.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H10d). zenon_intro zenon_H110. zenon_intro zenon_H10f.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H10f). zenon_intro zenon_H112. zenon_intro zenon_H111.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H111). zenon_intro zenon_H114. zenon_intro zenon_H113.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H113). zenon_intro zenon_H116. zenon_intro zenon_H115.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H115). zenon_intro zenon_H118. zenon_intro zenon_H117.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H117). zenon_intro zenon_H11a. zenon_intro zenon_H119.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H119). zenon_intro zenon_H11c. zenon_intro zenon_H11b.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H11b). zenon_intro zenon_H11e. zenon_intro zenon_H11d.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H11d). zenon_intro zenon_H120. zenon_intro zenon_H11f.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H11f). zenon_intro zenon_H122. zenon_intro zenon_H121.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H121). zenon_intro zenon_H124. zenon_intro zenon_H123.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H123). zenon_intro zenon_H126. zenon_intro zenon_H125.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H125). zenon_intro zenon_H128. zenon_intro zenon_H127.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H127). zenon_intro zenon_H12a. zenon_intro zenon_H129.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H129). zenon_intro zenon_He9. zenon_intro zenon_H12b.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H12b). zenon_intro zenon_Ha3. zenon_intro zenon_H12c.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H12c). zenon_intro zenon_Ha9. zenon_intro zenon_H12d.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H12d). zenon_intro zenon_Had. zenon_intro zenon_H12e.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H12e). zenon_intro zenon_Hd6. zenon_intro zenon_H12f.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H12f). zenon_intro zenon_Hd7. zenon_intro zenon_H130.
% 8.47/8.69  apply (zenon_notallex_s (fun E : zenon_U => (((leq (n0) E)/\(leq E (n5)))->((a_select2 (xinit_noise_defuse) E) = (use)))) zenon_Hff); [ zenon_intro zenon_H131; idtac ].
% 8.47/8.69  elim zenon_H131. zenon_intro zenon_TE_dr. zenon_intro zenon_H132.
% 8.47/8.69  apply (zenon_notimply_s _ _ zenon_H132). zenon_intro zenon_H133. zenon_intro zenon_Ha2.
% 8.47/8.69  apply (zenon_and_s _ _ zenon_H133). zenon_intro zenon_H62. zenon_intro zenon_H6b.
% 8.47/8.69  generalize (leq_succ_gt_equiv (n0)). zenon_intro zenon_H60.
% 8.47/8.69  generalize (zenon_H60 zenon_TE_dr). zenon_intro zenon_H61.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_H61); [ zenon_intro zenon_H5e; zenon_intro zenon_H63 | zenon_intro zenon_H62; zenon_intro zenon_H5d ].
% 8.47/8.69  exact (zenon_H5e zenon_H62).
% 8.47/8.69  generalize (leq_succ_gt_equiv zenon_TE_dr). zenon_intro zenon_H69.
% 8.47/8.69  generalize (zenon_H69 (n5)). zenon_intro zenon_H6a.
% 8.47/8.69  apply (zenon_equiv_s _ _ zenon_H6a); [ zenon_intro zenon_H68; zenon_intro zenon_H6c | zenon_intro zenon_H6b; zenon_intro zenon_H67 ].
% 8.47/8.69  exact (zenon_H68 zenon_H6b).
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n4)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd6.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n4)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n4)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hd8.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n4)))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 8.47/8.69  congruence.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n5)) = (use)) = ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (use))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Ha2.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Hd7.
% 8.47/8.69  cut (((use) = (use))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) (n5)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Hd9].
% 8.47/8.69  congruence.
% 8.47/8.69  elim (classic ((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [ zenon_intro zenon_Ha5 | zenon_intro zenon_Ha6 ].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr)) = ((a_select2 (xinit_noise_defuse) (n5)) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))).
% 8.47/8.69  intro zenon_D_pnotp.
% 8.47/8.69  apply zenon_Hd9.
% 8.47/8.69  rewrite <- zenon_D_pnotp.
% 8.47/8.69  exact zenon_Ha5.
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) zenon_TE_dr))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 8.47/8.69  cut (((a_select2 (xinit_noise_defuse) zenon_TE_dr) = (a_select2 (xinit_noise_defuse) (n5)))); [idtac | apply NNPP; zenon_intro zenon_Hda].
% 8.47/8.69  congruence.
% 8.47/8.69  cut ((zenon_TE_dr = (n5))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 8.47/8.69  cut (((xinit_noise_defuse) = (xinit_noise_defuse))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 8.47/8.69  congruence.
% 8.47/8.69  apply zenon_H5c. apply refl_equal.
% 8.47/8.69  apply (zenon_L26_ zenon_TE_dr); trivial.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha6. apply refl_equal.
% 8.47/8.69  apply zenon_Ha1. apply refl_equal.
% 8.47/8.69  apply zenon_Hfe. zenon_intro zenon_Tx_lw. apply NNPP. zenon_intro zenon_H135.
% 8.47/8.69  apply zenon_H135. zenon_intro zenon_Ty_ly. apply NNPP. zenon_intro zenon_H137.
% 8.47/8.69  apply zenon_H137. zenon_intro zenon_Tz_ma. apply NNPP. zenon_intro zenon_H139.
% 8.47/8.69  apply (zenon_notimply_s _ _ zenon_H139). zenon_intro zenon_H13b. zenon_intro zenon_H13a.
% 8.47/8.69  apply (zenon_notimply_s _ _ zenon_H13a). zenon_intro zenon_H13d. zenon_intro zenon_H13c.
% 8.47/8.69  generalize (transitivity_gt zenon_Tx_lw). zenon_intro zenon_H13e.
% 8.47/8.69  generalize (zenon_H13e zenon_Ty_ly). zenon_intro zenon_H13f.
% 8.47/8.69  generalize (zenon_H13f zenon_Tz_ma). zenon_intro zenon_H140.
% 8.47/8.69  apply (zenon_imply_s _ _ zenon_H140); [ zenon_intro zenon_H142 | zenon_intro zenon_H141 ].
% 8.47/8.69  apply (zenon_notand_s _ _ zenon_H142); [ zenon_intro zenon_H144 | zenon_intro zenon_H143 ].
% 8.47/8.69  exact (zenon_H144 zenon_H13b).
% 8.47/8.69  exact (zenon_H143 zenon_H13d).
% 8.47/8.69  exact (zenon_H13c zenon_H141).
% 8.47/8.69  Qed.
% 8.47/8.69  % SZS output end Proof
% 8.47/8.69  (* END-PROOF *)
% 8.47/8.69  nodes searched: 612029
% 8.47/8.69  max branch formulas: 3213
% 8.47/8.69  proof nodes created: 1403
% 8.47/8.69  formulas created: 364751
% 8.47/8.69  
%------------------------------------------------------------------------------