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

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zenon---0.7.1
% Problem  : ALG135+1 : TPTP v8.1.0. Released v2.7.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : run_zenon %s %d

% Computer : n026.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 : Thu Jul 14 18:30:08 EDT 2022

% Result   : Unsatisfiable 3.86s 4.02s
% Output   : Proof 3.86s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.11  % Problem  : ALG135+1 : TPTP v8.1.0. Released v2.7.0.
% 0.03/0.12  % Command  : run_zenon %s %d
% 0.12/0.32  % Computer : n026.cluster.edu
% 0.12/0.32  % Model    : x86_64 x86_64
% 0.12/0.32  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.32  % Memory   : 8042.1875MB
% 0.12/0.32  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.32  % CPULimit : 300
% 0.12/0.32  % WCLimit  : 600
% 0.12/0.32  % DateTime : Wed Jun  8 15:14:47 EDT 2022
% 0.12/0.33  % CPUTime  : 
% 3.86/4.02  (* PROOF-FOUND *)
% 3.86/4.02  % SZS status Unsatisfiable
% 3.86/4.02  (* BEGIN-PROOF *)
% 3.86/4.02  % SZS output start Proof
% 3.86/4.02  Theorem zenon_thm : False.
% 3.86/4.02  Proof.
% 3.86/4.02  assert (zenon_L1_ : (((op (e1) (e1)) = (e1))/\(~((op (e1) (e1)) = (e1)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H1d.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H1d). zenon_intro zenon_H1f. zenon_intro zenon_H1e.
% 3.86/4.02  exact (zenon_H1e zenon_H1f).
% 3.86/4.02  (* end of lemma zenon_L1_ *)
% 3.86/4.02  assert (zenon_L2_ : (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (e0) (e2)) = (e0)) -> ((op (e0) (e3)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H20 zenon_H21 zenon_H22.
% 3.86/4.02  cut (((op (e0) (e2)) = (e0)) = ((op (e0) (e2)) = (op (e0) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H20.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H21.
% 3.86/4.02  cut (((e0) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 3.86/4.02  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H24. apply refl_equal.
% 3.86/4.02  apply zenon_H23. apply sym_equal. exact zenon_H22.
% 3.86/4.02  (* end of lemma zenon_L2_ *)
% 3.86/4.02  assert (zenon_L3_ : (((op (e0) (e3)) = (e0))/\(~((op (e3) (e0)) = (e3)))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H25 zenon_H21 zenon_H20.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H25). zenon_intro zenon_H22. zenon_intro zenon_H26.
% 3.86/4.02  apply (zenon_L2_); trivial.
% 3.86/4.02  (* end of lemma zenon_L3_ *)
% 3.86/4.02  assert (zenon_L4_ : ((op (e1) (e3)) = (e1)) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H27 zenon_H28 zenon_H29.
% 3.86/4.02  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H2a | zenon_intro zenon_H2b ].
% 3.86/4.02  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H29.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H2a.
% 3.86/4.02  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.02  cut (((op (e1) (e3)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e1) (e3)) = (e1)) = ((op (e1) (e3)) = (op (e1) (e0)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H2c.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H27.
% 3.86/4.02  cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 3.86/4.02  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H2b. apply refl_equal.
% 3.86/4.02  apply zenon_H2d. apply sym_equal. exact zenon_H28.
% 3.86/4.02  apply zenon_H2b. apply refl_equal.
% 3.86/4.02  apply zenon_H2b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L4_ *)
% 3.86/4.02  assert (zenon_L5_ : (((op (e1) (e3)) = (e1))/\(~((op (e3) (e1)) = (e3)))) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H2e zenon_H28 zenon_H29.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H27. zenon_intro zenon_H2f.
% 3.86/4.02  apply (zenon_L4_); trivial.
% 3.86/4.02  (* end of lemma zenon_L5_ *)
% 3.86/4.02  assert (zenon_L6_ : (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e2) (e3)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H30 zenon_H31 zenon_H32.
% 3.86/4.02  cut (((op (e2) (e1)) = (e2)) = ((op (e2) (e1)) = (op (e2) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H30.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H31.
% 3.86/4.02  cut (((e2) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H33].
% 3.86/4.02  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H34. apply refl_equal.
% 3.86/4.02  apply zenon_H33. apply sym_equal. exact zenon_H32.
% 3.86/4.02  (* end of lemma zenon_L6_ *)
% 3.86/4.02  assert (zenon_L7_ : (((op (e2) (e3)) = (e2))/\(~((op (e3) (e2)) = (e3)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H35 zenon_H31 zenon_H30.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H35). zenon_intro zenon_H32. zenon_intro zenon_H36.
% 3.86/4.02  apply (zenon_L6_); trivial.
% 3.86/4.02  (* end of lemma zenon_L7_ *)
% 3.86/4.02  assert (zenon_L8_ : (((op (e3) (e3)) = (e3))/\(~((op (e3) (e3)) = (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H37.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H37). zenon_intro zenon_H39. zenon_intro zenon_H38.
% 3.86/4.02  exact (zenon_H38 zenon_H39).
% 3.86/4.02  (* end of lemma zenon_L8_ *)
% 3.86/4.02  assert (zenon_L9_ : (((op (e1) (e2)) = (e1))/\(~((op (e2) (e1)) = (e2)))) -> (~((op (e1) (e2)) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H3a zenon_H3b.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H3a). zenon_intro zenon_H3d. zenon_intro zenon_H3c.
% 3.86/4.02  exact (zenon_H3b zenon_H3d).
% 3.86/4.02  (* end of lemma zenon_L9_ *)
% 3.86/4.02  assert (zenon_L10_ : (((op (e2) (e2)) = (e2))/\(~((op (e2) (e2)) = (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H3e.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H3e). zenon_intro zenon_H40. zenon_intro zenon_H3f.
% 3.86/4.02  exact (zenon_H3f zenon_H40).
% 3.86/4.02  (* end of lemma zenon_L10_ *)
% 3.86/4.02  assert (zenon_L11_ : ((op (e1) (e0)) = (e1)) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H28 zenon_H41 zenon_H42.
% 3.86/4.02  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_H43 | zenon_intro zenon_H44 ].
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (e0) (e0)) = (op (e1) (e0)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H42.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H43.
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (e0)) = (op (e0) (e0)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H45.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H28.
% 3.86/4.02  cut (((e1) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H44. apply refl_equal.
% 3.86/4.02  apply zenon_H46. apply sym_equal. exact zenon_H41.
% 3.86/4.02  apply zenon_H44. apply refl_equal.
% 3.86/4.02  apply zenon_H44. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L11_ *)
% 3.86/4.02  assert (zenon_L12_ : (~((e0) = (e0))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H47.
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L12_ *)
% 3.86/4.02  assert (zenon_L13_ : ((op (e2) (e0)) = (e0)) -> ((op (e2) (e0)) = (e1)) -> (~((e0) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H48 zenon_H49 zenon_H4a.
% 3.86/4.02  elim (classic ((e1) = (e1))); [ zenon_intro zenon_H4b | zenon_intro zenon_H4c ].
% 3.86/4.02  cut (((e1) = (e1)) = ((e0) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H4a.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H4b.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((e1) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H4d].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e0)) = (e0)) = ((e1) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H4d.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H48.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e2) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4e].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H4e zenon_H49).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L13_ *)
% 3.86/4.02  assert (zenon_L14_ : (~((e2) = (e2))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H4f.
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L14_ *)
% 3.86/4.02  assert (zenon_L15_ : (~((e1) = (e2))) -> ((op (e2) (e1)) = (e2)) -> ((op (e2) (e1)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H50 zenon_H31 zenon_H51.
% 3.86/4.02  cut (((op (e2) (e1)) = (e2)) = ((e1) = (e2))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H50.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H31.
% 3.86/4.02  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.02  cut (((op (e2) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H52].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H52 zenon_H51).
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L15_ *)
% 3.86/4.02  assert (zenon_L16_ : (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e3) (e0)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H53 zenon_H28 zenon_H54.
% 3.86/4.02  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (e0)) = (op (e3) (e0)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H53.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H28.
% 3.86/4.02  cut (((e1) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H44. apply refl_equal.
% 3.86/4.02  apply zenon_H55. apply sym_equal. exact zenon_H54.
% 3.86/4.02  (* end of lemma zenon_L16_ *)
% 3.86/4.02  assert (zenon_L17_ : (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e0) (e1)) = (e1)) -> ((op (e3) (e1)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H56 zenon_H57 zenon_H58.
% 3.86/4.02  cut (((op (e0) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e3) (e1)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H56.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H57.
% 3.86/4.02  cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H59].
% 3.86/4.02  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H5a. apply refl_equal.
% 3.86/4.02  apply zenon_H59. apply sym_equal. exact zenon_H58.
% 3.86/4.02  (* end of lemma zenon_L17_ *)
% 3.86/4.02  assert (zenon_L18_ : (~((e3) = (e3))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H5b.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L18_ *)
% 3.86/4.02  assert (zenon_L19_ : (~((e1) = (e3))) -> ((op (e3) (e2)) = (e3)) -> ((op (e3) (e2)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H5c zenon_H5d zenon_H5e.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((e1) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H5c.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H5f].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H5f zenon_H5e).
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L19_ *)
% 3.86/4.02  assert (zenon_L20_ : ((op (e0) (e3)) = (e0)) -> ((op (e0) (e3)) = (e2)) -> (~((e0) = (e2))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H22 zenon_H60 zenon_H61.
% 3.86/4.02  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.02  cut (((e2) = (e2)) = ((e0) = (e2))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H61.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H62.
% 3.86/4.02  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.02  cut (((e2) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H63].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e3)) = (e0)) = ((e2) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H63.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H22.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e0) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H64 zenon_H60).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L20_ *)
% 3.86/4.02  assert (zenon_L21_ : (~((op (op (e0) (e0)) (op (e0) (e0))) = (op (e3) (e3)))) -> ((op (e0) (e0)) = (e3)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H65 zenon_H66.
% 3.86/4.02  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 3.86/4.02  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H67 zenon_H66).
% 3.86/4.02  exact (zenon_H67 zenon_H66).
% 3.86/4.02  (* end of lemma zenon_L21_ *)
% 3.86/4.02  assert (zenon_L22_ : (~((e1) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H4c.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L22_ *)
% 3.86/4.02  assert (zenon_L23_ : ((op (e3) (e3)) = (e1)) -> ((op (e1) (e3)) = (e2)) -> ((op (e0) (e0)) = (e3)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H68 zenon_H69 zenon_H66.
% 3.86/4.02  apply (zenon_notand_s _ _ ax14); [ zenon_intro zenon_H6b | zenon_intro zenon_H6a ].
% 3.86/4.02  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((e1) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H6c.
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e3)) = (e1)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6e.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H68.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H6c.
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L21_); trivial.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply (zenon_notand_s _ _ zenon_H6a); [ zenon_intro zenon_H71 | zenon_intro zenon_H70 ].
% 3.86/4.02  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((e2) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H71.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H72.
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H74].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e1) (e3)) = (e2)) = ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e2))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H74.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H69.
% 3.86/4.02  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.02  cut (((op (e1) (e3)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((op (e1) (e3)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H75.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H72.
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.02  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H76].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e3)) = (e1)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6e.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H68.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H6c.
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L21_); trivial.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply zenon_H6d. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  exact (zenon_H67 zenon_H66).
% 3.86/4.02  apply zenon_H73. apply refl_equal.
% 3.86/4.02  apply zenon_H73. apply refl_equal.
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  apply zenon_H73. apply refl_equal.
% 3.86/4.02  apply zenon_H73. apply refl_equal.
% 3.86/4.02  apply zenon_H70. apply sym_equal. exact zenon_H66.
% 3.86/4.02  (* end of lemma zenon_L23_ *)
% 3.86/4.02  assert (zenon_L24_ : (~((op (op (e3) (e3)) (op (e3) (e3))) = (op (e2) (e2)))) -> ((op (e3) (e3)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H77 zenon_H78.
% 3.86/4.02  cut (((op (e3) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H79].
% 3.86/4.02  cut (((op (e3) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H79].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H79 zenon_H78).
% 3.86/4.02  exact (zenon_H79 zenon_H78).
% 3.86/4.02  (* end of lemma zenon_L24_ *)
% 3.86/4.02  assert (zenon_L25_ : ((op (e2) (e2)) = (e1)) -> ((op (e3) (e3)) = (e2)) -> (~((e1) = (op (op (e3) (e3)) (op (e3) (e3))))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H7a zenon_H78 zenon_H7b.
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((e1) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7e].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e2)) = (e1)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7e.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7a.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L24_); trivial.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L25_ *)
% 3.86/4.02  assert (zenon_L26_ : ((op (e2) (e2)) = (e1)) -> ((op (e1) (e2)) = (e0)) -> ((op (e3) (e3)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H7a zenon_H80 zenon_H78.
% 3.86/4.02  apply (zenon_notand_s _ _ ax13); [ zenon_intro zenon_H7b | zenon_intro zenon_H81 ].
% 3.86/4.02  apply (zenon_L25_); trivial.
% 3.86/4.02  apply (zenon_notand_s _ _ zenon_H81); [ zenon_intro zenon_H83 | zenon_intro zenon_H82 ].
% 3.86/4.02  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((e0) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H83.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H84.
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e1) (e2)) = (e0)) = ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H86.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H80.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e1) (e2)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H87].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((op (e1) (e2)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H87.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H84.
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H88].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H79].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7e].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e2)) = (e1)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7e.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7a.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L24_); trivial.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  exact (zenon_H79 zenon_H78).
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H82. apply sym_equal. exact zenon_H78.
% 3.86/4.02  (* end of lemma zenon_L26_ *)
% 3.86/4.02  assert (zenon_L27_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H89 zenon_H8a zenon_H68.
% 3.86/4.02  cut (((op (e2) (e3)) = (e1)) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H89.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H8a.
% 3.86/4.02  cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 3.86/4.02  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H8c. apply refl_equal.
% 3.86/4.02  apply zenon_H8b. apply sym_equal. exact zenon_H68.
% 3.86/4.02  (* end of lemma zenon_L27_ *)
% 3.86/4.02  assert (zenon_L28_ : (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e3)) -> (~((e1) = (e3))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H8d zenon_H28 zenon_H53 zenon_H57 zenon_H56 zenon_H5d zenon_H5c zenon_H89 zenon_H8a.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H54 | zenon_intro zenon_H8e ].
% 3.86/4.02  apply (zenon_L16_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8e); [ zenon_intro zenon_H58 | zenon_intro zenon_H8f ].
% 3.86/4.02  apply (zenon_L17_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 3.86/4.02  apply (zenon_L19_); trivial.
% 3.86/4.02  apply (zenon_L27_); trivial.
% 3.86/4.02  (* end of lemma zenon_L28_ *)
% 3.86/4.02  assert (zenon_L29_ : (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> (~((e0) = (e1))) -> ((op (e2) (e0)) = (e0)) -> ((op (e2) (e1)) = (e2)) -> (~((e1) = (e2))) -> ((op (e1) (e2)) = (e0)) -> (~((op (e2) (e3)) = (e2))) -> ((op (e0) (e0)) = (e3)) -> ((op (e0) (e3)) = (e0)) -> (~((e0) = (e2))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e3)) -> (~((e1) = (e3))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H90 zenon_H4a zenon_H48 zenon_H31 zenon_H50 zenon_H80 zenon_H91 zenon_H66 zenon_H22 zenon_H61 zenon_H92 zenon_H8d zenon_H28 zenon_H53 zenon_H57 zenon_H56 zenon_H5d zenon_H5c zenon_H89.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H49 | zenon_intro zenon_H93 ].
% 3.86/4.02  apply (zenon_L13_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H93); [ zenon_intro zenon_H51 | zenon_intro zenon_H94 ].
% 3.86/4.02  apply (zenon_L15_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H94); [ zenon_intro zenon_H7a | zenon_intro zenon_H8a ].
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H54 | zenon_intro zenon_H8e ].
% 3.86/4.02  apply (zenon_L16_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8e); [ zenon_intro zenon_H58 | zenon_intro zenon_H8f ].
% 3.86/4.02  apply (zenon_L17_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 3.86/4.02  apply (zenon_L19_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.02  apply (zenon_L20_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.02  apply (zenon_L23_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.02  exact (zenon_H91 zenon_H32).
% 3.86/4.02  apply (zenon_L26_); trivial.
% 3.86/4.02  apply (zenon_L28_); trivial.
% 3.86/4.02  (* end of lemma zenon_L29_ *)
% 3.86/4.02  assert (zenon_L30_ : (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (e0)) = (e0)) -> ((op (e2) (e2)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H97 zenon_H48 zenon_H98.
% 3.86/4.02  cut (((op (e2) (e0)) = (e0)) = ((op (e2) (e0)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H97.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H48.
% 3.86/4.02  cut (((e0) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 3.86/4.02  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H9a. apply refl_equal.
% 3.86/4.02  apply zenon_H99. apply sym_equal. exact zenon_H98.
% 3.86/4.02  (* end of lemma zenon_L30_ *)
% 3.86/4.02  assert (zenon_L31_ : (~((e0) = (e3))) -> ((op (e3) (e2)) = (e3)) -> ((op (e3) (e2)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H9b zenon_H5d zenon_H9c.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((e0) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H9b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((op (e3) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_H9d zenon_H9c).
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L31_ *)
% 3.86/4.02  assert (zenon_L32_ : (((op (e0) (e2)) = (e0))\/(((op (e1) (e2)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e3) (e2)) = (e0))))) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((e1) = (e3))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e0) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e1) (e0)) = (e1)) -> (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e0) = (e2))) -> ((op (e0) (e3)) = (e0)) -> ((op (e0) (e0)) = (e3)) -> (~((op (e2) (e3)) = (e2))) -> (~((e1) = (e2))) -> ((op (e2) (e1)) = (e2)) -> (~((e0) = (e1))) -> (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((e0) = (e3))) -> ((op (e3) (e2)) = (e3)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H9e zenon_H20 zenon_H89 zenon_H5c zenon_H56 zenon_H57 zenon_H53 zenon_H28 zenon_H8d zenon_H92 zenon_H61 zenon_H22 zenon_H66 zenon_H91 zenon_H50 zenon_H31 zenon_H4a zenon_H90 zenon_H48 zenon_H97 zenon_H9b zenon_H5d.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H9e); [ zenon_intro zenon_H21 | zenon_intro zenon_H9f ].
% 3.86/4.02  apply (zenon_L2_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H9f); [ zenon_intro zenon_H80 | zenon_intro zenon_Ha0 ].
% 3.86/4.02  apply (zenon_L29_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Ha0); [ zenon_intro zenon_H98 | zenon_intro zenon_H9c ].
% 3.86/4.02  apply (zenon_L30_); trivial.
% 3.86/4.02  apply (zenon_L31_); trivial.
% 3.86/4.02  (* end of lemma zenon_L32_ *)
% 3.86/4.02  assert (zenon_L33_ : (~((e0) = (e2))) -> ((op (e2) (e1)) = (e2)) -> ((op (e2) (e1)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H61 zenon_H31 zenon_Ha1.
% 3.86/4.02  cut (((op (e2) (e1)) = (e2)) = ((e0) = (e2))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H61.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H31.
% 3.86/4.02  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.02  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Ha2].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Ha2 zenon_Ha1).
% 3.86/4.02  apply zenon_H4f. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L33_ *)
% 3.86/4.02  assert (zenon_L34_ : (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e0) (e2)) = (e0)) -> ((op (e2) (e2)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Ha3 zenon_H21 zenon_H98.
% 3.86/4.02  cut (((op (e0) (e2)) = (e0)) = ((op (e0) (e2)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha3.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H21.
% 3.86/4.02  cut (((e0) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 3.86/4.02  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H24. apply refl_equal.
% 3.86/4.02  apply zenon_H99. apply sym_equal. exact zenon_H98.
% 3.86/4.02  (* end of lemma zenon_L34_ *)
% 3.86/4.02  assert (zenon_L35_ : ((op (e2) (e2)) = (e0)) -> ((op (e0) (e2)) = (e1)) -> ((op (e3) (e3)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H98 zenon_Ha4 zenon_H78.
% 3.86/4.02  apply (zenon_notand_s _ _ ax7); [ zenon_intro zenon_Ha6 | zenon_intro zenon_Ha5 ].
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((e0) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha6.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e2)) = (e0)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha7.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H98.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L24_); trivial.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply (zenon_notand_s _ _ zenon_Ha5); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H82 ].
% 3.86/4.02  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((e1) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha8.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H84.
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Ha9].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e2)) = (e1)) = ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha9.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Ha4.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e0) (e2)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Haa].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((op (e0) (e2)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Haa.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H84.
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.02  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hab].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H79].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e2)) = (e0)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha7.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H98.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e2) (e2)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H7f.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7c.
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.02  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 3.86/4.02  congruence.
% 3.86/4.02  apply (zenon_L24_); trivial.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H7d. apply refl_equal.
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  exact (zenon_H79 zenon_H78).
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H85. apply refl_equal.
% 3.86/4.02  apply zenon_H82. apply sym_equal. exact zenon_H78.
% 3.86/4.02  (* end of lemma zenon_L35_ *)
% 3.86/4.02  assert (zenon_L36_ : (~((op (e1) (e2)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e0)) -> ((op (e2) (e2)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hac zenon_H80 zenon_H98.
% 3.86/4.02  cut (((op (e1) (e2)) = (e0)) = ((op (e1) (e2)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hac.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H80.
% 3.86/4.02  cut (((e0) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 3.86/4.02  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Had. apply refl_equal.
% 3.86/4.02  apply zenon_H99. apply sym_equal. exact zenon_H98.
% 3.86/4.02  (* end of lemma zenon_L36_ *)
% 3.86/4.02  assert (zenon_L37_ : (~((op (e0) (e2)) = (op (e1) (e2)))) -> ((op (e0) (e2)) = (e2)) -> ((op (e1) (e2)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hae zenon_Haf zenon_Hb0.
% 3.86/4.02  cut (((op (e0) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e1) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hae.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Haf.
% 3.86/4.02  cut (((e2) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb1].
% 3.86/4.02  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H24. apply refl_equal.
% 3.86/4.02  apply zenon_Hb1. apply sym_equal. exact zenon_Hb0.
% 3.86/4.02  (* end of lemma zenon_L37_ *)
% 3.86/4.02  assert (zenon_L38_ : ((op (e3) (e2)) = (e3)) -> ((op (e1) (e2)) = (e3)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H5d zenon_Hb2 zenon_Hb3.
% 3.86/4.02  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_Hb4 | zenon_intro zenon_Hb5 ].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e1) (e2)) = (op (e3) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hb3.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hb4.
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb6].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((op (e3) (e2)) = (op (e1) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hb6.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb7].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hb7. apply sym_equal. exact zenon_Hb2.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L38_ *)
% 3.86/4.02  assert (zenon_L39_ : (((op (e1) (e2)) = (e0))\/(((op (e1) (e2)) = (e1))\/(((op (e1) (e2)) = (e2))\/((op (e1) (e2)) = (e3))))) -> ((op (e2) (e2)) = (e0)) -> (~((op (e1) (e2)) = (op (e2) (e2)))) -> (~((op (e1) (e2)) = (e1))) -> ((op (e0) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hb8 zenon_H98 zenon_Hac zenon_H3b zenon_Haf zenon_Hae zenon_H5d zenon_Hb3.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hb8); [ zenon_intro zenon_H80 | zenon_intro zenon_Hb9 ].
% 3.86/4.02  apply (zenon_L36_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hb9); [ zenon_intro zenon_H3d | zenon_intro zenon_Hba ].
% 3.86/4.02  exact (zenon_H3b zenon_H3d).
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hba); [ zenon_intro zenon_Hb0 | zenon_intro zenon_Hb2 ].
% 3.86/4.02  apply (zenon_L37_); trivial.
% 3.86/4.02  apply (zenon_L38_); trivial.
% 3.86/4.02  (* end of lemma zenon_L39_ *)
% 3.86/4.02  assert (zenon_L40_ : ((op (e3) (e2)) = (e3)) -> ((op (e0) (e2)) = (e3)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H5d zenon_Hbb zenon_Hbc.
% 3.86/4.02  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_Hb4 | zenon_intro zenon_Hb5 ].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e0) (e2)) = (op (e3) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hbc.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hb4.
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hbd].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((op (e3) (e2)) = (op (e0) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hbd.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hbe. apply sym_equal. exact zenon_Hbb.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L40_ *)
% 3.86/4.02  assert (zenon_L41_ : (((op (e0) (e2)) = (e0))\/(((op (e0) (e2)) = (e1))\/(((op (e0) (e2)) = (e2))\/((op (e0) (e2)) = (e3))))) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e3) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> (~((op (e1) (e2)) = (e1))) -> (~((op (e1) (e2)) = (op (e2) (e2)))) -> ((op (e2) (e2)) = (e0)) -> (((op (e1) (e2)) = (e0))\/(((op (e1) (e2)) = (e1))\/(((op (e1) (e2)) = (e2))\/((op (e1) (e2)) = (e3))))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hbf zenon_Ha3 zenon_H78 zenon_Hb3 zenon_Hae zenon_H3b zenon_Hac zenon_H98 zenon_Hb8 zenon_H5d zenon_Hbc.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hbf); [ zenon_intro zenon_H21 | zenon_intro zenon_Hc0 ].
% 3.86/4.02  apply (zenon_L34_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hc0); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hc1 ].
% 3.86/4.02  apply (zenon_L35_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hc1); [ zenon_intro zenon_Haf | zenon_intro zenon_Hbb ].
% 3.86/4.02  apply (zenon_L39_); trivial.
% 3.86/4.02  apply (zenon_L40_); trivial.
% 3.86/4.02  (* end of lemma zenon_L41_ *)
% 3.86/4.02  assert (zenon_L42_ : (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (e2) (e3)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hc2 zenon_H22 zenon_Hc3.
% 3.86/4.02  cut (((op (e0) (e3)) = (e0)) = ((op (e0) (e3)) = (op (e2) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hc2.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H22.
% 3.86/4.02  cut (((e0) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc4].
% 3.86/4.02  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hc5. apply refl_equal.
% 3.86/4.02  apply zenon_Hc4. apply sym_equal. exact zenon_Hc3.
% 3.86/4.02  (* end of lemma zenon_L42_ *)
% 3.86/4.02  assert (zenon_L43_ : ((op (e0) (e1)) = (e1)) -> ((op (e0) (e1)) = (e3)) -> (~((e1) = (e3))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H57 zenon_Hc6 zenon_H5c.
% 3.86/4.02  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.02  cut (((e3) = (e3)) = ((e1) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H5c.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hc7.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((e3) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e1)) = (e1)) = ((e3) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hc8.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H57.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e0) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hc9].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hc9 zenon_Hc6).
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L43_ *)
% 3.86/4.02  assert (zenon_L44_ : ((op (e0) (e3)) = (e0)) -> ((op (e0) (e3)) = (e3)) -> (~((e0) = (e3))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H22 zenon_Hca zenon_H9b.
% 3.86/4.02  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.02  cut (((e3) = (e3)) = ((e0) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H9b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hc7.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e3)) = (e0)) = ((e3) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hcb.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H22.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hcc zenon_Hca).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L44_ *)
% 3.86/4.02  assert (zenon_L45_ : (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e0) (e2)) = (e1)) -> ((op (e2) (e2)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Ha3 zenon_Ha4 zenon_H7a.
% 3.86/4.02  cut (((op (e0) (e2)) = (e1)) = ((op (e0) (e2)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Ha3.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Ha4.
% 3.86/4.02  cut (((e1) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 3.86/4.02  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H24. apply refl_equal.
% 3.86/4.02  apply zenon_Hcd. apply sym_equal. exact zenon_H7a.
% 3.86/4.02  (* end of lemma zenon_L45_ *)
% 3.86/4.02  assert (zenon_L46_ : (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e2) (e2)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hce zenon_H31 zenon_H40.
% 3.86/4.02  cut (((op (e2) (e1)) = (e2)) = ((op (e2) (e1)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hce.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H31.
% 3.86/4.02  cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hcf].
% 3.86/4.02  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H34. apply refl_equal.
% 3.86/4.02  apply zenon_Hcf. apply sym_equal. exact zenon_H40.
% 3.86/4.02  (* end of lemma zenon_L46_ *)
% 3.86/4.02  assert (zenon_L47_ : ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H5d zenon_Hd0 zenon_Hd1.
% 3.86/4.02  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_Hb4 | zenon_intro zenon_Hb5 ].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e2) (e2)) = (op (e3) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hd1.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hb4.
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((op (e3) (e2)) = (op (e2) (e2)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hd2.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hd3].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hd3. apply sym_equal. exact zenon_Hd0.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L47_ *)
% 3.86/4.02  assert (zenon_L48_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e0) (e2)) = (e1)) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e3) (e2)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hd4 zenon_H48 zenon_H97 zenon_Ha4 zenon_Ha3 zenon_H31 zenon_Hce zenon_H5d zenon_Hd1.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_H98 | zenon_intro zenon_Hd5 ].
% 3.86/4.02  apply (zenon_L30_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hd5); [ zenon_intro zenon_H7a | zenon_intro zenon_Hd6 ].
% 3.86/4.02  apply (zenon_L45_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hd6); [ zenon_intro zenon_H40 | zenon_intro zenon_Hd0 ].
% 3.86/4.02  apply (zenon_L46_); trivial.
% 3.86/4.02  apply (zenon_L47_); trivial.
% 3.86/4.02  (* end of lemma zenon_L48_ *)
% 3.86/4.02  assert (zenon_L49_ : ((op (e0) (e3)) = (e0)) -> ((op (e0) (e3)) = (e1)) -> (~((e0) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H22 zenon_Hd7 zenon_H4a.
% 3.86/4.02  elim (classic ((e1) = (e1))); [ zenon_intro zenon_H4b | zenon_intro zenon_H4c ].
% 3.86/4.02  cut (((e1) = (e1)) = ((e0) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H4a.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H4b.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((e1) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H4d].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e3)) = (e0)) = ((e1) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H4d.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H22.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e0) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hd8 zenon_Hd7).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L49_ *)
% 3.86/4.02  assert (zenon_L50_ : (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (e3) (e3)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hd9 zenon_H22 zenon_Hda.
% 3.86/4.02  cut (((op (e0) (e3)) = (e0)) = ((op (e0) (e3)) = (op (e3) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hd9.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H22.
% 3.86/4.02  cut (((e0) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 3.86/4.02  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hc5. apply refl_equal.
% 3.86/4.02  apply zenon_Hdb. apply sym_equal. exact zenon_Hda.
% 3.86/4.02  (* end of lemma zenon_L50_ *)
% 3.86/4.02  assert (zenon_L51_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e3) (e3)) = (e3)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hdc zenon_H5d zenon_H39.
% 3.86/4.02  cut (((op (e3) (e2)) = (e3)) = ((op (e3) (e2)) = (op (e3) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hdc.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H5d.
% 3.86/4.02  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdd].
% 3.86/4.02  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_Hb5. apply refl_equal.
% 3.86/4.02  apply zenon_Hdd. apply sym_equal. exact zenon_H39.
% 3.86/4.02  (* end of lemma zenon_L51_ *)
% 3.86/4.02  assert (zenon_L52_ : (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e2)) = (e1)) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hde zenon_H22 zenon_Hd9 zenon_H8a zenon_H89 zenon_Ha4 zenon_H98 zenon_Hdc zenon_H5d.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hde); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdf ].
% 3.86/4.02  apply (zenon_L50_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hdf); [ zenon_intro zenon_H68 | zenon_intro zenon_He0 ].
% 3.86/4.02  apply (zenon_L27_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He0); [ zenon_intro zenon_H78 | zenon_intro zenon_H39 ].
% 3.86/4.02  apply (zenon_L35_); trivial.
% 3.86/4.02  apply (zenon_L51_); trivial.
% 3.86/4.02  (* end of lemma zenon_L52_ *)
% 3.86/4.02  assert (zenon_L53_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e1)) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_He1 zenon_H58 zenon_H68.
% 3.86/4.02  cut (((op (e3) (e1)) = (e1)) = ((op (e3) (e1)) = (op (e3) (e3)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_He1.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H58.
% 3.86/4.02  cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 3.86/4.02  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_He2. apply refl_equal.
% 3.86/4.02  apply zenon_H8b. apply sym_equal. exact zenon_H68.
% 3.86/4.02  (* end of lemma zenon_L53_ *)
% 3.86/4.02  assert (zenon_L54_ : (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((e0) = (e1))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e3) (e2)) = (e3)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e0)) -> ((op (e0) (e2)) = (e1)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_He3 zenon_H4a zenon_H29 zenon_H28 zenon_H5d zenon_Hdc zenon_H98 zenon_Ha4 zenon_H89 zenon_Hd9 zenon_H22 zenon_Hde zenon_He1 zenon_H58.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.02  apply (zenon_L49_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.02  apply (zenon_L4_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.02  apply (zenon_L52_); trivial.
% 3.86/4.02  apply (zenon_L53_); trivial.
% 3.86/4.02  (* end of lemma zenon_L54_ *)
% 3.86/4.02  assert (zenon_L55_ : (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (~((e0) = (e1))) -> (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> ((op (e3) (e2)) = (e3)) -> (~((e1) = (e3))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e0) = (e2))) -> ((op (e0) (e3)) = (e0)) -> ((op (e0) (e0)) = (e3)) -> (~((op (e2) (e3)) = (e2))) -> ((op (e2) (e2)) = (e0)) -> ((op (e0) (e2)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H8d zenon_H53 zenon_He1 zenon_Hde zenon_Hd9 zenon_H89 zenon_Hdc zenon_H28 zenon_H29 zenon_H4a zenon_He3 zenon_H5d zenon_H5c zenon_H92 zenon_H61 zenon_H22 zenon_H66 zenon_H91 zenon_H98 zenon_Ha4.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H54 | zenon_intro zenon_H8e ].
% 3.86/4.02  apply (zenon_L16_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8e); [ zenon_intro zenon_H58 | zenon_intro zenon_H8f ].
% 3.86/4.02  apply (zenon_L54_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 3.86/4.02  apply (zenon_L19_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.02  apply (zenon_L20_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.02  apply (zenon_L23_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.02  exact (zenon_H91 zenon_H32).
% 3.86/4.02  apply (zenon_L35_); trivial.
% 3.86/4.02  (* end of lemma zenon_L55_ *)
% 3.86/4.02  assert (zenon_L56_ : (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e1) (e1)) = (e1)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_He6 zenon_H28 zenon_H1f.
% 3.86/4.02  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (e0)) = (op (e1) (e1)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_He6.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H28.
% 3.86/4.02  cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 3.86/4.02  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_H44. apply refl_equal.
% 3.86/4.02  apply zenon_He7. apply sym_equal. exact zenon_H1f.
% 3.86/4.02  (* end of lemma zenon_L56_ *)
% 3.86/4.02  assert (zenon_L57_ : (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> (~((e0) = (e3))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((e1) = (e3))) -> (((op (e0) (e2)) = (e0))\/(((op (e1) (e2)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e3) (e2)) = (e0))))) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e1) (e0)) = (e1)) -> (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e0) = (e2))) -> (~((op (e2) (e3)) = (e2))) -> (~((e1) = (e2))) -> (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e2) (e2)) = (op (e3) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (e0)) = (e0)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e3)) = (e0)) -> (~((e0) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_He8 zenon_H42 zenon_H9b zenon_Hbc zenon_H5c zenon_H9e zenon_H20 zenon_H89 zenon_H56 zenon_H53 zenon_H28 zenon_H8d zenon_H92 zenon_H61 zenon_H91 zenon_H50 zenon_H90 zenon_He9 zenon_Hd1 zenon_H5d zenon_Hce zenon_H31 zenon_Ha3 zenon_H97 zenon_H48 zenon_Hd4 zenon_H22 zenon_H4a.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.02  apply (zenon_L11_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.02  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.02  apply (zenon_L32_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.02  apply (zenon_L43_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.02  apply (zenon_L40_); trivial.
% 3.86/4.02  apply (zenon_L44_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.02  apply (zenon_L48_); trivial.
% 3.86/4.02  apply (zenon_L49_); trivial.
% 3.86/4.02  (* end of lemma zenon_L57_ *)
% 3.86/4.02  assert (zenon_L58_ : (((op (e2) (e0)) = (e0))\/(((op (e2) (e1)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e2) (e3)) = (e0))))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> (~((op (e2) (e2)) = (op (e3) (e2)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> (~((e1) = (e2))) -> (~((op (e2) (e3)) = (e2))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (((op (e0) (e2)) = (e0))\/(((op (e1) (e2)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e3) (e2)) = (e0))))) -> (~((e1) = (e3))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((e0) = (e3))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> ((op (e2) (e1)) = (e2)) -> (~((e0) = (e2))) -> ((op (e3) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e2)) = (e1)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (~((e0) = (e1))) -> (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hee zenon_Hd4 zenon_H97 zenon_Ha3 zenon_Hce zenon_Hd1 zenon_He9 zenon_H90 zenon_H50 zenon_H91 zenon_H92 zenon_H8d zenon_H53 zenon_H56 zenon_H20 zenon_H9e zenon_H5c zenon_Hbc zenon_H9b zenon_H42 zenon_He8 zenon_H31 zenon_H61 zenon_H58 zenon_He1 zenon_Hde zenon_Hd9 zenon_H89 zenon_Ha4 zenon_Hdc zenon_H5d zenon_H28 zenon_H29 zenon_H4a zenon_He3 zenon_Hc2 zenon_H22.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H48 | zenon_intro zenon_Hef ].
% 3.86/4.02  apply (zenon_L57_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hf0 ].
% 3.86/4.02  apply (zenon_L33_); trivial.
% 3.86/4.02  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_H98 | zenon_intro zenon_Hc3 ].
% 3.86/4.02  apply (zenon_L54_); trivial.
% 3.86/4.02  apply (zenon_L42_); trivial.
% 3.86/4.02  (* end of lemma zenon_L58_ *)
% 3.86/4.02  assert (zenon_L59_ : (((op (e2) (e3)) = (e2))/\(~((op (e3) (e2)) = (e3)))) -> (~((op (e2) (e3)) = (e2))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H35 zenon_H91.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H35). zenon_intro zenon_H32. zenon_intro zenon_H36.
% 3.86/4.02  exact (zenon_H91 zenon_H32).
% 3.86/4.02  (* end of lemma zenon_L59_ *)
% 3.86/4.02  assert (zenon_L60_ : (((op (e1) (e3)) = (e1))/\(~((op (e3) (e1)) = (e3)))) -> (~((op (e1) (e3)) = (e1))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H2e zenon_Hf1.
% 3.86/4.02  apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H27. zenon_intro zenon_H2f.
% 3.86/4.02  exact (zenon_Hf1 zenon_H27).
% 3.86/4.02  (* end of lemma zenon_L60_ *)
% 3.86/4.02  assert (zenon_L61_ : (~((e0) = (e1))) -> ((op (e1) (e0)) = (e1)) -> ((op (e1) (e0)) = (e0)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H4a zenon_H28 zenon_Hf2.
% 3.86/4.02  cut (((op (e1) (e0)) = (e1)) = ((e0) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H4a.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H28.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e1) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf3].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hf3 zenon_Hf2).
% 3.86/4.02  apply zenon_H4c. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L61_ *)
% 3.86/4.02  assert (zenon_L62_ : ((op (e2) (e0)) = (e0)) -> ((op (e2) (e0)) = (e3)) -> (~((e0) = (e3))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H48 zenon_Hf4 zenon_H9b.
% 3.86/4.02  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.02  cut (((e3) = (e3)) = ((e0) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H9b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hc7.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e0)) = (e0)) = ((e3) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hcb.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H48.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e2) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hf5 zenon_Hf4).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L62_ *)
% 3.86/4.02  assert (zenon_L63_ : ((op (e3) (e1)) = (e3)) -> ((op (e2) (e1)) = (e3)) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hf6 zenon_Hf7 zenon_Hf8.
% 3.86/4.02  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hf9 | zenon_intro zenon_He2 ].
% 3.86/4.02  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (e2) (e1)) = (op (e3) (e1)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hf8.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hf9.
% 3.86/4.02  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.02  cut (((op (e3) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hfa].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e3) (e1)) = (e3)) = ((op (e3) (e1)) = (op (e2) (e1)))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hfa.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hf6.
% 3.86/4.02  cut (((e3) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 3.86/4.02  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.02  congruence.
% 3.86/4.02  apply zenon_He2. apply refl_equal.
% 3.86/4.02  apply zenon_Hfb. apply sym_equal. exact zenon_Hf7.
% 3.86/4.02  apply zenon_He2. apply refl_equal.
% 3.86/4.02  apply zenon_He2. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L63_ *)
% 3.86/4.02  assert (zenon_L64_ : ((op (e0) (e2)) = (e0)) -> ((op (e0) (e2)) = (e3)) -> (~((e0) = (e3))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H21 zenon_Hbb zenon_H9b.
% 3.86/4.02  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.02  cut (((e3) = (e3)) = ((e0) = (e3))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H9b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_Hc7.
% 3.86/4.02  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.02  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e0) (e2)) = (e0)) = ((e3) = (e0))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_Hcb.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H21.
% 3.86/4.02  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.02  cut (((op (e0) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hfc].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hfc zenon_Hbb).
% 3.86/4.02  apply zenon_H47. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  apply zenon_H5b. apply refl_equal.
% 3.86/4.02  (* end of lemma zenon_L64_ *)
% 3.86/4.02  assert (zenon_L65_ : (~((op (op (e0) (e0)) (op (e0) (e0))) = (op (e2) (e2)))) -> ((op (e0) (e0)) = (e2)) -> False).
% 3.86/4.02  do 0 intro. intros zenon_Hfd zenon_Hfe.
% 3.86/4.02  cut (((op (e0) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 3.86/4.02  cut (((op (e0) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 3.86/4.02  congruence.
% 3.86/4.02  exact (zenon_Hff zenon_Hfe).
% 3.86/4.02  exact (zenon_Hff zenon_Hfe).
% 3.86/4.02  (* end of lemma zenon_L65_ *)
% 3.86/4.02  assert (zenon_L66_ : ((op (e2) (e2)) = (e1)) -> ((op (e0) (e0)) = (e2)) -> (~((e1) = (op (op (e0) (e0)) (op (e0) (e0))))) -> False).
% 3.86/4.02  do 0 intro. intros zenon_H7a zenon_Hfe zenon_H6b.
% 3.86/4.02  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((e1) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6b.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H6c.
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 3.86/4.02  congruence.
% 3.86/4.02  cut (((op (e2) (e2)) = (e1)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e1))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H6e.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H7a.
% 3.86/4.02  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.02  cut (((op (e2) (e2)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H100].
% 3.86/4.02  congruence.
% 3.86/4.02  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e2) (e2)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.02  intro zenon_D_pnotp.
% 3.86/4.02  apply zenon_H100.
% 3.86/4.02  rewrite <- zenon_D_pnotp.
% 3.86/4.02  exact zenon_H6c.
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.02  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L65_); trivial.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L66_ *)
% 3.86/4.03  assert (zenon_L67_ : ((op (e2) (e2)) = (e1)) -> ((op (e1) (e2)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H7a zenon_Hb2 zenon_Hfe.
% 3.86/4.03  apply (zenon_notand_s _ _ ax16); [ zenon_intro zenon_H6b | zenon_intro zenon_H101 ].
% 3.86/4.03  apply (zenon_L66_); trivial.
% 3.86/4.03  apply (zenon_notand_s _ _ zenon_H101); [ zenon_intro zenon_H103 | zenon_intro zenon_H102 ].
% 3.86/4.03  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((e3) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H103.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H72.
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H104].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e2)) = (e3)) = ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H104.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hb2.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((op (e1) (e2)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H105].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((op (e1) (e2)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H105.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H72.
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.03  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H106].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 3.86/4.03  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e2)) = (e1)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H6e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H7a.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e2) (e2)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H100].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.03  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e2) (e2)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H100.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H6c.
% 3.86/4.03  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.03  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L65_); trivial.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  apply zenon_H6d. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  exact (zenon_Hff zenon_Hfe).
% 3.86/4.03  apply zenon_H73. apply refl_equal.
% 3.86/4.03  apply zenon_H73. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H73. apply refl_equal.
% 3.86/4.03  apply zenon_H73. apply refl_equal.
% 3.86/4.03  apply zenon_H102. apply sym_equal. exact zenon_Hfe.
% 3.86/4.03  (* end of lemma zenon_L67_ *)
% 3.86/4.03  assert (zenon_L68_ : ((op (e2) (e3)) = (e2)) -> ((op (e2) (e2)) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H32 zenon_H40 zenon_H107.
% 3.86/4.03  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H108 | zenon_intro zenon_H8c ].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e2)) = (op (e2) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H107.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H108.
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H109].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((op (e2) (e3)) = (op (e2) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H109.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hcf].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_Hcf. apply sym_equal. exact zenon_H40.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L68_ *)
% 3.86/4.03  assert (zenon_L69_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (e3) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H10a zenon_H10b zenon_Hda.
% 3.86/4.03  cut (((op (e1) (e3)) = (e0)) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H10a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10b.
% 3.86/4.03  cut (((e0) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  apply zenon_Hdb. apply sym_equal. exact zenon_Hda.
% 3.86/4.03  (* end of lemma zenon_L69_ *)
% 3.86/4.03  assert (zenon_L70_ : (~((op (op (e2) (e2)) (op (e2) (e2))) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H10c zenon_Hd0.
% 3.86/4.03  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10d].
% 3.86/4.03  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10d].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H10d zenon_Hd0).
% 3.86/4.03  exact (zenon_H10d zenon_Hd0).
% 3.86/4.03  (* end of lemma zenon_L70_ *)
% 3.86/4.03  assert (zenon_L71_ : ((op (e3) (e3)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> (~((e1) = (op (op (e2) (e2)) (op (e2) (e2))))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H68 zenon_Hd0 zenon_H10e.
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((e1) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H10e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e3)) = (e1)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H111.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H68.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H112.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L70_); trivial.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L71_ *)
% 3.86/4.03  assert (zenon_L72_ : ((op (e3) (e3)) = (e1)) -> ((op (e1) (e3)) = (e0)) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H68 zenon_H10b zenon_Hd0.
% 3.86/4.03  apply (zenon_notand_s _ _ ax12); [ zenon_intro zenon_H10e | zenon_intro zenon_H113 ].
% 3.86/4.03  apply (zenon_L71_); trivial.
% 3.86/4.03  apply (zenon_notand_s _ _ zenon_H113); [ zenon_intro zenon_H114 | zenon_intro zenon_Hd3 ].
% 3.86/4.03  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((e0) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H114.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H115.
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H117].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e3)) = (e0)) = ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H117.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10b.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H118].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((op (e1) (e3)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H118.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H115.
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H119].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10d].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e3)) = (e1)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H111.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H68.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H112.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L70_); trivial.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  exact (zenon_H10d zenon_Hd0).
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_Hd3. apply sym_equal. exact zenon_Hd0.
% 3.86/4.03  (* end of lemma zenon_L72_ *)
% 3.86/4.03  assert (zenon_L73_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e2)) -> ((op (e3) (e3)) = (e2)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H89 zenon_H32 zenon_H78.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H89.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H82].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H82. apply sym_equal. exact zenon_H78.
% 3.86/4.03  (* end of lemma zenon_L73_ *)
% 3.86/4.03  assert (zenon_L74_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e3) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_He1 zenon_Hf6 zenon_H39.
% 3.86/4.03  cut (((op (e3) (e1)) = (e3)) = ((op (e3) (e1)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_He1.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hf6.
% 3.86/4.03  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdd].
% 3.86/4.03  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_He2. apply refl_equal.
% 3.86/4.03  apply zenon_Hdd. apply sym_equal. exact zenon_H39.
% 3.86/4.03  (* end of lemma zenon_L74_ *)
% 3.86/4.03  assert (zenon_L75_ : (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e3)) -> ((op (e1) (e3)) = (e0)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hde zenon_H10a zenon_Hd0 zenon_H10b zenon_H32 zenon_H89 zenon_He1 zenon_Hf6.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hde); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdf ].
% 3.86/4.03  apply (zenon_L69_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hdf); [ zenon_intro zenon_H68 | zenon_intro zenon_He0 ].
% 3.86/4.03  apply (zenon_L72_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He0); [ zenon_intro zenon_H78 | zenon_intro zenon_H39 ].
% 3.86/4.03  apply (zenon_L73_); trivial.
% 3.86/4.03  apply (zenon_L74_); trivial.
% 3.86/4.03  (* end of lemma zenon_L75_ *)
% 3.86/4.03  assert (zenon_L76_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e0) (e0)) = (e2)) -> ((op (e1) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hd4 zenon_H48 zenon_H97 zenon_Hfe zenon_Hb2 zenon_H107 zenon_Hde zenon_H10a zenon_H10b zenon_H32 zenon_H89 zenon_He1 zenon_Hf6.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_H98 | zenon_intro zenon_Hd5 ].
% 3.86/4.03  apply (zenon_L30_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd5); [ zenon_intro zenon_H7a | zenon_intro zenon_Hd6 ].
% 3.86/4.03  apply (zenon_L67_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd6); [ zenon_intro zenon_H40 | zenon_intro zenon_Hd0 ].
% 3.86/4.03  apply (zenon_L68_); trivial.
% 3.86/4.03  apply (zenon_L75_); trivial.
% 3.86/4.03  (* end of lemma zenon_L76_ *)
% 3.86/4.03  assert (zenon_L77_ : (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (~((e0) = (e3))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e0) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (e0)) = (e0)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e2)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e2)) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H11a zenon_H9b zenon_H21 zenon_H107 zenon_Hfe zenon_H97 zenon_H48 zenon_Hd4 zenon_Hf6 zenon_He1 zenon_H89 zenon_H32 zenon_H10b zenon_H10a zenon_Hde zenon_H36.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_Hbb | zenon_intro zenon_H11b ].
% 3.86/4.03  apply (zenon_L64_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H11c ].
% 3.86/4.03  apply (zenon_L76_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11c); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H5d ].
% 3.86/4.03  apply (zenon_L75_); trivial.
% 3.86/4.03  exact (zenon_H36 zenon_H5d).
% 3.86/4.03  (* end of lemma zenon_L77_ *)
% 3.86/4.03  assert (zenon_L78_ : (~((e0) = (e2))) -> ((op (e2) (e3)) = (e2)) -> ((op (e2) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H61 zenon_H32 zenon_Hc3.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((e0) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H61.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e2) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H11d].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H11d zenon_Hc3).
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L78_ *)
% 3.86/4.03  assert (zenon_L79_ : ((op (e3) (e3)) = (e0)) -> ((op (e0) (e3)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hda zenon_Hd7 zenon_Hd0.
% 3.86/4.03  apply (zenon_notand_s _ _ ax6); [ zenon_intro zenon_H11f | zenon_intro zenon_H11e ].
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((e0) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H11f.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e3)) = (e0)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H120.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hda.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H112.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L70_); trivial.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply (zenon_notand_s _ _ zenon_H11e); [ zenon_intro zenon_H121 | zenon_intro zenon_Hd3 ].
% 3.86/4.03  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((e1) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H121.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H115.
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H122].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e3)) = (e1)) = ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H122.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hd7.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e0) (e3)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H123].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((op (e0) (e3)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H123.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H115.
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.03  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H124].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10d].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e3)) = (e0)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H120.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hda.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e3) (e3)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H112.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H10f.
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.03  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L70_); trivial.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H110. apply refl_equal.
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  exact (zenon_H10d zenon_Hd0).
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_H116. apply refl_equal.
% 3.86/4.03  apply zenon_Hd3. apply sym_equal. exact zenon_Hd0.
% 3.86/4.03  (* end of lemma zenon_L79_ *)
% 3.86/4.03  assert (zenon_L80_ : (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((e0) = (e1))) -> (~((op (e3) (e2)) = (e3))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e0) (e0)) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e0) (e2)) = (e0)) -> (~((e0) = (e3))) -> (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e3)) = (e2)) -> (~((e0) = (e2))) -> ((op (e0) (e3)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H125 zenon_H4a zenon_H36 zenon_Hde zenon_H10a zenon_H89 zenon_He1 zenon_Hf6 zenon_Hd4 zenon_H48 zenon_H97 zenon_Hfe zenon_H107 zenon_H21 zenon_H9b zenon_H11a zenon_H32 zenon_H61 zenon_Hd7 zenon_Hd0.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.03  apply (zenon_L49_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.03  apply (zenon_L77_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.03  apply (zenon_L78_); trivial.
% 3.86/4.03  apply (zenon_L79_); trivial.
% 3.86/4.03  (* end of lemma zenon_L80_ *)
% 3.86/4.03  assert (zenon_L81_ : ((op (e2) (e3)) = (e2)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H32 zenon_H69 zenon_H128.
% 3.86/4.03  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H108 | zenon_intro zenon_H8c ].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e1) (e3)) = (op (e2) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H128.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H108.
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H129].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((op (e2) (e3)) = (op (e1) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H129.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12a].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H12a. apply sym_equal. exact zenon_H69.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L81_ *)
% 3.86/4.03  assert (zenon_L82_ : (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H128 zenon_H12b zenon_H12c.
% 3.86/4.03  cut (((op (e1) (e3)) = (e3)) = ((op (e1) (e3)) = (op (e2) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H128.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H12b.
% 3.86/4.03  cut (((e3) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12d].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  apply zenon_H12d. apply sym_equal. exact zenon_H12c.
% 3.86/4.03  (* end of lemma zenon_L82_ *)
% 3.86/4.03  assert (zenon_L83_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e3) (e3)) = (e0)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (e1))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H12e zenon_Hda zenon_H10a zenon_Hf1 zenon_H32 zenon_H128 zenon_H12c.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H12e); [ zenon_intro zenon_H10b | zenon_intro zenon_H12f ].
% 3.86/4.03  apply (zenon_L69_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H12f); [ zenon_intro zenon_H27 | zenon_intro zenon_H130 ].
% 3.86/4.03  exact (zenon_Hf1 zenon_H27).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H130); [ zenon_intro zenon_H69 | zenon_intro zenon_H12b ].
% 3.86/4.03  apply (zenon_L81_); trivial.
% 3.86/4.03  apply (zenon_L82_); trivial.
% 3.86/4.03  (* end of lemma zenon_L83_ *)
% 3.86/4.03  assert (zenon_L84_ : (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (e0)) = (e0)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((e0) = (e2))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (e1))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H125 zenon_H21 zenon_H20 zenon_Hf6 zenon_He1 zenon_H89 zenon_Hde zenon_H107 zenon_Hb2 zenon_Hfe zenon_H97 zenon_H48 zenon_Hd4 zenon_H61 zenon_H12e zenon_H10a zenon_Hf1 zenon_H32 zenon_H128 zenon_H12c.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.03  apply (zenon_L2_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.03  apply (zenon_L76_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.03  apply (zenon_L78_); trivial.
% 3.86/4.03  apply (zenon_L83_); trivial.
% 3.86/4.03  (* end of lemma zenon_L84_ *)
% 3.86/4.03  assert (zenon_L85_ : (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e3)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((e0) = (e2))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (e1))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H125 zenon_H21 zenon_H20 zenon_Hf6 zenon_He1 zenon_H89 zenon_Hd0 zenon_Hde zenon_H61 zenon_H12e zenon_H10a zenon_Hf1 zenon_H32 zenon_H128 zenon_H12c.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.03  apply (zenon_L2_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.03  apply (zenon_L75_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.03  apply (zenon_L78_); trivial.
% 3.86/4.03  apply (zenon_L83_); trivial.
% 3.86/4.03  (* end of lemma zenon_L85_ *)
% 3.86/4.03  assert (zenon_L86_ : (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (~((e0) = (e3))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e0) (e0)) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (e1))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((e0) = (e2))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (e0) (e2)) = (e0)) -> (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((op (e3) (e2)) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H11a zenon_H9b zenon_Hd4 zenon_H48 zenon_H97 zenon_Hfe zenon_H107 zenon_H12c zenon_H128 zenon_H32 zenon_Hf1 zenon_H10a zenon_H12e zenon_H61 zenon_Hde zenon_H89 zenon_He1 zenon_Hf6 zenon_H20 zenon_H21 zenon_H125 zenon_H36.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_Hbb | zenon_intro zenon_H11b ].
% 3.86/4.03  apply (zenon_L64_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H11c ].
% 3.86/4.03  apply (zenon_L84_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11c); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H5d ].
% 3.86/4.03  apply (zenon_L85_); trivial.
% 3.86/4.03  exact (zenon_H36 zenon_H5d).
% 3.86/4.03  (* end of lemma zenon_L86_ *)
% 3.86/4.03  assert (zenon_L87_ : ((op (e2) (e0)) = (e0)) -> ((op (e1) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H48 zenon_Hf2 zenon_H131.
% 3.86/4.03  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H132 | zenon_intro zenon_H9a ].
% 3.86/4.03  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e1) (e0)) = (op (e2) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H131.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H132.
% 3.86/4.03  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.03  cut (((op (e2) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H133].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e0)) = (e0)) = ((op (e2) (e0)) = (op (e1) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H133.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H48.
% 3.86/4.03  cut (((e0) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H134].
% 3.86/4.03  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H9a. apply refl_equal.
% 3.86/4.03  apply zenon_H134. apply sym_equal. exact zenon_Hf2.
% 3.86/4.03  apply zenon_H9a. apply refl_equal.
% 3.86/4.03  apply zenon_H9a. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L87_ *)
% 3.86/4.03  assert (zenon_L88_ : (~((op (op (e3) (e3)) (op (e3) (e3))) = (op (e1) (e1)))) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H135 zenon_H68.
% 3.86/4.03  cut (((op (e3) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H136].
% 3.86/4.03  cut (((op (e3) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H136].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H136 zenon_H68).
% 3.86/4.03  exact (zenon_H136 zenon_H68).
% 3.86/4.03  (* end of lemma zenon_L88_ *)
% 3.86/4.03  assert (zenon_L89_ : ((op (e1) (e1)) = (e0)) -> ((op (e3) (e3)) = (e1)) -> (~((e0) = (op (op (e3) (e3)) (op (e3) (e3))))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H137 zenon_H68 zenon_Ha6.
% 3.86/4.03  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((e0) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Ha6.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H7c.
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e1)) = (e0)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Ha7.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H137.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e1) (e1)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H138].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e1) (e1)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H138.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H7c.
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H135].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L88_); trivial.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L89_ *)
% 3.86/4.03  assert (zenon_L90_ : ((op (e1) (e1)) = (e0)) -> ((op (e0) (e1)) = (e2)) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H137 zenon_H139 zenon_H68.
% 3.86/4.03  apply (zenon_notand_s _ _ ax9); [ zenon_intro zenon_Ha6 | zenon_intro zenon_H13a ].
% 3.86/4.03  apply (zenon_L89_); trivial.
% 3.86/4.03  apply (zenon_notand_s _ _ zenon_H13a); [ zenon_intro zenon_H13b | zenon_intro zenon_H8b ].
% 3.86/4.03  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((e2) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H13b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H84.
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H13c].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e1)) = (e2)) = ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H13c.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H139.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H13d].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ].
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3)))) = ((op (e0) (e1)) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H13d.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H84.
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 3.86/4.03  cut (((op (op (op (e3) (e3)) (op (e3) (e3))) (op (e3) (e3))) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H13e].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H136].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e1)) = (e0)) = ((op (op (e3) (e3)) (op (e3) (e3))) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Ha7.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H137.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e1) (e1)) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H138].
% 3.86/4.03  congruence.
% 3.86/4.03  elim (classic ((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [ zenon_intro zenon_H7c | zenon_intro zenon_H7d ].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3)))) = ((op (e1) (e1)) = (op (op (e3) (e3)) (op (e3) (e3))))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H138.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H7c.
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (op (e3) (e3)) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 3.86/4.03  cut (((op (op (e3) (e3)) (op (e3) (e3))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H135].
% 3.86/4.03  congruence.
% 3.86/4.03  apply (zenon_L88_); trivial.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  apply zenon_H7d. apply refl_equal.
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  exact (zenon_H136 zenon_H68).
% 3.86/4.03  apply zenon_H85. apply refl_equal.
% 3.86/4.03  apply zenon_H85. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H85. apply refl_equal.
% 3.86/4.03  apply zenon_H85. apply refl_equal.
% 3.86/4.03  apply zenon_H8b. apply sym_equal. exact zenon_H68.
% 3.86/4.03  (* end of lemma zenon_L90_ *)
% 3.86/4.03  assert (zenon_L91_ : (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e1) (e3)) = (e0)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e1)) = (e2)) -> ((op (e1) (e1)) = (e0)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hde zenon_H10b zenon_H10a zenon_H139 zenon_H137 zenon_H32 zenon_H89 zenon_He1 zenon_Hf6.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hde); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdf ].
% 3.86/4.03  apply (zenon_L69_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hdf); [ zenon_intro zenon_H68 | zenon_intro zenon_He0 ].
% 3.86/4.03  apply (zenon_L90_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He0); [ zenon_intro zenon_H78 | zenon_intro zenon_H39 ].
% 3.86/4.03  apply (zenon_L73_); trivial.
% 3.86/4.03  apply (zenon_L74_); trivial.
% 3.86/4.03  (* end of lemma zenon_L91_ *)
% 3.86/4.03  assert (zenon_L92_ : (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((e0) = (e1))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e1)) = (e0)) -> ((op (e0) (e1)) = (e2)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e2) (e3)) = (e2)) -> (~((e0) = (e2))) -> ((op (e0) (e3)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H125 zenon_H4a zenon_Hf6 zenon_He1 zenon_H89 zenon_H137 zenon_H139 zenon_H10a zenon_Hde zenon_H32 zenon_H61 zenon_Hd7 zenon_Hd0.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.03  apply (zenon_L49_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.03  apply (zenon_L91_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.03  apply (zenon_L78_); trivial.
% 3.86/4.03  apply (zenon_L79_); trivial.
% 3.86/4.03  (* end of lemma zenon_L92_ *)
% 3.86/4.03  assert (zenon_L93_ : (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e1)) = (e0)) -> ((op (e0) (e1)) = (e2)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((e0) = (e2))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (e1))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H125 zenon_H21 zenon_H20 zenon_Hf6 zenon_He1 zenon_H89 zenon_H137 zenon_H139 zenon_Hde zenon_H61 zenon_H12e zenon_H10a zenon_Hf1 zenon_H32 zenon_H128 zenon_H12c.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.03  apply (zenon_L2_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.03  apply (zenon_L91_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.03  apply (zenon_L78_); trivial.
% 3.86/4.03  apply (zenon_L83_); trivial.
% 3.86/4.03  (* end of lemma zenon_L93_ *)
% 3.86/4.03  assert (zenon_L94_ : (~((op (e0) (e2)) = (op (e1) (e2)))) -> ((op (e0) (e2)) = (e0)) -> ((op (e1) (e2)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hae zenon_H21 zenon_H80.
% 3.86/4.03  cut (((op (e0) (e2)) = (e0)) = ((op (e0) (e2)) = (op (e1) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hae.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H21.
% 3.86/4.03  cut (((e0) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  apply zenon_H13f. apply sym_equal. exact zenon_H80.
% 3.86/4.03  (* end of lemma zenon_L94_ *)
% 3.86/4.03  assert (zenon_L95_ : (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (e2) (e1)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H140 zenon_H48 zenon_Ha1.
% 3.86/4.03  cut (((op (e2) (e0)) = (e0)) = ((op (e2) (e0)) = (op (e2) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H140.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H48.
% 3.86/4.03  cut (((e0) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H141].
% 3.86/4.03  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H9a. apply refl_equal.
% 3.86/4.03  apply zenon_H141. apply sym_equal. exact zenon_Ha1.
% 3.86/4.03  (* end of lemma zenon_L95_ *)
% 3.86/4.03  assert (zenon_L96_ : (~((e0) = (e3))) -> ((op (e3) (e1)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H9b zenon_Hf6 zenon_H142.
% 3.86/4.03  cut (((op (e3) (e1)) = (e3)) = ((e0) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H9b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hf6.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((op (e3) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H143].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H143 zenon_H142).
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L96_ *)
% 3.86/4.03  assert (zenon_L97_ : ((op (e0) (e2)) = (e0)) -> ((op (e0) (e2)) = (e2)) -> (~((e0) = (e2))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H21 zenon_Haf zenon_H61.
% 3.86/4.03  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.03  cut (((e2) = (e2)) = ((e0) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H61.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H62.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((e2) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H63].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e2)) = (e0)) = ((e2) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H63.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H21.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e0) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H144].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H144 zenon_Haf).
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L97_ *)
% 3.86/4.03  assert (zenon_L98_ : ((op (e2) (e3)) = (e2)) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H32 zenon_H60 zenon_Hc2.
% 3.86/4.03  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H108 | zenon_intro zenon_H8c ].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e0) (e3)) = (op (e2) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hc2.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H108.
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H145].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((op (e2) (e3)) = (op (e0) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H145.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H146].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H146. apply sym_equal. exact zenon_H60.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L98_ *)
% 3.86/4.03  assert (zenon_L99_ : (((op (e0) (e0)) = (e2))\/(((op (e0) (e1)) = (e2))\/(((op (e0) (e2)) = (e2))\/((op (e0) (e3)) = (e2))))) -> (~((op (e3) (e2)) = (e3))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> (~((e0) = (e3))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (e2) (e0)) = (e0)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e0) (e1)) = (e0))) -> (((op (e0) (e1)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e2) (e1)) = (e0))\/((op (e3) (e1)) = (e0))))) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> (((op (e2) (e0)) = (e3))\/(((op (e2) (e1)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (e0) (e3)) = (e1)) -> (~((e0) = (e1))) -> (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (e1))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (~((e0) = (e2))) -> ((op (e0) (e2)) = (e0)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H147 zenon_H36 zenon_H107 zenon_H97 zenon_Hd4 zenon_H11a zenon_Hf6 zenon_H9b zenon_H140 zenon_H48 zenon_Hde zenon_H10a zenon_H89 zenon_He1 zenon_H148 zenon_H149 zenon_Hae zenon_H14a zenon_Hf8 zenon_Hd7 zenon_H4a zenon_H125 zenon_H20 zenon_H12e zenon_Hf1 zenon_H128 zenon_H131 zenon_H14b zenon_H61 zenon_H21 zenon_H32 zenon_Hc2.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H147); [ zenon_intro zenon_Hfe | zenon_intro zenon_H14c ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14a); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H14d ].
% 3.86/4.03  apply (zenon_L62_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14d); [ zenon_intro zenon_Hf7 | zenon_intro zenon_H14e ].
% 3.86/4.03  apply (zenon_L63_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14e); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12c ].
% 3.86/4.03  apply (zenon_L80_); trivial.
% 3.86/4.03  apply (zenon_L86_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14c); [ zenon_intro zenon_H139 | zenon_intro zenon_H14f ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14b); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H150 ].
% 3.86/4.03  apply (zenon_L87_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H150); [ zenon_intro zenon_H137 | zenon_intro zenon_H151 ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14a); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H14d ].
% 3.86/4.03  apply (zenon_L62_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14d); [ zenon_intro zenon_Hf7 | zenon_intro zenon_H14e ].
% 3.86/4.03  apply (zenon_L63_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14e); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12c ].
% 3.86/4.03  apply (zenon_L92_); trivial.
% 3.86/4.03  apply (zenon_L93_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H151); [ zenon_intro zenon_H80 | zenon_intro zenon_H10b ].
% 3.86/4.03  apply (zenon_L94_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H149); [ zenon_intro zenon_H153 | zenon_intro zenon_H152 ].
% 3.86/4.03  exact (zenon_H148 zenon_H153).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H152); [ zenon_intro zenon_H137 | zenon_intro zenon_H154 ].
% 3.86/4.03  apply (zenon_L91_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H154); [ zenon_intro zenon_Ha1 | zenon_intro zenon_H142 ].
% 3.86/4.03  apply (zenon_L95_); trivial.
% 3.86/4.03  apply (zenon_L96_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14f); [ zenon_intro zenon_Haf | zenon_intro zenon_H60 ].
% 3.86/4.03  apply (zenon_L97_); trivial.
% 3.86/4.03  apply (zenon_L98_); trivial.
% 3.86/4.03  (* end of lemma zenon_L99_ *)
% 3.86/4.03  assert (zenon_L100_ : (~((e1) = (e2))) -> ((op (e2) (e3)) = (e2)) -> ((op (e2) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H50 zenon_H32 zenon_H8a.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((e1) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H50.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H155].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H155 zenon_H8a).
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L100_ *)
% 3.86/4.03  assert (zenon_L101_ : (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hd9 zenon_Hd7 zenon_H68.
% 3.86/4.03  cut (((op (e0) (e3)) = (e1)) = ((op (e0) (e3)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hd9.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hd7.
% 3.86/4.03  cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 3.86/4.03  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_Hc5. apply refl_equal.
% 3.86/4.03  apply zenon_H8b. apply sym_equal. exact zenon_H68.
% 3.86/4.03  (* end of lemma zenon_L101_ *)
% 3.86/4.03  assert (zenon_L102_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e1)) -> ((op (e3) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H10a zenon_H27 zenon_H68.
% 3.86/4.03  cut (((op (e1) (e3)) = (e1)) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H10a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H27.
% 3.86/4.03  cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  apply zenon_H8b. apply sym_equal. exact zenon_H68.
% 3.86/4.03  (* end of lemma zenon_L102_ *)
% 3.86/4.03  assert (zenon_L103_ : (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (e1) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H156 zenon_Hca zenon_H12b.
% 3.86/4.03  cut (((op (e0) (e3)) = (e3)) = ((op (e0) (e3)) = (op (e1) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H156.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hca.
% 3.86/4.03  cut (((e3) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H157].
% 3.86/4.03  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_Hc5. apply refl_equal.
% 3.86/4.03  apply zenon_H157. apply sym_equal. exact zenon_H12b.
% 3.86/4.03  (* end of lemma zenon_L103_ *)
% 3.86/4.03  assert (zenon_L104_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e2) (e2)) = (e3)) -> ((op (e3) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H12e zenon_Hd0 zenon_H68 zenon_H10a zenon_H128 zenon_H32 zenon_H156 zenon_Hca.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H12e); [ zenon_intro zenon_H10b | zenon_intro zenon_H12f ].
% 3.86/4.03  apply (zenon_L72_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H12f); [ zenon_intro zenon_H27 | zenon_intro zenon_H130 ].
% 3.86/4.03  apply (zenon_L102_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H130); [ zenon_intro zenon_H69 | zenon_intro zenon_H12b ].
% 3.86/4.03  apply (zenon_L81_); trivial.
% 3.86/4.03  apply (zenon_L103_); trivial.
% 3.86/4.03  (* end of lemma zenon_L104_ *)
% 3.86/4.03  assert (zenon_L105_ : (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e2) (e2)) = (e3)) -> ((op (e3) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H158 zenon_H21 zenon_H20 zenon_Hd9 zenon_Hc2 zenon_H12e zenon_Hd0 zenon_H68 zenon_H10a zenon_H128 zenon_H32 zenon_H156.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H158); [ zenon_intro zenon_H22 | zenon_intro zenon_H159 ].
% 3.86/4.03  apply (zenon_L2_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H159); [ zenon_intro zenon_Hd7 | zenon_intro zenon_H15a ].
% 3.86/4.03  apply (zenon_L101_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H15a); [ zenon_intro zenon_H60 | zenon_intro zenon_Hca ].
% 3.86/4.03  apply (zenon_L98_); trivial.
% 3.86/4.03  apply (zenon_L104_); trivial.
% 3.86/4.03  (* end of lemma zenon_L105_ *)
% 3.86/4.03  assert (zenon_L106_ : (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((e0) = (e2))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> (((op (e0) (e3)) = (e0))\/(((op (e1) (e3)) = (e0))\/(((op (e2) (e3)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((e0) = (e1))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e2) (e0)) = (e3))\/(((op (e2) (e1)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e2) (e3)) = (e3))))) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> (((op (e0) (e1)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e2) (e1)) = (e0))\/((op (e3) (e1)) = (e0))))) -> (~((op (e0) (e1)) = (e0))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (~((e0) = (e3))) -> ((op (e3) (e1)) = (e3)) -> (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> (~((op (e3) (e2)) = (e3))) -> (((op (e0) (e0)) = (e2))\/(((op (e0) (e1)) = (e2))\/(((op (e0) (e2)) = (e2))\/((op (e0) (e3)) = (e2))))) -> (~((op (e1) (e3)) = (e1))) -> (~((e1) = (e2))) -> (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e0) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e2) (e2)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_He3 zenon_H61 zenon_H14b zenon_H131 zenon_H125 zenon_H4a zenon_Hf8 zenon_H14a zenon_Hae zenon_H149 zenon_H148 zenon_He1 zenon_H89 zenon_Hde zenon_H48 zenon_H140 zenon_H9b zenon_Hf6 zenon_H11a zenon_Hd4 zenon_H97 zenon_H107 zenon_H36 zenon_H147 zenon_Hf1 zenon_H50 zenon_H158 zenon_H21 zenon_H20 zenon_Hd9 zenon_Hc2 zenon_H12e zenon_Hd0 zenon_H10a zenon_H128 zenon_H32 zenon_H156.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.03  apply (zenon_L99_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.03  exact (zenon_Hf1 zenon_H27).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.03  apply (zenon_L100_); trivial.
% 3.86/4.03  apply (zenon_L105_); trivial.
% 3.86/4.03  (* end of lemma zenon_L106_ *)
% 3.86/4.03  assert (zenon_L107_ : ((op (e0) (e1)) = (e1)) -> ((op (e0) (e1)) = (e2)) -> (~((e1) = (e2))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H57 zenon_H139 zenon_H50.
% 3.86/4.03  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.03  cut (((e2) = (e2)) = ((e1) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H50.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H62.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((e2) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e1)) = (e1)) = ((e2) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H15b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H57.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e0) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H15c].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H15c zenon_H139).
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L107_ *)
% 3.86/4.03  assert (zenon_L108_ : ((op (e0) (e2)) = (e0)) -> ((op (e0) (e2)) = (e1)) -> (~((e0) = (e1))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H21 zenon_Ha4 zenon_H4a.
% 3.86/4.03  elim (classic ((e1) = (e1))); [ zenon_intro zenon_H4b | zenon_intro zenon_H4c ].
% 3.86/4.03  cut (((e1) = (e1)) = ((e0) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H4b.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((e1) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H4d].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e2)) = (e0)) = ((e1) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4d.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H21.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e0) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H15d].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H15d zenon_Ha4).
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L108_ *)
% 3.86/4.03  assert (zenon_L109_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e3) (e0)) = (e0)) -> ((op (e3) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H15e zenon_H15f zenon_Hda.
% 3.86/4.03  cut (((op (e3) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H15e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H15f.
% 3.86/4.03  cut (((e0) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 3.86/4.03  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H160. apply refl_equal.
% 3.86/4.03  apply zenon_Hdb. apply sym_equal. exact zenon_Hda.
% 3.86/4.03  (* end of lemma zenon_L109_ *)
% 3.86/4.03  assert (zenon_L110_ : (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e3) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hde zenon_H15f zenon_H15e zenon_Hd7 zenon_Hd9 zenon_H32 zenon_H89 zenon_He1 zenon_Hf6.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hde); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdf ].
% 3.86/4.03  apply (zenon_L109_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hdf); [ zenon_intro zenon_H68 | zenon_intro zenon_He0 ].
% 3.86/4.03  apply (zenon_L101_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He0); [ zenon_intro zenon_H78 | zenon_intro zenon_H39 ].
% 3.86/4.03  apply (zenon_L73_); trivial.
% 3.86/4.03  apply (zenon_L74_); trivial.
% 3.86/4.03  (* end of lemma zenon_L110_ *)
% 3.86/4.03  assert (zenon_L111_ : (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e3) (e0)) = (e0)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (e1))) -> (~((e1) = (e2))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e0) (e0)) = (e2)) -> ((op (e1) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> ((op (e1) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_He3 zenon_Hf6 zenon_He1 zenon_H89 zenon_Hd9 zenon_H15e zenon_H15f zenon_Hde zenon_Hf1 zenon_H50 zenon_Hd4 zenon_H21 zenon_Ha3 zenon_Hfe zenon_Hb2 zenon_H107 zenon_H32 zenon_H10b.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.03  apply (zenon_L110_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.03  exact (zenon_Hf1 zenon_H27).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.03  apply (zenon_L100_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_H98 | zenon_intro zenon_Hd5 ].
% 3.86/4.03  apply (zenon_L34_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd5); [ zenon_intro zenon_H7a | zenon_intro zenon_Hd6 ].
% 3.86/4.03  apply (zenon_L67_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hd6); [ zenon_intro zenon_H40 | zenon_intro zenon_Hd0 ].
% 3.86/4.03  apply (zenon_L68_); trivial.
% 3.86/4.03  apply (zenon_L72_); trivial.
% 3.86/4.03  (* end of lemma zenon_L111_ *)
% 3.86/4.03  assert (zenon_L112_ : (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e3) (e0)) = (e0)) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (e1))) -> ((op (e2) (e3)) = (e2)) -> (~((e1) = (e2))) -> ((op (e1) (e3)) = (e0)) -> ((op (e2) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_He3 zenon_Hf6 zenon_He1 zenon_H89 zenon_Hd9 zenon_H15e zenon_H15f zenon_Hde zenon_Hf1 zenon_H32 zenon_H50 zenon_H10b zenon_Hd0.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.03  apply (zenon_L110_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.03  exact (zenon_Hf1 zenon_H27).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.03  apply (zenon_L100_); trivial.
% 3.86/4.03  apply (zenon_L72_); trivial.
% 3.86/4.03  (* end of lemma zenon_L112_ *)
% 3.86/4.03  assert (zenon_L113_ : (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (~((e0) = (e3))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e0) (e0)) = (e2)) -> (~((op (e0) (e2)) = (op (e2) (e2)))) -> ((op (e0) (e2)) = (e0)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e0)) -> (~((e1) = (e2))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (e1))) -> (((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3))))) -> ((op (e3) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (e3) (e1)) = (e3)) -> (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e2)) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H11a zenon_H9b zenon_H107 zenon_Hfe zenon_Ha3 zenon_H21 zenon_Hd4 zenon_H10b zenon_H50 zenon_H32 zenon_Hf1 zenon_Hde zenon_H15f zenon_H15e zenon_Hd9 zenon_H89 zenon_He1 zenon_Hf6 zenon_He3 zenon_H36.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_Hbb | zenon_intro zenon_H11b ].
% 3.86/4.03  apply (zenon_L64_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H11c ].
% 3.86/4.03  apply (zenon_L111_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H11c); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H5d ].
% 3.86/4.03  apply (zenon_L112_); trivial.
% 3.86/4.03  exact (zenon_H36 zenon_H5d).
% 3.86/4.03  (* end of lemma zenon_L113_ *)
% 3.86/4.03  assert (zenon_L114_ : ((op (e1) (e2)) = (e1)) -> ((op (e1) (e0)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e2)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H3d zenon_H28 zenon_H161.
% 3.86/4.03  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H162 | zenon_intro zenon_Had ].
% 3.86/4.03  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (e1) (e0)) = (op (e1) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H161.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H162.
% 3.86/4.03  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.03  cut (((op (e1) (e2)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H163].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e1) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H163.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H3d.
% 3.86/4.03  cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 3.86/4.03  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_Had. apply refl_equal.
% 3.86/4.03  apply zenon_H2d. apply sym_equal. exact zenon_H28.
% 3.86/4.03  apply zenon_Had. apply refl_equal.
% 3.86/4.03  apply zenon_Had. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L114_ *)
% 3.86/4.03  assert (zenon_L115_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e3) (e2)) = (e3)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H164 zenon_Hf6 zenon_H5d.
% 3.86/4.03  cut (((op (e3) (e1)) = (e3)) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H164.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hf6.
% 3.86/4.03  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H165].
% 3.86/4.03  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_He2. apply refl_equal.
% 3.86/4.03  apply zenon_H165. apply sym_equal. exact zenon_H5d.
% 3.86/4.03  (* end of lemma zenon_L115_ *)
% 3.86/4.03  assert (zenon_L116_ : (((op (e3) (e2)) = (e3))/\(~((op (e2) (e3)) = (e2)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H166 zenon_Hf6 zenon_H164.
% 3.86/4.03  apply (zenon_and_s _ _ zenon_H166). zenon_intro zenon_H5d. zenon_intro zenon_H91.
% 3.86/4.03  apply (zenon_L115_); trivial.
% 3.86/4.03  (* end of lemma zenon_L116_ *)
% 3.86/4.03  assert (zenon_L117_ : ((op (e0) (e2)) = (e0)) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e0) (e2)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H21 zenon_H153 zenon_H167.
% 3.86/4.03  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H168 | zenon_intro zenon_H24 ].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (e0) (e1)) = (op (e0) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H167.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H168.
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H169].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e2)) = (e0)) = ((op (e0) (e2)) = (op (e0) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H169.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H21.
% 3.86/4.03  cut (((e0) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H16a].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  apply zenon_H16a. apply sym_equal. exact zenon_H153.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L117_ *)
% 3.86/4.03  assert (zenon_L118_ : (((op (e0) (e2)) = (e0))/\(~((op (e2) (e0)) = (e2)))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e0) (e2)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H16b zenon_H153 zenon_H167.
% 3.86/4.03  apply (zenon_and_s _ _ zenon_H16b). zenon_intro zenon_H21. zenon_intro zenon_H16c.
% 3.86/4.03  apply (zenon_L117_); trivial.
% 3.86/4.03  (* end of lemma zenon_L118_ *)
% 3.86/4.03  assert (zenon_L119_ : (~((op (e0) (e1)) = (op (e0) (e3)))) -> ((op (e0) (e1)) = (e0)) -> ((op (e0) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H16d zenon_H153 zenon_H22.
% 3.86/4.03  cut (((op (e0) (e1)) = (e0)) = ((op (e0) (e1)) = (op (e0) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H16d.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H153.
% 3.86/4.03  cut (((e0) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H23. apply sym_equal. exact zenon_H22.
% 3.86/4.03  (* end of lemma zenon_L119_ *)
% 3.86/4.03  assert (zenon_L120_ : (((op (e0) (e3)) = (e0))/\(~((op (e3) (e0)) = (e3)))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e0) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H25 zenon_H153 zenon_H16d.
% 3.86/4.03  apply (zenon_and_s _ _ zenon_H25). zenon_intro zenon_H22. zenon_intro zenon_H26.
% 3.86/4.03  apply (zenon_L119_); trivial.
% 3.86/4.03  (* end of lemma zenon_L120_ *)
% 3.86/4.03  assert (zenon_L121_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e1) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H16e zenon_H3d zenon_H27.
% 3.86/4.03  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H16e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H3d.
% 3.86/4.03  cut (((e1) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H16f].
% 3.86/4.03  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_Had. apply refl_equal.
% 3.86/4.03  apply zenon_H16f. apply sym_equal. exact zenon_H27.
% 3.86/4.03  (* end of lemma zenon_L121_ *)
% 3.86/4.03  assert (zenon_L122_ : (((op (e1) (e3)) = (e1))/\(~((op (e3) (e1)) = (e3)))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H2e zenon_H3d zenon_H16e.
% 3.86/4.03  apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H27. zenon_intro zenon_H2f.
% 3.86/4.03  apply (zenon_L121_); trivial.
% 3.86/4.03  (* end of lemma zenon_L122_ *)
% 3.86/4.03  assert (zenon_L123_ : ((op (e2) (e3)) = (e2)) -> ((op (e2) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H32 zenon_H170 zenon_H171.
% 3.86/4.03  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H108 | zenon_intro zenon_H8c ].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H171.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H108.
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H172].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e3)) = (e2)) = ((op (e2) (e3)) = (op (e2) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H172.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H32.
% 3.86/4.03  cut (((e2) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H173].
% 3.86/4.03  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8c].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H173. apply sym_equal. exact zenon_H170.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  apply zenon_H8c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L123_ *)
% 3.86/4.03  assert (zenon_L124_ : (((op (e2) (e3)) = (e2))/\(~((op (e3) (e2)) = (e3)))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H35 zenon_H170 zenon_H171.
% 3.86/4.03  apply (zenon_and_s _ _ zenon_H35). zenon_intro zenon_H32. zenon_intro zenon_H36.
% 3.86/4.03  apply (zenon_L123_); trivial.
% 3.86/4.03  (* end of lemma zenon_L124_ *)
% 3.86/4.03  assert (zenon_L125_ : ((op (e0) (e1)) = (e0)) -> ((op (e0) (e0)) = (e0)) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H153 zenon_H174 zenon_H175.
% 3.86/4.03  elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H176 | zenon_intro zenon_H5a ].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (e0) (e0)) = (op (e0) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H175.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H176.
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H177].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e1)) = (e0)) = ((op (e0) (e1)) = (op (e0) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H177.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H153.
% 3.86/4.03  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H178].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H178. apply sym_equal. exact zenon_H174.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L125_ *)
% 3.86/4.03  assert (zenon_L126_ : ((op (e0) (e0)) = (e1)) -> ((op (e0) (e0)) = (e3)) -> (~((e1) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H41 zenon_H66 zenon_H5c.
% 3.86/4.03  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.03  cut (((e3) = (e3)) = ((e1) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H5c.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hc7.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((e3) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e0)) = (e1)) = ((e3) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hc8.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H41.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H67 zenon_H66).
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L126_ *)
% 3.86/4.03  assert (zenon_L127_ : ((op (e0) (e1)) = (e0)) -> ((op (e0) (e1)) = (e3)) -> (~((e0) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H153 zenon_Hc6 zenon_H9b.
% 3.86/4.03  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.03  cut (((e3) = (e3)) = ((e0) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H9b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hc7.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e1)) = (e0)) = ((e3) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hcb.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H153.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e0) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hc9].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_Hc9 zenon_Hc6).
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L127_ *)
% 3.86/4.03  assert (zenon_L128_ : ((op (e1) (e0)) = (e0)) -> ((op (e1) (e0)) = (e3)) -> (~((e0) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Hf2 zenon_H179 zenon_H9b.
% 3.86/4.03  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.03  cut (((e3) = (e3)) = ((e0) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H9b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hc7.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e0)) = (e0)) = ((e3) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_Hcb.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hf2.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e1) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H17a].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H17a zenon_H179).
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L128_ *)
% 3.86/4.03  assert (zenon_L129_ : ((op (e0) (e2)) = (e1)) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_Ha4 zenon_H41 zenon_H17b.
% 3.86/4.03  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H168 | zenon_intro zenon_H24 ].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (e0) (e0)) = (op (e0) (e2)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H168.
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H17c].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e2)) = (e1)) = ((op (e0) (e2)) = (op (e0) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17c.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Ha4.
% 3.86/4.03  cut (((e1) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 3.86/4.03  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  apply zenon_H46. apply sym_equal. exact zenon_H41.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  apply zenon_H24. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L129_ *)
% 3.86/4.03  assert (zenon_L130_ : (~((e0) = (e1))) -> ((op (e1) (e2)) = (e1)) -> ((op (e1) (e2)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H4a zenon_H3d zenon_H80.
% 3.86/4.03  cut (((op (e1) (e2)) = (e1)) = ((e0) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H3d.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H17d].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H17d zenon_H80).
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L130_ *)
% 3.86/4.03  assert (zenon_L131_ : ((op (e0) (e3)) = (e2)) -> ((op (e0) (e3)) = (e3)) -> (~((e2) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H60 zenon_Hca zenon_H17e.
% 3.86/4.03  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.03  cut (((e3) = (e3)) = ((e2) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hc7.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((e3) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H17f].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e3)) = (e2)) = ((e3) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17f.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H60.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_Hcc zenon_Hca).
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L131_ *)
% 3.86/4.03  assert (zenon_L132_ : ((op (e1) (e3)) = (e1)) -> ((op (e1) (e3)) = (e2)) -> (~((e1) = (e2))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H27 zenon_H69 zenon_H50.
% 3.86/4.03  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.03  cut (((e2) = (e2)) = ((e1) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H50.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H62.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((e2) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e3)) = (e1)) = ((e2) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H15b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H27.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H180].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H180 zenon_H69).
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L132_ *)
% 3.86/4.03  assert (zenon_L133_ : (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e2) = (e3))) -> ((op (e0) (e3)) = (e3)) -> (~((e1) = (e2))) -> ((op (e1) (e3)) = (e1)) -> (~((op (e2) (e3)) = (e2))) -> ((op (e2) (e2)) = (e1)) -> ((op (e1) (e2)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H92 zenon_H17e zenon_Hca zenon_H50 zenon_H27 zenon_H91 zenon_H7a zenon_H80.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.03  apply (zenon_L131_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.03  apply (zenon_L132_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.03  exact (zenon_H91 zenon_H32).
% 3.86/4.03  apply (zenon_L26_); trivial.
% 3.86/4.03  (* end of lemma zenon_L133_ *)
% 3.86/4.03  assert (zenon_L134_ : (~((e0) = (e1))) -> ((op (e1) (e3)) = (e1)) -> ((op (e1) (e3)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H4a zenon_H27 zenon_H10b.
% 3.86/4.03  cut (((op (e1) (e3)) = (e1)) = ((e0) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H27.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H181].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H181 zenon_H10b).
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L134_ *)
% 3.86/4.03  assert (zenon_L135_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (~((e0) = (e3))) -> ((op (e1) (e0)) = (e3)) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e3)) -> (~((e1) = (e3))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e2) = (e3))) -> ((op (e0) (e3)) = (e3)) -> (~((e1) = (e2))) -> (~((op (e2) (e3)) = (e2))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> (((op (e0) (e2)) = (e1))\/(((op (e1) (e2)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e3) (e2)) = (e1))))) -> (~((e0) = (e1))) -> ((op (e1) (e3)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H14b zenon_H9b zenon_H179 zenon_H153 zenon_H182 zenon_H5d zenon_H5c zenon_H92 zenon_H17e zenon_Hca zenon_H50 zenon_H91 zenon_H41 zenon_H17b zenon_H183 zenon_H4a zenon_H27.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H14b); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H150 ].
% 3.86/4.03  apply (zenon_L128_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H150); [ zenon_intro zenon_H137 | zenon_intro zenon_H151 ].
% 3.86/4.03  cut (((op (e0) (e1)) = (e0)) = ((op (e0) (e1)) = (op (e1) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H182.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H153.
% 3.86/4.03  cut (((e0) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H184].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H184. apply sym_equal. exact zenon_H137.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H151); [ zenon_intro zenon_H80 | zenon_intro zenon_H10b ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H183); [ zenon_intro zenon_Ha4 | zenon_intro zenon_H185 ].
% 3.86/4.03  apply (zenon_L129_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H185); [ zenon_intro zenon_H3d | zenon_intro zenon_H186 ].
% 3.86/4.03  apply (zenon_L130_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H186); [ zenon_intro zenon_H7a | zenon_intro zenon_H5e ].
% 3.86/4.03  apply (zenon_L133_); trivial.
% 3.86/4.03  apply (zenon_L19_); trivial.
% 3.86/4.03  apply (zenon_L134_); trivial.
% 3.86/4.03  (* end of lemma zenon_L135_ *)
% 3.86/4.03  assert (zenon_L136_ : ((op (e2) (e0)) = (e2)) -> ((op (e2) (e0)) = (e3)) -> (~((e2) = (e3))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H170 zenon_Hf4 zenon_H17e.
% 3.86/4.03  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.03  cut (((e3) = (e3)) = ((e2) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17e.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_Hc7.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((e3) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H17f].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e2) (e0)) = (e2)) = ((e3) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H17f.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H170.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e2) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_Hf5 zenon_Hf4).
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L136_ *)
% 3.86/4.03  assert (zenon_L137_ : (~((e0) = (e3))) -> ((op (e3) (e0)) = (e3)) -> ((op (e3) (e0)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H9b zenon_H187 zenon_H15f.
% 3.86/4.03  cut (((op (e3) (e0)) = (e3)) = ((e0) = (e3))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H9b.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H187.
% 3.86/4.03  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.03  cut (((op (e3) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H188].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H188 zenon_H15f).
% 3.86/4.03  apply zenon_H5b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L137_ *)
% 3.86/4.03  assert (zenon_L138_ : ((op (e0) (e1)) = (e1)) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H57 zenon_H41 zenon_H175.
% 3.86/4.03  elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H176 | zenon_intro zenon_H5a ].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (e0) (e0)) = (op (e0) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H175.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H176.
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H177].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e0) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e0) (e0)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H177.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H57.
% 3.86/4.03  cut (((e1) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 3.86/4.03  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H46. apply sym_equal. exact zenon_H41.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  apply zenon_H5a. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L138_ *)
% 3.86/4.03  assert (zenon_L139_ : (~((e1) = (e2))) -> ((op (e2) (e0)) = (e2)) -> ((op (e2) (e0)) = (e1)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H50 zenon_H170 zenon_H49.
% 3.86/4.03  cut (((op (e2) (e0)) = (e2)) = ((e1) = (e2))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H50.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H170.
% 3.86/4.03  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.03  cut (((op (e2) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4e].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H4e zenon_H49).
% 3.86/4.03  apply zenon_H4f. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L139_ *)
% 3.86/4.03  assert (zenon_L140_ : ((op (e3) (e0)) = (e0)) -> ((op (e3) (e0)) = (e1)) -> (~((e0) = (e1))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H15f zenon_H54 zenon_H4a.
% 3.86/4.03  elim (classic ((e1) = (e1))); [ zenon_intro zenon_H4b | zenon_intro zenon_H4c ].
% 3.86/4.03  cut (((e1) = (e1)) = ((e0) = (e1))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H4b.
% 3.86/4.03  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.03  cut (((e1) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H4d].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e3) (e0)) = (e0)) = ((e1) = (e0))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H4d.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H15f.
% 3.86/4.03  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.03  cut (((op (e3) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 3.86/4.03  congruence.
% 3.86/4.03  exact (zenon_H189 zenon_H54).
% 3.86/4.03  apply zenon_H47. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  apply zenon_H4c. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L140_ *)
% 3.86/4.03  assert (zenon_L141_ : ((op (e1) (e3)) = (e1)) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H27 zenon_Hd7 zenon_H156.
% 3.86/4.03  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H2a | zenon_intro zenon_H2b ].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e0) (e3)) = (op (e1) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H156.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H2a.
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H18a].
% 3.86/4.03  congruence.
% 3.86/4.03  cut (((op (e1) (e3)) = (e1)) = ((op (e1) (e3)) = (op (e0) (e3)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H18a.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H27.
% 3.86/4.03  cut (((e1) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H18b].
% 3.86/4.03  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.03  congruence.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  apply zenon_H18b. apply sym_equal. exact zenon_Hd7.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  apply zenon_H2b. apply refl_equal.
% 3.86/4.03  (* end of lemma zenon_L141_ *)
% 3.86/4.03  assert (zenon_L142_ : (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> (~((e0) = (e3))) -> (~((e2) = (e3))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e3)) -> (~((e1) = (e3))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((op (e2) (e3)) = (e2))) -> (((op (e0) (e2)) = (e1))\/(((op (e1) (e2)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e3) (e2)) = (e1))))) -> (((op (e0) (e0)) = (e3))\/(((op (e1) (e0)) = (e3))\/(((op (e2) (e0)) = (e3))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> (~((e0) = (e1))) -> ((op (e3) (e0)) = (e0)) -> (~((e1) = (e2))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e1) (e0)) = (e1))) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> (((op (e0) (e0)) = (e1))\/(((op (e1) (e0)) = (e1))\/(((op (e2) (e0)) = (e1))\/((op (e3) (e0)) = (e1))))) -> ((op (e1) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 3.86/4.03  do 0 intro. intros zenon_He8 zenon_H9b zenon_H17e zenon_H14b zenon_H153 zenon_H182 zenon_H5d zenon_H5c zenon_H92 zenon_H91 zenon_H183 zenon_H18c zenon_Hbc zenon_He9 zenon_H175 zenon_H4a zenon_H15f zenon_H50 zenon_H170 zenon_H18d zenon_H17b zenon_H18e zenon_H27 zenon_H156.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.03  apply (zenon_L126_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.03  apply (zenon_L127_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.03  apply (zenon_L40_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H18c); [ zenon_intro zenon_H66 | zenon_intro zenon_H18f ].
% 3.86/4.03  apply (zenon_L126_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H18f); [ zenon_intro zenon_H179 | zenon_intro zenon_H190 ].
% 3.86/4.03  apply (zenon_L135_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H190); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H187 ].
% 3.86/4.03  apply (zenon_L136_); trivial.
% 3.86/4.03  apply (zenon_L137_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H18e); [ zenon_intro zenon_H41 | zenon_intro zenon_H191 ].
% 3.86/4.03  apply (zenon_L138_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H191); [ zenon_intro zenon_H28 | zenon_intro zenon_H192 ].
% 3.86/4.03  exact (zenon_H18d zenon_H28).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H192); [ zenon_intro zenon_H49 | zenon_intro zenon_H54 ].
% 3.86/4.03  apply (zenon_L139_); trivial.
% 3.86/4.03  apply (zenon_L140_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H18e); [ zenon_intro zenon_H41 | zenon_intro zenon_H191 ].
% 3.86/4.03  apply (zenon_L129_); trivial.
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H191); [ zenon_intro zenon_H28 | zenon_intro zenon_H192 ].
% 3.86/4.03  exact (zenon_H18d zenon_H28).
% 3.86/4.03  apply (zenon_or_s _ _ zenon_H192); [ zenon_intro zenon_H49 | zenon_intro zenon_H54 ].
% 3.86/4.03  apply (zenon_L139_); trivial.
% 3.86/4.03  apply (zenon_L140_); trivial.
% 3.86/4.03  apply (zenon_L141_); trivial.
% 3.86/4.03  (* end of lemma zenon_L142_ *)
% 3.86/4.03  assert (zenon_L143_ : (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e0) (e1)) = (e0)) -> ((op (e3) (e1)) = (e0)) -> False).
% 3.86/4.03  do 0 intro. intros zenon_H56 zenon_H153 zenon_H142.
% 3.86/4.03  cut (((op (e0) (e1)) = (e0)) = ((op (e0) (e1)) = (op (e3) (e1)))).
% 3.86/4.03  intro zenon_D_pnotp.
% 3.86/4.03  apply zenon_H56.
% 3.86/4.03  rewrite <- zenon_D_pnotp.
% 3.86/4.03  exact zenon_H153.
% 3.86/4.04  cut (((e0) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H193].
% 3.86/4.04  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H5a. apply refl_equal.
% 3.86/4.04  apply zenon_H193. apply sym_equal. exact zenon_H142.
% 3.86/4.04  (* end of lemma zenon_L143_ *)
% 3.86/4.04  assert (zenon_L144_ : (~((op (op (e1) (e1)) (op (e1) (e1))) = (op (e3) (e3)))) -> ((op (e1) (e1)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H194 zenon_H195.
% 3.86/4.04  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 3.86/4.04  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H196 zenon_H195).
% 3.86/4.04  exact (zenon_H196 zenon_H195).
% 3.86/4.04  (* end of lemma zenon_L144_ *)
% 3.86/4.04  assert (zenon_L145_ : ((op (e3) (e3)) = (e0)) -> ((op (e1) (e1)) = (e3)) -> (~((e0) = (op (op (e1) (e1)) (op (e1) (e1))))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hda zenon_H195 zenon_H197.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((e0) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H197.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e0)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19a.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hda.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H19b].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L144_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L145_ *)
% 3.86/4.04  assert (zenon_L146_ : ((op (e3) (e3)) = (e0)) -> ((op (e0) (e3)) = (e2)) -> ((op (e1) (e1)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hda zenon_H60 zenon_H195.
% 3.86/4.04  apply (zenon_notand_s _ _ ax8); [ zenon_intro zenon_H197 | zenon_intro zenon_H19c ].
% 3.86/4.04  apply (zenon_L145_); trivial.
% 3.86/4.04  apply (zenon_notand_s _ _ zenon_H19c); [ zenon_intro zenon_H19e | zenon_intro zenon_H19d ].
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((e2) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19e.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a1].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e3)) = (e2)) = ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a1.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H60.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e0) (e3)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a2].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((op (e0) (e3)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a2.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a3].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e0)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19a.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hda.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H19b].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L144_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  exact (zenon_H196 zenon_H195).
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H19d. apply sym_equal. exact zenon_H195.
% 3.86/4.04  (* end of lemma zenon_L146_ *)
% 3.86/4.04  assert (zenon_L147_ : ((op (e3) (e3)) = (e2)) -> ((op (e1) (e1)) = (e3)) -> (~((e2) = (op (op (e1) (e1)) (op (e1) (e1))))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H78 zenon_H195 zenon_H1a4.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((e2) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a4.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e2)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a5.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H78.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H19b].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L144_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L147_ *)
% 3.86/4.04  assert (zenon_L148_ : ((op (e3) (e3)) = (e2)) -> ((op (e2) (e3)) = (e0)) -> ((op (e1) (e1)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H78 zenon_Hc3 zenon_H195.
% 3.86/4.04  apply (zenon_notand_s _ _ ax18); [ zenon_intro zenon_H1a4 | zenon_intro zenon_H1a6 ].
% 3.86/4.04  apply (zenon_L147_); trivial.
% 3.86/4.04  apply (zenon_notand_s _ _ zenon_H1a6); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H19d ].
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((e0) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a7.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1a8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e3)) = (e0)) = ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc3.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e2) (e3)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a9].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((op (e2) (e3)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a9.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e2)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1a5.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H78.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H19b].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e3) (e3)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L144_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  exact (zenon_H196 zenon_H195).
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H19d. apply sym_equal. exact zenon_H195.
% 3.86/4.04  (* end of lemma zenon_L148_ *)
% 3.86/4.04  assert (zenon_L149_ : ((op (e3) (e3)) = (e2)) -> ((op (e0) (e0)) = (e3)) -> (~((e2) = (op (op (e0) (e0)) (op (e0) (e0))))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H78 zenon_H66 zenon_H1ab.
% 3.86/4.04  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((e2) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1ab.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H6c.
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1ac].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e2)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1ac.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H78.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H6f.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H6c.
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L21_); trivial.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L149_ *)
% 3.86/4.04  assert (zenon_L150_ : ((op (e3) (e3)) = (e2)) -> ((op (e2) (e3)) = (e1)) -> ((op (e0) (e0)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H78 zenon_H8a zenon_H66.
% 3.86/4.04  apply (zenon_notand_s _ _ ax20); [ zenon_intro zenon_H1ab | zenon_intro zenon_H1ad ].
% 3.86/4.04  apply (zenon_L149_); trivial.
% 3.86/4.04  apply (zenon_notand_s _ _ zenon_H1ad); [ zenon_intro zenon_H1ae | zenon_intro zenon_H70 ].
% 3.86/4.04  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((e1) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1ae.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H72.
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1af].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e3)) = (e1)) = ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (e1))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1af.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H8a.
% 3.86/4.04  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.04  cut (((op (e2) (e3)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H1b0].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [ zenon_intro zenon_H72 | zenon_intro zenon_H73 ].
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0)))) = ((op (e2) (e3)) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1b0.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H72.
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 3.86/4.04  cut (((op (op (op (e0) (e0)) (op (e0) (e0))) (op (e0) (e0))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b1].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H67].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1ac].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e3)) = (e2)) = ((op (op (e0) (e0)) (op (e0) (e0))) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1ac.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H78.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [ zenon_intro zenon_H6c | zenon_intro zenon_H6d ].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0)))) = ((op (e3) (e3)) = (op (op (e0) (e0)) (op (e0) (e0))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H6f.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H6c.
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (op (e0) (e0)) (op (e0) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 3.86/4.04  cut (((op (op (e0) (e0)) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L21_); trivial.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  apply zenon_H6d. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  exact (zenon_H67 zenon_H66).
% 3.86/4.04  apply zenon_H73. apply refl_equal.
% 3.86/4.04  apply zenon_H73. apply refl_equal.
% 3.86/4.04  apply zenon_H4c. apply refl_equal.
% 3.86/4.04  apply zenon_H73. apply refl_equal.
% 3.86/4.04  apply zenon_H73. apply refl_equal.
% 3.86/4.04  apply zenon_H70. apply sym_equal. exact zenon_H66.
% 3.86/4.04  (* end of lemma zenon_L150_ *)
% 3.86/4.04  assert (zenon_L151_ : (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hc2 zenon_Hca zenon_H12c.
% 3.86/4.04  cut (((op (e0) (e3)) = (e3)) = ((op (e0) (e3)) = (op (e2) (e3)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hc2.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hca.
% 3.86/4.04  cut (((e3) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12d].
% 3.86/4.04  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Hc5. apply refl_equal.
% 3.86/4.04  apply zenon_H12d. apply sym_equal. exact zenon_H12c.
% 3.86/4.04  (* end of lemma zenon_L151_ *)
% 3.86/4.04  assert (zenon_L152_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e0) (e0)) = (e3)) -> ((op (e3) (e3)) = (e2)) -> (~((op (e2) (e3)) = (e2))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1b2 zenon_H195 zenon_H66 zenon_H78 zenon_H91 zenon_Hc2 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b2); [ zenon_intro zenon_Hc3 | zenon_intro zenon_H1b3 ].
% 3.86/4.04  apply (zenon_L148_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b3); [ zenon_intro zenon_H8a | zenon_intro zenon_H1b4 ].
% 3.86/4.04  apply (zenon_L150_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b4); [ zenon_intro zenon_H32 | zenon_intro zenon_H12c ].
% 3.86/4.04  exact (zenon_H91 zenon_H32).
% 3.86/4.04  apply (zenon_L151_); trivial.
% 3.86/4.04  (* end of lemma zenon_L152_ *)
% 3.86/4.04  assert (zenon_L153_ : (((op (e1) (e0)) = (e3))\/(((op (e1) (e1)) = (e3))\/(((op (e1) (e2)) = (e3))\/((op (e1) (e3)) = (e3))))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (~((op (e2) (e3)) = (e2))) -> ((op (e0) (e0)) = (e3)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e1) (e3)) = (e1)) -> (~((e1) = (e2))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e0) = (e3))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e0) (e1)) = (e0)) -> (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> (~((e2) = (e3))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (~((op (e0) (e1)) = (op (e1) (e1)))) -> (~((e1) = (e3))) -> (((op (e0) (e2)) = (e1))\/(((op (e1) (e2)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e3) (e2)) = (e1))))) -> (((op (e0) (e0)) = (e3))\/(((op (e1) (e0)) = (e3))\/(((op (e2) (e0)) = (e3))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> (~((e0) = (e1))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e1) (e0)) = (e1))) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> (((op (e0) (e0)) = (e1))\/(((op (e1) (e0)) = (e1))\/(((op (e2) (e0)) = (e1))\/((op (e3) (e0)) = (e1))))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e1)) = (e0))\/(((op (e3) (e2)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1b5 zenon_Hf2 zenon_Hc2 zenon_H91 zenon_H66 zenon_H1b2 zenon_H27 zenon_H50 zenon_H92 zenon_H9b zenon_H56 zenon_H153 zenon_He8 zenon_H17e zenon_H14b zenon_H182 zenon_H5c zenon_H183 zenon_H18c zenon_Hbc zenon_He9 zenon_H175 zenon_H4a zenon_H170 zenon_H18d zenon_H17b zenon_H18e zenon_H1b6 zenon_Hb3 zenon_H5d zenon_H156 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b5); [ zenon_intro zenon_H179 | zenon_intro zenon_H1b7 ].
% 3.86/4.04  apply (zenon_L128_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b7); [ zenon_intro zenon_H195 | zenon_intro zenon_H1b8 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b6); [ zenon_intro zenon_H15f | zenon_intro zenon_H1b9 ].
% 3.86/4.04  apply (zenon_L142_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b9); [ zenon_intro zenon_H142 | zenon_intro zenon_H1ba ].
% 3.86/4.04  apply (zenon_L143_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1ba); [ zenon_intro zenon_H9c | zenon_intro zenon_Hda ].
% 3.86/4.04  apply (zenon_L31_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.04  apply (zenon_L146_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.04  apply (zenon_L132_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.04  exact (zenon_H91 zenon_H32).
% 3.86/4.04  apply (zenon_L152_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b8); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H12b ].
% 3.86/4.04  apply (zenon_L38_); trivial.
% 3.86/4.04  apply (zenon_L103_); trivial.
% 3.86/4.04  (* end of lemma zenon_L153_ *)
% 3.86/4.04  assert (zenon_L154_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e3) (e2)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1bb zenon_H187 zenon_H5d.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1bb.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H165].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H165. apply sym_equal. exact zenon_H5d.
% 3.86/4.04  (* end of lemma zenon_L154_ *)
% 3.86/4.04  assert (zenon_L155_ : (~((e1) = (e3))) -> ((op (e3) (e0)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H5c zenon_H187 zenon_H54.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((e1) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H5c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((op (e3) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H189 zenon_H54).
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L155_ *)
% 3.86/4.04  assert (zenon_L156_ : ((op (e0) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e1)) = (e0))\/(((op (e3) (e2)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (((op (e0) (e0)) = (e1))\/(((op (e1) (e0)) = (e1))\/(((op (e2) (e0)) = (e1))\/((op (e3) (e0)) = (e1))))) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> (~((op (e1) (e0)) = (e1))) -> (~((e0) = (e1))) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e0) (e0)) = (e3))\/(((op (e1) (e0)) = (e3))\/(((op (e2) (e0)) = (e3))\/((op (e3) (e0)) = (e3))))) -> (((op (e0) (e2)) = (e1))\/(((op (e1) (e2)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e3) (e2)) = (e1))))) -> (~((op (e0) (e1)) = (op (e1) (e1)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e1) = (e2))) -> ((op (e1) (e3)) = (e1)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e3)) = (e2))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (((op (e1) (e0)) = (e3))\/(((op (e1) (e1)) = (e3))\/(((op (e1) (e2)) = (e3))\/((op (e1) (e3)) = (e3))))) -> (~((e0) = (e3))) -> ((op (e1) (e0)) = (e0)) -> (~((e2) = (e3))) -> ((op (e2) (e0)) = (e2)) -> (~((e1) = (e3))) -> ((op (e3) (e0)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hca zenon_H156 zenon_H5d zenon_Hb3 zenon_H1b6 zenon_H18e zenon_H17b zenon_H18d zenon_H4a zenon_H175 zenon_He9 zenon_Hbc zenon_H18c zenon_H183 zenon_H182 zenon_H14b zenon_He8 zenon_H153 zenon_H56 zenon_H92 zenon_H50 zenon_H27 zenon_H1b2 zenon_H91 zenon_Hc2 zenon_H1b5 zenon_H9b zenon_Hf2 zenon_H17e zenon_H170 zenon_H5c zenon_H54.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18c); [ zenon_intro zenon_H66 | zenon_intro zenon_H18f ].
% 3.86/4.04  apply (zenon_L153_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18f); [ zenon_intro zenon_H179 | zenon_intro zenon_H190 ].
% 3.86/4.04  apply (zenon_L128_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H190); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H187 ].
% 3.86/4.04  apply (zenon_L136_); trivial.
% 3.86/4.04  apply (zenon_L155_); trivial.
% 3.86/4.04  (* end of lemma zenon_L156_ *)
% 3.86/4.04  assert (zenon_L157_ : ((op (e1) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> (~((e1) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H27 zenon_H12b zenon_H5c.
% 3.86/4.04  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.04  cut (((e3) = (e3)) = ((e1) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H5c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc7.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((e3) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e3)) = (e1)) = ((e3) = (e1))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hc8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H27.
% 3.86/4.04  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.04  cut (((op (e1) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1bc].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1bc zenon_H12b).
% 3.86/4.04  apply zenon_H4c. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L157_ *)
% 3.86/4.04  assert (zenon_L158_ : (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e0) (e3)))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e1) (e3)) = (e1)) -> ((op (e1) (e1)) = (e3)) -> ((op (e3) (e3)) = (e0)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H158 zenon_H153 zenon_H16d zenon_H156 zenon_H27 zenon_H195 zenon_Hda zenon_Hc2 zenon_H12c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H158); [ zenon_intro zenon_H22 | zenon_intro zenon_H159 ].
% 3.86/4.04  apply (zenon_L119_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H159); [ zenon_intro zenon_Hd7 | zenon_intro zenon_H15a ].
% 3.86/4.04  apply (zenon_L141_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H15a); [ zenon_intro zenon_H60 | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L146_); trivial.
% 3.86/4.04  apply (zenon_L151_); trivial.
% 3.86/4.04  (* end of lemma zenon_L158_ *)
% 3.86/4.04  assert (zenon_L159_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e0) (e3)))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e1)) = (e0))\/(((op (e3) (e2)) = (e0))\/((op (e3) (e3)) = (e0))))) -> (((op (e0) (e0)) = (e1))\/(((op (e1) (e0)) = (e1))\/(((op (e2) (e0)) = (e1))\/((op (e3) (e0)) = (e1))))) -> (~((op (e0) (e0)) = (op (e0) (e2)))) -> (~((op (e1) (e0)) = (e1))) -> (~((e0) = (e1))) -> (~((op (e0) (e0)) = (op (e0) (e1)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e0) (e0)) = (e3))\/(((op (e1) (e0)) = (e3))\/(((op (e2) (e0)) = (e3))\/((op (e3) (e0)) = (e3))))) -> (((op (e0) (e2)) = (e1))\/(((op (e1) (e2)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e3) (e2)) = (e1))))) -> (~((op (e0) (e1)) = (op (e1) (e1)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (((op (e0) (e0)) = (e1))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e2)) = (e1))\/((op (e0) (e3)) = (e1))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e1) = (e2))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e3)) = (e2))) -> (((op (e1) (e0)) = (e3))\/(((op (e1) (e1)) = (e3))\/(((op (e1) (e2)) = (e3))\/((op (e1) (e3)) = (e3))))) -> (~((e0) = (e3))) -> ((op (e1) (e0)) = (e0)) -> (~((e2) = (e3))) -> ((op (e2) (e0)) = (e2)) -> ((op (e3) (e0)) = (e1)) -> (((op (e0) (e3)) = (e3))\/(((op (e1) (e3)) = (e3))\/(((op (e2) (e3)) = (e3))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e1) (e3)) = (e1)) -> (~((e1) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hdc zenon_H158 zenon_H153 zenon_H16d zenon_H156 zenon_Hc2 zenon_H1b6 zenon_H18e zenon_H17b zenon_H18d zenon_H4a zenon_H175 zenon_He9 zenon_Hbc zenon_H18c zenon_H183 zenon_H182 zenon_H14b zenon_He8 zenon_H56 zenon_H92 zenon_H50 zenon_H1b2 zenon_H91 zenon_H1b5 zenon_H9b zenon_Hf2 zenon_H17e zenon_H170 zenon_H54 zenon_H1bd zenon_Hb3 zenon_H5d zenon_H27 zenon_H5c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b5); [ zenon_intro zenon_H179 | zenon_intro zenon_H1b7 ].
% 3.86/4.04  apply (zenon_L128_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b7); [ zenon_intro zenon_H195 | zenon_intro zenon_H1b8 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b6); [ zenon_intro zenon_H15f | zenon_intro zenon_H1b9 ].
% 3.86/4.04  apply (zenon_L142_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b9); [ zenon_intro zenon_H142 | zenon_intro zenon_H1ba ].
% 3.86/4.04  apply (zenon_L143_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1ba); [ zenon_intro zenon_H9c | zenon_intro zenon_Hda ].
% 3.86/4.04  apply (zenon_L31_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bd); [ zenon_intro zenon_Hca | zenon_intro zenon_H1be ].
% 3.86/4.04  apply (zenon_L156_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1be); [ zenon_intro zenon_H12b | zenon_intro zenon_H1bf ].
% 3.86/4.04  apply (zenon_L157_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bf); [ zenon_intro zenon_H12c | zenon_intro zenon_H39 ].
% 3.86/4.04  apply (zenon_L158_); trivial.
% 3.86/4.04  apply (zenon_L51_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b8); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H12b ].
% 3.86/4.04  apply (zenon_L38_); trivial.
% 3.86/4.04  apply (zenon_L157_); trivial.
% 3.86/4.04  (* end of lemma zenon_L159_ *)
% 3.86/4.04  assert (zenon_L160_ : (~((e0) = (e2))) -> ((op (e2) (e0)) = (e2)) -> ((op (e2) (e0)) = (e0)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H61 zenon_H170 zenon_H48.
% 3.86/4.04  cut (((op (e2) (e0)) = (e2)) = ((e0) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H61.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H170.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e2) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1c0].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1c0 zenon_H48).
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L160_ *)
% 3.86/4.04  assert (zenon_L161_ : ((op (e2) (e0)) = (e2)) -> ((op (e0) (e0)) = (e2)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H170 zenon_Hfe zenon_H1c1.
% 3.86/4.04  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H132 | zenon_intro zenon_H9a ].
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e0) (e0)) = (op (e2) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1c1.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H132.
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c2].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (e0)) = (op (e0) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1c2.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H170.
% 3.86/4.04  cut (((e2) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H102].
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H9a. apply refl_equal.
% 3.86/4.04  apply zenon_H102. apply sym_equal. exact zenon_Hfe.
% 3.86/4.04  apply zenon_H9a. apply refl_equal.
% 3.86/4.04  apply zenon_H9a. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L161_ *)
% 3.86/4.04  assert (zenon_L162_ : (~((e1) = (e3))) -> ((op (e3) (e1)) = (e3)) -> ((op (e3) (e1)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H5c zenon_Hf6 zenon_H58.
% 3.86/4.04  cut (((op (e3) (e1)) = (e3)) = ((e1) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H5c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf6.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((op (e3) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1c3].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1c3 zenon_H58).
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L162_ *)
% 3.86/4.04  assert (zenon_L163_ : (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e3) (e2)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hb3 zenon_H3d zenon_H5e.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e3) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hb3.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1c4].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_H1c4. apply sym_equal. exact zenon_H5e.
% 3.86/4.04  (* end of lemma zenon_L163_ *)
% 3.86/4.04  assert (zenon_L164_ : ((op (e1) (e2)) = (e1)) -> ((op (e0) (e2)) = (e1)) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H3d zenon_Ha4 zenon_Hae.
% 3.86/4.04  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H162 | zenon_intro zenon_Had ].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (e0) (e2)) = (op (e1) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hae.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H162.
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1c5].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e0) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1c5.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1c6].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_H1c6. apply sym_equal. exact zenon_Ha4.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L164_ *)
% 3.86/4.04  assert (zenon_L165_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e3) (e0)) = (e0)) -> ((op (e3) (e2)) = (e0)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1bb zenon_H15f zenon_H9c.
% 3.86/4.04  cut (((op (e3) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1bb.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H15f.
% 3.86/4.04  cut (((e0) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1c7].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H1c7. apply sym_equal. exact zenon_H9c.
% 3.86/4.04  (* end of lemma zenon_L165_ *)
% 3.86/4.04  assert (zenon_L166_ : (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (e0) (e2)) = (e2)) -> ((op (e3) (e2)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hbc zenon_Haf zenon_H1c8.
% 3.86/4.04  cut (((op (e0) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e3) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hbc.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Haf.
% 3.86/4.04  cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1c9].
% 3.86/4.04  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H24. apply refl_equal.
% 3.86/4.04  apply zenon_H1c9. apply sym_equal. exact zenon_H1c8.
% 3.86/4.04  (* end of lemma zenon_L166_ *)
% 3.86/4.04  assert (zenon_L167_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e0) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1ca zenon_H15f zenon_H1bb zenon_H3d zenon_Hb3 zenon_Haf zenon_Hbc zenon_H164 zenon_Hf6.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H9c | zenon_intro zenon_H1cb ].
% 3.86/4.04  apply (zenon_L165_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1cb); [ zenon_intro zenon_H5e | zenon_intro zenon_H1cc ].
% 3.86/4.04  apply (zenon_L163_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1cc); [ zenon_intro zenon_H1c8 | zenon_intro zenon_H5d ].
% 3.86/4.04  apply (zenon_L166_); trivial.
% 3.86/4.04  apply (zenon_L115_); trivial.
% 3.86/4.04  (* end of lemma zenon_L167_ *)
% 3.86/4.04  assert (zenon_L168_ : (~((op (op (e1) (e1)) (op (e1) (e1))) = (op (e2) (e2)))) -> ((op (e1) (e1)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1cd zenon_H1ce.
% 3.86/4.04  cut (((op (e1) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 3.86/4.04  cut (((op (e1) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1cf zenon_H1ce).
% 3.86/4.04  exact (zenon_H1cf zenon_H1ce).
% 3.86/4.04  (* end of lemma zenon_L168_ *)
% 3.86/4.04  assert (zenon_L169_ : ((op (e2) (e2)) = (e0)) -> ((op (e1) (e1)) = (e2)) -> (~((e0) = (op (op (e1) (e1)) (op (e1) (e1))))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H98 zenon_H1ce zenon_H197.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((e0) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H197.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e2)) = (e0)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19a.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H98.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e2) (e2)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1d0].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e2) (e2)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d0.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1cd].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L168_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L169_ *)
% 3.86/4.04  assert (zenon_L170_ : ((op (e2) (e2)) = (e0)) -> ((op (e0) (e2)) = (e3)) -> ((op (e1) (e1)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H98 zenon_Hbb zenon_H1ce.
% 3.86/4.04  apply (zenon_notand_s _ _ ax10); [ zenon_intro zenon_H197 | zenon_intro zenon_H1d1 ].
% 3.86/4.04  apply (zenon_L169_); trivial.
% 3.86/4.04  apply (zenon_notand_s _ _ zenon_H1d1); [ zenon_intro zenon_H1d3 | zenon_intro zenon_H1d2 ].
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((e3) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d3.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1d4].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e2)) = (e3)) = ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d4.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hbb.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((op (e0) (e2)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1d5].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [ zenon_intro zenon_H19f | zenon_intro zenon_H1a0 ].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1)))) = ((op (e0) (e2)) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d5.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H19f.
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 3.86/4.04  cut (((op (op (op (e1) (e1)) (op (e1) (e1))) (op (e1) (e1))) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1d6].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e2)) = (e0)) = ((op (op (e1) (e1)) (op (e1) (e1))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H19a.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H98.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e2) (e2)) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H1d0].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [ zenon_intro zenon_H198 | zenon_intro zenon_H199 ].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1)))) = ((op (e2) (e2)) = (op (op (e1) (e1)) (op (e1) (e1))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d0.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H198.
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (op (e1) (e1)) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H199].
% 3.86/4.04  cut (((op (op (e1) (e1)) (op (e1) (e1))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1cd].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L168_); trivial.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H199. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  exact (zenon_H1cf zenon_H1ce).
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1a0. apply refl_equal.
% 3.86/4.04  apply zenon_H1d2. apply sym_equal. exact zenon_H1ce.
% 3.86/4.04  (* end of lemma zenon_L170_ *)
% 3.86/4.04  assert (zenon_L171_ : ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e3)) -> (~((op (e1) (e1)) = (op (e3) (e1)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hf6 zenon_H195 zenon_H1d7.
% 3.86/4.04  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hf9 | zenon_intro zenon_He2 ].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (e1) (e1)) = (op (e3) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d7.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf9.
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1d8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e1)) = (e3)) = ((op (e3) (e1)) = (op (e1) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1d8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf6.
% 3.86/4.04  cut (((e3) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H19d].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  apply zenon_H19d. apply sym_equal. exact zenon_H195.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L171_ *)
% 3.86/4.04  assert (zenon_L172_ : (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> ((op (e3) (e3)) = (e1)) -> ((op (e0) (e1)) = (e2)) -> (~((op (e1) (e1)) = (op (e1) (e2)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e0) (e2)) = (e3)) -> ((op (e2) (e2)) = (e0)) -> ((op (e3) (e1)) = (e3)) -> (~((op (e1) (e1)) = (op (e3) (e1)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1d9 zenon_H68 zenon_H139 zenon_H1da zenon_H3d zenon_Hbb zenon_H98 zenon_Hf6 zenon_H1d7.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1d9); [ zenon_intro zenon_H137 | zenon_intro zenon_H1db ].
% 3.86/4.04  apply (zenon_L90_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1db); [ zenon_intro zenon_H1f | zenon_intro zenon_H1dc ].
% 3.86/4.04  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H162 | zenon_intro zenon_Had ].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (e1) (e1)) = (op (e1) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1da.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H162.
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1dd].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e1) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1dd.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_He7. apply sym_equal. exact zenon_H1f.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1dc); [ zenon_intro zenon_H1ce | zenon_intro zenon_H195 ].
% 3.86/4.04  apply (zenon_L170_); trivial.
% 3.86/4.04  apply (zenon_L171_); trivial.
% 3.86/4.04  (* end of lemma zenon_L172_ *)
% 3.86/4.04  assert (zenon_L173_ : (((op (e0) (e2)) = (e0))\/(((op (e1) (e2)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e3) (e2)) = (e0))))) -> (~((op (e1) (e1)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e2)))) -> ((op (e0) (e1)) = (e2)) -> (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> (~((op (e0) (e2)) = (e0))) -> (((op (e0) (e2)) = (e0))\/(((op (e0) (e2)) = (e1))\/(((op (e0) (e2)) = (e2))\/((op (e0) (e2)) = (e3))))) -> (~((e1) = (e3))) -> (~((e0) = (e1))) -> (((op (e3) (e0)) = (e1))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e2)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e3) (e0)) = (e0)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H9e zenon_H1d7 zenon_Hf6 zenon_H3d zenon_H1da zenon_H139 zenon_H1d9 zenon_H1ca zenon_Hb3 zenon_Hbc zenon_H164 zenon_Hae zenon_H1de zenon_Hbf zenon_H5c zenon_H4a zenon_H8d zenon_H1bb zenon_H15f.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H9e); [ zenon_intro zenon_H21 | zenon_intro zenon_H9f ].
% 3.86/4.04  exact (zenon_H1de zenon_H21).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H9f); [ zenon_intro zenon_H80 | zenon_intro zenon_Ha0 ].
% 3.86/4.04  apply (zenon_L130_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Ha0); [ zenon_intro zenon_H98 | zenon_intro zenon_H9c ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H54 | zenon_intro zenon_H8e ].
% 3.86/4.04  apply (zenon_L140_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8e); [ zenon_intro zenon_H58 | zenon_intro zenon_H8f ].
% 3.86/4.04  apply (zenon_L162_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L163_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hbf); [ zenon_intro zenon_H21 | zenon_intro zenon_Hc0 ].
% 3.86/4.04  exact (zenon_H1de zenon_H21).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hc0); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hc1 ].
% 3.86/4.04  apply (zenon_L164_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hc1); [ zenon_intro zenon_Haf | zenon_intro zenon_Hbb ].
% 3.86/4.04  apply (zenon_L167_); trivial.
% 3.86/4.04  apply (zenon_L172_); trivial.
% 3.86/4.04  apply (zenon_L165_); trivial.
% 3.86/4.04  (* end of lemma zenon_L173_ *)
% 3.86/4.04  assert (zenon_L174_ : (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (e2) (e0)) = (e2)) -> ((op (e3) (e0)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1df zenon_H170 zenon_H1e0.
% 3.86/4.04  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (e0)) = (op (e3) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1df.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H170.
% 3.86/4.04  cut (((e2) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1e1].
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H9a. apply refl_equal.
% 3.86/4.04  apply zenon_H1e1. apply sym_equal. exact zenon_H1e0.
% 3.86/4.04  (* end of lemma zenon_L174_ *)
% 3.86/4.04  assert (zenon_L175_ : (~((e2) = (e3))) -> ((op (e3) (e1)) = (e3)) -> ((op (e3) (e1)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H17e zenon_Hf6 zenon_H1e2.
% 3.86/4.04  cut (((op (e3) (e1)) = (e3)) = ((e2) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17e.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf6.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1e3].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1e3 zenon_H1e2).
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L175_ *)
% 3.86/4.04  assert (zenon_L176_ : (((op (e3) (e0)) = (e2))\/(((op (e3) (e1)) = (e2))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e3)) = (e2))))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (e3) (e1)) = (e3)) -> (~((e2) = (e3))) -> ((op (e0) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e0) (e0)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1e4 zenon_H170 zenon_H1df zenon_Hf6 zenon_H17e zenon_Haf zenon_Hbc zenon_H8a zenon_H66.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e4); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e5 ].
% 3.86/4.04  apply (zenon_L174_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e5); [ zenon_intro zenon_H1e2 | zenon_intro zenon_H1e6 ].
% 3.86/4.04  apply (zenon_L175_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e6); [ zenon_intro zenon_H1c8 | zenon_intro zenon_H78 ].
% 3.86/4.04  apply (zenon_L166_); trivial.
% 3.86/4.04  apply (zenon_L150_); trivial.
% 3.86/4.04  (* end of lemma zenon_L176_ *)
% 3.86/4.04  assert (zenon_L177_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e0)) = (e3)) -> ((op (e3) (e3)) = (e2)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1b2 zenon_H22 zenon_Hc2 zenon_H66 zenon_H78 zenon_H89 zenon_H128 zenon_H12b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b2); [ zenon_intro zenon_Hc3 | zenon_intro zenon_H1b3 ].
% 3.86/4.04  apply (zenon_L42_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b3); [ zenon_intro zenon_H8a | zenon_intro zenon_H1b4 ].
% 3.86/4.04  apply (zenon_L150_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b4); [ zenon_intro zenon_H32 | zenon_intro zenon_H12c ].
% 3.86/4.04  apply (zenon_L73_); trivial.
% 3.86/4.04  apply (zenon_L82_); trivial.
% 3.86/4.04  (* end of lemma zenon_L177_ *)
% 3.86/4.04  assert (zenon_L178_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (e3) (e3)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H10a zenon_H69 zenon_H78.
% 3.86/4.04  cut (((op (e1) (e3)) = (e2)) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H10a.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H69.
% 3.86/4.04  cut (((e2) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H82].
% 3.86/4.04  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H2b. apply refl_equal.
% 3.86/4.04  apply zenon_H82. apply sym_equal. exact zenon_H78.
% 3.86/4.04  (* end of lemma zenon_L178_ *)
% 3.86/4.04  assert (zenon_L179_ : (((op (e3) (e0)) = (e2))\/(((op (e3) (e1)) = (e2))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e3)) = (e2))))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (e3) (e1)) = (e3)) -> (~((e2) = (e3))) -> ((op (e0) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e2) (e2)) = (e3)) -> ((op (e3) (e3)) = (e1)) -> (~((op (e1) (e3)) = (e1))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1e4 zenon_H170 zenon_H1df zenon_Hf6 zenon_H17e zenon_Haf zenon_Hbc zenon_H12e zenon_Hd0 zenon_H68 zenon_Hf1 zenon_H10a zenon_H128 zenon_H12c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e4); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e5 ].
% 3.86/4.04  apply (zenon_L174_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e5); [ zenon_intro zenon_H1e2 | zenon_intro zenon_H1e6 ].
% 3.86/4.04  apply (zenon_L175_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e6); [ zenon_intro zenon_H1c8 | zenon_intro zenon_H78 ].
% 3.86/4.04  apply (zenon_L166_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H12e); [ zenon_intro zenon_H10b | zenon_intro zenon_H12f ].
% 3.86/4.04  apply (zenon_L72_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H12f); [ zenon_intro zenon_H27 | zenon_intro zenon_H130 ].
% 3.86/4.04  exact (zenon_Hf1 zenon_H27).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H130); [ zenon_intro zenon_H69 | zenon_intro zenon_H12b ].
% 3.86/4.04  apply (zenon_L178_); trivial.
% 3.86/4.04  apply (zenon_L82_); trivial.
% 3.86/4.04  (* end of lemma zenon_L179_ *)
% 3.86/4.04  assert (zenon_L180_ : ((op (e0) (e2)) = (e2)) -> ((op (e0) (e2)) = (e3)) -> (~((e2) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Haf zenon_Hbb zenon_H17e.
% 3.86/4.04  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.04  cut (((e3) = (e3)) = ((e2) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17e.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc7.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((e3) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H17f].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e2)) = (e2)) = ((e3) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17f.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Haf.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e0) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hfc].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_Hfc zenon_Hbb).
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L180_ *)
% 3.86/4.04  assert (zenon_L181_ : ((op (e1) (e2)) = (e1)) -> ((op (e1) (e2)) = (e3)) -> (~((e1) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H3d zenon_Hb2 zenon_H5c.
% 3.86/4.04  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.04  cut (((e3) = (e3)) = ((e1) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H5c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc7.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((e3) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((e3) = (e1))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hc8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.04  cut (((op (e1) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1e7].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1e7 zenon_Hb2).
% 3.86/4.04  apply zenon_H4c. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L181_ *)
% 3.86/4.04  assert (zenon_L182_ : ((op (e3) (e1)) = (e3)) -> ((op (e0) (e1)) = (e3)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hf6 zenon_Hc6 zenon_H56.
% 3.86/4.04  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hf9 | zenon_intro zenon_He2 ].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (e0) (e1)) = (op (e3) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H56.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf9.
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e1)) = (e3)) = ((op (e3) (e1)) = (op (e0) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1e8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf6.
% 3.86/4.04  cut (((e3) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e9].
% 3.86/4.04  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  apply zenon_H1e9. apply sym_equal. exact zenon_Hc6.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  apply zenon_He2. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L182_ *)
% 3.86/4.04  assert (zenon_L183_ : (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((e0) = (e1))) -> (((op (e3) (e0)) = (e2))\/(((op (e3) (e1)) = (e2))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e3)) = (e2))))) -> ((op (e2) (e0)) = (e2)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (e1))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e2)) = (e1)) -> (~((e1) = (e3))) -> (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (((op (e0) (e3)) = (e3))\/(((op (e1) (e3)) = (e3))\/(((op (e2) (e3)) = (e3))\/((op (e3) (e3)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e2) (e0)) = (e3))\/(((op (e2) (e1)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e2) (e3)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e3)) -> (~((e2) = (e3))) -> ((op (e0) (e2)) = (e2)) -> ((op (e0) (e3)) = (e0)) -> (~((e0) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_He9 zenon_H164 zenon_He3 zenon_H4a zenon_H1e4 zenon_H170 zenon_H1df zenon_Hbc zenon_H12e zenon_Hf1 zenon_H10a zenon_H128 zenon_H3d zenon_H5c zenon_H11a zenon_H1bd zenon_H89 zenon_Hc2 zenon_H1b2 zenon_He1 zenon_Hf8 zenon_H14a zenon_H56 zenon_Hf6 zenon_H17e zenon_Haf zenon_H22 zenon_H9b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14a); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H14d ].
% 3.86/4.04  apply (zenon_L136_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14d); [ zenon_intro zenon_Hf7 | zenon_intro zenon_H14e ].
% 3.86/4.04  apply (zenon_L63_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14e); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12c ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.04  apply (zenon_L49_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.04  exact (zenon_Hf1 zenon_H27).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L176_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e4); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1e5 ].
% 3.86/4.04  apply (zenon_L174_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e5); [ zenon_intro zenon_H1e2 | zenon_intro zenon_H1e6 ].
% 3.86/4.04  apply (zenon_L175_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1e6); [ zenon_intro zenon_H1c8 | zenon_intro zenon_H78 ].
% 3.86/4.04  apply (zenon_L166_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bd); [ zenon_intro zenon_Hca | zenon_intro zenon_H1be ].
% 3.86/4.04  apply (zenon_L44_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1be); [ zenon_intro zenon_H12b | zenon_intro zenon_H1bf ].
% 3.86/4.04  apply (zenon_L177_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bf); [ zenon_intro zenon_H12c | zenon_intro zenon_H39 ].
% 3.86/4.04  apply (zenon_L179_); trivial.
% 3.86/4.04  apply (zenon_L74_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_Hbb | zenon_intro zenon_H11b ].
% 3.86/4.04  apply (zenon_L180_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H11c ].
% 3.86/4.04  apply (zenon_L181_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11c); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H5d ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.04  apply (zenon_L49_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.04  exact (zenon_Hf1 zenon_H27).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L176_); trivial.
% 3.86/4.04  apply (zenon_L179_); trivial.
% 3.86/4.04  apply (zenon_L115_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L182_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L180_); trivial.
% 3.86/4.04  apply (zenon_L44_); trivial.
% 3.86/4.04  (* end of lemma zenon_L183_ *)
% 3.86/4.04  assert (zenon_L184_ : (((op (e0) (e3)) = (e0))/\(~((op (e3) (e0)) = (e3)))) -> (~((op (e0) (e3)) = (e0))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H25 zenon_H1ea.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25). zenon_intro zenon_H22. zenon_intro zenon_H26.
% 3.86/4.04  exact (zenon_H1ea zenon_H22).
% 3.86/4.04  (* end of lemma zenon_L184_ *)
% 3.86/4.04  assert (zenon_L185_ : ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e3)) -> (~((op (e0) (e0)) = (op (e3) (e0)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H187 zenon_H66 zenon_H1eb.
% 3.86/4.04  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H1ec | zenon_intro zenon_H160 ].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e0) (e0)) = (op (e3) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1eb.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H1ec.
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ed].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (e0)) = (op (e0) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1ed.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H70].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H70. apply sym_equal. exact zenon_H66.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L185_ *)
% 3.86/4.04  assert (zenon_L186_ : ((op (e1) (e0)) = (e0)) -> ((op (e1) (e0)) = (e2)) -> (~((e0) = (e2))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hf2 zenon_H1ee zenon_H61.
% 3.86/4.04  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.04  cut (((e2) = (e2)) = ((e0) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H61.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H62.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((e2) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H63].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e0)) = (e0)) = ((e2) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H63.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hf2.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e1) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1ef zenon_H1ee).
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L186_ *)
% 3.86/4.04  assert (zenon_L187_ : (~((op (e0) (e1)) = (op (e2) (e1)))) -> ((op (e0) (e1)) = (e0)) -> ((op (e2) (e1)) = (e0)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1f0 zenon_H153 zenon_Ha1.
% 3.86/4.04  cut (((op (e0) (e1)) = (e0)) = ((op (e0) (e1)) = (op (e2) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1f0.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H153.
% 3.86/4.04  cut (((e0) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H141].
% 3.86/4.04  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H5a. apply refl_equal.
% 3.86/4.04  apply zenon_H141. apply sym_equal. exact zenon_Ha1.
% 3.86/4.04  (* end of lemma zenon_L187_ *)
% 3.86/4.04  assert (zenon_L188_ : (((op (e2) (e0)) = (e0))\/(((op (e2) (e1)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e2) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e2) (e1)))) -> ((op (e1) (e1)) = (e2)) -> ((op (e0) (e2)) = (e3)) -> (~((e0) = (e2))) -> ((op (e2) (e3)) = (e2)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hee zenon_H131 zenon_Hf2 zenon_H153 zenon_H1f0 zenon_H1ce zenon_Hbb zenon_H61 zenon_H32.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H48 | zenon_intro zenon_Hef ].
% 3.86/4.04  apply (zenon_L87_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hf0 ].
% 3.86/4.04  apply (zenon_L187_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_H98 | zenon_intro zenon_Hc3 ].
% 3.86/4.04  apply (zenon_L170_); trivial.
% 3.86/4.04  apply (zenon_L78_); trivial.
% 3.86/4.04  (* end of lemma zenon_L188_ *)
% 3.86/4.04  assert (zenon_L189_ : ((op (e1) (e2)) = (e1)) -> ((op (e1) (e2)) = (e2)) -> (~((e1) = (e2))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H3d zenon_Hb0 zenon_H50.
% 3.86/4.04  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H62 | zenon_intro zenon_H4f ].
% 3.86/4.04  cut (((e2) = (e2)) = ((e1) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H50.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H62.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((e2) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((e2) = (e1))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H15b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.04  cut (((op (e1) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1f1].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1f1 zenon_Hb0).
% 3.86/4.04  apply zenon_H4c. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L189_ *)
% 3.86/4.04  assert (zenon_L190_ : (((op (e1) (e0)) = (e2))\/(((op (e1) (e1)) = (e2))\/(((op (e1) (e2)) = (e2))\/((op (e1) (e3)) = (e2))))) -> (~((e0) = (e2))) -> ((op (e0) (e2)) = (e3)) -> (~((op (e0) (e1)) = (op (e2) (e1)))) -> ((op (e0) (e1)) = (e0)) -> ((op (e1) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e1)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e2) (e3)) = (e0))))) -> (~((e1) = (e2))) -> ((op (e1) (e2)) = (e1)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1f2 zenon_H61 zenon_Hbb zenon_H1f0 zenon_H153 zenon_Hf2 zenon_H131 zenon_Hee zenon_H50 zenon_H3d zenon_H32 zenon_H128.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1ee | zenon_intro zenon_H1f3 ].
% 3.86/4.04  apply (zenon_L186_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1ce | zenon_intro zenon_H1f4 ].
% 3.86/4.04  apply (zenon_L188_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_Hb0 | zenon_intro zenon_H69 ].
% 3.86/4.04  apply (zenon_L189_); trivial.
% 3.86/4.04  apply (zenon_L81_); trivial.
% 3.86/4.04  (* end of lemma zenon_L190_ *)
% 3.86/4.04  assert (zenon_L191_ : ((op (e0) (e3)) = (e1)) -> ((op (e0) (e3)) = (e3)) -> (~((e1) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hd7 zenon_Hca zenon_H5c.
% 3.86/4.04  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.04  cut (((e3) = (e3)) = ((e1) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H5c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc7.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((e3) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e3)) = (e1)) = ((e3) = (e1))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hc8.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hd7.
% 3.86/4.04  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 3.86/4.04  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_Hcc zenon_Hca).
% 3.86/4.04  apply zenon_H4c. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L191_ *)
% 3.86/4.04  assert (zenon_L192_ : (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((e1) = (e3))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (~((e1) = (e2))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e2) (e2)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_He3 zenon_H5c zenon_H3d zenon_H16e zenon_H50 zenon_H12e zenon_Hd0 zenon_H10a zenon_H128 zenon_H32 zenon_H156 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.04  apply (zenon_L191_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.04  apply (zenon_L121_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L100_); trivial.
% 3.86/4.04  apply (zenon_L104_); trivial.
% 3.86/4.04  (* end of lemma zenon_L192_ *)
% 3.86/4.04  assert (zenon_L193_ : (((op (e1) (e0)) = (e2))\/(((op (e1) (e1)) = (e2))\/(((op (e1) (e2)) = (e2))\/((op (e1) (e3)) = (e2))))) -> (~((op (e3) (e2)) = (e3))) -> (((op (e0) (e3)) = (e1))\/(((op (e1) (e3)) = (e1))\/(((op (e2) (e3)) = (e1))\/((op (e3) (e3)) = (e1))))) -> (~((e1) = (e3))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e1)) = (e0))\/(((op (e2) (e2)) = (e0))\/((op (e2) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e0) (e1)) = (e0)) -> (~((op (e0) (e1)) = (op (e2) (e1)))) -> (~((e0) = (e2))) -> (((op (e0) (e2)) = (e3))\/(((op (e1) (e2)) = (e3))\/(((op (e2) (e2)) = (e3))\/((op (e3) (e2)) = (e3))))) -> (~((e1) = (e2))) -> ((op (e1) (e2)) = (e1)) -> ((op (e2) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1f2 zenon_H36 zenon_He3 zenon_H5c zenon_H16e zenon_H12e zenon_H10a zenon_H156 zenon_Hca zenon_Hee zenon_H131 zenon_Hf2 zenon_H153 zenon_H1f0 zenon_H61 zenon_H11a zenon_H50 zenon_H3d zenon_H32 zenon_H128.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1ee | zenon_intro zenon_H1f3 ].
% 3.86/4.04  apply (zenon_L186_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1ce | zenon_intro zenon_H1f4 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_Hbb | zenon_intro zenon_H11b ].
% 3.86/4.04  apply (zenon_L188_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_Hb2 | zenon_intro zenon_H11c ].
% 3.86/4.04  apply (zenon_L181_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H11c); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H5d ].
% 3.86/4.04  apply (zenon_L192_); trivial.
% 3.86/4.04  exact (zenon_H36 zenon_H5d).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_Hb0 | zenon_intro zenon_H69 ].
% 3.86/4.04  apply (zenon_L189_); trivial.
% 3.86/4.04  apply (zenon_L81_); trivial.
% 3.86/4.04  (* end of lemma zenon_L193_ *)
% 3.86/4.04  assert (zenon_L194_ : ((op (e0) (e3)) = (e1)) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e0) (e3)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hd7 zenon_H41 zenon_H1f5.
% 3.86/4.04  elim (classic ((op (e0) (e3)) = (op (e0) (e3)))); [ zenon_intro zenon_H1f6 | zenon_intro zenon_Hc5 ].
% 3.86/4.04  cut (((op (e0) (e3)) = (op (e0) (e3))) = ((op (e0) (e0)) = (op (e0) (e3)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1f5.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H1f6.
% 3.86/4.04  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.04  cut (((op (e0) (e3)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1f7].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e3)) = (e1)) = ((op (e0) (e3)) = (op (e0) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1f7.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hd7.
% 3.86/4.04  cut (((e1) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 3.86/4.04  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Hc5. apply refl_equal.
% 3.86/4.04  apply zenon_H46. apply sym_equal. exact zenon_H41.
% 3.86/4.04  apply zenon_Hc5. apply refl_equal.
% 3.86/4.04  apply zenon_Hc5. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L194_ *)
% 3.86/4.04  assert (zenon_L195_ : (((op (e0) (e0)) = (e1))\/(((op (e1) (e0)) = (e1))\/(((op (e2) (e0)) = (e1))\/((op (e3) (e0)) = (e1))))) -> (~((op (e0) (e0)) = (op (e0) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e1) (e0)) = (e1))) -> (~((e0) = (e1))) -> ((op (e2) (e0)) = (e0)) -> (~((e1) = (e3))) -> ((op (e3) (e0)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H18e zenon_H1f5 zenon_Hd7 zenon_H18d zenon_H4a zenon_H48 zenon_H5c zenon_H187.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18e); [ zenon_intro zenon_H41 | zenon_intro zenon_H191 ].
% 3.86/4.04  apply (zenon_L194_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H191); [ zenon_intro zenon_H28 | zenon_intro zenon_H192 ].
% 3.86/4.04  exact (zenon_H18d zenon_H28).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H192); [ zenon_intro zenon_H49 | zenon_intro zenon_H54 ].
% 3.86/4.04  apply (zenon_L13_); trivial.
% 3.86/4.04  apply (zenon_L155_); trivial.
% 3.86/4.04  (* end of lemma zenon_L195_ *)
% 3.86/4.04  assert (zenon_L196_ : (~((op (e1) (e2)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e2) (e2)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hac zenon_H3d zenon_H7a.
% 3.86/4.04  cut (((op (e1) (e2)) = (e1)) = ((op (e1) (e2)) = (op (e2) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_Hac.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H3d.
% 3.86/4.04  cut (((e1) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 3.86/4.04  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_Had. apply refl_equal.
% 3.86/4.04  apply zenon_Hcd. apply sym_equal. exact zenon_H7a.
% 3.86/4.04  (* end of lemma zenon_L196_ *)
% 3.86/4.04  assert (zenon_L197_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e2)) = (op (e2) (e2)))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> ((op (e3) (e3)) = (e1)) -> ((op (e1) (e3)) = (e0)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_Hd4 zenon_H48 zenon_H97 zenon_H3d zenon_Hac zenon_H107 zenon_H32 zenon_H68 zenon_H10b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_H98 | zenon_intro zenon_Hd5 ].
% 3.86/4.04  apply (zenon_L30_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hd5); [ zenon_intro zenon_H7a | zenon_intro zenon_Hd6 ].
% 3.86/4.04  apply (zenon_L196_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hd6); [ zenon_intro zenon_H40 | zenon_intro zenon_Hd0 ].
% 3.86/4.04  apply (zenon_L68_); trivial.
% 3.86/4.04  apply (zenon_L72_); trivial.
% 3.86/4.04  (* end of lemma zenon_L197_ *)
% 3.86/4.04  assert (zenon_L198_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (e0)) = (e0)) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e3) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H12e zenon_H107 zenon_Hac zenon_H3d zenon_H97 zenon_H48 zenon_Hd4 zenon_H68 zenon_H10a zenon_H128 zenon_H32 zenon_H156 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H12e); [ zenon_intro zenon_H10b | zenon_intro zenon_H12f ].
% 3.86/4.04  apply (zenon_L197_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H12f); [ zenon_intro zenon_H27 | zenon_intro zenon_H130 ].
% 3.86/4.04  apply (zenon_L102_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H130); [ zenon_intro zenon_H69 | zenon_intro zenon_H12b ].
% 3.86/4.04  apply (zenon_L81_); trivial.
% 3.86/4.04  apply (zenon_L103_); trivial.
% 3.86/4.04  (* end of lemma zenon_L198_ *)
% 3.86/4.04  assert (zenon_L199_ : (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e3)) = (e0))) -> ((op (e3) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H158 zenon_H1ea zenon_H68 zenon_Hd9 zenon_Hc2 zenon_H32 zenon_H156 zenon_H12b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H158); [ zenon_intro zenon_H22 | zenon_intro zenon_H159 ].
% 3.86/4.04  exact (zenon_H1ea zenon_H22).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H159); [ zenon_intro zenon_Hd7 | zenon_intro zenon_H15a ].
% 3.86/4.04  apply (zenon_L101_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H15a); [ zenon_intro zenon_H60 | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L98_); trivial.
% 3.86/4.04  apply (zenon_L103_); trivial.
% 3.86/4.04  (* end of lemma zenon_L199_ *)
% 3.86/4.04  assert (zenon_L200_ : (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e3)) = (e0))) -> ((op (e3) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H158 zenon_H1ea zenon_H68 zenon_Hd9 zenon_H32 zenon_Hc2 zenon_H12c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H158); [ zenon_intro zenon_H22 | zenon_intro zenon_H159 ].
% 3.86/4.04  exact (zenon_H1ea zenon_H22).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H159); [ zenon_intro zenon_Hd7 | zenon_intro zenon_H15a ].
% 3.86/4.04  apply (zenon_L101_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H15a); [ zenon_intro zenon_H60 | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L98_); trivial.
% 3.86/4.04  apply (zenon_L151_); trivial.
% 3.86/4.04  (* end of lemma zenon_L200_ *)
% 3.86/4.04  assert (zenon_L201_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e3) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H15e zenon_H187 zenon_H39.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H15e.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdd].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_Hdd. apply sym_equal. exact zenon_H39.
% 3.86/4.04  (* end of lemma zenon_L201_ *)
% 3.86/4.04  assert (zenon_L202_ : (((op (e0) (e3)) = (e3))\/(((op (e1) (e3)) = (e3))\/(((op (e2) (e3)) = (e3))\/((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> (~((op (e1) (e2)) = (op (e2) (e2)))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e3) (e3)) = (e1)) -> (~((op (e0) (e3)) = (e0))) -> (((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1bd zenon_H128 zenon_H10a zenon_Hd4 zenon_H48 zenon_H97 zenon_H3d zenon_Hac zenon_H107 zenon_H12e zenon_H156 zenon_Hc2 zenon_H32 zenon_Hd9 zenon_H68 zenon_H1ea zenon_H158 zenon_H15e zenon_H187.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bd); [ zenon_intro zenon_Hca | zenon_intro zenon_H1be ].
% 3.86/4.04  apply (zenon_L198_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1be); [ zenon_intro zenon_H12b | zenon_intro zenon_H1bf ].
% 3.86/4.04  apply (zenon_L199_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1bf); [ zenon_intro zenon_H12c | zenon_intro zenon_H39 ].
% 3.86/4.04  apply (zenon_L200_); trivial.
% 3.86/4.04  apply (zenon_L201_); trivial.
% 3.86/4.04  (* end of lemma zenon_L202_ *)
% 3.86/4.04  assert (zenon_L203_ : (((op (e3) (e2)) = (e3))/\(~((op (e2) (e3)) = (e2)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H166 zenon_H187 zenon_H1bb.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H166). zenon_intro zenon_H5d. zenon_intro zenon_H91.
% 3.86/4.04  apply (zenon_L154_); trivial.
% 3.86/4.04  (* end of lemma zenon_L203_ *)
% 3.86/4.04  assert (zenon_L204_ : (~((op (op (e2) (e2)) (op (e2) (e2))) = (op (e1) (e1)))) -> ((op (e2) (e2)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1f8 zenon_H7a.
% 3.86/4.04  cut (((op (e2) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1f9].
% 3.86/4.04  cut (((op (e2) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1f9].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H1f9 zenon_H7a).
% 3.86/4.04  exact (zenon_H1f9 zenon_H7a).
% 3.86/4.04  (* end of lemma zenon_L204_ *)
% 3.86/4.04  assert (zenon_L205_ : ((op (e1) (e1)) = (e0)) -> ((op (e2) (e2)) = (e1)) -> (~((e0) = (op (op (e2) (e2)) (op (e2) (e2))))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H137 zenon_H7a zenon_H11f.
% 3.86/4.04  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((e0) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H11f.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H10f.
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e1)) = (e0)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H120.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H137.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e1) (e1)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1fa].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e1) (e1)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1fa.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H10f.
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f8].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L204_); trivial.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L205_ *)
% 3.86/4.04  assert (zenon_L206_ : ((op (e1) (e1)) = (e0)) -> ((op (e0) (e1)) = (e3)) -> ((op (e2) (e2)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H137 zenon_Hc6 zenon_H7a.
% 3.86/4.04  apply (zenon_notand_s _ _ ax11); [ zenon_intro zenon_H11f | zenon_intro zenon_H1fb ].
% 3.86/4.04  apply (zenon_L205_); trivial.
% 3.86/4.04  apply (zenon_notand_s _ _ zenon_H1fb); [ zenon_intro zenon_H1fc | zenon_intro zenon_Hcd ].
% 3.86/4.04  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((e3) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1fc.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H115.
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1fd].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e1)) = (e3)) = ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1fd.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc6.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((op (e0) (e1)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1fe].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [ zenon_intro zenon_H115 | zenon_intro zenon_H116 ].
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2)))) = ((op (e0) (e1)) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1fe.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H115.
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 3.86/4.04  cut (((op (op (op (e2) (e2)) (op (e2) (e2))) (op (e2) (e2))) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ff].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1f9].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e1) (e1)) = (e0)) = ((op (op (e2) (e2)) (op (e2) (e2))) = (e0))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H120.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H137.
% 3.86/4.04  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H47].
% 3.86/4.04  cut (((op (e1) (e1)) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1fa].
% 3.86/4.04  congruence.
% 3.86/4.04  elim (classic ((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [ zenon_intro zenon_H10f | zenon_intro zenon_H110 ].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2)))) = ((op (e1) (e1)) = (op (op (e2) (e2)) (op (e2) (e2))))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1fa.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H10f.
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (op (e2) (e2)) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 3.86/4.04  cut (((op (op (e2) (e2)) (op (e2) (e2))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f8].
% 3.86/4.04  congruence.
% 3.86/4.04  apply (zenon_L204_); trivial.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  apply zenon_H110. apply refl_equal.
% 3.86/4.04  apply zenon_H47. apply refl_equal.
% 3.86/4.04  exact (zenon_H1f9 zenon_H7a).
% 3.86/4.04  apply zenon_H116. apply refl_equal.
% 3.86/4.04  apply zenon_H116. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H116. apply refl_equal.
% 3.86/4.04  apply zenon_H116. apply refl_equal.
% 3.86/4.04  apply zenon_Hcd. apply sym_equal. exact zenon_H7a.
% 3.86/4.04  (* end of lemma zenon_L206_ *)
% 3.86/4.04  assert (zenon_L207_ : (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e1)) -> ((op (e2) (e3)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H128 zenon_H27 zenon_H8a.
% 3.86/4.04  cut (((op (e1) (e3)) = (e1)) = ((op (e1) (e3)) = (op (e2) (e3)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H128.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H27.
% 3.86/4.04  cut (((e1) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H200].
% 3.86/4.04  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H2b. apply refl_equal.
% 3.86/4.04  apply zenon_H200. apply sym_equal. exact zenon_H8a.
% 3.86/4.04  (* end of lemma zenon_L207_ *)
% 3.86/4.04  assert (zenon_L208_ : (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> (~((e0) = (e1))) -> ((op (e2) (e0)) = (e0)) -> ((op (e2) (e1)) = (e2)) -> (~((e1) = (e2))) -> ((op (e0) (e1)) = (e3)) -> ((op (e1) (e1)) = (e0)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H90 zenon_H4a zenon_H48 zenon_H31 zenon_H50 zenon_Hc6 zenon_H137 zenon_H128 zenon_H27.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H49 | zenon_intro zenon_H93 ].
% 3.86/4.04  apply (zenon_L13_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H93); [ zenon_intro zenon_H51 | zenon_intro zenon_H94 ].
% 3.86/4.04  apply (zenon_L15_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H94); [ zenon_intro zenon_H7a | zenon_intro zenon_H8a ].
% 3.86/4.04  apply (zenon_L206_); trivial.
% 3.86/4.04  apply (zenon_L207_); trivial.
% 3.86/4.04  (* end of lemma zenon_L208_ *)
% 3.86/4.04  assert (zenon_L209_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e1)) = (e3)) -> (~((e1) = (e2))) -> ((op (e2) (e1)) = (e2)) -> ((op (e2) (e0)) = (e0)) -> (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> ((op (e0) (e2)) = (e0)) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> (~((e0) = (e1))) -> ((op (e1) (e3)) = (e1)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H14b zenon_H131 zenon_H128 zenon_Hc6 zenon_H50 zenon_H31 zenon_H48 zenon_H90 zenon_H21 zenon_Hae zenon_H4a zenon_H27.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14b); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H150 ].
% 3.86/4.04  apply (zenon_L87_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H150); [ zenon_intro zenon_H137 | zenon_intro zenon_H151 ].
% 3.86/4.04  apply (zenon_L208_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H151); [ zenon_intro zenon_H80 | zenon_intro zenon_H10b ].
% 3.86/4.04  apply (zenon_L94_); trivial.
% 3.86/4.04  apply (zenon_L134_); trivial.
% 3.86/4.04  (* end of lemma zenon_L209_ *)
% 3.86/4.04  assert (zenon_L210_ : ((op (e3) (e0)) = (e3)) -> ((op (e2) (e0)) = (e3)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H187 zenon_Hf4 zenon_H1df.
% 3.86/4.04  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H1ec | zenon_intro zenon_H160 ].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e2) (e0)) = (op (e3) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1df.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H1ec.
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H201].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (e0)) = (op (e2) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H201.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H202].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H202. apply sym_equal. exact zenon_Hf4.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L210_ *)
% 3.86/4.04  assert (zenon_L211_ : (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (e1) (e3)) = (e1)) -> (~((e0) = (e1))) -> (~((op (e0) (e2)) = (op (e1) (e2)))) -> ((op (e0) (e2)) = (e0)) -> (((op (e2) (e0)) = (e1))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e2)) = (e1))\/((op (e2) (e3)) = (e1))))) -> ((op (e2) (e1)) = (e2)) -> (~((e1) = (e2))) -> ((op (e0) (e1)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e2) (e0)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e1)) = (e0))\/(((op (e1) (e2)) = (e0))\/((op (e1) (e3)) = (e0))))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (e2))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H203 zenon_H27 zenon_H4a zenon_Hae zenon_H21 zenon_H90 zenon_H31 zenon_H50 zenon_Hc6 zenon_H128 zenon_H131 zenon_H14b zenon_H41 zenon_H1c1 zenon_H16c zenon_H187 zenon_H1df.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H203); [ zenon_intro zenon_H48 | zenon_intro zenon_H204 ].
% 3.86/4.04  apply (zenon_L209_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H204); [ zenon_intro zenon_H49 | zenon_intro zenon_H205 ].
% 3.86/4.04  cut (((op (e0) (e0)) = (e1)) = ((op (e0) (e0)) = (op (e2) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1c1.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H41.
% 3.86/4.04  cut (((e1) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H206].
% 3.86/4.04  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H207].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H207. apply refl_equal.
% 3.86/4.04  apply zenon_H206. apply sym_equal. exact zenon_H49.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H205); [ zenon_intro zenon_H170 | zenon_intro zenon_Hf4 ].
% 3.86/4.04  exact (zenon_H16c zenon_H170).
% 3.86/4.04  apply (zenon_L210_); trivial.
% 3.86/4.04  (* end of lemma zenon_L211_ *)
% 3.86/4.04  assert (zenon_L212_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e3) (e3)) = (e2)) -> ((op (e1) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H1b2 zenon_H195 zenon_H78 zenon_H27 zenon_H128 zenon_H31 zenon_H30 zenon_Hc2 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b2); [ zenon_intro zenon_Hc3 | zenon_intro zenon_H1b3 ].
% 3.86/4.04  apply (zenon_L148_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b3); [ zenon_intro zenon_H8a | zenon_intro zenon_H1b4 ].
% 3.86/4.04  apply (zenon_L207_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H1b4); [ zenon_intro zenon_H32 | zenon_intro zenon_H12c ].
% 3.86/4.04  apply (zenon_L6_); trivial.
% 3.86/4.04  apply (zenon_L151_); trivial.
% 3.86/4.04  (* end of lemma zenon_L212_ *)
% 3.86/4.04  assert (zenon_L213_ : (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e2) = (e3))) -> (~((e1) = (e2))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e1) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H92 zenon_H17e zenon_H50 zenon_H1b2 zenon_H195 zenon_H27 zenon_H128 zenon_H31 zenon_H30 zenon_Hc2 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.04  apply (zenon_L131_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.04  apply (zenon_L132_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.04  apply (zenon_L6_); trivial.
% 3.86/4.04  apply (zenon_L212_); trivial.
% 3.86/4.04  (* end of lemma zenon_L213_ *)
% 3.86/4.04  assert (zenon_L214_ : ((op (e2) (e1)) = (e2)) -> ((op (e2) (e1)) = (e3)) -> (~((e2) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H31 zenon_Hf7 zenon_H17e.
% 3.86/4.04  elim (classic ((e3) = (e3))); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H5b ].
% 3.86/4.04  cut (((e3) = (e3)) = ((e2) = (e3))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17e.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_Hc7.
% 3.86/4.04  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 3.86/4.04  cut (((e3) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H17f].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e2) (e1)) = (e2)) = ((e3) = (e2))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17f.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H31.
% 3.86/4.04  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 3.86/4.04  cut (((op (e2) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H208].
% 3.86/4.04  congruence.
% 3.86/4.04  exact (zenon_H208 zenon_Hf7).
% 3.86/4.04  apply zenon_H4f. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  apply zenon_H5b. apply refl_equal.
% 3.86/4.04  (* end of lemma zenon_L214_ *)
% 3.86/4.04  assert (zenon_L215_ : (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((op (e0) (e0)) = (op (e3) (e0)))) -> ((op (e3) (e0)) = (e3)) -> (~((e1) = (e3))) -> ((op (e0) (e1)) = (e1)) -> (~((e0) = (e3))) -> ((op (e0) (e2)) = (e0)) -> ((op (e0) (e3)) = (e2)) -> (~((e2) = (e3))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_He9 zenon_H1eb zenon_H187 zenon_H5c zenon_H57 zenon_H9b zenon_H21 zenon_H60 zenon_H17e.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_L185_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L43_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L64_); trivial.
% 3.86/4.04  apply (zenon_L131_); trivial.
% 3.86/4.04  (* end of lemma zenon_L215_ *)
% 3.86/4.04  assert (zenon_L216_ : (((op (e0) (e3)) = (e2))\/(((op (e1) (e3)) = (e2))\/(((op (e2) (e3)) = (e2))\/((op (e3) (e3)) = (e2))))) -> (~((e2) = (e3))) -> ((op (e0) (e2)) = (e0)) -> (~((e0) = (e3))) -> ((op (e0) (e1)) = (e1)) -> (~((e1) = (e3))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e0) (e0)) = (op (e3) (e0)))) -> (((op (e0) (e0)) = (e3))\/(((op (e0) (e1)) = (e3))\/(((op (e0) (e2)) = (e3))\/((op (e0) (e3)) = (e3))))) -> (~((e1) = (e2))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e1) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H92 zenon_H17e zenon_H21 zenon_H9b zenon_H57 zenon_H5c zenon_H187 zenon_H1eb zenon_He9 zenon_H50 zenon_H1b2 zenon_H195 zenon_H27 zenon_H128 zenon_H31 zenon_H30 zenon_Hc2 zenon_Hca.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.04  apply (zenon_L215_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.04  apply (zenon_L132_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.04  apply (zenon_L6_); trivial.
% 3.86/4.04  apply (zenon_L212_); trivial.
% 3.86/4.04  (* end of lemma zenon_L216_ *)
% 3.86/4.04  assert (zenon_L217_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e3) (e1)) = (e3)) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H209 zenon_H187 zenon_Hf6.
% 3.86/4.04  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (e0)) = (op (e3) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H209.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H187.
% 3.86/4.04  cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H20a].
% 3.86/4.04  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H160. apply refl_equal.
% 3.86/4.04  apply zenon_H20a. apply sym_equal. exact zenon_Hf6.
% 3.86/4.04  (* end of lemma zenon_L217_ *)
% 3.86/4.04  assert (zenon_L218_ : (((op (e3) (e1)) = (e3))/\(~((op (e1) (e3)) = (e1)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> False).
% 3.86/4.04  do 0 intro. intros zenon_H20b zenon_H187 zenon_H209.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H20b). zenon_intro zenon_Hf6. zenon_intro zenon_Hf1.
% 3.86/4.04  apply (zenon_L217_); trivial.
% 3.86/4.04  (* end of lemma zenon_L218_ *)
% 3.86/4.04  apply (zenon_and_s _ _ ax1). zenon_intro zenon_H20d. zenon_intro zenon_H20c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H20c). zenon_intro zenon_H20f. zenon_intro zenon_H20e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H20e). zenon_intro zenon_Hbf. zenon_intro zenon_H210.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H210). zenon_intro zenon_H158. zenon_intro zenon_H211.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H211). zenon_intro zenon_H213. zenon_intro zenon_H212.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H212). zenon_intro zenon_H1d9. zenon_intro zenon_H214.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H214). zenon_intro zenon_Hb8. zenon_intro zenon_H215.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H215). zenon_intro zenon_H12e. zenon_intro zenon_H216.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H216). zenon_intro zenon_H203. zenon_intro zenon_H217.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H217). zenon_intro zenon_H219. zenon_intro zenon_H218.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H218). zenon_intro zenon_Hd4. zenon_intro zenon_H21a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H21a). zenon_intro zenon_H1b2. zenon_intro zenon_H21b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H21b). zenon_intro zenon_H21d. zenon_intro zenon_H21c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H21c). zenon_intro zenon_H21f. zenon_intro zenon_H21e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H21e). zenon_intro zenon_H1ca. zenon_intro zenon_Hde.
% 3.86/4.04  apply (zenon_and_s _ _ ax2). zenon_intro zenon_H221. zenon_intro zenon_H220.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H220). zenon_intro zenon_H223. zenon_intro zenon_H222.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H222). zenon_intro zenon_He8. zenon_intro zenon_H224.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H224). zenon_intro zenon_H18e. zenon_intro zenon_H225.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H225). zenon_intro zenon_H147. zenon_intro zenon_H226.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H226). zenon_intro zenon_H228. zenon_intro zenon_H227.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H227). zenon_intro zenon_He9. zenon_intro zenon_H229.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H229). zenon_intro zenon_H18c. zenon_intro zenon_H22a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H22a). zenon_intro zenon_H14b. zenon_intro zenon_H22b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H22b). zenon_intro zenon_H149. zenon_intro zenon_H22c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H22c). zenon_intro zenon_H22e. zenon_intro zenon_H22d.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H22d). zenon_intro zenon_H230. zenon_intro zenon_H22f.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H22f). zenon_intro zenon_H1f2. zenon_intro zenon_H231.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H231). zenon_intro zenon_H233. zenon_intro zenon_H232.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H232). zenon_intro zenon_H1b5. zenon_intro zenon_H234.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H234). zenon_intro zenon_H236. zenon_intro zenon_H235.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H235). zenon_intro zenon_Hee. zenon_intro zenon_H237.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H237). zenon_intro zenon_H9e. zenon_intro zenon_H238.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H238). zenon_intro zenon_H90. zenon_intro zenon_H239.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H239). zenon_intro zenon_H183. zenon_intro zenon_H23a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H23a). zenon_intro zenon_H23c. zenon_intro zenon_H23b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H23b). zenon_intro zenon_H23e. zenon_intro zenon_H23d.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H23d). zenon_intro zenon_H14a. zenon_intro zenon_H23f.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H23f). zenon_intro zenon_H11a. zenon_intro zenon_H240.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H240). zenon_intro zenon_H1b6. zenon_intro zenon_H241.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H241). zenon_intro zenon_H125. zenon_intro zenon_H242.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H242). zenon_intro zenon_H8d. zenon_intro zenon_H243.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_He3. zenon_intro zenon_H244.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H244). zenon_intro zenon_H1e4. zenon_intro zenon_H245.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H245). zenon_intro zenon_H92. zenon_intro zenon_H246.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H246). zenon_intro zenon_H247. zenon_intro zenon_H1bd.
% 3.86/4.04  apply (zenon_and_s _ _ ax3). zenon_intro zenon_H42. zenon_intro zenon_H248.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H248). zenon_intro zenon_H1c1. zenon_intro zenon_H249.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H249). zenon_intro zenon_H1eb. zenon_intro zenon_H24a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24a). zenon_intro zenon_H131. zenon_intro zenon_H24b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24b). zenon_intro zenon_H53. zenon_intro zenon_H24c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24c). zenon_intro zenon_H1df. zenon_intro zenon_H24d.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24d). zenon_intro zenon_H182. zenon_intro zenon_H24e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24e). zenon_intro zenon_H1f0. zenon_intro zenon_H24f.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H24f). zenon_intro zenon_H56. zenon_intro zenon_H250.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H250). zenon_intro zenon_H252. zenon_intro zenon_H251.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H251). zenon_intro zenon_H1d7. zenon_intro zenon_H253.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H253). zenon_intro zenon_Hf8. zenon_intro zenon_H254.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H254). zenon_intro zenon_Hae. zenon_intro zenon_H255.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H255). zenon_intro zenon_Ha3. zenon_intro zenon_H256.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H256). zenon_intro zenon_Hbc. zenon_intro zenon_H257.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H257). zenon_intro zenon_Hac. zenon_intro zenon_H258.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H258). zenon_intro zenon_Hb3. zenon_intro zenon_H259.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H259). zenon_intro zenon_Hd1. zenon_intro zenon_H25a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25a). zenon_intro zenon_H156. zenon_intro zenon_H25b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25b). zenon_intro zenon_Hc2. zenon_intro zenon_H25c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25c). zenon_intro zenon_Hd9. zenon_intro zenon_H25d.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25d). zenon_intro zenon_H128. zenon_intro zenon_H25e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25e). zenon_intro zenon_H10a. zenon_intro zenon_H25f.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25f). zenon_intro zenon_H89. zenon_intro zenon_H260.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H260). zenon_intro zenon_H175. zenon_intro zenon_H261.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H261). zenon_intro zenon_H17b. zenon_intro zenon_H262.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H262). zenon_intro zenon_H1f5. zenon_intro zenon_H263.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H263). zenon_intro zenon_H167. zenon_intro zenon_H264.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H264). zenon_intro zenon_H16d. zenon_intro zenon_H265.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H265). zenon_intro zenon_H20. zenon_intro zenon_H266.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H266). zenon_intro zenon_He6. zenon_intro zenon_H267.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H267). zenon_intro zenon_H161. zenon_intro zenon_H268.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H268). zenon_intro zenon_H29. zenon_intro zenon_H269.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H269). zenon_intro zenon_H1da. zenon_intro zenon_H26a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H26a). zenon_intro zenon_H26c. zenon_intro zenon_H26b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H26b). zenon_intro zenon_H16e. zenon_intro zenon_H26d.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H26d). zenon_intro zenon_H140. zenon_intro zenon_H26e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H26e). zenon_intro zenon_H97. zenon_intro zenon_H26f.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H26f). zenon_intro zenon_H171. zenon_intro zenon_H270.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H270). zenon_intro zenon_Hce. zenon_intro zenon_H271.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H271). zenon_intro zenon_H30. zenon_intro zenon_H272.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H272). zenon_intro zenon_H107. zenon_intro zenon_H273.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H273). zenon_intro zenon_H209. zenon_intro zenon_H274.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H274). zenon_intro zenon_H1bb. zenon_intro zenon_H275.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H275). zenon_intro zenon_H15e. zenon_intro zenon_H276.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H276). zenon_intro zenon_H164. zenon_intro zenon_H277.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H277). zenon_intro zenon_He1. zenon_intro zenon_Hdc.
% 3.86/4.04  apply (zenon_and_s _ _ ax4). zenon_intro zenon_H4a. zenon_intro zenon_H278.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H278). zenon_intro zenon_H61. zenon_intro zenon_H279.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H279). zenon_intro zenon_H9b. zenon_intro zenon_H27a.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H27a). zenon_intro zenon_H50. zenon_intro zenon_H27b.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H27b). zenon_intro zenon_H5c. zenon_intro zenon_H17e.
% 3.86/4.04  apply (zenon_and_s _ _ ax5). zenon_intro zenon_H27d. zenon_intro zenon_H27c.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H27c). zenon_intro zenon_H27f. zenon_intro zenon_H27e.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H27e). zenon_intro zenon_H281. zenon_intro zenon_H280.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H27d); [ zenon_intro zenon_H283 | zenon_intro zenon_H282 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H283). zenon_intro zenon_H174. zenon_intro zenon_H284.
% 3.86/4.04  exact (zenon_H284 zenon_H174).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H282); [ zenon_intro zenon_H286 | zenon_intro zenon_H285 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H286). zenon_intro zenon_H28. zenon_intro zenon_H148.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H27f); [ zenon_intro zenon_H288 | zenon_intro zenon_H287 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H288). zenon_intro zenon_H153. zenon_intro zenon_H18d.
% 3.86/4.04  exact (zenon_H148 zenon_H153).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H287); [ zenon_intro zenon_H1d | zenon_intro zenon_H289 ].
% 3.86/4.04  apply (zenon_L1_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H289); [ zenon_intro zenon_H28a | zenon_intro zenon_H20b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H28a). zenon_intro zenon_H31. zenon_intro zenon_H3b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H16b). zenon_intro zenon_H21. zenon_intro zenon_H16c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L3_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L5_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L7_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_L9_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H166). zenon_intro zenon_H5d. zenon_intro zenon_H91.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25). zenon_intro zenon_H22. zenon_intro zenon_H26.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_L11_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H48 | zenon_intro zenon_Hef ].
% 3.86/4.04  apply (zenon_L32_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hf0 ].
% 3.86/4.04  apply (zenon_L33_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_H98 | zenon_intro zenon_Hc3 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H54 | zenon_intro zenon_H8e ].
% 3.86/4.04  apply (zenon_L16_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8e); [ zenon_intro zenon_H58 | zenon_intro zenon_H8f ].
% 3.86/4.04  apply (zenon_L17_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H5e | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L19_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H92); [ zenon_intro zenon_H60 | zenon_intro zenon_H95 ].
% 3.86/4.04  apply (zenon_L20_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H95); [ zenon_intro zenon_H69 | zenon_intro zenon_H96 ].
% 3.86/4.04  apply (zenon_L23_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H96); [ zenon_intro zenon_H32 | zenon_intro zenon_H78 ].
% 3.86/4.04  exact (zenon_H91 zenon_H32).
% 3.86/4.04  apply (zenon_L41_); trivial.
% 3.86/4.04  apply (zenon_L42_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L43_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L40_); trivial.
% 3.86/4.04  apply (zenon_L44_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H48 | zenon_intro zenon_Hef ].
% 3.86/4.04  apply (zenon_L48_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hf0 ].
% 3.86/4.04  apply (zenon_L33_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_H98 | zenon_intro zenon_Hc3 ].
% 3.86/4.04  apply (zenon_L55_); trivial.
% 3.86/4.04  apply (zenon_L42_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H230); [ zenon_intro zenon_H57 | zenon_intro zenon_H28f ].
% 3.86/4.04  apply (zenon_L43_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28f); [ zenon_intro zenon_H1f | zenon_intro zenon_H290 ].
% 3.86/4.04  apply (zenon_L56_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H290); [ zenon_intro zenon_H51 | zenon_intro zenon_H58 ].
% 3.86/4.04  apply (zenon_L15_); trivial.
% 3.86/4.04  apply (zenon_L58_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L40_); trivial.
% 3.86/4.04  apply (zenon_L44_); trivial.
% 3.86/4.04  apply (zenon_L49_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L5_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L59_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H20b). zenon_intro zenon_Hf6. zenon_intro zenon_Hf1.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H16b). zenon_intro zenon_H21. zenon_intro zenon_H16c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L3_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L60_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H35). zenon_intro zenon_H32. zenon_intro zenon_H36.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H223); [ zenon_intro zenon_H174 | zenon_intro zenon_H291 ].
% 3.86/4.04  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H168 | zenon_intro zenon_H24 ].
% 3.86/4.04  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (e0) (e0)) = (op (e0) (e2)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17b.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H168.
% 3.86/4.04  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.04  cut (((op (e0) (e2)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H17c].
% 3.86/4.04  congruence.
% 3.86/4.04  cut (((op (e0) (e2)) = (e0)) = ((op (e0) (e2)) = (op (e0) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H17c.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H21.
% 3.86/4.04  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H178].
% 3.86/4.04  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H24. apply refl_equal.
% 3.86/4.04  apply zenon_H178. apply sym_equal. exact zenon_H174.
% 3.86/4.04  apply zenon_H24. apply refl_equal.
% 3.86/4.04  apply zenon_H24. apply refl_equal.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H291); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H292 ].
% 3.86/4.04  apply (zenon_L61_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H292); [ zenon_intro zenon_H48 | zenon_intro zenon_H15f ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_L11_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H147); [ zenon_intro zenon_Hfe | zenon_intro zenon_H14c ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14a); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H14d ].
% 3.86/4.04  apply (zenon_L62_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14d); [ zenon_intro zenon_Hf7 | zenon_intro zenon_H14e ].
% 3.86/4.04  apply (zenon_L63_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14e); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12c ].
% 3.86/4.04  apply (zenon_L106_); trivial.
% 3.86/4.04  apply (zenon_L86_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14c); [ zenon_intro zenon_H139 | zenon_intro zenon_H14f ].
% 3.86/4.04  apply (zenon_L107_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14f); [ zenon_intro zenon_Haf | zenon_intro zenon_H60 ].
% 3.86/4.04  apply (zenon_L97_); trivial.
% 3.86/4.04  apply (zenon_L98_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_L108_); trivial.
% 3.86/4.04  apply (zenon_L99_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_L11_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H147); [ zenon_intro zenon_Hfe | zenon_intro zenon_H14c ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H125); [ zenon_intro zenon_H22 | zenon_intro zenon_H126 ].
% 3.86/4.04  apply (zenon_L2_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H126); [ zenon_intro zenon_H10b | zenon_intro zenon_H127 ].
% 3.86/4.04  apply (zenon_L113_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H127); [ zenon_intro zenon_Hc3 | zenon_intro zenon_Hda ].
% 3.86/4.04  apply (zenon_L78_); trivial.
% 3.86/4.04  apply (zenon_L109_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14c); [ zenon_intro zenon_H139 | zenon_intro zenon_H14f ].
% 3.86/4.04  apply (zenon_L107_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14f); [ zenon_intro zenon_Haf | zenon_intro zenon_H60 ].
% 3.86/4.04  apply (zenon_L97_); trivial.
% 3.86/4.04  apply (zenon_L98_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_L108_); trivial.
% 3.86/4.04  apply (zenon_L110_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H3a). zenon_intro zenon_H3d. zenon_intro zenon_H3c.
% 3.86/4.04  apply (zenon_L114_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_L116_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H285); [ zenon_intro zenon_H294 | zenon_intro zenon_H293 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H294). zenon_intro zenon_H170. zenon_intro zenon_H1de.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H27f); [ zenon_intro zenon_H288 | zenon_intro zenon_H287 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H288). zenon_intro zenon_H153. zenon_intro zenon_H18d.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_L118_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H3a). zenon_intro zenon_H3d. zenon_intro zenon_H3c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L120_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L122_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L124_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H166). zenon_intro zenon_H5d. zenon_intro zenon_H91.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L120_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H27. zenon_intro zenon_H2f.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H223); [ zenon_intro zenon_H174 | zenon_intro zenon_H291 ].
% 3.86/4.04  apply (zenon_L125_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H291); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H292 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_L126_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L127_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L40_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18c); [ zenon_intro zenon_H66 | zenon_intro zenon_H18f ].
% 3.86/4.04  apply (zenon_L153_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18f); [ zenon_intro zenon_H179 | zenon_intro zenon_H190 ].
% 3.86/4.04  apply (zenon_L135_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H190); [ zenon_intro zenon_Hf4 | zenon_intro zenon_H187 ].
% 3.86/4.04  apply (zenon_L136_); trivial.
% 3.86/4.04  apply (zenon_L154_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18e); [ zenon_intro zenon_H41 | zenon_intro zenon_H191 ].
% 3.86/4.04  apply (zenon_L138_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H191); [ zenon_intro zenon_H28 | zenon_intro zenon_H192 ].
% 3.86/4.04  exact (zenon_H18d zenon_H28).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H192); [ zenon_intro zenon_H49 | zenon_intro zenon_H54 ].
% 3.86/4.04  apply (zenon_L139_); trivial.
% 3.86/4.04  apply (zenon_L159_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H18e); [ zenon_intro zenon_H41 | zenon_intro zenon_H191 ].
% 3.86/4.04  apply (zenon_L129_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H191); [ zenon_intro zenon_H28 | zenon_intro zenon_H192 ].
% 3.86/4.04  exact (zenon_H18d zenon_H28).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H192); [ zenon_intro zenon_H49 | zenon_intro zenon_H54 ].
% 3.86/4.04  apply (zenon_L139_); trivial.
% 3.86/4.04  apply (zenon_L159_); trivial.
% 3.86/4.04  apply (zenon_L141_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H292); [ zenon_intro zenon_H48 | zenon_intro zenon_H15f ].
% 3.86/4.04  apply (zenon_L160_); trivial.
% 3.86/4.04  apply (zenon_L142_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L124_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H287); [ zenon_intro zenon_H1d | zenon_intro zenon_H289 ].
% 3.86/4.04  apply (zenon_L1_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H289); [ zenon_intro zenon_H28a | zenon_intro zenon_H20b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H28a). zenon_intro zenon_H31. zenon_intro zenon_H3b.
% 3.86/4.04  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (e0)) = (op (e2) (e1)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H140.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H170.
% 3.86/4.04  cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H295].
% 3.86/4.04  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H9a. apply refl_equal.
% 3.86/4.04  apply zenon_H295. apply sym_equal. exact zenon_H31.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H20b). zenon_intro zenon_Hf6. zenon_intro zenon_Hf1.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H16b). zenon_intro zenon_H21. zenon_intro zenon_H16c.
% 3.86/4.04  exact (zenon_H1de zenon_H21).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H3a). zenon_intro zenon_H3d. zenon_intro zenon_H3c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H25). zenon_intro zenon_H22. zenon_intro zenon_H26.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H147); [ zenon_intro zenon_Hfe | zenon_intro zenon_H14c ].
% 3.86/4.04  apply (zenon_L161_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14c); [ zenon_intro zenon_H139 | zenon_intro zenon_H14f ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H21d); [ zenon_intro zenon_H15f | zenon_intro zenon_H296 ].
% 3.86/4.04  apply (zenon_L173_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H54 | zenon_intro zenon_H297 ].
% 3.86/4.04  cut (((op (e0) (e0)) = (e1)) = ((op (e0) (e0)) = (op (e3) (e0)))).
% 3.86/4.04  intro zenon_D_pnotp.
% 3.86/4.04  apply zenon_H1eb.
% 3.86/4.04  rewrite <- zenon_D_pnotp.
% 3.86/4.04  exact zenon_H41.
% 3.86/4.04  cut (((e1) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 3.86/4.04  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H207].
% 3.86/4.04  congruence.
% 3.86/4.04  apply zenon_H207. apply refl_equal.
% 3.86/4.04  apply zenon_H55. apply sym_equal. exact zenon_H54.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H297); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H187 ].
% 3.86/4.04  apply (zenon_L174_); trivial.
% 3.86/4.04  exact (zenon_H26 zenon_H187).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14f); [ zenon_intro zenon_Haf | zenon_intro zenon_H60 ].
% 3.86/4.04  apply (zenon_L183_); trivial.
% 3.86/4.04  apply (zenon_L20_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H147); [ zenon_intro zenon_Hfe | zenon_intro zenon_H14c ].
% 3.86/4.04  apply (zenon_L161_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14c); [ zenon_intro zenon_H139 | zenon_intro zenon_H14f ].
% 3.86/4.04  apply (zenon_L107_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H14f); [ zenon_intro zenon_Haf | zenon_intro zenon_H60 ].
% 3.86/4.04  apply (zenon_L183_); trivial.
% 3.86/4.04  apply (zenon_L20_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_L164_); trivial.
% 3.86/4.04  apply (zenon_L49_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L122_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L124_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_L116_); trivial.
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H293). zenon_intro zenon_H187. zenon_intro zenon_H1ea.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H27f); [ zenon_intro zenon_H288 | zenon_intro zenon_H287 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H288). zenon_intro zenon_H153. zenon_intro zenon_H18d.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_L118_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H3a). zenon_intro zenon_H3d. zenon_intro zenon_H3c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L184_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_L122_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H35). zenon_intro zenon_H32. zenon_intro zenon_H36.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H223); [ zenon_intro zenon_H174 | zenon_intro zenon_H291 ].
% 3.86/4.04  apply (zenon_L125_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H291); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H292 ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_L185_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L127_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L190_); trivial.
% 3.86/4.04  apply (zenon_L193_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H292); [ zenon_intro zenon_H48 | zenon_intro zenon_H15f ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He4 ].
% 3.86/4.04  apply (zenon_L195_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_H27 | zenon_intro zenon_He5 ].
% 3.86/4.04  apply (zenon_L121_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_H8a | zenon_intro zenon_H68 ].
% 3.86/4.04  apply (zenon_L100_); trivial.
% 3.86/4.04  apply (zenon_L202_); trivial.
% 3.86/4.04  apply (zenon_L137_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_L203_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H287); [ zenon_intro zenon_H1d | zenon_intro zenon_H289 ].
% 3.86/4.04  apply (zenon_L1_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H289); [ zenon_intro zenon_H28a | zenon_intro zenon_H20b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H28a). zenon_intro zenon_H31. zenon_intro zenon_H3b.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H281); [ zenon_intro zenon_H16b | zenon_intro zenon_H28b ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H16b). zenon_intro zenon_H21. zenon_intro zenon_H16c.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H280); [ zenon_intro zenon_H25 | zenon_intro zenon_H28c ].
% 3.86/4.04  apply (zenon_L184_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28c); [ zenon_intro zenon_H2e | zenon_intro zenon_H28d ].
% 3.86/4.04  apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H27. zenon_intro zenon_H2f.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He8); [ zenon_intro zenon_H41 | zenon_intro zenon_Hea ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_L185_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L211_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L64_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H236); [ zenon_intro zenon_Hc6 | zenon_intro zenon_H298 ].
% 3.86/4.04  apply (zenon_L211_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H195 | zenon_intro zenon_H299 ].
% 3.86/4.04  apply (zenon_L213_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_Hf7 | zenon_intro zenon_Hf6 ].
% 3.86/4.04  apply (zenon_L214_); trivial.
% 3.86/4.04  exact (zenon_H2f zenon_Hf6).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hea); [ zenon_intro zenon_H57 | zenon_intro zenon_Heb ].
% 3.86/4.04  apply (zenon_or_s _ _ zenon_He9); [ zenon_intro zenon_H66 | zenon_intro zenon_Hec ].
% 3.86/4.04  apply (zenon_L185_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hec); [ zenon_intro zenon_Hc6 | zenon_intro zenon_Hed ].
% 3.86/4.04  apply (zenon_L43_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Hed); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 3.86/4.04  apply (zenon_L64_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H236); [ zenon_intro zenon_Hc6 | zenon_intro zenon_H298 ].
% 3.86/4.04  apply (zenon_L43_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H195 | zenon_intro zenon_H299 ].
% 3.86/4.04  apply (zenon_L216_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_Hf7 | zenon_intro zenon_Hf6 ].
% 3.86/4.04  apply (zenon_L214_); trivial.
% 3.86/4.04  exact (zenon_H2f zenon_Hf6).
% 3.86/4.04  apply (zenon_or_s _ _ zenon_Heb); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hd7 ].
% 3.86/4.04  apply (zenon_L108_); trivial.
% 3.86/4.04  apply (zenon_L141_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28d); [ zenon_intro zenon_H35 | zenon_intro zenon_H37 ].
% 3.86/4.04  apply (zenon_L7_); trivial.
% 3.86/4.04  apply (zenon_L8_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28b); [ zenon_intro zenon_H3a | zenon_intro zenon_H28e ].
% 3.86/4.04  apply (zenon_L9_); trivial.
% 3.86/4.04  apply (zenon_or_s _ _ zenon_H28e); [ zenon_intro zenon_H3e | zenon_intro zenon_H166 ].
% 3.86/4.04  apply (zenon_L10_); trivial.
% 3.86/4.04  apply (zenon_L203_); trivial.
% 3.86/4.04  apply (zenon_L218_); trivial.
% 3.86/4.04  Qed.
% 3.86/4.04  % SZS output end Proof
% 3.86/4.04  (* END-PROOF *)
% 3.86/4.04  nodes searched: 172344
% 3.86/4.04  max branch formulas: 295
% 3.86/4.04  proof nodes created: 6577
% 3.86/4.04  formulas created: 44058
% 3.86/4.04  
%------------------------------------------------------------------------------