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

View Problem - Process Solution

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

% Computer : n023.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:29:00 EDT 2022

% Result   : Unsatisfiable 177.46s 177.70s
% Output   : Proof 177.56s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.06/0.11  % Problem  : ALG023+1 : TPTP v8.1.0. Released v2.7.0.
% 0.06/0.12  % Command  : run_zenon %s %d
% 0.11/0.32  % Computer : n023.cluster.edu
% 0.11/0.32  % Model    : x86_64 x86_64
% 0.11/0.32  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.11/0.32  % Memory   : 8042.1875MB
% 0.11/0.32  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.11/0.32  % CPULimit : 300
% 0.11/0.32  % WCLimit  : 600
% 0.11/0.32  % DateTime : Wed Jun  8 11:47:53 EDT 2022
% 0.11/0.33  % CPUTime  : 
% 177.46/177.70  (* PROOF-FOUND *)
% 177.46/177.70  % SZS status Unsatisfiable
% 177.46/177.70  (* BEGIN-PROOF *)
% 177.46/177.70  % SZS output start Proof
% 177.46/177.70  Theorem zenon_thm : False.
% 177.46/177.70  Proof.
% 177.46/177.70  assert (zenon_L1_ : (~((e0) = (e0))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H23.
% 177.46/177.70  apply zenon_H23. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L1_ *)
% 177.46/177.70  assert (zenon_L2_ : (~((op (e0) (e0)) = (op (e0) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H24 zenon_H25 zenon_H26 zenon_H27.
% 177.46/177.70  cut (((op (unit) (e0)) = (e0)) = ((op (e0) (e0)) = (op (e0) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H24.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H25.
% 177.46/177.70  cut (((e0) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H28].
% 177.46/177.70  cut (((op (unit) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H29].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e0)) = (op (e0) (e0)))); [ zenon_intro zenon_H2a | zenon_intro zenon_H2b ].
% 177.46/177.70  cut (((op (e0) (e0)) = (op (e0) (e0))) = ((op (unit) (e0)) = (op (e0) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H29.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H2a.
% 177.46/177.70  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 177.46/177.70  cut (((op (e0) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.70  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.70  apply zenon_H23. apply refl_equal.
% 177.46/177.70  apply zenon_H2b. apply refl_equal.
% 177.46/177.70  apply zenon_H2b. apply refl_equal.
% 177.46/177.70  apply zenon_H28. apply sym_equal. exact zenon_H27.
% 177.46/177.70  (* end of lemma zenon_L2_ *)
% 177.46/177.70  assert (zenon_L3_ : (~((e1) = (e1))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H2e.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L3_ *)
% 177.46/177.70  assert (zenon_L4_ : (~((op (e0) (e1)) = (op (unit) (e1)))) -> ((unit) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H2f zenon_H26.
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L4_ *)
% 177.46/177.70  assert (zenon_L5_ : (~((op (e0) (e1)) = (op (e0) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H30 zenon_H31 zenon_H26 zenon_H32.
% 177.46/177.70  cut (((op (unit) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e0) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H30.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H31.
% 177.46/177.70  cut (((e1) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H33].
% 177.46/177.70  cut (((op (unit) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (unit) (e1)) = (op (e0) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H34.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H35.
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2f].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L4_); trivial.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply zenon_H33. apply sym_equal. exact zenon_H32.
% 177.46/177.70  (* end of lemma zenon_L5_ *)
% 177.46/177.70  assert (zenon_L6_ : (~((e2) = (e2))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H37.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L6_ *)
% 177.46/177.70  assert (zenon_L7_ : (~((op (e0) (e2)) = (op (unit) (e2)))) -> ((unit) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H38 zenon_H26.
% 177.46/177.70  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.70  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L7_ *)
% 177.46/177.70  assert (zenon_L8_ : (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H39 zenon_H3a zenon_H26 zenon_H3b.
% 177.46/177.70  cut (((op (unit) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e0) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H39.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H3a.
% 177.46/177.70  cut (((e2) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 177.46/177.70  cut (((op (unit) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3d].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ].
% 177.46/177.70  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (unit) (e2)) = (op (e0) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H3d.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H3e.
% 177.46/177.70  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f].
% 177.46/177.70  cut (((op (e0) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H38].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L7_); trivial.
% 177.46/177.70  apply zenon_H3f. apply refl_equal.
% 177.46/177.70  apply zenon_H3f. apply refl_equal.
% 177.46/177.70  apply zenon_H3c. apply sym_equal. exact zenon_H3b.
% 177.46/177.70  (* end of lemma zenon_L8_ *)
% 177.46/177.70  assert (zenon_L9_ : (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e1) (e1)) = (e0)) -> ((op (e2) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H40 zenon_H41 zenon_H42.
% 177.46/177.70  cut (((op (e1) (e1)) = (e0)) = ((op (e1) (e1)) = (op (e2) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H40.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H41.
% 177.46/177.70  cut (((e0) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H43].
% 177.46/177.70  cut (((op (e1) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H44. apply refl_equal.
% 177.46/177.70  apply zenon_H43. apply sym_equal. exact zenon_H42.
% 177.46/177.70  (* end of lemma zenon_L9_ *)
% 177.46/177.70  assert (zenon_L10_ : (~((e3) = (e3))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H45.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L10_ *)
% 177.46/177.70  assert (zenon_L11_ : (~((op (e3) (op (e0) (e3))) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H46 zenon_H47.
% 177.46/177.70  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H48].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H48 zenon_H47).
% 177.46/177.70  (* end of lemma zenon_L11_ *)
% 177.46/177.70  assert (zenon_L12_ : (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e0)) -> ((op (e0) (e3)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H49 zenon_H4a zenon_H4b zenon_H47.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e0) (e3)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H49.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H4a.
% 177.46/177.70  cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e3)) = (op (e0) (e3)))); [ zenon_intro zenon_H4d | zenon_intro zenon_H4e ].
% 177.46/177.70  cut (((op (e0) (e3)) = (op (e0) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e0) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H4c.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H4d.
% 177.46/177.70  cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4e].
% 177.46/177.70  cut (((op (e0) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4f].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  cut (((e0) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H50].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H50. apply sym_equal. exact zenon_H4b.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  apply zenon_H4e. apply refl_equal.
% 177.46/177.70  apply zenon_H4e. apply refl_equal.
% 177.46/177.70  apply (zenon_L11_); trivial.
% 177.46/177.70  (* end of lemma zenon_L12_ *)
% 177.46/177.70  assert (zenon_L13_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e1)) -> ((op (e0) (e3)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H51 zenon_H4a zenon_H52 zenon_H47.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H51.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H4a.
% 177.46/177.70  cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H53].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.70  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e1) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H53.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H54.
% 177.46/177.70  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.70  cut (((op (e1) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H56].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  cut (((e1) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H57].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H57. apply sym_equal. exact zenon_H52.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  apply zenon_H55. apply refl_equal.
% 177.46/177.70  apply zenon_H55. apply refl_equal.
% 177.46/177.70  apply (zenon_L11_); trivial.
% 177.46/177.70  (* end of lemma zenon_L13_ *)
% 177.46/177.70  assert (zenon_L14_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e2)) -> ((op (e0) (e3)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H58 zenon_H4a zenon_H59 zenon_H47.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H58.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H4a.
% 177.46/177.70  cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e2) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H5a.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H5b.
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5d].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  cut (((e2) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H5e].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H5e. apply sym_equal. exact zenon_H59.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  apply (zenon_L11_); trivial.
% 177.46/177.70  (* end of lemma zenon_L14_ *)
% 177.46/177.70  assert (zenon_L15_ : (~((op (e3) (op (e2) (e1))) = (op (e3) (e1)))) -> ((op (e2) (e1)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H5f zenon_H60.
% 177.46/177.70  cut (((op (e2) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H61].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H61 zenon_H60).
% 177.46/177.70  (* end of lemma zenon_L15_ *)
% 177.46/177.70  assert (zenon_L16_ : ((op (e3) (e2)) = (e1)) -> ((op (e2) (e2)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H62 zenon_H63.
% 177.46/177.70  apply (zenon_notand_s _ _ ax13); [ zenon_intro zenon_H65 | zenon_intro zenon_H64 ].
% 177.46/177.70  apply zenon_H65. apply sym_equal. exact zenon_H63.
% 177.46/177.70  apply zenon_H64. apply sym_equal. exact zenon_H62.
% 177.46/177.70  (* end of lemma zenon_L16_ *)
% 177.46/177.70  assert (zenon_L17_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e3) (e2)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H66 zenon_H62.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.46/177.70  apply (zenon_L16_); trivial.
% 177.46/177.70  (* end of lemma zenon_L17_ *)
% 177.46/177.70  assert (zenon_L18_ : (~((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H6b zenon_H6c.
% 177.46/177.70  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.70  cut (((e3) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H6d. apply sym_equal. exact zenon_H6c.
% 177.46/177.70  apply zenon_H23. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L18_ *)
% 177.46/177.70  assert (zenon_L19_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e1)))) -> ((op (e0) (e0)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H6e zenon_H6f.
% 177.46/177.70  cut (((op (e0) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H70].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H70 zenon_H6f).
% 177.46/177.70  (* end of lemma zenon_L19_ *)
% 177.46/177.70  assert (zenon_L20_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H71 zenon_H72 zenon_H6c zenon_H6f.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H71.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H72.
% 177.46/177.70  cut (((op (e3) (op (e0) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H6e].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H73.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H74.
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L18_); trivial.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply (zenon_L19_); trivial.
% 177.46/177.70  (* end of lemma zenon_L20_ *)
% 177.46/177.70  assert (zenon_L21_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H76 zenon_H71 zenon_H72 zenon_H6c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.70  apply (zenon_L20_); trivial.
% 177.46/177.70  (* end of lemma zenon_L21_ *)
% 177.46/177.70  assert (zenon_L22_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e2)))) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H78 zenon_H79.
% 177.46/177.70  cut (((op (e0) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H7a].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H7a zenon_H79).
% 177.46/177.70  (* end of lemma zenon_L22_ *)
% 177.46/177.70  assert (zenon_L23_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H7b zenon_H72 zenon_H6c zenon_H79.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H7b.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H72.
% 177.46/177.70  cut (((op (e3) (op (e0) (e0))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H78].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H73.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H74.
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L18_); trivial.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply (zenon_L22_); trivial.
% 177.46/177.70  (* end of lemma zenon_L23_ *)
% 177.46/177.70  assert (zenon_L24_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H7c zenon_H7b zenon_H72 zenon_H6c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.70  apply (zenon_L23_); trivial.
% 177.46/177.70  (* end of lemma zenon_L24_ *)
% 177.46/177.70  assert (zenon_L25_ : (~((op (e3) (op (e3) (e2))) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H7e zenon_H62.
% 177.46/177.70  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H7f zenon_H62).
% 177.46/177.70  (* end of lemma zenon_L25_ *)
% 177.46/177.70  assert (zenon_L26_ : ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H80 zenon_H81 zenon_H62 zenon_H82.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H82.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) = ((op (e3) (e2)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H85.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H80.
% 177.46/177.70  cut (((op (e3) (op (e3) (e2))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H7e].
% 177.46/177.70  cut (((op (op (e3) (e3)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e3)) (e2)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H86.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (op (e3) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H87].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.70  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H88. apply sym_equal. exact zenon_H81.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply (zenon_L25_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L26_ *)
% 177.46/177.70  assert (zenon_L27_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H89 zenon_H80 zenon_H62 zenon_H82.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.70  apply (zenon_L26_); trivial.
% 177.46/177.70  (* end of lemma zenon_L27_ *)
% 177.46/177.70  assert (zenon_L28_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H80 zenon_H62 zenon_H82.
% 177.46/177.70  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.70  apply (zenon_L17_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.70  apply (zenon_L21_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.70  apply (zenon_L24_); trivial.
% 177.46/177.70  apply (zenon_L27_); trivial.
% 177.46/177.70  (* end of lemma zenon_L28_ *)
% 177.46/177.70  assert (zenon_L29_ : (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e3) (e2)) = (e2)) -> ((op (e2) (e1)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H91 zenon_H92 zenon_H93 zenon_H60.
% 177.46/177.70  cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e2) (e1)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H91.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H92.
% 177.46/177.70  cut (((op (e3) (op (e2) (e1))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5f].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H94].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e2) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H94.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H95.
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H97].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H98. apply sym_equal. exact zenon_H93.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  apply (zenon_L15_); trivial.
% 177.46/177.70  (* end of lemma zenon_L29_ *)
% 177.46/177.70  assert (zenon_L30_ : (~((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H99 zenon_H9a.
% 177.46/177.70  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.70  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H9b. apply sym_equal. exact zenon_H9a.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L30_ *)
% 177.46/177.70  assert (zenon_L31_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e0)))) -> ((op (e2) (e2)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H9c zenon_H63.
% 177.46/177.70  cut (((op (e2) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_H9d zenon_H63).
% 177.46/177.70  (* end of lemma zenon_L31_ *)
% 177.46/177.70  assert (zenon_L32_ : ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H9e zenon_H9a zenon_H63 zenon_H7b.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H7b.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9f].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H9f.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H9e.
% 177.46/177.70  cut (((op (e3) (op (e2) (e2))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Ha0.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L30_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply (zenon_L31_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L32_ *)
% 177.46/177.70  assert (zenon_L33_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H66 zenon_H9e zenon_H9a zenon_H7b.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.46/177.70  apply (zenon_L32_); trivial.
% 177.46/177.70  (* end of lemma zenon_L33_ *)
% 177.46/177.70  assert (zenon_L34_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e1)))) -> ((op (e2) (e2)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Ha1 zenon_Ha2.
% 177.46/177.70  cut (((op (e2) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Ha3].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_Ha3 zenon_Ha2).
% 177.46/177.70  (* end of lemma zenon_L34_ *)
% 177.46/177.70  assert (zenon_L35_ : ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H9e zenon_H9a zenon_Ha2 zenon_H82.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H82.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H85.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H9e.
% 177.46/177.70  cut (((op (e3) (op (e2) (e2))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Ha0.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L30_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply (zenon_L34_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L35_ *)
% 177.46/177.70  assert (zenon_L36_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H76 zenon_H9e zenon_H9a zenon_H82.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.46/177.70  apply (zenon_L35_); trivial.
% 177.46/177.70  (* end of lemma zenon_L36_ *)
% 177.46/177.70  assert (zenon_L37_ : ((op (e3) (e1)) = (e0)) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Ha7 zenon_Ha8.
% 177.46/177.70  apply (zenon_notand_s _ _ ax25); [ zenon_intro zenon_Haa | zenon_intro zenon_Ha9 ].
% 177.46/177.70  apply zenon_Haa. apply sym_equal. exact zenon_Ha8.
% 177.46/177.70  apply zenon_Ha9. apply sym_equal. exact zenon_Ha7.
% 177.46/177.70  (* end of lemma zenon_L37_ *)
% 177.46/177.70  assert (zenon_L38_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e3) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H7c zenon_Ha7.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.70  apply (zenon_L37_); trivial.
% 177.46/177.70  (* end of lemma zenon_L38_ *)
% 177.46/177.70  assert (zenon_L39_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hac zenon_H8e.
% 177.46/177.70  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_Had zenon_H8e).
% 177.46/177.70  (* end of lemma zenon_L39_ *)
% 177.46/177.70  assert (zenon_L40_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hae zenon_H9e zenon_H9a zenon_H8e.
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hae.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H9e.
% 177.46/177.70  cut (((op (e3) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hac].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Ha0.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H83.
% 177.46/177.70  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.46/177.70  cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L30_); trivial.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply zenon_H84. apply refl_equal.
% 177.46/177.70  apply (zenon_L39_); trivial.
% 177.46/177.70  (* end of lemma zenon_L40_ *)
% 177.46/177.70  assert (zenon_L41_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H89 zenon_Hae zenon_H9e zenon_H9a.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.70  apply (zenon_L40_); trivial.
% 177.46/177.70  (* end of lemma zenon_L41_ *)
% 177.46/177.70  assert (zenon_L42_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e zenon_H9a.
% 177.46/177.70  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.70  apply (zenon_L33_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.70  apply (zenon_L36_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.70  apply (zenon_L38_); trivial.
% 177.46/177.70  apply (zenon_L41_); trivial.
% 177.46/177.70  (* end of lemma zenon_L42_ *)
% 177.46/177.70  assert (zenon_L43_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Haf zenon_Hb0 zenon_H80 zenon_H72 zenon_H6c zenon_H71 zenon_H60 zenon_H92 zenon_H91 zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e0) (e1)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hb0.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H92.
% 177.46/177.70  cut (((op (e3) (op (e2) (e1))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5f].
% 177.46/177.70  cut (((op (op (e3) (e2)) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e0) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hb3.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H35.
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  cut (((e0) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_Hb5. apply sym_equal. exact zenon_Hb2.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply (zenon_L15_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.70  apply (zenon_L28_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.70  apply (zenon_L29_); trivial.
% 177.46/177.70  apply (zenon_L42_); trivial.
% 177.46/177.70  (* end of lemma zenon_L43_ *)
% 177.46/177.70  assert (zenon_L44_ : (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (e3) (e1)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hb0 zenon_H31 zenon_H26 zenon_Hb7.
% 177.46/177.70  cut (((op (unit) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hb0.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H31.
% 177.46/177.70  cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 177.46/177.70  cut (((op (unit) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (unit) (e1)) = (op (e0) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H34.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H35.
% 177.46/177.70  cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36].
% 177.46/177.70  cut (((op (e0) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2f].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L4_); trivial.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply zenon_H36. apply refl_equal.
% 177.46/177.70  apply zenon_Hb8. apply sym_equal. exact zenon_Hb7.
% 177.46/177.70  (* end of lemma zenon_L44_ *)
% 177.46/177.70  assert (zenon_L45_ : ((op (e3) (e1)) = (e2)) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hb9 zenon_H41.
% 177.46/177.70  apply (zenon_notand_s _ _ ax15); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ].
% 177.46/177.70  apply zenon_Hbb. apply sym_equal. exact zenon_H41.
% 177.46/177.70  apply zenon_Hba. apply sym_equal. exact zenon_Hb9.
% 177.46/177.70  (* end of lemma zenon_L45_ *)
% 177.46/177.70  assert (zenon_L46_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e3) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H66 zenon_Hb9.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.70  apply (zenon_L45_); trivial.
% 177.46/177.70  (* end of lemma zenon_L46_ *)
% 177.46/177.70  assert (zenon_L47_ : (~((op (e3) (op (e3) (e1))) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hbc zenon_Hb9.
% 177.46/177.70  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hbd].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_Hbd zenon_Hb9).
% 177.46/177.70  (* end of lemma zenon_L47_ *)
% 177.46/177.70  assert (zenon_L48_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H82 zenon_Hbe zenon_H81 zenon_Hb9.
% 177.46/177.70  cut (((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H82.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hbe.
% 177.46/177.70  cut (((op (e3) (op (e3) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hbc].
% 177.46/177.70  cut (((op (op (e3) (e3)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hbf].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.70  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e3)) (e1)) = (op (e3) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hbf.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hc0.
% 177.46/177.70  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.70  cut (((op (e3) (e1)) = (op (op (e3) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc2].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H88. apply sym_equal. exact zenon_H81.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  apply zenon_Hc1. apply refl_equal.
% 177.46/177.70  apply zenon_Hc1. apply refl_equal.
% 177.46/177.70  apply (zenon_L47_); trivial.
% 177.46/177.70  (* end of lemma zenon_L48_ *)
% 177.46/177.70  assert (zenon_L49_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H89 zenon_H82 zenon_Hbe zenon_Hb9.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.70  apply (zenon_L48_); trivial.
% 177.46/177.70  (* end of lemma zenon_L49_ *)
% 177.46/177.70  assert (zenon_L50_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb9.
% 177.46/177.70  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.70  apply (zenon_L46_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.70  apply (zenon_L21_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.70  apply (zenon_L24_); trivial.
% 177.46/177.70  apply (zenon_L49_); trivial.
% 177.46/177.70  (* end of lemma zenon_L50_ *)
% 177.46/177.70  assert (zenon_L51_ : (~((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hc3 zenon_Hc4.
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_Hc5. apply sym_equal. exact zenon_Hc4.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L51_ *)
% 177.46/177.70  assert (zenon_L52_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hc6 zenon_Hc7.
% 177.46/177.70  cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_Hc8 zenon_Hc7).
% 177.46/177.70  (* end of lemma zenon_L52_ *)
% 177.46/177.70  assert (zenon_L53_ : ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hc9 zenon_Hc4 zenon_Hc7 zenon_Hca.
% 177.46/177.70  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hca.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hcb.
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e3) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hcd.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hc9.
% 177.46/177.70  cut (((op (e3) (op (e1) (e3))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hc6].
% 177.46/177.70  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hce].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hce.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hcb.
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L51_); trivial.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply (zenon_L52_); trivial.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L53_ *)
% 177.46/177.70  assert (zenon_L54_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Haf zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hc7 zenon_Hca.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.70  apply (zenon_L12_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.70  apply (zenon_L13_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.70  apply (zenon_L14_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.70  apply (zenon_L43_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.70  apply (zenon_L44_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.70  apply (zenon_L50_); trivial.
% 177.46/177.70  apply (zenon_L53_); trivial.
% 177.46/177.70  (* end of lemma zenon_L54_ *)
% 177.46/177.70  assert (zenon_L55_ : (~((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hd5 zenon_Hd6.
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_Hd7. apply sym_equal. exact zenon_Hd6.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L55_ *)
% 177.46/177.70  assert (zenon_L56_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hd8 zenon_Hc7.
% 177.46/177.70  cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 177.46/177.70  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  exact (zenon_Hc8 zenon_Hc7).
% 177.46/177.70  (* end of lemma zenon_L56_ *)
% 177.46/177.70  assert (zenon_L57_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hd9 zenon_Hd6 zenon_Hc7 zenon_Hda.
% 177.46/177.70  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hda.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H5b.
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hdb.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hd9.
% 177.46/177.70  cut (((op (e2) (op (e1) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 177.46/177.70  cut (((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdc].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hdc.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H5b.
% 177.46/177.70  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.70  cut (((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L55_); trivial.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  apply (zenon_L56_); trivial.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  apply zenon_H5c. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L57_ *)
% 177.46/177.70  assert (zenon_L58_ : ((op (e2) (e1)) = (e3)) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hdd zenon_H41.
% 177.46/177.70  apply (zenon_notand_s _ _ ax17); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hde ].
% 177.46/177.70  apply zenon_Hbb. apply sym_equal. exact zenon_H41.
% 177.46/177.70  apply zenon_Hde. apply sym_equal. exact zenon_Hdd.
% 177.46/177.70  (* end of lemma zenon_L58_ *)
% 177.46/177.70  assert (zenon_L59_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e2) (e1)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H66 zenon_Hdd.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.70  apply (zenon_L58_); trivial.
% 177.46/177.70  (* end of lemma zenon_L59_ *)
% 177.46/177.70  assert (zenon_L60_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e3)))) -> ((op (e0) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hdf zenon_H8b.
% 177.46/177.70  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_He0].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_He0 zenon_H8b).
% 177.46/177.70  (* end of lemma zenon_L60_ *)
% 177.46/177.70  assert (zenon_L61_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hca zenon_H72 zenon_H6c zenon_H8b.
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hca.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H72.
% 177.46/177.70  cut (((op (e3) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdf].
% 177.46/177.70  cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_H73.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H74.
% 177.46/177.70  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.70  cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L18_); trivial.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply zenon_H75. apply refl_equal.
% 177.46/177.70  apply (zenon_L60_); trivial.
% 177.46/177.70  (* end of lemma zenon_L61_ *)
% 177.46/177.70  assert (zenon_L62_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H89 zenon_Hca zenon_H72 zenon_H6c.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.70  apply (zenon_L61_); trivial.
% 177.46/177.70  (* end of lemma zenon_L62_ *)
% 177.46/177.70  assert (zenon_L63_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e1)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hdd zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.70  apply (zenon_L12_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.70  apply (zenon_L13_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.70  apply (zenon_L14_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.70  apply (zenon_L59_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.70  apply (zenon_L21_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.70  apply (zenon_L24_); trivial.
% 177.46/177.70  apply (zenon_L62_); trivial.
% 177.46/177.70  (* end of lemma zenon_L63_ *)
% 177.46/177.70  assert (zenon_L64_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_He1 zenon_H41 zenon_H40 zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_Hda zenon_Hc7 zenon_Hd9 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.70  apply (zenon_L9_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.70  apply (zenon_L54_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.70  apply (zenon_L57_); trivial.
% 177.46/177.70  apply (zenon_L63_); trivial.
% 177.46/177.70  (* end of lemma zenon_L64_ *)
% 177.46/177.70  assert (zenon_L65_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e1) (unit)) = (e1)) -> ((unit) = (e0)) -> ((op (e1) (e3)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_He4 zenon_He5 zenon_H26 zenon_He6.
% 177.46/177.70  cut (((op (e1) (unit)) = (e1)) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_He4.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_He5.
% 177.46/177.70  cut (((e1) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 177.46/177.70  cut (((op (e1) (unit)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.70  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (e1) (unit)) = (op (e1) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_He8.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_He9.
% 177.46/177.70  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.70  cut (((op (e1) (e0)) = (op (e1) (unit)))); [idtac | apply NNPP; zenon_intro zenon_Heb].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.70  apply zenon_Hea. apply refl_equal.
% 177.46/177.70  apply zenon_Hea. apply refl_equal.
% 177.46/177.70  apply zenon_He7. apply sym_equal. exact zenon_He6.
% 177.46/177.70  (* end of lemma zenon_L65_ *)
% 177.46/177.70  assert (zenon_L66_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hec zenon_Hed.
% 177.46/177.70  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee].
% 177.46/177.70  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H45. apply refl_equal.
% 177.46/177.70  exact (zenon_Hee zenon_Hed).
% 177.46/177.70  (* end of lemma zenon_L66_ *)
% 177.46/177.70  assert (zenon_L67_ : ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hc9 zenon_Hc4 zenon_Hed zenon_Hae.
% 177.46/177.70  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e2)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hae.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hcb.
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hef].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e3) (e2)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hef.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hc9.
% 177.46/177.70  cut (((op (e3) (op (e1) (e3))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hec].
% 177.46/177.70  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hce].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hce.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hcb.
% 177.46/177.70  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.70  cut (((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L51_); trivial.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply (zenon_L66_); trivial.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  apply zenon_Hcc. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L67_ *)
% 177.46/177.70  assert (zenon_L68_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Haf zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hed zenon_Hae.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.70  apply (zenon_L12_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.70  apply (zenon_L13_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.70  apply (zenon_L14_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.70  apply (zenon_L43_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.70  apply (zenon_L44_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.70  apply (zenon_L50_); trivial.
% 177.46/177.70  apply (zenon_L67_); trivial.
% 177.46/177.70  (* end of lemma zenon_L68_ *)
% 177.46/177.70  assert (zenon_L69_ : (~((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hf0 zenon_Hd6.
% 177.46/177.70  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.70  cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_Hd7. apply sym_equal. exact zenon_Hd6.
% 177.46/177.70  apply zenon_H2e. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L69_ *)
% 177.46/177.70  assert (zenon_L70_ : (~((op (e2) (op (e1) (e1))) = (op (e2) (e0)))) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hf1 zenon_H41.
% 177.46/177.70  cut (((op (e1) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf2].
% 177.46/177.70  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.70  congruence.
% 177.46/177.70  apply zenon_H37. apply refl_equal.
% 177.46/177.70  exact (zenon_Hf2 zenon_H41).
% 177.46/177.70  (* end of lemma zenon_L70_ *)
% 177.46/177.70  assert (zenon_L71_ : ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e1)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hf3 zenon_Hd6 zenon_H41 zenon_Hf4.
% 177.46/177.70  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (e2) (e0)) = (op (e2) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hf4.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H95.
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 177.46/177.70  congruence.
% 177.46/177.70  cut (((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) = ((op (e2) (e1)) = (op (e2) (e0)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hf5.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_Hf3.
% 177.46/177.70  cut (((op (e2) (op (e1) (e1))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hf1].
% 177.46/177.70  cut (((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf6].
% 177.46/177.70  congruence.
% 177.46/177.70  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))).
% 177.46/177.70  intro zenon_D_pnotp.
% 177.46/177.70  apply zenon_Hf6.
% 177.46/177.70  rewrite <- zenon_D_pnotp.
% 177.46/177.70  exact zenon_H95.
% 177.46/177.70  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.70  cut (((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf0].
% 177.46/177.70  congruence.
% 177.46/177.70  apply (zenon_L69_); trivial.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  apply (zenon_L70_); trivial.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  apply zenon_H96. apply refl_equal.
% 177.46/177.70  (* end of lemma zenon_L71_ *)
% 177.46/177.70  assert (zenon_L72_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_He1 zenon_H40 zenon_Hae zenon_Hed zenon_Hc9 zenon_H71 zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_H9e zenon_Hd0 zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_Hf4 zenon_Hf3 zenon_H41.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.70  apply (zenon_L9_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.70  apply (zenon_L68_); trivial.
% 177.46/177.70  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.70  apply (zenon_L71_); trivial.
% 177.46/177.70  apply (zenon_L58_); trivial.
% 177.46/177.70  (* end of lemma zenon_L72_ *)
% 177.46/177.70  assert (zenon_L73_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e2) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H66 zenon_H40 zenon_H42.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.70  apply (zenon_L9_); trivial.
% 177.46/177.70  (* end of lemma zenon_L73_ *)
% 177.46/177.70  assert (zenon_L74_ : ((op (e3) (e2)) = (e0)) -> ((op (e2) (e2)) = (e1)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_Hb2 zenon_Ha2.
% 177.46/177.70  apply (zenon_notand_s _ _ ax19); [ zenon_intro zenon_Hf7 | zenon_intro zenon_Hb5 ].
% 177.46/177.70  apply zenon_Hf7. apply sym_equal. exact zenon_Ha2.
% 177.46/177.70  apply zenon_Hb5. apply sym_equal. exact zenon_Hb2.
% 177.46/177.70  (* end of lemma zenon_L74_ *)
% 177.46/177.70  assert (zenon_L75_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e3) (e2)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H76 zenon_Hb2.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.46/177.70  apply (zenon_L74_); trivial.
% 177.46/177.70  (* end of lemma zenon_L75_ *)
% 177.46/177.70  assert (zenon_L76_ : ((op (e2) (e1)) = (e0)) -> ((op (e1) (e1)) = (e3)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H42 zenon_H8d.
% 177.46/177.70  apply (zenon_notand_s _ _ ax31); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H43 ].
% 177.46/177.70  apply zenon_Hf8. apply sym_equal. exact zenon_H8d.
% 177.46/177.70  apply zenon_H43. apply sym_equal. exact zenon_H42.
% 177.46/177.70  (* end of lemma zenon_L76_ *)
% 177.46/177.70  assert (zenon_L77_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (e2) (e1)) = (e0)) -> False).
% 177.46/177.70  do 0 intro. intros zenon_H89 zenon_H42.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.70  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.70  apply (zenon_L76_); trivial.
% 177.46/177.70  (* end of lemma zenon_L77_ *)
% 177.46/177.70  assert (zenon_L78_ : (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e3) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hf9 zenon_H3a zenon_H26 zenon_H93.
% 177.46/177.71  cut (((op (unit) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hf9.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H3a.
% 177.46/177.71  cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98].
% 177.46/177.71  cut (((op (unit) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3d].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ].
% 177.46/177.71  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (unit) (e2)) = (op (e0) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H3d.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H3e.
% 177.46/177.71  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f].
% 177.46/177.71  cut (((op (e0) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H38].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L7_); trivial.
% 177.46/177.71  apply zenon_H3f. apply refl_equal.
% 177.46/177.71  apply zenon_H3f. apply refl_equal.
% 177.46/177.71  apply zenon_H98. apply sym_equal. exact zenon_H93.
% 177.46/177.71  (* end of lemma zenon_L78_ *)
% 177.46/177.71  assert (zenon_L79_ : (~((op (e3) (e0)) = (op (e3) (unit)))) -> ((unit) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hfa zenon_H26.
% 177.46/177.71  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.71  (* end of lemma zenon_L79_ *)
% 177.46/177.71  assert (zenon_L80_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e3) (unit)) = (e3)) -> ((unit) = (e0)) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H7b zenon_Hfb zenon_H26 zenon_H9a.
% 177.46/177.71  cut (((op (e3) (unit)) = (e3)) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H7b.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hfb.
% 177.46/177.71  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 177.46/177.71  cut (((op (e3) (unit)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hfc].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.71  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e3) (unit)) = (op (e3) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hfc.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H74.
% 177.46/177.71  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.71  cut (((op (e3) (e0)) = (op (e3) (unit)))); [idtac | apply NNPP; zenon_intro zenon_Hfa].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L79_); trivial.
% 177.46/177.71  apply zenon_H75. apply refl_equal.
% 177.46/177.71  apply zenon_H75. apply refl_equal.
% 177.46/177.71  apply zenon_H9b. apply sym_equal. exact zenon_H9a.
% 177.46/177.71  (* end of lemma zenon_L80_ *)
% 177.46/177.71  assert (zenon_L81_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hfd zenon_Hfe.
% 177.46/177.71  cut (((op (e1) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_Hff zenon_Hfe).
% 177.46/177.71  (* end of lemma zenon_L81_ *)
% 177.46/177.71  assert (zenon_L82_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H51 zenon_Hc9 zenon_Hb7 zenon_Hfe.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H51.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc9.
% 177.46/177.71  cut (((op (e3) (op (e1) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H100].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.71  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e1) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H100.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H54.
% 177.46/177.71  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.71  cut (((op (e1) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H101].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Hb8. apply sym_equal. exact zenon_Hb7.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  apply zenon_H55. apply refl_equal.
% 177.46/177.71  apply zenon_H55. apply refl_equal.
% 177.46/177.71  apply (zenon_L81_); trivial.
% 177.46/177.71  (* end of lemma zenon_L82_ *)
% 177.46/177.71  assert (zenon_L83_ : (~((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H102 zenon_Hc4.
% 177.46/177.71  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.71  cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Hc5. apply sym_equal. exact zenon_Hc4.
% 177.46/177.71  apply zenon_H2e. apply refl_equal.
% 177.46/177.71  (* end of lemma zenon_L83_ *)
% 177.46/177.71  assert (zenon_L84_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e0)))) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H103 zenon_H41.
% 177.46/177.71  cut (((op (e1) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf2].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_Hf2 zenon_H41).
% 177.46/177.71  (* end of lemma zenon_L84_ *)
% 177.46/177.71  assert (zenon_L85_ : ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H104 zenon_Hc4 zenon_H41 zenon_H71.
% 177.46/177.71  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (e3) (e0)) = (op (e3) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H71.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc0.
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H105].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H105.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H104.
% 177.46/177.71  cut (((op (e3) (op (e1) (e1))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H106.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc0.
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L83_); trivial.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply (zenon_L84_); trivial.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  (* end of lemma zenon_L85_ *)
% 177.46/177.71  assert (zenon_L86_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H66 zenon_H104 zenon_Hc4 zenon_H71.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.71  apply (zenon_L85_); trivial.
% 177.46/177.71  (* end of lemma zenon_L86_ *)
% 177.46/177.71  assert (zenon_L87_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e2)))) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H107 zenon_Ha8.
% 177.46/177.71  cut (((op (e1) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H108].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H108 zenon_Ha8).
% 177.46/177.71  (* end of lemma zenon_L87_ *)
% 177.46/177.71  assert (zenon_L88_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H82 zenon_H104 zenon_Hc4 zenon_Ha8.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H82.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H104.
% 177.46/177.71  cut (((op (e3) (op (e1) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H107].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H106.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc0.
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L83_); trivial.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply (zenon_L87_); trivial.
% 177.46/177.71  (* end of lemma zenon_L88_ *)
% 177.46/177.71  assert (zenon_L89_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H7c zenon_H82 zenon_H104 zenon_Hc4.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.71  apply (zenon_L88_); trivial.
% 177.46/177.71  (* end of lemma zenon_L89_ *)
% 177.46/177.71  assert (zenon_L90_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e3)))) -> ((op (e1) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H109 zenon_H8d.
% 177.46/177.71  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10a].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H10a zenon_H8d).
% 177.46/177.71  (* end of lemma zenon_L90_ *)
% 177.46/177.71  assert (zenon_L91_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H10b zenon_H104 zenon_Hc4 zenon_H8d.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H10b.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H104.
% 177.46/177.71  cut (((op (e3) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H109].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H106.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc0.
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L83_); trivial.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply (zenon_L90_); trivial.
% 177.46/177.71  (* end of lemma zenon_L91_ *)
% 177.46/177.71  assert (zenon_L92_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H89 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.71  apply (zenon_L91_); trivial.
% 177.46/177.71  (* end of lemma zenon_L92_ *)
% 177.46/177.71  assert (zenon_L93_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H71 zenon_Hb2 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L86_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L75_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L89_); trivial.
% 177.46/177.71  apply (zenon_L92_); trivial.
% 177.46/177.71  (* end of lemma zenon_L93_ *)
% 177.46/177.71  assert (zenon_L94_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e3)) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H71 zenon_H9a zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L86_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L36_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L89_); trivial.
% 177.46/177.71  apply (zenon_L92_); trivial.
% 177.46/177.71  (* end of lemma zenon_L94_ *)
% 177.46/177.71  assert (zenon_L95_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H6c zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.71  apply (zenon_L93_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.71  apply (zenon_L28_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.71  apply (zenon_L78_); trivial.
% 177.46/177.71  apply (zenon_L94_); trivial.
% 177.46/177.71  (* end of lemma zenon_L95_ *)
% 177.46/177.71  assert (zenon_L96_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e3) (unit)) = (e3)) -> ((op (e2) (e2)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e2) (e1)) = (e0)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Hfb zenon_H63 zenon_H40 zenon_H42 zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L73_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L75_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L38_); trivial.
% 177.46/177.71  apply (zenon_L77_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.71  apply (zenon_L16_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.71  apply (zenon_L78_); trivial.
% 177.46/177.71  apply (zenon_L80_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.71  apply (zenon_L82_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.71  apply (zenon_L50_); trivial.
% 177.46/177.71  apply (zenon_L95_); trivial.
% 177.46/177.71  (* end of lemma zenon_L96_ *)
% 177.46/177.71  assert (zenon_L97_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H71 zenon_H26 zenon_H3a zenon_Hf9 zenon_H9e zenon_Ha2 zenon_H82.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.71  apply (zenon_L74_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.71  apply (zenon_L28_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.71  apply (zenon_L78_); trivial.
% 177.46/177.71  apply (zenon_L35_); trivial.
% 177.46/177.71  (* end of lemma zenon_L97_ *)
% 177.46/177.71  assert (zenon_L98_ : (~((op (e2) (e0)) = (op (e2) (unit)))) -> ((unit) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H10c zenon_H26.
% 177.46/177.71  cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  apply zenon_H2d. apply sym_equal. exact zenon_H26.
% 177.46/177.71  (* end of lemma zenon_L98_ *)
% 177.46/177.71  assert (zenon_L99_ : (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H10d zenon_H10e zenon_H26 zenon_H10f.
% 177.46/177.71  cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e0)) = (op (e2) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H10d.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H10e.
% 177.46/177.71  cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 177.46/177.71  cut (((op (e2) (unit)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e2) (unit)) = (op (e2) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H111.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H112.
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L98_); trivial.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply zenon_H110. apply sym_equal. exact zenon_H10f.
% 177.46/177.71  (* end of lemma zenon_L99_ *)
% 177.46/177.71  assert (zenon_L100_ : ((op (e1) (e2)) = (e0)) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H114 zenon_H8e.
% 177.46/177.71  apply (zenon_notand_s _ _ ax30); [ zenon_intro zenon_H116 | zenon_intro zenon_H115 ].
% 177.46/177.71  apply zenon_H116. apply sym_equal. exact zenon_H8e.
% 177.46/177.71  apply zenon_H115. apply sym_equal. exact zenon_H114.
% 177.46/177.71  (* end of lemma zenon_L100_ *)
% 177.46/177.71  assert (zenon_L101_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (e2) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e3) (unit)) = (e3)) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H117 zenon_H104 zenon_H10b zenon_Hbe zenon_Hc9 zenon_Hfe zenon_H42 zenon_H40 zenon_Hfb zenon_Hd0 zenon_H82 zenon_H9e zenon_Hf9 zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H80 zenon_Haf zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_H26 zenon_H10e zenon_H10d zenon_H114.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ].
% 177.46/177.71  apply (zenon_L96_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ].
% 177.46/177.71  apply (zenon_L97_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ].
% 177.46/177.71  apply (zenon_L99_); trivial.
% 177.46/177.71  apply (zenon_L100_); trivial.
% 177.46/177.71  (* end of lemma zenon_L101_ *)
% 177.46/177.71  assert (zenon_L102_ : (~((op (e3) (op (e1) (e0))) = (op (e3) (e0)))) -> ((op (e1) (e0)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H11a zenon_H11b.
% 177.46/177.71  cut (((op (e1) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H11c].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H11c zenon_H11b).
% 177.46/177.71  (* end of lemma zenon_L102_ *)
% 177.46/177.71  assert (zenon_L103_ : (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e3) (e1)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H11d zenon_H11e zenon_Hb9 zenon_H11b.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) = ((op (e2) (e0)) = (op (e3) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H11d.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H11e.
% 177.46/177.71  cut (((op (e3) (op (e1) (e0))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H11a].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H11f].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (op (e3) (e1)) (e0)) = (op (e2) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H11f.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H112.
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.71  cut (((e2) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hba].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Hba. apply sym_equal. exact zenon_Hb9.
% 177.46/177.71  apply zenon_H23. apply refl_equal.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply (zenon_L102_); trivial.
% 177.46/177.71  (* end of lemma zenon_L103_ *)
% 177.46/177.71  assert (zenon_L104_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H6c zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.71  apply (zenon_L43_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.71  apply (zenon_L44_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.71  apply (zenon_L103_); trivial.
% 177.46/177.71  apply (zenon_L95_); trivial.
% 177.46/177.71  (* end of lemma zenon_L104_ *)
% 177.46/177.71  assert (zenon_L105_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_L104_); trivial.
% 177.46/177.71  (* end of lemma zenon_L105_ *)
% 177.46/177.71  assert (zenon_L106_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H66 zenon_Hf3 zenon_Hd6 zenon_Hf4.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.71  apply (zenon_L71_); trivial.
% 177.46/177.71  (* end of lemma zenon_L106_ *)
% 177.46/177.71  assert (zenon_L107_ : ((op (e2) (e3)) = (e0)) -> ((op (e3) (e3)) = (e1)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H121 zenon_Ha6.
% 177.46/177.71  apply (zenon_notand_s _ _ ax18); [ zenon_intro zenon_H123 | zenon_intro zenon_H122 ].
% 177.46/177.71  apply zenon_H123. apply sym_equal. exact zenon_Ha6.
% 177.46/177.71  apply zenon_H122. apply sym_equal. exact zenon_H121.
% 177.46/177.71  (* end of lemma zenon_L107_ *)
% 177.46/177.71  assert (zenon_L108_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e2) (e3)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H76 zenon_H121.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.46/177.71  apply (zenon_L107_); trivial.
% 177.46/177.71  (* end of lemma zenon_L108_ *)
% 177.46/177.71  assert (zenon_L109_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H7c zenon_H10d zenon_H10e zenon_H26.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124.
% 177.46/177.71  apply (zenon_L99_); trivial.
% 177.46/177.71  (* end of lemma zenon_L109_ *)
% 177.46/177.71  assert (zenon_L110_ : (~((op (e2) (op (e1) (e1))) = (op (e2) (e3)))) -> ((op (e1) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H125 zenon_H8d.
% 177.46/177.71  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10a].
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  exact (zenon_H10a zenon_H8d).
% 177.46/177.71  (* end of lemma zenon_L110_ *)
% 177.46/177.71  assert (zenon_L111_ : (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e1)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H126 zenon_Hf3 zenon_Hd6 zenon_H8d.
% 177.46/177.71  cut (((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) = ((op (e2) (e1)) = (op (e2) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H126.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hf3.
% 177.46/177.71  cut (((op (e2) (op (e1) (e1))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H125].
% 177.46/177.71  cut (((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf6].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.71  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hf6.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H95.
% 177.46/177.71  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.71  cut (((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf0].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L69_); trivial.
% 177.46/177.71  apply zenon_H96. apply refl_equal.
% 177.46/177.71  apply zenon_H96. apply refl_equal.
% 177.46/177.71  apply (zenon_L110_); trivial.
% 177.46/177.71  (* end of lemma zenon_L111_ *)
% 177.46/177.71  assert (zenon_L112_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H89 zenon_H126 zenon_Hf3 zenon_Hd6.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.71  apply (zenon_L111_); trivial.
% 177.46/177.71  (* end of lemma zenon_L112_ *)
% 177.46/177.71  assert (zenon_L113_ : (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (e2) (e3)) = (e0)) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hf4 zenon_H121 zenon_H26 zenon_H10e zenon_H10d zenon_H126 zenon_Hf3 zenon_Hd6.
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L106_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L108_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L109_); trivial.
% 177.46/177.71  apply (zenon_L112_); trivial.
% 177.46/177.71  (* end of lemma zenon_L113_ *)
% 177.46/177.71  assert (zenon_L114_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e2) (e3)) = (e1)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H66 zenon_H127.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.46/177.71  apply (zenon_notand_s _ _ ax12); [ zenon_intro zenon_H129 | zenon_intro zenon_H128 ].
% 177.46/177.71  apply zenon_H129. apply sym_equal. exact zenon_H6a.
% 177.46/177.71  apply zenon_H128. apply sym_equal. exact zenon_H127.
% 177.46/177.71  (* end of lemma zenon_L114_ *)
% 177.46/177.71  assert (zenon_L115_ : ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H127 zenon_H71 zenon_H7b zenon_Hca zenon_H72 zenon_H6c.
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L114_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L21_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L24_); trivial.
% 177.46/177.71  apply (zenon_L62_); trivial.
% 177.46/177.71  (* end of lemma zenon_L115_ *)
% 177.46/177.71  assert (zenon_L116_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H127 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_L115_); trivial.
% 177.46/177.71  (* end of lemma zenon_L116_ *)
% 177.46/177.71  assert (zenon_L117_ : (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e3)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hda zenon_H10e zenon_H26 zenon_H12a.
% 177.46/177.71  cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e0)) = (op (e2) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hda.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H10e.
% 177.46/177.71  cut (((e2) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12b].
% 177.46/177.71  cut (((op (e2) (unit)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e2) (unit)) = (op (e2) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H111.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H112.
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 177.46/177.71  cut (((op (e2) (e0)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H10c].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L98_); trivial.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply zenon_H113. apply refl_equal.
% 177.46/177.71  apply zenon_H12b. apply sym_equal. exact zenon_H12a.
% 177.46/177.71  (* end of lemma zenon_L117_ *)
% 177.46/177.71  assert (zenon_L118_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H12c zenon_H12d.
% 177.46/177.71  cut (((op (e2) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H12e].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H12e zenon_H12d).
% 177.46/177.71  (* end of lemma zenon_L118_ *)
% 177.46/177.71  assert (zenon_L119_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e2)) -> ((op (e2) (e3)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H58 zenon_H12f zenon_H93 zenon_H12d.
% 177.46/177.71  cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H58.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H12f.
% 177.46/177.71  cut (((op (e3) (op (e2) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12c].
% 177.46/177.71  cut (((op (op (e3) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H130].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e2) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H130.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H5b.
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.71  cut (((op (e2) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H131].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H98. apply sym_equal. exact zenon_H93.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  apply zenon_H5c. apply refl_equal.
% 177.46/177.71  apply zenon_H5c. apply refl_equal.
% 177.46/177.71  apply (zenon_L118_); trivial.
% 177.46/177.71  (* end of lemma zenon_L119_ *)
% 177.46/177.71  assert (zenon_L120_ : (~((op (e3) (e1)) = (op (op (e3) (e2)) (e1)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H132 zenon_H9a.
% 177.46/177.71  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.71  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H9b. apply sym_equal. exact zenon_H9a.
% 177.46/177.71  apply zenon_H2e. apply refl_equal.
% 177.46/177.71  (* end of lemma zenon_L120_ *)
% 177.46/177.71  assert (zenon_L121_ : (~((op (e3) (op (e2) (e1))) = (op (e3) (e2)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H133 zenon_Hd6.
% 177.46/177.71  cut (((op (e2) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H134].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H134 zenon_Hd6).
% 177.46/177.71  (* end of lemma zenon_L121_ *)
% 177.46/177.71  assert (zenon_L122_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H82 zenon_H92 zenon_H9a zenon_Hd6.
% 177.46/177.71  cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H82.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H92.
% 177.46/177.71  cut (((op (e3) (op (e2) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H133].
% 177.46/177.71  cut (((op (op (e3) (e2)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H135].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e3) (e1)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H135.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hc0.
% 177.46/177.71  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.46/177.71  cut (((op (e3) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H132].
% 177.46/177.71  congruence.
% 177.46/177.71  apply (zenon_L120_); trivial.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply zenon_Hc1. apply refl_equal.
% 177.46/177.71  apply (zenon_L121_); trivial.
% 177.46/177.71  (* end of lemma zenon_L122_ *)
% 177.46/177.71  assert (zenon_L123_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e1)) = (e2)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H136 zenon_H126 zenon_H10d zenon_H10e zenon_Hda zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hd6 zenon_H92 zenon_H58 zenon_H12f zenon_Hf4 zenon_Hf3 zenon_Hca zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.46/177.71  apply (zenon_L113_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.46/177.71  apply (zenon_L116_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.46/177.71  apply (zenon_L117_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.71  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.71  apply (zenon_L106_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.71  apply (zenon_L75_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.71  apply (zenon_L38_); trivial.
% 177.46/177.71  apply (zenon_L62_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.71  apply (zenon_L28_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.71  apply (zenon_L119_); trivial.
% 177.46/177.71  apply (zenon_L122_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.71  apply (zenon_L44_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.71  apply (zenon_L103_); trivial.
% 177.46/177.71  apply (zenon_L95_); trivial.
% 177.46/177.71  (* end of lemma zenon_L123_ *)
% 177.46/177.71  assert (zenon_L124_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e0)) -> ((op (e3) (unit)) = (e3)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_He1 zenon_H114 zenon_Hfb zenon_H40 zenon_Hfe zenon_Hc9 zenon_Hbe zenon_H117 zenon_H91 zenon_Hae zenon_H104 zenon_H10b zenon_H82 zenon_H9e zenon_Hf9 zenon_H3a zenon_H26 zenon_H80 zenon_Haf zenon_H11d zenon_H11e zenon_H11b zenon_Hb0 zenon_H31 zenon_Hf3 zenon_Hf4 zenon_H12f zenon_H92 zenon_Hd0 zenon_Hda zenon_H10e zenon_H10d zenon_H126 zenon_H136 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.71  apply (zenon_L101_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.71  apply (zenon_L105_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.71  apply (zenon_L123_); trivial.
% 177.46/177.71  apply (zenon_L63_); trivial.
% 177.46/177.71  (* end of lemma zenon_L124_ *)
% 177.46/177.71  assert (zenon_L125_ : (~((op (e1) (op (e2) (e2))) = (op (e1) (e3)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H139 zenon_H8e.
% 177.46/177.71  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 177.46/177.71  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H2e. apply refl_equal.
% 177.46/177.71  exact (zenon_Had zenon_H8e).
% 177.46/177.71  (* end of lemma zenon_L125_ *)
% 177.46/177.71  assert (zenon_L126_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H13a zenon_H13b zenon_H13c zenon_H8e.
% 177.46/177.71  cut (((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H13a.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H13b.
% 177.46/177.71  cut (((op (e1) (op (e2) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H139].
% 177.46/177.71  cut (((op (op (e1) (e2)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13d].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 177.46/177.71  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e1) (e2)) (e2)) = (op (e1) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H13d.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H13e.
% 177.46/177.71  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 177.46/177.71  cut (((op (e1) (e2)) = (op (op (e1) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H140].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  cut (((e1) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H141].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H141. apply sym_equal. exact zenon_H13c.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  apply zenon_H13f. apply refl_equal.
% 177.46/177.71  apply zenon_H13f. apply refl_equal.
% 177.46/177.71  apply (zenon_L125_); trivial.
% 177.46/177.71  (* end of lemma zenon_L126_ *)
% 177.46/177.71  assert (zenon_L127_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H142 zenon_Hfe.
% 177.46/177.71  cut (((op (e1) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  exact (zenon_Hff zenon_Hfe).
% 177.46/177.71  (* end of lemma zenon_L127_ *)
% 177.46/177.71  assert (zenon_L128_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e3)) -> ((op (e1) (e3)) = (e3)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hd9 zenon_Hdd zenon_Hfe zenon_H58.
% 177.46/177.71  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.71  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H58.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hcb.
% 177.46/177.71  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.71  cut (((op (e3) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H143].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e2) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H143.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hd9.
% 177.46/177.71  cut (((op (e2) (op (e1) (e3))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H142].
% 177.46/177.71  cut (((op (op (e2) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H144].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.71  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e3) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H144.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_Hcb.
% 177.46/177.71  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.71  cut (((op (e3) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H145].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  cut (((e3) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Hde. apply sym_equal. exact zenon_Hdd.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  apply zenon_Hcc. apply refl_equal.
% 177.46/177.71  apply zenon_Hcc. apply refl_equal.
% 177.46/177.71  apply (zenon_L127_); trivial.
% 177.46/177.71  apply zenon_Hcc. apply refl_equal.
% 177.46/177.71  apply zenon_Hcc. apply refl_equal.
% 177.46/177.71  (* end of lemma zenon_L128_ *)
% 177.46/177.71  assert (zenon_L129_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e1)) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e3) (unit)) = (e3)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_He1 zenon_H13c zenon_H13b zenon_H13a zenon_Hfb zenon_H40 zenon_Hc9 zenon_Hbe zenon_H117 zenon_H91 zenon_Hae zenon_H104 zenon_H10b zenon_H82 zenon_H9e zenon_H71 zenon_Hf9 zenon_H3a zenon_H26 zenon_H72 zenon_H7b zenon_H80 zenon_Haf zenon_H11d zenon_H11e zenon_H11b zenon_Hb0 zenon_H31 zenon_Hca zenon_Hf3 zenon_Hf4 zenon_H12f zenon_H92 zenon_Hd0 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_Hda zenon_H10e zenon_H10d zenon_H126 zenon_H136 zenon_Hd9 zenon_Hfe zenon_H58.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ].
% 177.46/177.71  apply (zenon_L96_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ].
% 177.46/177.71  apply (zenon_L97_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ].
% 177.46/177.71  apply (zenon_L99_); trivial.
% 177.46/177.71  apply (zenon_L126_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.71  apply (zenon_L105_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.71  apply (zenon_L123_); trivial.
% 177.46/177.71  apply (zenon_L128_); trivial.
% 177.46/177.71  (* end of lemma zenon_L129_ *)
% 177.46/177.71  assert (zenon_L130_ : (~((op (e3) (op (e1) (e2))) = (op (e3) (e2)))) -> ((op (e1) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H146 zenon_H147.
% 177.46/177.71  cut (((op (e1) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H148].
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  exact (zenon_H148 zenon_H147).
% 177.46/177.71  (* end of lemma zenon_L130_ *)
% 177.46/177.71  assert (zenon_L131_ : (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (e1) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hf9 zenon_H149 zenon_Ha7 zenon_H147.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) = ((op (e0) (e2)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hf9.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H149.
% 177.46/177.71  cut (((op (e3) (op (e1) (e2))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H146].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14a].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ].
% 177.46/177.71  cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (op (e3) (e1)) (e2)) = (op (e0) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H14a.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H3e.
% 177.46/177.71  cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f].
% 177.46/177.71  cut (((op (e0) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14b].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  cut (((e0) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Ha9].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Ha9. apply sym_equal. exact zenon_Ha7.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  apply zenon_H3f. apply refl_equal.
% 177.46/177.71  apply zenon_H3f. apply refl_equal.
% 177.46/177.71  apply (zenon_L130_); trivial.
% 177.46/177.71  (* end of lemma zenon_L131_ *)
% 177.46/177.71  assert (zenon_L132_ : (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> ((op (e3) (e1)) = (e1)) -> ((op (e1) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H14c zenon_H149 zenon_Hb7 zenon_H147.
% 177.46/177.71  cut (((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) = ((op (e1) (e2)) = (op (e3) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H14c.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H149.
% 177.46/177.71  cut (((op (e3) (op (e1) (e2))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H146].
% 177.46/177.71  cut (((op (op (e3) (e1)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14d].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 177.46/177.71  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e3) (e1)) (e2)) = (op (e1) (e2)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_H14d.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H13e.
% 177.46/177.71  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 177.46/177.71  cut (((op (e1) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14e].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_Hb8. apply sym_equal. exact zenon_Hb7.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  apply zenon_H13f. apply refl_equal.
% 177.46/177.71  apply zenon_H13f. apply refl_equal.
% 177.46/177.71  apply (zenon_L130_); trivial.
% 177.46/177.71  (* end of lemma zenon_L132_ *)
% 177.46/177.71  assert (zenon_L133_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H147 zenon_H149 zenon_H14c zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.71  apply (zenon_L12_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.71  apply (zenon_L13_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.71  apply (zenon_L14_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.71  apply (zenon_L131_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.71  apply (zenon_L132_); trivial.
% 177.46/177.71  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.71  apply (zenon_L103_); trivial.
% 177.46/177.71  apply (zenon_L95_); trivial.
% 177.46/177.71  (* end of lemma zenon_L133_ *)
% 177.46/177.71  assert (zenon_L134_ : ((op (e1) (e3)) = (e2)) -> ((op (e3) (e3)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_Hed zenon_H6a.
% 177.46/177.71  apply (zenon_notand_s _ _ ax14); [ zenon_intro zenon_H129 | zenon_intro zenon_H14f ].
% 177.46/177.71  apply zenon_H129. apply sym_equal. exact zenon_H6a.
% 177.46/177.71  apply zenon_H14f. apply sym_equal. exact zenon_Hed.
% 177.46/177.71  (* end of lemma zenon_L134_ *)
% 177.46/177.71  assert (zenon_L135_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e1) (e3)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H66 zenon_Hed.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.71  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.46/177.71  apply (zenon_L134_); trivial.
% 177.46/177.71  (* end of lemma zenon_L135_ *)
% 177.46/177.71  assert (zenon_L136_ : (~((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))) -> ((op (e2) (e2)) = (e2)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H150 zenon_H10f.
% 177.46/177.71  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.71  cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H110].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H110. apply sym_equal. exact zenon_H10f.
% 177.46/177.71  apply zenon_H45. apply refl_equal.
% 177.46/177.71  (* end of lemma zenon_L136_ *)
% 177.46/177.71  assert (zenon_L137_ : (~((op (e2) (op (e2) (e3))) = (op (e2) (e0)))) -> ((op (e2) (e3)) = (e0)) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H151 zenon_H121.
% 177.46/177.71  cut (((op (e2) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H152].
% 177.46/177.71  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.71  congruence.
% 177.46/177.71  apply zenon_H37. apply refl_equal.
% 177.46/177.71  exact (zenon_H152 zenon_H121).
% 177.46/177.71  (* end of lemma zenon_L137_ *)
% 177.46/177.71  assert (zenon_L138_ : ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e2)) = (e2)) -> ((op (e2) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 177.46/177.71  do 0 intro. intros zenon_H153 zenon_H10f zenon_H121 zenon_Hda.
% 177.46/177.71  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hda.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H5b.
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 177.46/177.71  congruence.
% 177.46/177.71  cut (((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))).
% 177.46/177.71  intro zenon_D_pnotp.
% 177.46/177.71  apply zenon_Hdb.
% 177.46/177.71  rewrite <- zenon_D_pnotp.
% 177.46/177.71  exact zenon_H153.
% 177.46/177.71  cut (((op (e2) (op (e2) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H151].
% 177.46/177.71  cut (((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H154].
% 177.46/177.71  congruence.
% 177.46/177.71  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.71  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H154.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L136_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply (zenon_L137_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L138_ *)
% 177.46/177.72  assert (zenon_L139_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H7c zenon_H153 zenon_H121 zenon_Hda.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124.
% 177.46/177.72  apply (zenon_L138_); trivial.
% 177.46/177.72  (* end of lemma zenon_L139_ *)
% 177.46/177.72  assert (zenon_L140_ : (~((op (e1) (op (e3) (e3))) = (op (e1) (e3)))) -> ((op (e3) (e3)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H155 zenon_H81.
% 177.46/177.72  cut (((op (e3) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H156].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_H156 zenon_H81).
% 177.46/177.72  (* end of lemma zenon_L140_ *)
% 177.46/177.72  assert (zenon_L141_ : ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H157 zenon_Hed zenon_H81 zenon_H158.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e1) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H158.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H159].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) = ((op (e2) (e3)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H159.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H157.
% 177.46/177.72  cut (((op (e1) (op (e3) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H155].
% 177.46/177.72  cut (((op (op (e1) (e3)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15a].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e1) (e3)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H15a.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (op (e1) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15b].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.72  cut (((e2) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H14f].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H14f. apply sym_equal. exact zenon_Hed.
% 177.46/177.72  apply zenon_H45. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply (zenon_L140_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L141_ *)
% 177.46/177.72  assert (zenon_L142_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H89 zenon_H157 zenon_Hed zenon_H158.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.72  apply (zenon_L141_); trivial.
% 177.46/177.72  (* end of lemma zenon_L142_ *)
% 177.46/177.72  assert (zenon_L143_ : (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e0)) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hda zenon_H121 zenon_H153 zenon_H157 zenon_Hed zenon_H158.
% 177.46/177.72  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.72  apply (zenon_L135_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.72  apply (zenon_L108_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.72  apply (zenon_L139_); trivial.
% 177.46/177.72  apply (zenon_L142_); trivial.
% 177.46/177.72  (* end of lemma zenon_L143_ *)
% 177.46/177.72  assert (zenon_L144_ : (~((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))) -> ((op (e1) (e1)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H15c zenon_Ha5.
% 177.46/177.72  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.72  cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H15d. apply sym_equal. exact zenon_Ha5.
% 177.46/177.72  apply zenon_H45. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L144_ *)
% 177.46/177.72  assert (zenon_L145_ : (~((op (e1) (op (e1) (e3))) = (op (e1) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H15e zenon_Hed.
% 177.46/177.72  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_Hee zenon_Hed).
% 177.46/177.72  (* end of lemma zenon_L145_ *)
% 177.46/177.72  assert (zenon_L146_ : ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H15f zenon_Ha5 zenon_Hed zenon_H13a.
% 177.46/177.72  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H13a.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H54.
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e1) (e2)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H160.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H15f.
% 177.46/177.72  cut (((op (e1) (op (e1) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H15e].
% 177.46/177.72  cut (((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H161].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H161.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H54.
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15c].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L144_); trivial.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply (zenon_L145_); trivial.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L146_ *)
% 177.46/177.72  assert (zenon_L147_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H76 zenon_H15f zenon_Hed zenon_H13a.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.72  apply (zenon_L146_); trivial.
% 177.46/177.72  (* end of lemma zenon_L147_ *)
% 177.46/177.72  assert (zenon_L148_ : (~((op (e2) (op (e2) (e3))) = (op (e2) (e1)))) -> ((op (e2) (e3)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H162 zenon_H127.
% 177.46/177.72  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H163].
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  exact (zenon_H163 zenon_H127).
% 177.46/177.72  (* end of lemma zenon_L148_ *)
% 177.46/177.72  assert (zenon_L149_ : ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e2)) = (e2)) -> ((op (e2) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H153 zenon_H10f zenon_H127 zenon_H126.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e1)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H126.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H164].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e2) (e1)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H164.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H153.
% 177.46/177.72  cut (((op (e2) (op (e2) (e3))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H162].
% 177.46/177.72  cut (((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H154].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H154.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L136_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply (zenon_L148_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L149_ *)
% 177.46/177.72  assert (zenon_L150_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H7c zenon_H153 zenon_H127 zenon_H126.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124.
% 177.46/177.72  apply (zenon_L149_); trivial.
% 177.46/177.72  (* end of lemma zenon_L150_ *)
% 177.46/177.72  assert (zenon_L151_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H13a zenon_H15f zenon_H126 zenon_H127 zenon_H153 zenon_H157 zenon_Hed zenon_H158.
% 177.46/177.72  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.72  apply (zenon_L114_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.72  apply (zenon_L147_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.72  apply (zenon_L150_); trivial.
% 177.46/177.72  apply (zenon_L142_); trivial.
% 177.46/177.72  (* end of lemma zenon_L151_ *)
% 177.46/177.72  assert (zenon_L152_ : (~((op (e1) (op (e2) (e3))) = (op (e1) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H165 zenon_H12d.
% 177.46/177.72  cut (((op (e2) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H12e].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_H12e zenon_H12d).
% 177.46/177.72  (* end of lemma zenon_L152_ *)
% 177.46/177.72  assert (zenon_L153_ : ((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> ((op (e2) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H166 zenon_H167 zenon_H12d zenon_H51.
% 177.46/177.72  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.72  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H51.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_Hcb.
% 177.46/177.72  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.72  cut (((op (e3) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H168].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H168.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H166.
% 177.46/177.72  cut (((op (e1) (op (e2) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H165].
% 177.46/177.72  cut (((op (op (e1) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H169].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.72  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e1) (e2)) (e3)) = (op (e3) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H169.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_Hcb.
% 177.46/177.72  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.72  cut (((op (e3) (e3)) = (op (op (e1) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H16a].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.72  cut (((e3) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H16b].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H16b. apply sym_equal. exact zenon_H167.
% 177.46/177.72  apply zenon_H45. apply refl_equal.
% 177.46/177.72  apply zenon_Hcc. apply refl_equal.
% 177.46/177.72  apply zenon_Hcc. apply refl_equal.
% 177.46/177.72  apply (zenon_L152_); trivial.
% 177.46/177.72  apply zenon_Hcc. apply refl_equal.
% 177.46/177.72  apply zenon_Hcc. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L153_ *)
% 177.46/177.72  assert (zenon_L154_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H136 zenon_H158 zenon_Hed zenon_H157 zenon_H153 zenon_H126 zenon_H15f zenon_H13a zenon_H26 zenon_H10e zenon_Hda zenon_H166 zenon_H167 zenon_H51.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.46/177.72  apply (zenon_L143_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.46/177.72  apply (zenon_L151_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.46/177.72  apply (zenon_L117_); trivial.
% 177.46/177.72  apply (zenon_L153_); trivial.
% 177.46/177.72  (* end of lemma zenon_L154_ *)
% 177.46/177.72  assert (zenon_L155_ : (~((op (e2) (op (e1) (e2))) = (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H16c zenon_H167.
% 177.46/177.72  cut (((op (e1) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H16d].
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  exact (zenon_H16d zenon_H167).
% 177.46/177.72  (* end of lemma zenon_L155_ *)
% 177.46/177.72  assert (zenon_L156_ : (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e2)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H16e zenon_H16f zenon_Hd6 zenon_H167.
% 177.46/177.72  cut (((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2)))) = ((op (e2) (e2)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H16e.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H16f.
% 177.46/177.72  cut (((op (e2) (op (e1) (e2))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H16c].
% 177.46/177.72  cut (((op (op (e2) (e1)) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H170].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e2)) = (op (e2) (e2)))); [ zenon_intro zenon_H171 | zenon_intro zenon_H172 ].
% 177.46/177.72  cut (((op (e2) (e2)) = (op (e2) (e2))) = ((op (op (e2) (e1)) (e2)) = (op (e2) (e2)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H170.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H171.
% 177.46/177.72  cut (((op (e2) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H172].
% 177.46/177.72  cut (((op (e2) (e2)) = (op (op (e2) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H173].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_Hd7. apply sym_equal. exact zenon_Hd6.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  apply zenon_H172. apply refl_equal.
% 177.46/177.72  apply zenon_H172. apply refl_equal.
% 177.46/177.72  apply (zenon_L155_); trivial.
% 177.46/177.72  (* end of lemma zenon_L156_ *)
% 177.46/177.72  assert (zenon_L157_ : (~((op (e1) (op (e1) (e3))) = (op (e1) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H174 zenon_Hc7.
% 177.46/177.72  cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_Hc8 zenon_Hc7).
% 177.46/177.72  (* end of lemma zenon_L157_ *)
% 177.46/177.72  assert (zenon_L158_ : ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H15f zenon_Ha5 zenon_Hc7 zenon_He4.
% 177.46/177.72  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_He4.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H54.
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H175].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e1) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H175.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H15f.
% 177.46/177.72  cut (((op (e1) (op (e1) (e3))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H174].
% 177.46/177.72  cut (((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H161].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H161.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H54.
% 177.46/177.72  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.72  cut (((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15c].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L144_); trivial.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply (zenon_L157_); trivial.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  apply zenon_H55. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L158_ *)
% 177.46/177.72  assert (zenon_L159_ : (~((op (e1) (op (e1) (e2))) = (op (e1) (e3)))) -> ((op (e1) (e2)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H176 zenon_H167.
% 177.46/177.72  cut (((op (e1) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H16d].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_H16d zenon_H167).
% 177.46/177.72  (* end of lemma zenon_L159_ *)
% 177.46/177.72  assert (zenon_L160_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e2)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H13a zenon_H177 zenon_Ha5 zenon_H167.
% 177.46/177.72  cut (((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2)))) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H13a.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H177.
% 177.46/177.72  cut (((op (e1) (op (e1) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H176].
% 177.46/177.72  cut (((op (op (e1) (e1)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H178].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 177.46/177.72  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e1) (e1)) (e2)) = (op (e1) (e2)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H178.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H13e.
% 177.46/177.72  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 177.46/177.72  cut (((op (e1) (e2)) = (op (op (e1) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H179].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H15d. apply sym_equal. exact zenon_Ha5.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  apply zenon_H13f. apply refl_equal.
% 177.46/177.72  apply zenon_H13f. apply refl_equal.
% 177.46/177.72  apply (zenon_L159_); trivial.
% 177.46/177.72  (* end of lemma zenon_L160_ *)
% 177.46/177.72  assert (zenon_L161_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Ha8 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hc7 zenon_Hca.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.72  apply (zenon_L12_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.72  apply (zenon_L13_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.72  apply (zenon_L14_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_L37_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L44_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L50_); trivial.
% 177.46/177.72  apply (zenon_L53_); trivial.
% 177.46/177.72  (* end of lemma zenon_L161_ *)
% 177.46/177.72  assert (zenon_L162_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Ha8 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hed zenon_Hae.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.72  apply (zenon_L12_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.72  apply (zenon_L13_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.72  apply (zenon_L14_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_L37_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L44_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L50_); trivial.
% 177.46/177.72  apply (zenon_L67_); trivial.
% 177.46/177.72  (* end of lemma zenon_L162_ *)
% 177.46/177.72  assert (zenon_L163_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e2)) -> ((op (e1) (e3)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H58 zenon_Hc9 zenon_Hb9 zenon_Hfe.
% 177.46/177.72  cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H58.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_Hc9.
% 177.46/177.72  cut (((op (e3) (op (e1) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 177.46/177.72  cut (((op (op (e3) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H17a].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H17a.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H17b].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.72  cut (((e2) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hba].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_Hba. apply sym_equal. exact zenon_Hb9.
% 177.46/177.72  apply zenon_H45. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply (zenon_L81_); trivial.
% 177.46/177.72  (* end of lemma zenon_L163_ *)
% 177.46/177.72  assert (zenon_L164_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hd0 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_L37_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L82_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L163_); trivial.
% 177.46/177.72  apply (zenon_L88_); trivial.
% 177.46/177.72  (* end of lemma zenon_L164_ *)
% 177.46/177.72  assert (zenon_L165_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e1) (unit)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H17c zenon_Hca zenon_He5 zenon_He4 zenon_Hae zenon_H71 zenon_H72 zenon_H7b zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_H4a zenon_H47 zenon_H49 zenon_Hcf zenon_Hd0 zenon_H51 zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.46/177.72  apply (zenon_L161_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.46/177.72  apply (zenon_L65_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.46/177.72  apply (zenon_L162_); trivial.
% 177.46/177.72  apply (zenon_L164_); trivial.
% 177.46/177.72  (* end of lemma zenon_L165_ *)
% 177.46/177.72  assert (zenon_L166_ : (~((op (e2) (op (e1) (e0))) = (op (e2) (e0)))) -> ((op (e1) (e0)) = (e0)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H17f zenon_H11b.
% 177.46/177.72  cut (((op (e1) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H11c].
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  exact (zenon_H11c zenon_H11b).
% 177.46/177.72  (* end of lemma zenon_L166_ *)
% 177.46/177.72  assert (zenon_L167_ : ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e2) (e1)) = (e3)) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H180 zenon_Hdd zenon_H11b zenon_H11d.
% 177.46/177.72  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e2) (e0)) = (op (e3) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H11d.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H74.
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H181].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) = ((op (e3) (e0)) = (op (e2) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H181.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H180.
% 177.46/177.72  cut (((op (e2) (op (e1) (e0))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H17f].
% 177.46/177.72  cut (((op (op (e2) (e1)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H182].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e2) (e1)) (e0)) = (op (e3) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H182.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H74.
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H183].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.72  cut (((e3) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_Hde. apply sym_equal. exact zenon_Hdd.
% 177.46/177.72  apply zenon_H23. apply refl_equal.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  apply (zenon_L166_); trivial.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L167_ *)
% 177.46/177.72  assert (zenon_L168_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_Hca zenon_Hc7 zenon_Hc9 zenon_H71 zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_H8d zenon_Hf3 zenon_H126 zenon_H180 zenon_H11b zenon_H11d.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_L76_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L54_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L111_); trivial.
% 177.46/177.72  apply (zenon_L167_); trivial.
% 177.46/177.72  (* end of lemma zenon_L168_ *)
% 177.46/177.72  assert (zenon_L169_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H184 zenon_Hed.
% 177.46/177.72  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee].
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  exact (zenon_Hee zenon_Hed).
% 177.46/177.72  (* end of lemma zenon_L169_ *)
% 177.46/177.72  assert (zenon_L170_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hd9 zenon_Hd6 zenon_Hed zenon_H16e.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e2)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H16e.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H185].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e2) (e2)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H185.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_Hd9.
% 177.46/177.72  cut (((op (e2) (op (e1) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H184].
% 177.46/177.72  cut (((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdc].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_Hdc.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L55_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply (zenon_L169_); trivial.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  apply zenon_H5c. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L170_ *)
% 177.46/177.72  assert (zenon_L171_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_H8d zenon_Hae zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_H9e zenon_Hd0 zenon_H16e zenon_Hed zenon_Hd9 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_L76_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L68_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L170_); trivial.
% 177.46/177.72  apply (zenon_L63_); trivial.
% 177.46/177.72  (* end of lemma zenon_L171_ *)
% 177.46/177.72  assert (zenon_L172_ : (~((op (e1) (op (e0) (e0))) = (op (e1) (e3)))) -> ((op (e0) (e0)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H186 zenon_H8b.
% 177.46/177.72  cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_He0].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_He0 zenon_H8b).
% 177.46/177.72  (* end of lemma zenon_L172_ *)
% 177.46/177.72  assert (zenon_L173_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e0)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He4 zenon_H187 zenon_H188 zenon_H8b.
% 177.46/177.72  cut (((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_He4.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H187.
% 177.46/177.72  cut (((op (e1) (op (e0) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H186].
% 177.46/177.72  cut (((op (op (e1) (e0)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.72  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e0)) (e0)) = (op (e1) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H189.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_He9.
% 177.46/177.72  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.72  cut (((op (e1) (e0)) = (op (op (e1) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18a].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.72  cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18b].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H18b. apply sym_equal. exact zenon_H188.
% 177.46/177.72  apply zenon_H23. apply refl_equal.
% 177.46/177.72  apply zenon_Hea. apply refl_equal.
% 177.46/177.72  apply zenon_Hea. apply refl_equal.
% 177.46/177.72  apply (zenon_L172_); trivial.
% 177.46/177.72  (* end of lemma zenon_L173_ *)
% 177.46/177.72  assert (zenon_L174_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H89 zenon_He4 zenon_H187 zenon_H188.
% 177.46/177.72  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.72  apply (zenon_L173_); trivial.
% 177.46/177.72  (* end of lemma zenon_L174_ *)
% 177.46/177.72  assert (zenon_L175_ : (~((op (e3) (e0)) = (op (op (e3) (e1)) (e0)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H18c zenon_Hc4.
% 177.46/177.72  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.72  cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_Hc5. apply sym_equal. exact zenon_Hc4.
% 177.46/177.72  apply zenon_H23. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L175_ *)
% 177.46/177.72  assert (zenon_L176_ : (~((op (e3) (op (e1) (e0))) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H18d zenon_H188.
% 177.46/177.72  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H18e].
% 177.46/177.72  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H45. apply refl_equal.
% 177.46/177.72  exact (zenon_H18e zenon_H188).
% 177.46/177.72  (* end of lemma zenon_L176_ *)
% 177.46/177.72  assert (zenon_L177_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H71 zenon_H11e zenon_Hc4 zenon_H188.
% 177.46/177.72  cut (((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H71.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H11e.
% 177.46/177.72  cut (((op (e3) (op (e1) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H18d].
% 177.46/177.72  cut (((op (op (e3) (e1)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18f].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e1)) (e0)) = (op (e3) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H18f.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H74.
% 177.46/177.72  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.72  cut (((op (e3) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18c].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L175_); trivial.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  apply zenon_H75. apply refl_equal.
% 177.46/177.72  apply (zenon_L176_); trivial.
% 177.46/177.72  (* end of lemma zenon_L177_ *)
% 177.46/177.72  assert (zenon_L178_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e2)) = (e0)) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H63 zenon_H9e zenon_Hf9 zenon_H3a zenon_H26 zenon_H42 zenon_H40 zenon_He4 zenon_H187 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.72  apply (zenon_L12_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.72  apply (zenon_L13_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.72  apply (zenon_L14_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.72  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.72  apply (zenon_L73_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.72  apply (zenon_L75_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.72  apply (zenon_L38_); trivial.
% 177.46/177.72  apply (zenon_L174_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.72  apply (zenon_L16_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.72  apply (zenon_L78_); trivial.
% 177.46/177.72  apply (zenon_L32_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L82_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L50_); trivial.
% 177.46/177.72  apply (zenon_L177_); trivial.
% 177.46/177.72  (* end of lemma zenon_L178_ *)
% 177.46/177.72  assert (zenon_L179_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Hb0 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.72  apply (zenon_L12_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.72  apply (zenon_L13_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.72  apply (zenon_L14_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_L43_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L82_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L50_); trivial.
% 177.46/177.72  apply (zenon_L177_); trivial.
% 177.46/177.72  (* end of lemma zenon_L179_ *)
% 177.46/177.72  assert (zenon_L180_ : (~((op (e2) (e0)) = (op (op (e2) (e1)) (e0)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H190 zenon_Hd6.
% 177.46/177.72  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.72  cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_Hd7. apply sym_equal. exact zenon_Hd6.
% 177.46/177.72  apply zenon_H23. apply refl_equal.
% 177.46/177.72  (* end of lemma zenon_L180_ *)
% 177.46/177.72  assert (zenon_L181_ : (~((op (e2) (op (e1) (e0))) = (op (e2) (e1)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H191 zenon_H188.
% 177.46/177.72  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H18e].
% 177.46/177.72  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H37. apply refl_equal.
% 177.46/177.72  exact (zenon_H18e zenon_H188).
% 177.46/177.72  (* end of lemma zenon_L181_ *)
% 177.46/177.72  assert (zenon_L182_ : (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hf4 zenon_H180 zenon_Hd6 zenon_H188.
% 177.46/177.72  cut (((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) = ((op (e2) (e0)) = (op (e2) (e1)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_Hf4.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H180.
% 177.46/177.72  cut (((op (e2) (op (e1) (e0))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H191].
% 177.46/177.72  cut (((op (op (e2) (e1)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H192].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ].
% 177.46/177.72  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (op (e2) (e1)) (e0)) = (op (e2) (e0)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H192.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H112.
% 177.46/177.72  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 177.46/177.72  cut (((op (e2) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H190].
% 177.46/177.72  congruence.
% 177.46/177.72  apply (zenon_L180_); trivial.
% 177.46/177.72  apply zenon_H113. apply refl_equal.
% 177.46/177.72  apply zenon_H113. apply refl_equal.
% 177.46/177.72  apply (zenon_L181_); trivial.
% 177.46/177.72  (* end of lemma zenon_L182_ *)
% 177.46/177.72  assert (zenon_L183_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_H114 zenon_H10d zenon_H10e zenon_H26 zenon_H3a zenon_Hf9 zenon_H40 zenon_He4 zenon_H187 zenon_H117 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ].
% 177.46/177.72  apply (zenon_L178_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ].
% 177.46/177.72  apply (zenon_L97_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ].
% 177.46/177.72  apply (zenon_L99_); trivial.
% 177.46/177.72  apply (zenon_L100_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L179_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L182_); trivial.
% 177.46/177.72  apply (zenon_L63_); trivial.
% 177.46/177.72  (* end of lemma zenon_L183_ *)
% 177.46/177.72  assert (zenon_L184_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e1)) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_H13c zenon_H13b zenon_H13a zenon_H10d zenon_H10e zenon_H26 zenon_H3a zenon_Hf9 zenon_H40 zenon_He4 zenon_H187 zenon_H117 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ].
% 177.46/177.72  apply (zenon_L178_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ].
% 177.46/177.72  apply (zenon_L97_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ].
% 177.46/177.72  apply (zenon_L99_); trivial.
% 177.46/177.72  apply (zenon_L126_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L179_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L182_); trivial.
% 177.46/177.72  apply (zenon_L63_); trivial.
% 177.46/177.72  (* end of lemma zenon_L184_ *)
% 177.46/177.72  assert (zenon_L185_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hd0 zenon_H147 zenon_H149 zenon_Hf9 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H6c zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.72  apply (zenon_L131_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.72  apply (zenon_L44_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.72  apply (zenon_L50_); trivial.
% 177.46/177.72  apply (zenon_L177_); trivial.
% 177.46/177.72  (* end of lemma zenon_L185_ *)
% 177.46/177.72  assert (zenon_L186_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H147 zenon_H149 zenon_Hf9 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.72  apply (zenon_L12_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.72  apply (zenon_L13_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.72  apply (zenon_L14_); trivial.
% 177.46/177.72  apply (zenon_L185_); trivial.
% 177.46/177.72  (* end of lemma zenon_L186_ *)
% 177.46/177.72  assert (zenon_L187_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_H8d zenon_Hc7 zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_L76_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L54_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L182_); trivial.
% 177.46/177.72  apply (zenon_L63_); trivial.
% 177.46/177.72  (* end of lemma zenon_L187_ *)
% 177.46/177.72  assert (zenon_L188_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_He1 zenon_H188 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H8d zenon_Hf3 zenon_H126 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.46/177.72  apply (zenon_L76_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.46/177.72  apply (zenon_L179_); trivial.
% 177.46/177.72  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.46/177.72  apply (zenon_L111_); trivial.
% 177.46/177.72  apply (zenon_L63_); trivial.
% 177.46/177.72  (* end of lemma zenon_L188_ *)
% 177.46/177.72  assert (zenon_L189_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H193 zenon_H47.
% 177.46/177.72  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H48].
% 177.46/177.72  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.72  congruence.
% 177.46/177.72  apply zenon_H2e. apply refl_equal.
% 177.46/177.72  exact (zenon_H48 zenon_H47).
% 177.46/177.72  (* end of lemma zenon_L189_ *)
% 177.46/177.72  assert (zenon_L190_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e2)) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.72  do 0 intro. intros zenon_H194 zenon_H195 zenon_H47 zenon_H158.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e1) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H158.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H159].
% 177.46/177.72  congruence.
% 177.46/177.72  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e1) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H159.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H194.
% 177.46/177.72  cut (((op (e1) (op (e0) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H193].
% 177.46/177.72  cut (((op (op (e1) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 177.46/177.72  congruence.
% 177.46/177.72  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e2) (e3)))).
% 177.46/177.72  intro zenon_D_pnotp.
% 177.46/177.72  apply zenon_H196.
% 177.46/177.72  rewrite <- zenon_D_pnotp.
% 177.46/177.72  exact zenon_H5b.
% 177.46/177.72  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.73  cut (((op (e2) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H197].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  cut (((e2) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H198].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H198. apply sym_equal. exact zenon_H195.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply (zenon_L189_); trivial.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L190_ *)
% 177.46/177.73  assert (zenon_L191_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e3)) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H194 zenon_H199 zenon_H47 zenon_H51.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e1) (e3)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H51.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H168].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e3) (e3)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H168.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H194.
% 177.46/177.73  cut (((op (e1) (op (e0) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H193].
% 177.46/177.73  cut (((op (op (e1) (e0)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H19a].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H19a.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H19b].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  cut (((e3) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H19c. apply sym_equal. exact zenon_H199.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply (zenon_L189_); trivial.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L191_ *)
% 177.46/177.73  assert (zenon_L192_ : (~((op (e1) (e0)) = (op (unit) (e0)))) -> ((unit) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H19d zenon_H19e.
% 177.46/177.73  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.73  cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H19f. apply sym_equal. exact zenon_H19e.
% 177.46/177.73  apply zenon_H23. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L192_ *)
% 177.46/177.73  assert (zenon_L193_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_He4 zenon_H25 zenon_H19e zenon_Hc7.
% 177.46/177.73  cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_He4.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H25.
% 177.46/177.73  cut (((e0) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a0].
% 177.46/177.73  cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a1.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_He9.
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L192_); trivial.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_H1a0. apply sym_equal. exact zenon_Hc7.
% 177.46/177.73  (* end of lemma zenon_L193_ *)
% 177.46/177.73  assert (zenon_L194_ : (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1a2 zenon_H31 zenon_H19e zenon_He6.
% 177.46/177.73  cut (((op (unit) (e1)) = (e1)) = ((op (e1) (e1)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a2.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H31.
% 177.46/177.73  cut (((e1) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 177.46/177.73  cut (((op (unit) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1a3].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e1)) = (op (e1) (e1)))); [ zenon_intro zenon_H1a4 | zenon_intro zenon_H44 ].
% 177.46/177.73  cut (((op (e1) (e1)) = (op (e1) (e1))) = ((op (unit) (e1)) = (op (e1) (e1)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a3.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H1a4.
% 177.46/177.73  cut (((op (e1) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 177.46/177.73  cut (((op (e1) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.73  cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H19f. apply sym_equal. exact zenon_H19e.
% 177.46/177.73  apply zenon_H2e. apply refl_equal.
% 177.46/177.73  apply zenon_H44. apply refl_equal.
% 177.46/177.73  apply zenon_H44. apply refl_equal.
% 177.46/177.73  apply zenon_He7. apply sym_equal. exact zenon_He6.
% 177.46/177.73  (* end of lemma zenon_L194_ *)
% 177.46/177.73  assert (zenon_L195_ : (~((op (e1) (e2)) = (op (unit) (e2)))) -> ((unit) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1a6 zenon_H19e.
% 177.46/177.73  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.73  cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H19f. apply sym_equal. exact zenon_H19e.
% 177.46/177.73  apply zenon_H37. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L195_ *)
% 177.46/177.73  assert (zenon_L196_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e2)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H13a zenon_H3a zenon_H19e zenon_Hed.
% 177.46/177.73  cut (((op (unit) (e2)) = (e2)) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H13a.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H3a.
% 177.46/177.73  cut (((e2) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H14f].
% 177.46/177.73  cut (((op (unit) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a7].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 177.46/177.73  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (unit) (e2)) = (op (e1) (e2)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a7.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H13e.
% 177.46/177.73  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 177.46/177.73  cut (((op (e1) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a6].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L195_); trivial.
% 177.46/177.73  apply zenon_H13f. apply refl_equal.
% 177.46/177.73  apply zenon_H13f. apply refl_equal.
% 177.46/177.73  apply zenon_H14f. apply sym_equal. exact zenon_Hed.
% 177.46/177.73  (* end of lemma zenon_L196_ *)
% 177.46/177.73  assert (zenon_L197_ : (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e3) (e0)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1a8 zenon_H25 zenon_H19e zenon_H4b.
% 177.46/177.73  cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e3) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a8.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H25.
% 177.46/177.73  cut (((e0) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H50].
% 177.46/177.73  cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a1.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_He9.
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L192_); trivial.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_H50. apply sym_equal. exact zenon_H4b.
% 177.46/177.73  (* end of lemma zenon_L197_ *)
% 177.46/177.73  assert (zenon_L198_ : (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e1)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1a9 zenon_H25 zenon_H19e zenon_H41.
% 177.46/177.73  cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e1) (e1)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a9.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H25.
% 177.46/177.73  cut (((e0) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hbb].
% 177.46/177.73  cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a1.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_He9.
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L192_); trivial.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_Hbb. apply sym_equal. exact zenon_H41.
% 177.46/177.73  (* end of lemma zenon_L198_ *)
% 177.46/177.73  assert (zenon_L199_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H66 zenon_H1a9 zenon_H25 zenon_H19e.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.73  apply (zenon_L198_); trivial.
% 177.46/177.73  (* end of lemma zenon_L199_ *)
% 177.46/177.73  assert (zenon_L200_ : ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (e1) (e1)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1aa zenon_H19e zenon_H8d zenon_H1a2.
% 177.46/177.73  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.73  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e1)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a2.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H54.
% 177.46/177.73  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.73  cut (((op (e1) (e3)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ab].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((op (unit) (e3)) = (e3)) = ((op (e1) (e3)) = (op (e1) (e1)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1ab.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H1aa.
% 177.46/177.73  cut (((e3) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf8].
% 177.46/177.73  cut (((op (unit) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ac].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.73  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (unit) (e3)) = (op (e1) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1ac.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H54.
% 177.46/177.73  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.73  cut (((op (e1) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ad].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H19f. apply sym_equal. exact zenon_H19e.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  apply zenon_H55. apply refl_equal.
% 177.46/177.73  apply zenon_H55. apply refl_equal.
% 177.46/177.73  apply zenon_Hf8. apply sym_equal. exact zenon_H8d.
% 177.46/177.73  apply zenon_H55. apply refl_equal.
% 177.46/177.73  apply zenon_H55. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L200_ *)
% 177.46/177.73  assert (zenon_L201_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H89 zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.73  apply (zenon_L200_); trivial.
% 177.46/177.73  (* end of lemma zenon_L201_ *)
% 177.46/177.73  assert (zenon_L202_ : ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e0)) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H25 zenon_H1a9 zenon_Hb2 zenon_Ha7 zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.73  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.73  apply (zenon_L199_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.73  apply (zenon_L75_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.73  apply (zenon_L38_); trivial.
% 177.46/177.73  apply (zenon_L201_); trivial.
% 177.46/177.73  (* end of lemma zenon_L202_ *)
% 177.46/177.73  assert (zenon_L203_ : (~((op (e3) (op (e2) (e0))) = (op (e3) (e0)))) -> ((op (e2) (e0)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1ae zenon_H1af.
% 177.46/177.73  cut (((op (e2) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1b0].
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  exact (zenon_H1b0 zenon_H1af).
% 177.46/177.73  (* end of lemma zenon_L203_ *)
% 177.46/177.73  assert (zenon_L204_ : (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e3) (e2)) = (e1)) -> ((op (e2) (e0)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1a8 zenon_H1b1 zenon_H62 zenon_H1af.
% 177.46/177.73  cut (((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) = ((op (e1) (e0)) = (op (e3) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a8.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H1b1.
% 177.46/177.73  cut (((op (e3) (op (e2) (e0))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ae].
% 177.46/177.73  cut (((op (op (e3) (e2)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b2].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e3) (e2)) (e0)) = (op (e1) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1b2.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_He9.
% 177.46/177.73  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.73  cut (((op (e1) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b3].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.73  cut (((e1) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H64. apply sym_equal. exact zenon_H62.
% 177.46/177.73  apply zenon_H23. apply refl_equal.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply zenon_Hea. apply refl_equal.
% 177.46/177.73  apply (zenon_L203_); trivial.
% 177.46/177.73  (* end of lemma zenon_L204_ *)
% 177.46/177.73  assert (zenon_L205_ : (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (e3) (e2)) = (e2)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H14c zenon_H3a zenon_H19e zenon_H93.
% 177.46/177.73  cut (((op (unit) (e2)) = (e2)) = ((op (e1) (e2)) = (op (e3) (e2)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H14c.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H3a.
% 177.46/177.73  cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98].
% 177.46/177.73  cut (((op (unit) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a7].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ].
% 177.46/177.73  cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (unit) (e2)) = (op (e1) (e2)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1a7.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H13e.
% 177.46/177.73  cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 177.46/177.73  cut (((op (e1) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a6].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L195_); trivial.
% 177.46/177.73  apply zenon_H13f. apply refl_equal.
% 177.46/177.73  apply zenon_H13f. apply refl_equal.
% 177.46/177.73  apply zenon_H98. apply sym_equal. exact zenon_H93.
% 177.46/177.73  (* end of lemma zenon_L205_ *)
% 177.46/177.73  assert (zenon_L206_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H19e zenon_H3a zenon_H14c zenon_H9e zenon_H63 zenon_H7b.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L93_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L16_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L32_); trivial.
% 177.46/177.73  (* end of lemma zenon_L206_ *)
% 177.46/177.73  assert (zenon_L207_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e0)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hd0 zenon_H1a8 zenon_H1b1 zenon_H1af zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H19e zenon_H3a zenon_H14c zenon_H9e zenon_H63 zenon_H7b.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L32_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L103_); trivial.
% 177.46/177.73  apply (zenon_L206_); trivial.
% 177.46/177.73  (* end of lemma zenon_L207_ *)
% 177.46/177.73  assert (zenon_L208_ : (~((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1b4 zenon_H9a.
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H9b. apply sym_equal. exact zenon_H9a.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L208_ *)
% 177.46/177.73  assert (zenon_L209_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1b5 zenon_H121.
% 177.46/177.73  cut (((op (e2) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H152].
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  exact (zenon_H152 zenon_H121).
% 177.46/177.73  (* end of lemma zenon_L209_ *)
% 177.46/177.73  assert (zenon_L210_ : ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H12f zenon_H9a zenon_H121 zenon_Hca.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_Hca.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e3) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_Hcd.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H12f.
% 177.46/177.73  cut (((op (e3) (op (e2) (e3))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b5].
% 177.46/177.73  cut (((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b6].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1b6.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b4].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L208_); trivial.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply (zenon_L209_); trivial.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L210_ *)
% 177.46/177.73  assert (zenon_L211_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.73  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.73  apply (zenon_L199_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.73  apply (zenon_L108_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.73  apply (zenon_L89_); trivial.
% 177.46/177.73  apply (zenon_L92_); trivial.
% 177.46/177.73  (* end of lemma zenon_L211_ *)
% 177.46/177.73  assert (zenon_L212_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H1a8 zenon_H1b1 zenon_H1af zenon_H1aa zenon_H1a2 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L210_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L103_); trivial.
% 177.46/177.73  apply (zenon_L211_); trivial.
% 177.46/177.73  (* end of lemma zenon_L212_ *)
% 177.46/177.73  assert (zenon_L213_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e1)))) -> ((op (e2) (e3)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1b7 zenon_H127.
% 177.46/177.73  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H163].
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  exact (zenon_H163 zenon_H127).
% 177.46/177.73  (* end of lemma zenon_L213_ *)
% 177.46/177.73  assert (zenon_L214_ : ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H12f zenon_H9a zenon_H127 zenon_H10b.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e1)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H10b.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b8].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e3) (e1)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1b8.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H12f.
% 177.46/177.73  cut (((op (e3) (op (e2) (e3))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b7].
% 177.46/177.73  cut (((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b6].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1b6.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_Hcb.
% 177.46/177.73  cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 177.46/177.73  cut (((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b4].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L208_); trivial.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply (zenon_L213_); trivial.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  apply zenon_Hcc. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L214_ *)
% 177.46/177.73  assert (zenon_L215_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e2)) = (e1)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_Ha2 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H12f zenon_H127 zenon_H10b.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L74_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L214_); trivial.
% 177.46/177.73  (* end of lemma zenon_L215_ *)
% 177.46/177.73  assert (zenon_L216_ : (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e1)) -> ((op (e2) (e3)) = (e2)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H126 zenon_H10e zenon_H19e zenon_H12a.
% 177.46/177.73  cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e1)) = (op (e2) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H126.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H10e.
% 177.46/177.73  cut (((e2) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12b].
% 177.46/177.73  cut (((op (e2) (unit)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b9].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.73  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (e2) (unit)) = (op (e2) (e1)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1b9.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H95.
% 177.46/177.73  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.73  cut (((op (e2) (e1)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H1ba].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 177.46/177.73  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H37. apply refl_equal.
% 177.46/177.73  apply zenon_H19f. apply sym_equal. exact zenon_H19e.
% 177.46/177.73  apply zenon_H96. apply refl_equal.
% 177.46/177.73  apply zenon_H96. apply refl_equal.
% 177.46/177.73  apply zenon_H12b. apply sym_equal. exact zenon_H12a.
% 177.46/177.73  (* end of lemma zenon_L216_ *)
% 177.46/177.73  assert (zenon_L217_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_H1a9 zenon_H25 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L42_); trivial.
% 177.46/177.73  (* end of lemma zenon_L217_ *)
% 177.46/177.73  assert (zenon_L218_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e3)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H12d zenon_H12f zenon_H58 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L93_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L119_); trivial.
% 177.46/177.73  apply (zenon_L94_); trivial.
% 177.46/177.73  (* end of lemma zenon_L218_ *)
% 177.46/177.73  assert (zenon_L219_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e3)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H7b zenon_H14c zenon_H3a zenon_H19e zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_Haf zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H12d zenon_H12f zenon_H58 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_L217_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L163_); trivial.
% 177.46/177.73  apply (zenon_L218_); trivial.
% 177.46/177.73  (* end of lemma zenon_L219_ *)
% 177.46/177.73  assert (zenon_L220_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_Ha7 zenon_H1a9 zenon_H25 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H12f zenon_H127 zenon_H10b.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L214_); trivial.
% 177.46/177.73  (* end of lemma zenon_L220_ *)
% 177.46/177.73  assert (zenon_L221_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L93_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L40_); trivial.
% 177.46/177.73  (* end of lemma zenon_L221_ *)
% 177.46/177.73  assert (zenon_L222_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e3)) = (e1)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hd0 zenon_H127 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_L220_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L163_); trivial.
% 177.46/177.73  apply (zenon_L221_); trivial.
% 177.46/177.73  (* end of lemma zenon_L222_ *)
% 177.46/177.73  assert (zenon_L223_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_Hca zenon_H10e zenon_H126 zenon_Hd0 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.46/177.73  apply (zenon_L212_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.46/177.73  apply (zenon_L222_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.46/177.73  apply (zenon_L216_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L204_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L119_); trivial.
% 177.46/177.73  apply (zenon_L40_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L163_); trivial.
% 177.46/177.73  apply (zenon_L221_); trivial.
% 177.46/177.73  (* end of lemma zenon_L223_ *)
% 177.46/177.73  assert (zenon_L224_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_Hca zenon_H10e zenon_H126 zenon_Hd0 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ].
% 177.46/177.73  apply (zenon_L207_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ].
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.46/177.73  apply (zenon_L212_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.46/177.73  apply (zenon_L215_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.46/177.73  apply (zenon_L216_); trivial.
% 177.46/177.73  apply (zenon_L219_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ].
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.46/177.73  apply (zenon_L212_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.46/177.73  apply (zenon_L149_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.46/177.73  apply (zenon_L216_); trivial.
% 177.46/177.73  apply (zenon_L219_); trivial.
% 177.46/177.73  apply (zenon_L223_); trivial.
% 177.46/177.73  (* end of lemma zenon_L224_ *)
% 177.46/177.73  assert (zenon_L225_ : (~((op (e0) (e0)) = (op (e2) (e0)))) -> ((op (e0) (e0)) = (e1)) -> ((op (e2) (e0)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1bb zenon_H6f zenon_H1bc.
% 177.46/177.73  cut (((op (e0) (e0)) = (e1)) = ((op (e0) (e0)) = (op (e2) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1bb.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H6f.
% 177.46/177.73  cut (((e1) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1bd].
% 177.46/177.73  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H2b. apply refl_equal.
% 177.46/177.73  apply zenon_H1bd. apply sym_equal. exact zenon_H1bc.
% 177.46/177.73  (* end of lemma zenon_L225_ *)
% 177.46/177.73  assert (zenon_L226_ : (~((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))) -> ((op (e2) (e0)) = (e2)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1be zenon_H1bf.
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  cut (((e2) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c0].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H1c0. apply sym_equal. exact zenon_H1bf.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L226_ *)
% 177.46/177.73  assert (zenon_L227_ : (~((op (e2) (op (e0) (e3))) = (op (e2) (e0)))) -> ((op (e0) (e3)) = (e0)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1c1 zenon_H27.
% 177.46/177.73  cut (((op (e0) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1c2].
% 177.46/177.73  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H37. apply refl_equal.
% 177.46/177.73  exact (zenon_H1c2 zenon_H27).
% 177.46/177.73  (* end of lemma zenon_L227_ *)
% 177.46/177.73  assert (zenon_L228_ : ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e2) (e0)) = (e2)) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1c3 zenon_H1bf zenon_H27 zenon_Hda.
% 177.46/177.73  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.73  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_Hda.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H5b.
% 177.46/177.73  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.73  cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 177.46/177.73  congruence.
% 177.46/177.73  cut (((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_Hdb.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H1c3.
% 177.46/177.73  cut (((op (e2) (op (e0) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c1].
% 177.46/177.73  cut (((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c4].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.73  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1c4.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H5b.
% 177.46/177.73  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.73  cut (((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1be].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L226_); trivial.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply (zenon_L227_); trivial.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  apply zenon_H5c. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L228_ *)
% 177.46/177.73  assert (zenon_L229_ : ((op (e2) (e0)) = (e3)) -> ((op (e0) (e0)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1c5 zenon_H6f.
% 177.46/177.73  apply (zenon_notand_s _ _ ax23); [ zenon_intro zenon_H1c7 | zenon_intro zenon_H1c6 ].
% 177.46/177.73  apply zenon_H1c7. apply sym_equal. exact zenon_H6f.
% 177.46/177.73  apply zenon_H1c6. apply sym_equal. exact zenon_H1c5.
% 177.46/177.73  (* end of lemma zenon_L229_ *)
% 177.46/177.73  assert (zenon_L230_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e2) (e0)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H76 zenon_H1c5.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.73  apply (zenon_L229_); trivial.
% 177.46/177.73  (* end of lemma zenon_L230_ *)
% 177.46/177.73  assert (zenon_L231_ : ((op (e3) (e2)) = (e1)) -> ((op (e2) (e0)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H62 zenon_H1c5 zenon_Ha7 zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.73  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.73  apply (zenon_L17_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.73  apply (zenon_L230_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.73  apply (zenon_L38_); trivial.
% 177.46/177.73  apply (zenon_L201_); trivial.
% 177.46/177.73  (* end of lemma zenon_L231_ *)
% 177.46/177.73  assert (zenon_L232_ : (~((op (e3) (e0)) = (op (op (e3) (e2)) (e0)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1c8 zenon_H9a.
% 177.46/177.73  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.73  cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H9b. apply sym_equal. exact zenon_H9a.
% 177.46/177.73  apply zenon_H23. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L232_ *)
% 177.46/177.73  assert (zenon_L233_ : (~((op (e3) (op (e2) (e0))) = (op (e3) (e3)))) -> ((op (e2) (e0)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1c9 zenon_H1c5.
% 177.46/177.73  cut (((op (e2) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1ca].
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  exact (zenon_H1ca zenon_H1c5).
% 177.46/177.73  (* end of lemma zenon_L233_ *)
% 177.46/177.73  assert (zenon_L234_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e0)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hca zenon_H1b1 zenon_H9a zenon_H1c5.
% 177.46/177.73  cut (((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_Hca.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H1b1.
% 177.46/177.73  cut (((op (e3) (op (e2) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c9].
% 177.46/177.73  cut (((op (op (e3) (e2)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cb].
% 177.46/177.73  congruence.
% 177.46/177.73  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.73  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e2)) (e0)) = (op (e3) (e0)))).
% 177.46/177.73  intro zenon_D_pnotp.
% 177.46/177.73  apply zenon_H1cb.
% 177.46/177.73  rewrite <- zenon_D_pnotp.
% 177.46/177.73  exact zenon_H74.
% 177.46/177.73  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.73  cut (((op (e3) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c8].
% 177.46/177.73  congruence.
% 177.46/177.73  apply (zenon_L232_); trivial.
% 177.46/177.73  apply zenon_H75. apply refl_equal.
% 177.46/177.73  apply zenon_H75. apply refl_equal.
% 177.46/177.73  apply (zenon_L233_); trivial.
% 177.46/177.73  (* end of lemma zenon_L234_ *)
% 177.46/177.73  assert (zenon_L235_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_Ha7 zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_H1c5.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.73  apply (zenon_L202_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.73  apply (zenon_L231_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.73  apply (zenon_L205_); trivial.
% 177.46/177.73  apply (zenon_L234_); trivial.
% 177.46/177.73  (* end of lemma zenon_L235_ *)
% 177.46/177.73  assert (zenon_L236_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H71 zenon_H1c5 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.73  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.73  apply (zenon_L86_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.73  apply (zenon_L230_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.73  apply (zenon_L89_); trivial.
% 177.46/177.73  apply (zenon_L92_); trivial.
% 177.46/177.73  (* end of lemma zenon_L236_ *)
% 177.46/177.73  assert (zenon_L237_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H1c5 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.73  apply (zenon_L235_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.73  apply (zenon_L82_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.73  apply (zenon_L163_); trivial.
% 177.46/177.73  apply (zenon_L236_); trivial.
% 177.46/177.73  (* end of lemma zenon_L237_ *)
% 177.46/177.73  assert (zenon_L238_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H6f zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.46/177.73  apply (zenon_L193_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.46/177.73  apply (zenon_L194_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.46/177.73  apply (zenon_L196_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H1cc); [ zenon_intro zenon_H1af | zenon_intro zenon_H1cd ].
% 177.46/177.73  apply (zenon_L224_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H1cd); [ zenon_intro zenon_H1bc | zenon_intro zenon_H1ce ].
% 177.46/177.73  apply (zenon_L225_); trivial.
% 177.46/177.73  apply (zenon_or_s _ _ zenon_H1ce); [ zenon_intro zenon_H1bf | zenon_intro zenon_H1c5 ].
% 177.46/177.73  apply (zenon_L228_); trivial.
% 177.46/177.73  apply (zenon_L237_); trivial.
% 177.46/177.73  (* end of lemma zenon_L238_ *)
% 177.46/177.73  assert (zenon_L239_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H76 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.73  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.73  apply (zenon_L238_); trivial.
% 177.46/177.73  (* end of lemma zenon_L239_ *)
% 177.46/177.73  assert (zenon_L240_ : (~((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))) -> ((op (e3) (e3)) = (e3)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1cf zenon_H81.
% 177.46/177.73  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.73  cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H88. apply sym_equal. exact zenon_H81.
% 177.46/177.73  apply zenon_H23. apply refl_equal.
% 177.46/177.73  (* end of lemma zenon_L240_ *)
% 177.46/177.73  assert (zenon_L241_ : (~((op (e3) (op (e3) (e0))) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H1d0 zenon_H52.
% 177.46/177.73  cut (((op (e3) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1d1].
% 177.46/177.73  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.73  congruence.
% 177.46/177.73  apply zenon_H45. apply refl_equal.
% 177.46/177.73  exact (zenon_H1d1 zenon_H52).
% 177.46/177.73  (* end of lemma zenon_L241_ *)
% 177.46/177.73  assert (zenon_L242_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.73  do 0 intro. intros zenon_H71 zenon_H1d2 zenon_H81 zenon_H52.
% 177.46/177.73  cut (((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H71.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H1d2.
% 177.46/177.74  cut (((op (e3) (op (e3) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1d0].
% 177.46/177.74  cut (((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d3].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.74  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1d3.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H74.
% 177.46/177.74  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.74  cut (((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L240_); trivial.
% 177.46/177.74  apply zenon_H75. apply refl_equal.
% 177.46/177.74  apply zenon_H75. apply refl_equal.
% 177.46/177.74  apply (zenon_L241_); trivial.
% 177.46/177.74  (* end of lemma zenon_L242_ *)
% 177.46/177.74  assert (zenon_L243_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H89 zenon_H71 zenon_H1d2 zenon_H52.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.74  apply (zenon_L242_); trivial.
% 177.46/177.74  (* end of lemma zenon_L243_ *)
% 177.46/177.74  assert (zenon_L244_ : ((op (e3) (e2)) = (e1)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H62 zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_Ha7 zenon_H71 zenon_H1d2 zenon_H52.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L17_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L239_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L38_); trivial.
% 177.46/177.74  apply (zenon_L243_); trivial.
% 177.46/177.74  (* end of lemma zenon_L244_ *)
% 177.46/177.74  assert (zenon_L245_ : ((op (e3) (e0)) = (e1)) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H52 zenon_H79.
% 177.46/177.74  apply (zenon_notand_s _ _ ax27); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H57 ].
% 177.46/177.74  apply zenon_H1d4. apply sym_equal. exact zenon_H79.
% 177.46/177.74  apply zenon_H57. apply sym_equal. exact zenon_H52.
% 177.46/177.74  (* end of lemma zenon_L245_ *)
% 177.46/177.74  assert (zenon_L246_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H7c zenon_H52.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.74  apply (zenon_L245_); trivial.
% 177.46/177.74  (* end of lemma zenon_L246_ *)
% 177.46/177.74  assert (zenon_L247_ : ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H71 zenon_H1d2 zenon_H52.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L86_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L239_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L246_); trivial.
% 177.46/177.74  apply (zenon_L243_); trivial.
% 177.46/177.74  (* end of lemma zenon_L247_ *)
% 177.46/177.74  assert (zenon_L248_ : ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hfe zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H71 zenon_H1d2 zenon_H52.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L202_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L244_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L205_); trivial.
% 177.46/177.74  apply (zenon_L42_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L163_); trivial.
% 177.46/177.74  apply (zenon_L247_); trivial.
% 177.46/177.74  (* end of lemma zenon_L248_ *)
% 177.46/177.74  assert (zenon_L249_ : ((op (e3) (e0)) = (e2)) -> ((op (e0) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H59 zenon_H6f.
% 177.46/177.74  apply (zenon_notand_s _ _ ax21); [ zenon_intro zenon_H1c7 | zenon_intro zenon_H5e ].
% 177.46/177.74  apply zenon_H1c7. apply sym_equal. exact zenon_H6f.
% 177.46/177.74  apply zenon_H5e. apply sym_equal. exact zenon_H59.
% 177.46/177.74  (* end of lemma zenon_L249_ *)
% 177.46/177.74  assert (zenon_L250_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H76 zenon_H59.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.74  apply (zenon_L249_); trivial.
% 177.46/177.74  (* end of lemma zenon_L250_ *)
% 177.46/177.74  assert (zenon_L251_ : (~((op (e3) (op (e3) (e0))) = (op (e3) (e2)))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1d5 zenon_H59.
% 177.46/177.74  cut (((op (e3) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1d6].
% 177.46/177.74  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H45. apply refl_equal.
% 177.46/177.74  exact (zenon_H1d6 zenon_H59).
% 177.46/177.74  (* end of lemma zenon_L251_ *)
% 177.46/177.74  assert (zenon_L252_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H7b zenon_H1d2 zenon_H81 zenon_H59.
% 177.46/177.74  cut (((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H7b.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H1d2.
% 177.46/177.74  cut (((op (e3) (op (e3) (e0))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1d5].
% 177.46/177.74  cut (((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d3].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.46/177.74  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1d3.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H74.
% 177.46/177.74  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.46/177.74  cut (((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L240_); trivial.
% 177.46/177.74  apply zenon_H75. apply refl_equal.
% 177.46/177.74  apply zenon_H75. apply refl_equal.
% 177.46/177.74  apply (zenon_L251_); trivial.
% 177.46/177.74  (* end of lemma zenon_L252_ *)
% 177.46/177.74  assert (zenon_L253_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H89 zenon_H7b zenon_H1d2 zenon_H59.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.74  apply (zenon_L252_); trivial.
% 177.46/177.74  (* end of lemma zenon_L253_ *)
% 177.46/177.74  assert (zenon_L254_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Ha7 zenon_H7b zenon_H1d2 zenon_H59.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L199_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L250_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L38_); trivial.
% 177.46/177.74  apply (zenon_L253_); trivial.
% 177.46/177.74  (* end of lemma zenon_L254_ *)
% 177.46/177.74  assert (zenon_L255_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H71 zenon_H59 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L86_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L250_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L89_); trivial.
% 177.46/177.74  apply (zenon_L92_); trivial.
% 177.46/177.74  (* end of lemma zenon_L255_ *)
% 177.46/177.74  assert (zenon_L256_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hd0 zenon_H1d2 zenon_H7b zenon_H1a9 zenon_H25 zenon_H19e zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_H71 zenon_H59 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_L254_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L103_); trivial.
% 177.46/177.74  apply (zenon_L255_); trivial.
% 177.46/177.74  (* end of lemma zenon_L256_ *)
% 177.46/177.74  assert (zenon_L257_ : ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H62 zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L17_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L21_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L24_); trivial.
% 177.46/177.74  apply (zenon_L201_); trivial.
% 177.46/177.74  (* end of lemma zenon_L257_ *)
% 177.46/177.74  assert (zenon_L258_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L202_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L257_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L205_); trivial.
% 177.46/177.74  apply (zenon_L210_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L163_); trivial.
% 177.46/177.74  apply (zenon_L211_); trivial.
% 177.46/177.74  (* end of lemma zenon_L258_ *)
% 177.46/177.74  assert (zenon_L259_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.74  apply (zenon_L197_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.74  apply (zenon_L248_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.74  apply (zenon_L256_); trivial.
% 177.46/177.74  apply (zenon_L258_); trivial.
% 177.46/177.74  (* end of lemma zenon_L259_ *)
% 177.46/177.74  assert (zenon_L260_ : ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H127 zenon_H71 zenon_Ha7 zenon_Hca zenon_H72 zenon_H6c.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L114_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L21_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L38_); trivial.
% 177.46/177.74  apply (zenon_L62_); trivial.
% 177.46/177.74  (* end of lemma zenon_L260_ *)
% 177.46/177.74  assert (zenon_L261_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L93_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L257_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L205_); trivial.
% 177.46/177.74  apply (zenon_L94_); trivial.
% 177.46/177.74  (* end of lemma zenon_L261_ *)
% 177.46/177.74  assert (zenon_L262_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_L260_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L103_); trivial.
% 177.46/177.74  apply (zenon_L261_); trivial.
% 177.46/177.74  (* end of lemma zenon_L262_ *)
% 177.46/177.74  assert (zenon_L263_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_H58 zenon_H25 zenon_H1a9 zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.74  apply (zenon_L197_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.74  apply (zenon_L248_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.74  apply (zenon_L256_); trivial.
% 177.46/177.74  apply (zenon_L262_); trivial.
% 177.46/177.74  (* end of lemma zenon_L263_ *)
% 177.46/177.74  assert (zenon_L264_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L202_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L257_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L119_); trivial.
% 177.46/177.74  apply (zenon_L42_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L163_); trivial.
% 177.46/177.74  apply (zenon_L261_); trivial.
% 177.46/177.74  (* end of lemma zenon_L264_ *)
% 177.46/177.74  assert (zenon_L265_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H1a8 zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_Hca zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.74  apply (zenon_L197_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.74  apply (zenon_L248_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.74  apply (zenon_L256_); trivial.
% 177.46/177.74  apply (zenon_L264_); trivial.
% 177.46/177.74  (* end of lemma zenon_L265_ *)
% 177.46/177.74  assert (zenon_L266_ : (~((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1d7 zenon_H188.
% 177.46/177.74  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.74  cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18b].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H18b. apply sym_equal. exact zenon_H188.
% 177.46/177.74  apply zenon_H45. apply refl_equal.
% 177.46/177.74  (* end of lemma zenon_L266_ *)
% 177.46/177.74  assert (zenon_L267_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e0)))) -> ((op (e0) (e3)) = (e0)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1d8 zenon_H27.
% 177.46/177.74  cut (((op (e0) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1c2].
% 177.46/177.74  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H2e. apply refl_equal.
% 177.46/177.74  exact (zenon_H1c2 zenon_H27).
% 177.46/177.74  (* end of lemma zenon_L267_ *)
% 177.46/177.74  assert (zenon_L268_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H194 zenon_H188 zenon_H27 zenon_He4.
% 177.46/177.74  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.74  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_He4.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H54.
% 177.46/177.74  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.74  cut (((op (e1) (e3)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H175].
% 177.46/177.74  congruence.
% 177.46/177.74  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e0)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H175.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H194.
% 177.46/177.74  cut (((op (e1) (op (e0) (e3))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d8].
% 177.46/177.74  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.74  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1d9.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H54.
% 177.46/177.74  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.74  cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L266_); trivial.
% 177.46/177.74  apply zenon_H55. apply refl_equal.
% 177.46/177.74  apply zenon_H55. apply refl_equal.
% 177.46/177.74  apply (zenon_L267_); trivial.
% 177.46/177.74  apply zenon_H55. apply refl_equal.
% 177.46/177.74  apply zenon_H55. apply refl_equal.
% 177.46/177.74  (* end of lemma zenon_L268_ *)
% 177.46/177.74  assert (zenon_L269_ : (~((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))) -> ((op (e1) (e1)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1da zenon_Ha5.
% 177.46/177.74  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.74  cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H15d. apply sym_equal. exact zenon_Ha5.
% 177.46/177.74  apply zenon_H23. apply refl_equal.
% 177.46/177.74  (* end of lemma zenon_L269_ *)
% 177.46/177.74  assert (zenon_L270_ : (~((op (e1) (op (e1) (e0))) = (op (e1) (e2)))) -> ((op (e1) (e0)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1db zenon_H195.
% 177.46/177.74  cut (((op (e1) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1dc].
% 177.46/177.74  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H2e. apply refl_equal.
% 177.46/177.74  exact (zenon_H1dc zenon_H195).
% 177.46/177.74  (* end of lemma zenon_L270_ *)
% 177.46/177.74  assert (zenon_L271_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H17c zenon_H25 zenon_He4 zenon_H31 zenon_H1a2 zenon_H19e zenon_H3a zenon_H13a zenon_Hd0 zenon_H51 zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.46/177.74  apply (zenon_L193_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.46/177.74  apply (zenon_L194_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.46/177.74  apply (zenon_L196_); trivial.
% 177.46/177.74  apply (zenon_L164_); trivial.
% 177.46/177.74  (* end of lemma zenon_L271_ *)
% 177.46/177.74  assert (zenon_L272_ : (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e1) (e0)) = (e2)) -> ((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) -> (~((op (e1) (e0)) = (op (e1) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1dd zenon_H1a9 zenon_H195 zenon_H1de zenon_H1df zenon_H104 zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Hd0 zenon_H13a zenon_H3a zenon_H31 zenon_He4 zenon_H25 zenon_H17c zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ].
% 177.46/177.74  apply (zenon_L198_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ].
% 177.46/177.74  cut (((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) = ((op (e1) (e0)) = (op (e1) (e2)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1df.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H1de.
% 177.46/177.74  cut (((op (e1) (op (e1) (e0))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1db].
% 177.46/177.74  cut (((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1e2].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.74  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1e2.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_He9.
% 177.46/177.74  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.74  cut (((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1da].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L269_); trivial.
% 177.46/177.74  apply zenon_Hea. apply refl_equal.
% 177.46/177.74  apply zenon_Hea. apply refl_equal.
% 177.46/177.74  apply (zenon_L270_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ].
% 177.46/177.74  apply (zenon_L271_); trivial.
% 177.46/177.74  apply (zenon_L200_); trivial.
% 177.46/177.74  (* end of lemma zenon_L272_ *)
% 177.46/177.74  assert (zenon_L273_ : (~((op (e1) (op (e1) (e0))) = (op (e1) (e3)))) -> ((op (e1) (e0)) = (e3)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1e3 zenon_H199.
% 177.46/177.74  cut (((op (e1) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1e4].
% 177.46/177.74  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H2e. apply refl_equal.
% 177.46/177.74  exact (zenon_H1e4 zenon_H199).
% 177.46/177.74  (* end of lemma zenon_L273_ *)
% 177.46/177.74  assert (zenon_L274_ : (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e1) (e0)) = (e3)) -> ((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1dd zenon_H1a9 zenon_H199 zenon_H1de zenon_H104 zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Hd0 zenon_H13a zenon_H3a zenon_H31 zenon_He4 zenon_H25 zenon_H17c zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ].
% 177.46/177.74  apply (zenon_L198_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ].
% 177.46/177.74  cut (((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) = ((op (e1) (e0)) = (op (e1) (e3)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_He4.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H1de.
% 177.46/177.74  cut (((op (e1) (op (e1) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e3].
% 177.46/177.74  cut (((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1e2].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 177.46/177.74  cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1e2.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_He9.
% 177.46/177.74  cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 177.46/177.74  cut (((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1da].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L269_); trivial.
% 177.46/177.74  apply zenon_Hea. apply refl_equal.
% 177.46/177.74  apply zenon_Hea. apply refl_equal.
% 177.46/177.74  apply (zenon_L273_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ].
% 177.46/177.74  apply (zenon_L271_); trivial.
% 177.46/177.74  apply (zenon_L200_); trivial.
% 177.46/177.74  (* end of lemma zenon_L274_ *)
% 177.46/177.74  assert (zenon_L275_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e0)) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Hb2 zenon_Ha7 zenon_H71 zenon_H1d2 zenon_H52.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L199_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L75_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L38_); trivial.
% 177.46/177.74  apply (zenon_L243_); trivial.
% 177.46/177.74  (* end of lemma zenon_L275_ *)
% 177.46/177.74  assert (zenon_L276_ : (~((op (e2) (op (e0) (e3))) = (op (e2) (e1)))) -> ((op (e0) (e3)) = (e1)) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1e5 zenon_H32.
% 177.46/177.74  cut (((op (e0) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1e6].
% 177.46/177.74  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.46/177.74  congruence.
% 177.46/177.74  apply zenon_H37. apply refl_equal.
% 177.46/177.74  exact (zenon_H1e6 zenon_H32).
% 177.46/177.74  (* end of lemma zenon_L276_ *)
% 177.46/177.74  assert (zenon_L277_ : ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e2) (e0)) = (e2)) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1c3 zenon_H1bf zenon_H32 zenon_H126.
% 177.46/177.74  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.74  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e1)) = (op (e2) (e3)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H126.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H5b.
% 177.46/177.74  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.74  cut (((op (e2) (e3)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H164].
% 177.46/177.74  congruence.
% 177.46/177.74  cut (((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e2) (e1)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H164.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H1c3.
% 177.46/177.74  cut (((op (e2) (op (e0) (e3))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e5].
% 177.46/177.74  cut (((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c4].
% 177.46/177.74  congruence.
% 177.46/177.74  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.74  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))).
% 177.46/177.74  intro zenon_D_pnotp.
% 177.46/177.74  apply zenon_H1c4.
% 177.46/177.74  rewrite <- zenon_D_pnotp.
% 177.46/177.74  exact zenon_H5b.
% 177.46/177.74  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.74  cut (((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1be].
% 177.46/177.74  congruence.
% 177.46/177.74  apply (zenon_L226_); trivial.
% 177.46/177.74  apply zenon_H5c. apply refl_equal.
% 177.46/177.74  apply zenon_H5c. apply refl_equal.
% 177.46/177.74  apply (zenon_L276_); trivial.
% 177.46/177.74  apply zenon_H5c. apply refl_equal.
% 177.46/177.74  apply zenon_H5c. apply refl_equal.
% 177.46/177.74  (* end of lemma zenon_L277_ *)
% 177.46/177.74  assert (zenon_L278_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H6f zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.46/177.74  apply (zenon_L193_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.46/177.74  apply (zenon_L194_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.46/177.74  apply (zenon_L196_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1cc); [ zenon_intro zenon_H1af | zenon_intro zenon_H1cd ].
% 177.46/177.74  apply (zenon_L224_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1cd); [ zenon_intro zenon_H1bc | zenon_intro zenon_H1ce ].
% 177.46/177.74  apply (zenon_L225_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H1ce); [ zenon_intro zenon_H1bf | zenon_intro zenon_H1c5 ].
% 177.46/177.74  apply (zenon_L277_); trivial.
% 177.46/177.74  apply (zenon_L237_); trivial.
% 177.46/177.74  (* end of lemma zenon_L278_ *)
% 177.46/177.74  assert (zenon_L279_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H76 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.74  apply (zenon_L278_); trivial.
% 177.46/177.74  (* end of lemma zenon_L279_ *)
% 177.46/177.74  assert (zenon_L280_ : ((op (e3) (e2)) = (e1)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e3) (e0)) = (e1)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H62 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H32 zenon_H126 zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H52 zenon_H1aa zenon_H19e zenon_H1a2.
% 177.46/177.74  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.74  apply (zenon_L17_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.74  apply (zenon_L279_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.74  apply (zenon_L246_); trivial.
% 177.46/177.74  apply (zenon_L201_); trivial.
% 177.46/177.74  (* end of lemma zenon_L280_ *)
% 177.46/177.74  assert (zenon_L281_ : ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1d2 zenon_H1a2 zenon_H1aa zenon_H52 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H10b zenon_H104 zenon_H19e zenon_H3a zenon_H14c zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L275_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L280_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L205_); trivial.
% 177.46/177.74  apply (zenon_L42_); trivial.
% 177.46/177.74  (* end of lemma zenon_L281_ *)
% 177.46/177.74  assert (zenon_L282_ : ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e1) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.74  do 0 intro. intros zenon_H1d2 zenon_Hfe zenon_H1a2 zenon_H1aa zenon_H52 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.74  apply (zenon_L281_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.74  apply (zenon_L82_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.74  apply (zenon_L163_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.46/177.74  apply (zenon_L93_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.46/177.74  apply (zenon_L280_); trivial.
% 177.46/177.74  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.46/177.74  apply (zenon_L205_); trivial.
% 177.46/177.74  apply (zenon_L94_); trivial.
% 177.46/177.74  (* end of lemma zenon_L282_ *)
% 177.46/177.74  assert (zenon_L283_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H9e zenon_H1b1 zenon_H1c3 zenon_H32 zenon_H126 zenon_H1bb zenon_H117 zenon_H153 zenon_H136 zenon_H10e zenon_H1a8 zenon_Hae zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L197_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L282_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L256_); trivial.
% 177.46/177.75  apply (zenon_L258_); trivial.
% 177.46/177.75  (* end of lemma zenon_L283_ *)
% 177.46/177.75  assert (zenon_L284_ : ((op (e0) (e3)) = (e1)) -> ((op (e3) (e3)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H32 zenon_H124.
% 177.46/177.75  apply (zenon_notand_s _ _ ax26); [ zenon_intro zenon_H1e7 | zenon_intro zenon_H33 ].
% 177.46/177.75  apply zenon_H1e7. apply sym_equal. exact zenon_H124.
% 177.46/177.75  apply zenon_H33. apply sym_equal. exact zenon_H32.
% 177.46/177.75  (* end of lemma zenon_L284_ *)
% 177.46/177.75  assert (zenon_L285_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e0) (e3)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H7c zenon_H32.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124.
% 177.46/177.75  apply (zenon_L284_); trivial.
% 177.46/177.75  (* end of lemma zenon_L285_ *)
% 177.46/177.75  assert (zenon_L286_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H71 zenon_Hc4 zenon_H104 zenon_H32 zenon_H7b zenon_H1d2 zenon_H59.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L86_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L250_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L285_); trivial.
% 177.46/177.75  apply (zenon_L253_); trivial.
% 177.46/177.75  (* end of lemma zenon_L286_ *)
% 177.46/177.75  assert (zenon_L287_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hd0 zenon_H1a9 zenon_H25 zenon_H19e zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H104 zenon_H32 zenon_H7b zenon_H1d2 zenon_H59.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L254_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L82_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L163_); trivial.
% 177.46/177.75  apply (zenon_L286_); trivial.
% 177.46/177.75  (* end of lemma zenon_L287_ *)
% 177.46/177.75  assert (zenon_L288_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e2) (unit)) = (e2)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H1b1 zenon_H1c3 zenon_H126 zenon_H1bb zenon_H117 zenon_H153 zenon_H136 zenon_H10e zenon_H12f zenon_H1a8 zenon_Hae zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H1d2 zenon_H32 zenon_H58 zenon_H25 zenon_H1a9 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L197_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L282_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L287_); trivial.
% 177.46/177.75  apply (zenon_L262_); trivial.
% 177.46/177.75  (* end of lemma zenon_L288_ *)
% 177.46/177.75  assert (zenon_L289_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1e8 zenon_H32.
% 177.46/177.75  cut (((op (e0) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1e6].
% 177.46/177.75  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H2e. apply refl_equal.
% 177.46/177.75  exact (zenon_H1e6 zenon_H32).
% 177.46/177.75  (* end of lemma zenon_L289_ *)
% 177.46/177.75  assert (zenon_L290_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H194 zenon_H188 zenon_H32 zenon_H1a2.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e1)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1a2.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ab].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e1)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1ab.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H194.
% 177.46/177.75  cut (((op (e1) (op (e0) (e3))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e8].
% 177.46/177.75  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1d9.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7].
% 177.46/177.75  congruence.
% 177.46/177.75  apply (zenon_L266_); trivial.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply (zenon_L289_); trivial.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L290_ *)
% 177.46/177.75  assert (zenon_L291_ : ((op (e0) (e3)) = (e2)) -> ((op (e3) (e3)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H3b zenon_Ha6.
% 177.46/177.75  apply (zenon_notand_s _ _ ax20); [ zenon_intro zenon_H123 | zenon_intro zenon_H3c ].
% 177.46/177.75  apply zenon_H123. apply sym_equal. exact zenon_Ha6.
% 177.46/177.75  apply zenon_H3c. apply sym_equal. exact zenon_H3b.
% 177.46/177.75  (* end of lemma zenon_L291_ *)
% 177.46/177.75  assert (zenon_L292_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e0) (e3)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H76 zenon_H3b.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.46/177.75  apply (zenon_L291_); trivial.
% 177.46/177.75  (* end of lemma zenon_L292_ *)
% 177.46/177.75  assert (zenon_L293_ : (~((op (e0) (op (e3) (e3))) = (op (e0) (e3)))) -> ((op (e3) (e3)) = (e3)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1e9 zenon_H81.
% 177.46/177.75  cut (((op (e3) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H156].
% 177.46/177.75  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H23. apply refl_equal.
% 177.46/177.75  exact (zenon_H156 zenon_H81).
% 177.46/177.75  (* end of lemma zenon_L293_ *)
% 177.46/177.75  assert (zenon_L294_ : ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1ea zenon_H3b zenon_H81 zenon_H1eb.
% 177.46/177.75  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e0) (e3)) = (op (e2) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1eb.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H5b.
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) = ((op (e2) (e3)) = (op (e0) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1ec.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H1ea.
% 177.46/177.75  cut (((op (e0) (op (e3) (e3))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e9].
% 177.46/177.75  cut (((op (op (e0) (e3)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ed].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e0) (e3)) (e3)) = (op (e2) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1ed.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H5b.
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.75  cut (((e2) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H3c. apply sym_equal. exact zenon_H3b.
% 177.46/177.75  apply zenon_H45. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply (zenon_L293_); trivial.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L294_ *)
% 177.46/177.75  assert (zenon_L295_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H89 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.75  apply (zenon_L294_); trivial.
% 177.46/177.75  (* end of lemma zenon_L295_ *)
% 177.46/177.75  assert (zenon_L296_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e1)) = (e0)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Ha7 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L199_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L292_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L38_); trivial.
% 177.46/177.75  apply (zenon_L295_); trivial.
% 177.46/177.75  (* end of lemma zenon_L296_ *)
% 177.46/177.75  assert (zenon_L297_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H71 zenon_H3b zenon_H82 zenon_H10b zenon_H104 zenon_Hc4.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L86_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L292_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L89_); trivial.
% 177.46/177.75  apply (zenon_L92_); trivial.
% 177.46/177.75  (* end of lemma zenon_L297_ *)
% 177.46/177.75  assert (zenon_L298_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H1a2 zenon_H3a zenon_H13a zenon_Hd0 zenon_H1eb zenon_H1ea zenon_H1a9 zenon_H25 zenon_H19e zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H3b zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.46/177.75  apply (zenon_L193_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.46/177.75  apply (zenon_L194_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.46/177.75  apply (zenon_L196_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L296_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L82_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L163_); trivial.
% 177.46/177.75  apply (zenon_L297_); trivial.
% 177.46/177.75  (* end of lemma zenon_L298_ *)
% 177.46/177.75  assert (zenon_L299_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L197_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L13_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L14_); trivial.
% 177.46/177.75  apply (zenon_L258_); trivial.
% 177.46/177.75  (* end of lemma zenon_L299_ *)
% 177.46/177.75  assert (zenon_L300_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_H25 zenon_H1a9 zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L197_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L13_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L256_); trivial.
% 177.46/177.75  apply (zenon_L262_); trivial.
% 177.46/177.75  (* end of lemma zenon_L300_ *)
% 177.46/177.75  assert (zenon_L301_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L197_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L13_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L14_); trivial.
% 177.46/177.75  apply (zenon_L264_); trivial.
% 177.46/177.75  (* end of lemma zenon_L301_ *)
% 177.46/177.75  assert (zenon_L302_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hd0 zenon_H6c zenon_H72 zenon_Hca zenon_H127 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L260_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L82_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L163_); trivial.
% 177.46/177.75  apply (zenon_L177_); trivial.
% 177.46/177.75  (* end of lemma zenon_L302_ *)
% 177.46/177.75  assert (zenon_L303_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_Hd0 zenon_H72 zenon_Hca zenon_H127 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H11e zenon_H188.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.46/177.75  apply (zenon_L12_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.46/177.75  apply (zenon_L13_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.46/177.75  apply (zenon_L14_); trivial.
% 177.46/177.75  apply (zenon_L302_); trivial.
% 177.46/177.75  (* end of lemma zenon_L303_ *)
% 177.46/177.75  assert (zenon_L304_ : (~((op (e2) (e0)) = (op (unit) (e0)))) -> ((unit) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1ef zenon_H1f0.
% 177.46/177.75  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.46/177.75  cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H1f1. apply sym_equal. exact zenon_H1f0.
% 177.46/177.75  apply zenon_H23. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L304_ *)
% 177.46/177.75  assert (zenon_L305_ : (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e0)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H10d zenon_H25 zenon_H1f0 zenon_H63.
% 177.46/177.75  cut (((op (unit) (e0)) = (e0)) = ((op (e2) (e0)) = (op (e2) (e2)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H10d.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H25.
% 177.46/177.75  cut (((e0) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H65].
% 177.46/177.75  cut (((op (unit) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1f2].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ].
% 177.46/177.75  cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (unit) (e0)) = (op (e2) (e0)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f2.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H112.
% 177.46/177.75  cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 177.46/177.75  cut (((op (e2) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 177.46/177.75  congruence.
% 177.46/177.75  apply (zenon_L304_); trivial.
% 177.46/177.75  apply zenon_H113. apply refl_equal.
% 177.46/177.75  apply zenon_H113. apply refl_equal.
% 177.46/177.75  apply zenon_H65. apply sym_equal. exact zenon_H63.
% 177.46/177.75  (* end of lemma zenon_L305_ *)
% 177.46/177.75  assert (zenon_L306_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H66 zenon_H10d zenon_H25 zenon_H1f0.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.46/177.75  apply (zenon_L305_); trivial.
% 177.46/177.75  (* end of lemma zenon_L306_ *)
% 177.46/177.75  assert (zenon_L307_ : (~((op (e2) (e1)) = (op (unit) (e1)))) -> ((unit) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1f3 zenon_H1f0.
% 177.46/177.75  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.75  cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H1f1. apply sym_equal. exact zenon_H1f0.
% 177.46/177.75  apply zenon_H2e. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L307_ *)
% 177.46/177.75  assert (zenon_L308_ : (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1f4 zenon_H31 zenon_H1f0 zenon_Ha2.
% 177.46/177.75  cut (((op (unit) (e1)) = (e1)) = ((op (e2) (e1)) = (op (e2) (e2)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f4.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H31.
% 177.46/177.75  cut (((e1) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hf7].
% 177.46/177.75  cut (((op (unit) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f5].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.75  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (unit) (e1)) = (op (e2) (e1)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f5.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H95.
% 177.46/177.75  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.75  cut (((op (e2) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f3].
% 177.46/177.75  congruence.
% 177.46/177.75  apply (zenon_L307_); trivial.
% 177.46/177.75  apply zenon_H96. apply refl_equal.
% 177.46/177.75  apply zenon_H96. apply refl_equal.
% 177.46/177.75  apply zenon_Hf7. apply sym_equal. exact zenon_Ha2.
% 177.46/177.75  (* end of lemma zenon_L308_ *)
% 177.46/177.75  assert (zenon_L309_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H76 zenon_H1f4 zenon_H31 zenon_H1f0.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.46/177.75  apply (zenon_L308_); trivial.
% 177.46/177.75  (* end of lemma zenon_L309_ *)
% 177.46/177.75  assert (zenon_L310_ : ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1aa zenon_H1f0 zenon_H8e zenon_H16e.
% 177.46/177.75  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e2)) = (op (e2) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H16e.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H5b.
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H185].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((op (unit) (e3)) = (e3)) = ((op (e2) (e3)) = (op (e2) (e2)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H185.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H1aa.
% 177.46/177.75  cut (((e3) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H116].
% 177.46/177.75  cut (((op (unit) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1f6].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (unit) (e3)) = (op (e2) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f6.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H5b.
% 177.46/177.75  cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 177.46/177.75  cut (((op (e2) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1f7].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.75  cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H1f1. apply sym_equal. exact zenon_H1f0.
% 177.46/177.75  apply zenon_H45. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply zenon_H116. apply sym_equal. exact zenon_H8e.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  apply zenon_H5c. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L310_ *)
% 177.46/177.75  assert (zenon_L311_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H89 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.75  apply (zenon_L310_); trivial.
% 177.46/177.75  (* end of lemma zenon_L311_ *)
% 177.46/177.75  assert (zenon_L312_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_Ha7 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L306_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L38_); trivial.
% 177.46/177.75  apply (zenon_L311_); trivial.
% 177.46/177.75  (* end of lemma zenon_L312_ *)
% 177.46/177.75  assert (zenon_L313_ : (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> ((op (e3) (e1)) = (e1)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H91 zenon_H31 zenon_H1f0 zenon_Hb7.
% 177.46/177.75  cut (((op (unit) (e1)) = (e1)) = ((op (e2) (e1)) = (op (e3) (e1)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H91.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H31.
% 177.46/177.75  cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 177.46/177.75  cut (((op (unit) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f5].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ].
% 177.46/177.75  cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (unit) (e1)) = (op (e2) (e1)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f5.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H95.
% 177.46/177.75  cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 177.46/177.75  cut (((op (e2) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f3].
% 177.46/177.75  congruence.
% 177.46/177.75  apply (zenon_L307_); trivial.
% 177.46/177.75  apply zenon_H96. apply refl_equal.
% 177.46/177.75  apply zenon_H96. apply refl_equal.
% 177.46/177.75  apply zenon_Hb8. apply sym_equal. exact zenon_Hb7.
% 177.46/177.75  (* end of lemma zenon_L313_ *)
% 177.46/177.75  assert (zenon_L314_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_Hc4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L306_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L89_); trivial.
% 177.46/177.75  apply (zenon_L311_); trivial.
% 177.46/177.75  (* end of lemma zenon_L314_ *)
% 177.46/177.75  assert (zenon_L315_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H11b zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L312_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L313_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L103_); trivial.
% 177.46/177.75  apply (zenon_L314_); trivial.
% 177.46/177.75  (* end of lemma zenon_L315_ *)
% 177.46/177.75  assert (zenon_L316_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> ((op (e1) (e0)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1f8 zenon_H79 zenon_H195.
% 177.46/177.75  cut (((op (e0) (e0)) = (e2)) = ((op (e0) (e0)) = (op (e1) (e0)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1f8.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H79.
% 177.46/177.75  cut (((e2) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H198].
% 177.46/177.75  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H2b. apply refl_equal.
% 177.46/177.75  apply zenon_H198. apply sym_equal. exact zenon_H195.
% 177.46/177.75  (* end of lemma zenon_L316_ *)
% 177.46/177.75  assert (zenon_L317_ : ((op (e1) (e0)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H199 zenon_H79.
% 177.46/177.75  apply (zenon_notand_s _ _ ax29); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H19c ].
% 177.46/177.75  apply zenon_H1d4. apply sym_equal. exact zenon_H79.
% 177.46/177.75  apply zenon_H19c. apply sym_equal. exact zenon_H199.
% 177.46/177.75  (* end of lemma zenon_L317_ *)
% 177.46/177.75  assert (zenon_L318_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((unit) = (e2)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1f9 zenon_H16e zenon_H1f0 zenon_H1aa zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_He4 zenon_H27 zenon_H194 zenon_H1f8 zenon_H79.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.46/177.75  apply (zenon_L315_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.46/177.75  apply (zenon_L268_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.46/177.75  apply (zenon_L316_); trivial.
% 177.46/177.75  apply (zenon_L317_); trivial.
% 177.46/177.75  (* end of lemma zenon_L318_ *)
% 177.46/177.75  assert (zenon_L319_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((unit) = (e2)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H7c zenon_H1f9 zenon_H16e zenon_H1f0 zenon_H1aa zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_He4 zenon_H27 zenon_H194 zenon_H1f8.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.46/177.75  apply (zenon_L318_); trivial.
% 177.46/177.75  (* end of lemma zenon_L319_ *)
% 177.46/177.75  assert (zenon_L320_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1f8 zenon_H194 zenon_H27 zenon_He4 zenon_Hd0 zenon_H91 zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1f9 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L306_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L319_); trivial.
% 177.46/177.75  apply (zenon_L311_); trivial.
% 177.46/177.75  (* end of lemma zenon_L320_ *)
% 177.46/177.75  assert (zenon_L321_ : ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H1ea zenon_H32 zenon_H81 zenon_H1fc.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e0) (e3)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1fc.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1fd].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) = ((op (e1) (e3)) = (op (e0) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1fd.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H1ea.
% 177.46/177.75  cut (((op (e0) (op (e3) (e3))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e9].
% 177.46/177.75  cut (((op (op (e0) (e3)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1fe].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e0) (e3)) (e3)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1fe.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ff].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45].
% 177.46/177.75  cut (((e1) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H33].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H33. apply sym_equal. exact zenon_H32.
% 177.46/177.75  apply zenon_H45. apply refl_equal.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply (zenon_L293_); trivial.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  apply zenon_H55. apply refl_equal.
% 177.46/177.75  (* end of lemma zenon_L321_ *)
% 177.46/177.75  assert (zenon_L322_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H89 zenon_H1ea zenon_H32 zenon_H1fc.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c.
% 177.46/177.75  apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81.
% 177.46/177.75  apply (zenon_L321_); trivial.
% 177.46/177.75  (* end of lemma zenon_L322_ *)
% 177.46/177.75  assert (zenon_L323_ : ((op (e3) (e1)) = (e2)) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hb9 zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H1ea zenon_H32 zenon_H1fc.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L46_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L285_); trivial.
% 177.46/177.75  apply (zenon_L322_); trivial.
% 177.46/177.75  (* end of lemma zenon_L323_ *)
% 177.46/177.75  assert (zenon_L324_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H1fc zenon_H32 zenon_H1ea zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L312_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L313_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L323_); trivial.
% 177.46/177.75  apply (zenon_L314_); trivial.
% 177.46/177.75  (* end of lemma zenon_L324_ *)
% 177.46/177.75  assert (zenon_L325_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_Ha7 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L306_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L38_); trivial.
% 177.46/177.75  apply (zenon_L295_); trivial.
% 177.46/177.75  (* end of lemma zenon_L325_ *)
% 177.46/177.75  assert (zenon_L326_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_Hc4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.46/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.46/177.75  apply (zenon_L306_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.46/177.75  apply (zenon_L309_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.46/177.75  apply (zenon_L89_); trivial.
% 177.46/177.75  apply (zenon_L295_); trivial.
% 177.46/177.75  (* end of lemma zenon_L326_ *)
% 177.46/177.75  assert (zenon_L327_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H11b zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.46/177.75  apply (zenon_L325_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.46/177.75  apply (zenon_L313_); trivial.
% 177.46/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.46/177.75  apply (zenon_L103_); trivial.
% 177.46/177.75  apply (zenon_L326_); trivial.
% 177.46/177.75  (* end of lemma zenon_L327_ *)
% 177.46/177.75  assert (zenon_L328_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e2)))) -> ((op (e0) (e3)) = (e2)) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H200 zenon_H3b.
% 177.46/177.75  cut (((op (e0) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H201].
% 177.46/177.75  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.46/177.75  congruence.
% 177.46/177.75  apply zenon_H2e. apply refl_equal.
% 177.46/177.75  exact (zenon_H201 zenon_H3b).
% 177.46/177.75  (* end of lemma zenon_L328_ *)
% 177.46/177.75  assert (zenon_L329_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False).
% 177.46/177.75  do 0 intro. intros zenon_H194 zenon_H188 zenon_H3b zenon_H13a.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e2)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H13a.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H160].
% 177.46/177.75  congruence.
% 177.46/177.75  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e2)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H160.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H194.
% 177.46/177.75  cut (((op (e1) (op (e0) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H200].
% 177.46/177.75  cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9].
% 177.46/177.75  congruence.
% 177.46/177.75  elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))).
% 177.46/177.75  intro zenon_D_pnotp.
% 177.46/177.75  apply zenon_H1d9.
% 177.46/177.75  rewrite <- zenon_D_pnotp.
% 177.46/177.75  exact zenon_H54.
% 177.46/177.75  cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55].
% 177.46/177.75  cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7].
% 177.56/177.75  congruence.
% 177.56/177.75  apply (zenon_L266_); trivial.
% 177.56/177.75  apply zenon_H55. apply refl_equal.
% 177.56/177.75  apply zenon_H55. apply refl_equal.
% 177.56/177.75  apply (zenon_L328_); trivial.
% 177.56/177.75  apply zenon_H55. apply refl_equal.
% 177.56/177.75  apply zenon_H55. apply refl_equal.
% 177.56/177.75  (* end of lemma zenon_L329_ *)
% 177.56/177.75  assert (zenon_L330_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H1f9 zenon_H1eb zenon_H1ea zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H1f0 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H3b zenon_H194 zenon_H1f8 zenon_H79.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_L327_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_L329_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L316_); trivial.
% 177.56/177.75  apply (zenon_L317_); trivial.
% 177.56/177.75  (* end of lemma zenon_L330_ *)
% 177.56/177.75  assert (zenon_L331_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H7c zenon_H1f9 zenon_H1eb zenon_H1ea zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H1f0 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H3b zenon_H194 zenon_H1f8.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.56/177.75  apply (zenon_L330_); trivial.
% 177.56/177.75  (* end of lemma zenon_L331_ *)
% 177.56/177.75  assert (zenon_L332_ : ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Hbe zenon_H1f9 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H194 zenon_H1f8 zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ].
% 177.56/177.75  apply (zenon_L325_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ].
% 177.56/177.75  apply (zenon_L313_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ].
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L306_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L309_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L331_); trivial.
% 177.56/177.75  apply (zenon_L49_); trivial.
% 177.56/177.75  apply (zenon_L326_); trivial.
% 177.56/177.75  (* end of lemma zenon_L332_ *)
% 177.56/177.75  assert (zenon_L333_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e0)) = (e1)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H52 zenon_H1aa zenon_H1f0 zenon_H16e.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L306_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L309_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L246_); trivial.
% 177.56/177.75  apply (zenon_L311_); trivial.
% 177.56/177.75  (* end of lemma zenon_L333_ *)
% 177.56/177.75  assert (zenon_L334_ : (~((op (e3) (e0)) = (op (unit) (e0)))) -> ((unit) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H202 zenon_H203.
% 177.56/177.75  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 177.56/177.75  cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204].
% 177.56/177.75  congruence.
% 177.56/177.75  apply zenon_H204. apply sym_equal. exact zenon_H203.
% 177.56/177.75  apply zenon_H23. apply refl_equal.
% 177.56/177.75  (* end of lemma zenon_L334_ *)
% 177.56/177.75  assert (zenon_L335_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e0)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Hca zenon_H25 zenon_H203 zenon_H6a.
% 177.56/177.75  cut (((op (unit) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e3)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_Hca.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H25.
% 177.56/177.75  cut (((e0) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H129].
% 177.56/177.75  cut (((op (unit) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H205].
% 177.56/177.75  congruence.
% 177.56/177.75  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.56/177.75  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (unit) (e0)) = (op (e3) (e0)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H205.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H74.
% 177.56/177.75  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.56/177.75  cut (((op (e3) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H202].
% 177.56/177.75  congruence.
% 177.56/177.75  apply (zenon_L334_); trivial.
% 177.56/177.75  apply zenon_H75. apply refl_equal.
% 177.56/177.75  apply zenon_H75. apply refl_equal.
% 177.56/177.75  apply zenon_H129. apply sym_equal. exact zenon_H6a.
% 177.56/177.75  (* end of lemma zenon_L335_ *)
% 177.56/177.75  assert (zenon_L336_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H66 zenon_Hca zenon_H25 zenon_H203.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a.
% 177.56/177.75  apply (zenon_L335_); trivial.
% 177.56/177.75  (* end of lemma zenon_L336_ *)
% 177.56/177.75  assert (zenon_L337_ : (~((op (e3) (e1)) = (op (unit) (e1)))) -> ((unit) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H206 zenon_H203.
% 177.56/177.75  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 177.56/177.75  cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204].
% 177.56/177.75  congruence.
% 177.56/177.75  apply zenon_H204. apply sym_equal. exact zenon_H203.
% 177.56/177.75  apply zenon_H2e. apply refl_equal.
% 177.56/177.75  (* end of lemma zenon_L337_ *)
% 177.56/177.75  assert (zenon_L338_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e1)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H10b zenon_H31 zenon_H203 zenon_Ha6.
% 177.56/177.75  cut (((op (unit) (e1)) = (e1)) = ((op (e3) (e1)) = (op (e3) (e3)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H10b.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H31.
% 177.56/177.75  cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H123].
% 177.56/177.75  cut (((op (unit) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H207].
% 177.56/177.75  congruence.
% 177.56/177.75  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.56/177.75  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (unit) (e1)) = (op (e3) (e1)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H207.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_Hc0.
% 177.56/177.75  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.56/177.75  cut (((op (e3) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H206].
% 177.56/177.75  congruence.
% 177.56/177.75  apply (zenon_L337_); trivial.
% 177.56/177.75  apply zenon_Hc1. apply refl_equal.
% 177.56/177.75  apply zenon_Hc1. apply refl_equal.
% 177.56/177.75  apply zenon_H123. apply sym_equal. exact zenon_Ha6.
% 177.56/177.75  (* end of lemma zenon_L338_ *)
% 177.56/177.75  assert (zenon_L339_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H76 zenon_H10b zenon_H31 zenon_H203.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6.
% 177.56/177.75  apply (zenon_L338_); trivial.
% 177.56/177.75  (* end of lemma zenon_L339_ *)
% 177.56/177.75  assert (zenon_L340_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Hae zenon_H3a zenon_H203 zenon_H124.
% 177.56/177.75  cut (((op (unit) (e2)) = (e2)) = ((op (e3) (e2)) = (op (e3) (e3)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_Hae.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H3a.
% 177.56/177.75  cut (((e2) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e7].
% 177.56/177.75  cut (((op (unit) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H208].
% 177.56/177.75  congruence.
% 177.56/177.75  elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ].
% 177.56/177.75  cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (unit) (e2)) = (op (e3) (e2)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H208.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H83.
% 177.56/177.75  cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 177.56/177.75  cut (((op (e3) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H209].
% 177.56/177.75  congruence.
% 177.56/177.75  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37].
% 177.56/177.75  cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204].
% 177.56/177.75  congruence.
% 177.56/177.75  apply zenon_H204. apply sym_equal. exact zenon_H203.
% 177.56/177.75  apply zenon_H37. apply refl_equal.
% 177.56/177.75  apply zenon_H84. apply refl_equal.
% 177.56/177.75  apply zenon_H84. apply refl_equal.
% 177.56/177.75  apply zenon_H1e7. apply sym_equal. exact zenon_H124.
% 177.56/177.75  (* end of lemma zenon_L340_ *)
% 177.56/177.75  assert (zenon_L341_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H7c zenon_Hae zenon_H3a zenon_H203.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124.
% 177.56/177.75  apply (zenon_L340_); trivial.
% 177.56/177.75  (* end of lemma zenon_L341_ *)
% 177.56/177.75  assert (zenon_L342_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e2) (e1)) = (e0)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H42.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L336_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L77_); trivial.
% 177.56/177.75  (* end of lemma zenon_L342_ *)
% 177.56/177.75  assert (zenon_L343_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> ((op (e3) (e2)) = (e0)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H7b zenon_H25 zenon_H203 zenon_Hb2.
% 177.56/177.75  cut (((op (unit) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e2)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H7b.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H25.
% 177.56/177.75  cut (((e0) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 177.56/177.75  cut (((op (unit) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H205].
% 177.56/177.75  congruence.
% 177.56/177.75  elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 177.56/177.75  cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (unit) (e0)) = (op (e3) (e0)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H205.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H74.
% 177.56/177.75  cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 177.56/177.75  cut (((op (e3) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H202].
% 177.56/177.75  congruence.
% 177.56/177.75  apply (zenon_L334_); trivial.
% 177.56/177.75  apply zenon_H75. apply refl_equal.
% 177.56/177.75  apply zenon_H75. apply refl_equal.
% 177.56/177.75  apply zenon_Hb5. apply sym_equal. exact zenon_Hb2.
% 177.56/177.75  (* end of lemma zenon_L343_ *)
% 177.56/177.75  assert (zenon_L344_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> ((op (e3) (e2)) = (e1)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H82 zenon_H31 zenon_H203 zenon_H62.
% 177.56/177.75  cut (((op (unit) (e1)) = (e1)) = ((op (e3) (e1)) = (op (e3) (e2)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H82.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H31.
% 177.56/177.75  cut (((e1) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 177.56/177.75  cut (((op (unit) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H207].
% 177.56/177.75  congruence.
% 177.56/177.75  elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ].
% 177.56/177.75  cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (unit) (e1)) = (op (e3) (e1)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H207.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_Hc0.
% 177.56/177.75  cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 177.56/177.75  cut (((op (e3) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H206].
% 177.56/177.75  congruence.
% 177.56/177.75  apply (zenon_L337_); trivial.
% 177.56/177.75  apply zenon_Hc1. apply refl_equal.
% 177.56/177.75  apply zenon_Hc1. apply refl_equal.
% 177.56/177.75  apply zenon_H64. apply sym_equal. exact zenon_H62.
% 177.56/177.75  (* end of lemma zenon_L344_ *)
% 177.56/177.75  assert (zenon_L345_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H9e zenon_H9a.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L336_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L41_); trivial.
% 177.56/177.75  (* end of lemma zenon_L345_ *)
% 177.56/177.75  assert (zenon_L346_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Haf zenon_H7b zenon_H82 zenon_H60 zenon_H92 zenon_H91 zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H9e.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ].
% 177.56/177.75  apply (zenon_L343_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ].
% 177.56/177.75  apply (zenon_L344_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ].
% 177.56/177.75  apply (zenon_L29_); trivial.
% 177.56/177.75  apply (zenon_L345_); trivial.
% 177.56/177.75  (* end of lemma zenon_L346_ *)
% 177.56/177.75  assert (zenon_L347_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H126 zenon_Hf3 zenon_Hd6.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L336_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L112_); trivial.
% 177.56/177.75  (* end of lemma zenon_L347_ *)
% 177.56/177.75  assert (zenon_L348_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False).
% 177.56/177.75  do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hae zenon_H3a zenon_H203 zenon_H10b zenon_H31 zenon_Hca zenon_H25 zenon_H180 zenon_H11b zenon_H11d.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L342_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L346_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L347_); trivial.
% 177.56/177.75  apply (zenon_L167_); trivial.
% 177.56/177.75  (* end of lemma zenon_L348_ *)
% 177.56/177.75  assert (zenon_L349_ : ((op (e1) (e0)) = (e2)) -> ((op (e0) (e0)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H195 zenon_H8b.
% 177.56/177.75  apply (zenon_notand_s _ _ ax35); [ zenon_intro zenon_H20a | zenon_intro zenon_H198 ].
% 177.56/177.75  apply zenon_H20a. apply sym_equal. exact zenon_H8b.
% 177.56/177.75  apply zenon_H198. apply sym_equal. exact zenon_H195.
% 177.56/177.75  (* end of lemma zenon_L349_ *)
% 177.56/177.75  assert (zenon_L350_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (e1) (e0)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H89 zenon_H195.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.56/177.75  apply (zenon_L349_); trivial.
% 177.56/177.75  (* end of lemma zenon_L350_ *)
% 177.56/177.75  assert (zenon_L351_ : ((op (e2) (e1)) = (e3)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Hdd zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H195.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L59_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L350_); trivial.
% 177.56/177.75  (* end of lemma zenon_L351_ *)
% 177.56/177.75  assert (zenon_L352_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e2)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hca zenon_H25 zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H195.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L342_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L346_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L347_); trivial.
% 177.56/177.75  apply (zenon_L351_); trivial.
% 177.56/177.75  (* end of lemma zenon_L352_ *)
% 177.56/177.75  assert (zenon_L353_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e3)) -> ((op (e1) (e0)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H1f8 zenon_H8b zenon_H199.
% 177.56/177.75  cut (((op (e0) (e0)) = (e3)) = ((op (e0) (e0)) = (op (e1) (e0)))).
% 177.56/177.75  intro zenon_D_pnotp.
% 177.56/177.75  apply zenon_H1f8.
% 177.56/177.75  rewrite <- zenon_D_pnotp.
% 177.56/177.75  exact zenon_H8b.
% 177.56/177.75  cut (((e3) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 177.56/177.75  cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 177.56/177.75  congruence.
% 177.56/177.75  apply zenon_H2b. apply refl_equal.
% 177.56/177.75  apply zenon_H19c. apply sym_equal. exact zenon_H199.
% 177.56/177.75  (* end of lemma zenon_L353_ *)
% 177.56/177.75  assert (zenon_L354_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_H89 zenon_H1f8 zenon_H199.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a.
% 177.56/177.75  apply (zenon_L353_); trivial.
% 177.56/177.75  (* end of lemma zenon_L354_ *)
% 177.56/177.75  assert (zenon_L355_ : ((op (e2) (e1)) = (e3)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_Hdd zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H1f8 zenon_H199.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L59_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L354_); trivial.
% 177.56/177.75  (* end of lemma zenon_L355_ *)
% 177.56/177.75  assert (zenon_L356_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False).
% 177.56/177.75  do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hca zenon_H25 zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H1f8 zenon_H199.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L342_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L346_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L347_); trivial.
% 177.56/177.75  apply (zenon_L355_); trivial.
% 177.56/177.75  (* end of lemma zenon_L356_ *)
% 177.56/177.75  apply (zenon_and_s _ _ ax1). zenon_intro zenon_H20c. zenon_intro zenon_H20b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H20b). zenon_intro zenon_H20e. zenon_intro zenon_H20d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H20d). zenon_intro zenon_H210. zenon_intro zenon_H20f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H20f). zenon_intro zenon_H212. zenon_intro zenon_H211.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H211). zenon_intro zenon_H1f9. zenon_intro zenon_H213.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H213). zenon_intro zenon_H1dd. zenon_intro zenon_H214.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H214). zenon_intro zenon_H216. zenon_intro zenon_H215.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H215). zenon_intro zenon_H17c. zenon_intro zenon_H217.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H217). zenon_intro zenon_H1cc. zenon_intro zenon_H218.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H218). zenon_intro zenon_He1. zenon_intro zenon_H219.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H219). zenon_intro zenon_H117. zenon_intro zenon_H21a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H21a). zenon_intro zenon_H136. zenon_intro zenon_H21b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H21b). zenon_intro zenon_Hcf. zenon_intro zenon_H21c.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H21c). zenon_intro zenon_Hd0. zenon_intro zenon_H21d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H21d). zenon_intro zenon_Haf. zenon_intro zenon_H21e.
% 177.56/177.75  apply (zenon_and_s _ _ ax2). zenon_intro zenon_H220. zenon_intro zenon_H21f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H21f). zenon_intro zenon_H222. zenon_intro zenon_H221.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H221). zenon_intro zenon_H224. zenon_intro zenon_H223.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H223). zenon_intro zenon_H226. zenon_intro zenon_H225.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H225). zenon_intro zenon_H228. zenon_intro zenon_H227.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H227). zenon_intro zenon_H22a. zenon_intro zenon_H229.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H229). zenon_intro zenon_H22c. zenon_intro zenon_H22b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H22b). zenon_intro zenon_H22e. zenon_intro zenon_H22d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H22d). zenon_intro zenon_H230. zenon_intro zenon_H22f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H22f). zenon_intro zenon_H232. zenon_intro zenon_H231.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H231). zenon_intro zenon_H234. zenon_intro zenon_H233.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H233). zenon_intro zenon_H236. zenon_intro zenon_H235.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H235). zenon_intro zenon_H238. zenon_intro zenon_H237.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H237). zenon_intro zenon_H23a. zenon_intro zenon_H239.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H239). zenon_intro zenon_H23c. zenon_intro zenon_H23b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H23b). zenon_intro zenon_H1ea. zenon_intro zenon_H23d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H23d). zenon_intro zenon_H187. zenon_intro zenon_H23e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H23e). zenon_intro zenon_H240. zenon_intro zenon_H23f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H23f). zenon_intro zenon_H242. zenon_intro zenon_H241.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H241). zenon_intro zenon_H194. zenon_intro zenon_H243.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_H1de. zenon_intro zenon_H244.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H244). zenon_intro zenon_H246. zenon_intro zenon_H245.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H245). zenon_intro zenon_H177. zenon_intro zenon_H247.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H247). zenon_intro zenon_H15f. zenon_intro zenon_H248.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H248). zenon_intro zenon_H24a. zenon_intro zenon_H249.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H249). zenon_intro zenon_H24c. zenon_intro zenon_H24b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H24b). zenon_intro zenon_H13b. zenon_intro zenon_H24d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H24d). zenon_intro zenon_H166. zenon_intro zenon_H24e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H24e). zenon_intro zenon_H250. zenon_intro zenon_H24f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H24f). zenon_intro zenon_H252. zenon_intro zenon_H251.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H251). zenon_intro zenon_H254. zenon_intro zenon_H253.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H253). zenon_intro zenon_H157. zenon_intro zenon_H255.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H255). zenon_intro zenon_H257. zenon_intro zenon_H256.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H256). zenon_intro zenon_H259. zenon_intro zenon_H258.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H258). zenon_intro zenon_H25b. zenon_intro zenon_H25a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H25a). zenon_intro zenon_H1c3. zenon_intro zenon_H25c.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H25c). zenon_intro zenon_H180. zenon_intro zenon_H25d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H25d). zenon_intro zenon_Hf3. zenon_intro zenon_H25e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H25e). zenon_intro zenon_H16f. zenon_intro zenon_H25f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H25f). zenon_intro zenon_Hd9. zenon_intro zenon_H260.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H260). zenon_intro zenon_H262. zenon_intro zenon_H261.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H261). zenon_intro zenon_H264. zenon_intro zenon_H263.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H263). zenon_intro zenon_H266. zenon_intro zenon_H265.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H265). zenon_intro zenon_H153. zenon_intro zenon_H267.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H267). zenon_intro zenon_H269. zenon_intro zenon_H268.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H268). zenon_intro zenon_H26b. zenon_intro zenon_H26a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H26a). zenon_intro zenon_H26d. zenon_intro zenon_H26c.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H26c). zenon_intro zenon_H26f. zenon_intro zenon_H26e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H26e). zenon_intro zenon_H72. zenon_intro zenon_H270.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H270). zenon_intro zenon_H272. zenon_intro zenon_H271.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H271). zenon_intro zenon_H274. zenon_intro zenon_H273.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H273). zenon_intro zenon_H4a. zenon_intro zenon_H275.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H275). zenon_intro zenon_H11e. zenon_intro zenon_H276.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H276). zenon_intro zenon_H104. zenon_intro zenon_H277.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H277). zenon_intro zenon_H149. zenon_intro zenon_H278.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H278). zenon_intro zenon_Hc9. zenon_intro zenon_H279.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H279). zenon_intro zenon_H1b1. zenon_intro zenon_H27a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27a). zenon_intro zenon_H92. zenon_intro zenon_H27b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27b). zenon_intro zenon_H9e. zenon_intro zenon_H27c.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27c). zenon_intro zenon_H12f. zenon_intro zenon_H27d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27d). zenon_intro zenon_H1d2. zenon_intro zenon_H27e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27e). zenon_intro zenon_Hbe. zenon_intro zenon_H27f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H27f). zenon_intro zenon_H80. zenon_intro zenon_H280.
% 177.56/177.75  apply (zenon_and_s _ _ ax3). zenon_intro zenon_H25. zenon_intro zenon_H281.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H281). zenon_intro zenon_H283. zenon_intro zenon_H282.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H282). zenon_intro zenon_H31. zenon_intro zenon_H284.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H284). zenon_intro zenon_He5. zenon_intro zenon_H285.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H285). zenon_intro zenon_H3a. zenon_intro zenon_H286.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H286). zenon_intro zenon_H10e. zenon_intro zenon_H287.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H287). zenon_intro zenon_H1aa. zenon_intro zenon_H288.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H288). zenon_intro zenon_Hfb. zenon_intro zenon_H289.
% 177.56/177.75  apply (zenon_and_s _ _ ax9). zenon_intro zenon_H1f8. zenon_intro zenon_H28a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H28a). zenon_intro zenon_H1bb. zenon_intro zenon_H28b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H28b). zenon_intro zenon_H28d. zenon_intro zenon_H28c.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H28c). zenon_intro zenon_H28f. zenon_intro zenon_H28e.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H28e). zenon_intro zenon_H1a8. zenon_intro zenon_H290.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H290). zenon_intro zenon_H11d. zenon_intro zenon_H291.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H291). zenon_intro zenon_H293. zenon_intro zenon_H292.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H292). zenon_intro zenon_H295. zenon_intro zenon_H294.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H294). zenon_intro zenon_Hb0. zenon_intro zenon_H296.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H296). zenon_intro zenon_H40. zenon_intro zenon_H297.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H297). zenon_intro zenon_H299. zenon_intro zenon_H298.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H298). zenon_intro zenon_H91. zenon_intro zenon_H29a.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H29a). zenon_intro zenon_H29c. zenon_intro zenon_H29b.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H29b). zenon_intro zenon_H29e. zenon_intro zenon_H29d.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H29d). zenon_intro zenon_Hf9. zenon_intro zenon_H29f.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H29f). zenon_intro zenon_H2a1. zenon_intro zenon_H2a0.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a0). zenon_intro zenon_H14c. zenon_intro zenon_H2a2.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a2). zenon_intro zenon_H2a4. zenon_intro zenon_H2a3.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a3). zenon_intro zenon_H1fc. zenon_intro zenon_H2a5.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a5). zenon_intro zenon_H1eb. zenon_intro zenon_H2a6.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a6). zenon_intro zenon_H49. zenon_intro zenon_H2a7.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a7). zenon_intro zenon_H158. zenon_intro zenon_H2a8.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a8). zenon_intro zenon_H51. zenon_intro zenon_H2a9.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2a9). zenon_intro zenon_H58. zenon_intro zenon_H2aa.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2aa). zenon_intro zenon_H2ac. zenon_intro zenon_H2ab.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2ab). zenon_intro zenon_H2ae. zenon_intro zenon_H2ad.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2ad). zenon_intro zenon_H24. zenon_intro zenon_H2af.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2af). zenon_intro zenon_H2b1. zenon_intro zenon_H2b0.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b0). zenon_intro zenon_H30. zenon_intro zenon_H2b2.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b2). zenon_intro zenon_H39. zenon_intro zenon_H2b3.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b3). zenon_intro zenon_H1a9. zenon_intro zenon_H2b4.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b4). zenon_intro zenon_H1df. zenon_intro zenon_H2b5.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b5). zenon_intro zenon_He4. zenon_intro zenon_H2b6.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b6). zenon_intro zenon_H2b8. zenon_intro zenon_H2b7.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b7). zenon_intro zenon_H1a2. zenon_intro zenon_H2b9.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2b9). zenon_intro zenon_H13a. zenon_intro zenon_H2ba.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2ba). zenon_intro zenon_Hf4. zenon_intro zenon_H2bb.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2bb). zenon_intro zenon_H10d. zenon_intro zenon_H2bc.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2bc). zenon_intro zenon_Hda. zenon_intro zenon_H2bd.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2bd). zenon_intro zenon_H1f4. zenon_intro zenon_H2be.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2be). zenon_intro zenon_H126. zenon_intro zenon_H2bf.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2bf). zenon_intro zenon_H16e. zenon_intro zenon_H2c0.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2c0). zenon_intro zenon_H71. zenon_intro zenon_H2c1.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2c1). zenon_intro zenon_H7b. zenon_intro zenon_H2c2.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2c2). zenon_intro zenon_Hca. zenon_intro zenon_H2c3.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2c3). zenon_intro zenon_H82. zenon_intro zenon_H2c4.
% 177.56/177.75  apply (zenon_and_s _ _ zenon_H2c4). zenon_intro zenon_H10b. zenon_intro zenon_Hae.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H289); [ zenon_intro zenon_H26 | zenon_intro zenon_H2c5 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ].
% 177.56/177.75  apply (zenon_L2_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ].
% 177.56/177.75  apply (zenon_L5_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ].
% 177.56/177.75  apply (zenon_L8_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L72_); trivial.
% 177.56/177.75  apply (zenon_L124_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L72_); trivial.
% 177.56/177.75  apply (zenon_L129_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ].
% 177.56/177.75  apply (zenon_L133_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L154_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L9_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L105_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L156_); trivial.
% 177.56/177.75  apply (zenon_L128_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L158_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L146_); trivial.
% 177.56/177.75  apply (zenon_L124_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L158_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L146_); trivial.
% 177.56/177.75  apply (zenon_L129_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ].
% 177.56/177.75  apply (zenon_L133_); trivial.
% 177.56/177.75  apply (zenon_L160_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ].
% 177.56/177.75  apply (zenon_L165_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L168_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L171_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L76_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L105_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L111_); trivial.
% 177.56/177.75  apply (zenon_L128_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L72_); trivial.
% 177.56/177.75  apply (zenon_L183_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L72_); trivial.
% 177.56/177.75  apply (zenon_L184_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ].
% 177.56/177.75  apply (zenon_L186_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L64_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L154_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ].
% 177.56/177.75  apply (zenon_L9_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ].
% 177.56/177.75  apply (zenon_L179_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ].
% 177.56/177.75  apply (zenon_L156_); trivial.
% 177.56/177.75  apply (zenon_L58_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L158_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L146_); trivial.
% 177.56/177.75  apply (zenon_L183_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L158_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L146_); trivial.
% 177.56/177.75  apply (zenon_L184_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ].
% 177.56/177.75  apply (zenon_L186_); trivial.
% 177.56/177.75  apply (zenon_L160_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ].
% 177.56/177.75  apply (zenon_L165_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L187_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L65_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L171_); trivial.
% 177.56/177.75  apply (zenon_L188_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L190_); trivial.
% 177.56/177.75  apply (zenon_L191_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c5); [ zenon_intro zenon_H19e | zenon_intro zenon_H2ca ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L193_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L194_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L196_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.56/177.75  apply (zenon_L259_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.56/177.75  apply (zenon_L263_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.56/177.75  apply (zenon_L216_); trivial.
% 177.56/177.75  apply (zenon_L265_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_L268_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L272_); trivial.
% 177.56/177.75  apply (zenon_L274_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L193_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L194_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L196_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.56/177.75  apply (zenon_L283_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.56/177.75  apply (zenon_L288_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.56/177.75  apply (zenon_L216_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.56/177.75  apply (zenon_L197_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.56/177.75  apply (zenon_L282_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.56/177.75  apply (zenon_L287_); trivial.
% 177.56/177.75  apply (zenon_L264_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_L290_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L272_); trivial.
% 177.56/177.75  apply (zenon_L274_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ].
% 177.56/177.75  apply (zenon_L298_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L193_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L194_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L196_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.56/177.75  apply (zenon_L299_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.56/177.75  apply (zenon_L300_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.56/177.75  apply (zenon_L216_); trivial.
% 177.56/177.75  apply (zenon_L301_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ].
% 177.56/177.75  apply (zenon_L193_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ].
% 177.56/177.75  apply (zenon_L194_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ].
% 177.56/177.75  apply (zenon_L196_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ].
% 177.56/177.75  apply (zenon_L299_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ].
% 177.56/177.75  apply (zenon_L303_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ].
% 177.56/177.75  apply (zenon_L216_); trivial.
% 177.56/177.75  apply (zenon_L301_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L272_); trivial.
% 177.56/177.75  apply (zenon_L191_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2ca); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H203 ].
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ].
% 177.56/177.75  apply (zenon_L320_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ].
% 177.56/177.75  apply (zenon_L324_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ].
% 177.56/177.75  apply (zenon_L332_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ].
% 177.56/177.75  apply (zenon_L12_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ].
% 177.56/177.75  apply (zenon_L333_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ].
% 177.56/177.75  apply (zenon_L14_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L306_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L309_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L24_); trivial.
% 177.56/177.75  apply (zenon_L311_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ].
% 177.56/177.75  apply (zenon_L348_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ].
% 177.56/177.75  apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ].
% 177.56/177.75  apply (zenon_L336_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ].
% 177.56/177.75  apply (zenon_L339_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ].
% 177.56/177.75  apply (zenon_L341_); trivial.
% 177.56/177.75  apply (zenon_L174_); trivial.
% 177.56/177.75  apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ].
% 177.56/177.75  apply (zenon_L352_); trivial.
% 177.56/177.75  apply (zenon_L356_); trivial.
% 177.56/177.75  Qed.
% 177.56/177.75  % SZS output end Proof
% 177.56/177.75  (* END-PROOF *)
% 177.56/177.75  nodes searched: 730012
% 177.56/177.75  max branch formulas: 1870
% 177.56/177.75  proof nodes created: 10561
% 177.56/177.75  formulas created: 2498270
% 177.56/177.75  
%------------------------------------------------------------------------------