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

View Problem - Process Solution

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

% Computer : n028.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:30 EDT 2022

% Result   : Theorem 40.73s 40.96s
% Output   : Proof 40.85s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.10/0.12  % Problem  : ALG118+1 : TPTP v8.1.0. Released v2.7.0.
% 0.10/0.12  % Command  : run_zenon %s %d
% 0.12/0.33  % Computer : n028.cluster.edu
% 0.12/0.33  % Model    : x86_64 x86_64
% 0.12/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.12/0.33  % Memory   : 8042.1875MB
% 0.12/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.12/0.33  % CPULimit : 300
% 0.12/0.33  % WCLimit  : 600
% 0.12/0.33  % DateTime : Wed Jun  8 08:15:16 EDT 2022
% 0.12/0.33  % CPUTime  : 
% 40.73/40.96  (* PROOF-FOUND *)
% 40.73/40.96  % SZS status Theorem
% 40.73/40.96  (* BEGIN-PROOF *)
% 40.73/40.96  % SZS output start Proof
% 40.73/40.96  Theorem co1 : ((((h1 (op1 (e10) (e10))) = (op2 (h1 (e10)) (h1 (e10))))/\(((h1 (op1 (e10) (e11))) = (op2 (h1 (e10)) (h1 (e11))))/\(((h1 (op1 (e10) (e12))) = (op2 (h1 (e10)) (h1 (e12))))/\(((h1 (op1 (e10) (e13))) = (op2 (h1 (e10)) (h1 (e13))))/\(((h1 (op1 (e11) (e10))) = (op2 (h1 (e11)) (h1 (e10))))/\(((h1 (op1 (e11) (e11))) = (op2 (h1 (e11)) (h1 (e11))))/\(((h1 (op1 (e11) (e12))) = (op2 (h1 (e11)) (h1 (e12))))/\(((h1 (op1 (e11) (e13))) = (op2 (h1 (e11)) (h1 (e13))))/\(((h1 (op1 (e12) (e10))) = (op2 (h1 (e12)) (h1 (e10))))/\(((h1 (op1 (e12) (e11))) = (op2 (h1 (e12)) (h1 (e11))))/\(((h1 (op1 (e12) (e12))) = (op2 (h1 (e12)) (h1 (e12))))/\(((h1 (op1 (e12) (e13))) = (op2 (h1 (e12)) (h1 (e13))))/\(((h1 (op1 (e13) (e10))) = (op2 (h1 (e13)) (h1 (e10))))/\(((h1 (op1 (e13) (e11))) = (op2 (h1 (e13)) (h1 (e11))))/\(((h1 (op1 (e13) (e12))) = (op2 (h1 (e13)) (h1 (e12))))/\(((h1 (op1 (e13) (e13))) = (op2 (h1 (e13)) (h1 (e13))))/\((((h1 (e10)) = (e20))\/(((h1 (e11)) = (e20))\/(((h1 (e12)) = (e20))\/((h1 (e13)) = (e20)))))/\((((h1 (e10)) = (e21))\/(((h1 (e11)) = (e21))\/(((h1 (e12)) = (e21))\/((h1 (e13)) = (e21)))))/\((((h1 (e10)) = (e22))\/(((h1 (e11)) = (e22))\/(((h1 (e12)) = (e22))\/((h1 (e13)) = (e22)))))/\(((h1 (e10)) = (e23))\/(((h1 (e11)) = (e23))\/(((h1 (e12)) = (e23))\/((h1 (e13)) = (e23))))))))))))))))))))))))\/((((h2 (op1 (e10) (e10))) = (op2 (h2 (e10)) (h2 (e10))))/\(((h2 (op1 (e10) (e11))) = (op2 (h2 (e10)) (h2 (e11))))/\(((h2 (op1 (e10) (e12))) = (op2 (h2 (e10)) (h2 (e12))))/\(((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))/\(((h2 (op1 (e11) (e10))) = (op2 (h2 (e11)) (h2 (e10))))/\(((h2 (op1 (e11) (e11))) = (op2 (h2 (e11)) (h2 (e11))))/\(((h2 (op1 (e11) (e12))) = (op2 (h2 (e11)) (h2 (e12))))/\(((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))/\(((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))/\(((h2 (op1 (e12) (e11))) = (op2 (h2 (e12)) (h2 (e11))))/\(((h2 (op1 (e12) (e12))) = (op2 (h2 (e12)) (h2 (e12))))/\(((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))/\(((h2 (op1 (e13) (e10))) = (op2 (h2 (e13)) (h2 (e10))))/\(((h2 (op1 (e13) (e11))) = (op2 (h2 (e13)) (h2 (e11))))/\(((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))/\(((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))/\((((h2 (e10)) = (e20))\/(((h2 (e11)) = (e20))\/(((h2 (e12)) = (e20))\/((h2 (e13)) = (e20)))))/\((((h2 (e10)) = (e21))\/(((h2 (e11)) = (e21))\/(((h2 (e12)) = (e21))\/((h2 (e13)) = (e21)))))/\((((h2 (e10)) = (e22))\/(((h2 (e11)) = (e22))\/(((h2 (e12)) = (e22))\/((h2 (e13)) = (e22)))))/\(((h2 (e10)) = (e23))\/(((h2 (e11)) = (e23))\/(((h2 (e12)) = (e23))\/((h2 (e13)) = (e23))))))))))))))))))))))))\/((((h3 (op1 (e10) (e10))) = (op2 (h3 (e10)) (h3 (e10))))/\(((h3 (op1 (e10) (e11))) = (op2 (h3 (e10)) (h3 (e11))))/\(((h3 (op1 (e10) (e12))) = (op2 (h3 (e10)) (h3 (e12))))/\(((h3 (op1 (e10) (e13))) = (op2 (h3 (e10)) (h3 (e13))))/\(((h3 (op1 (e11) (e10))) = (op2 (h3 (e11)) (h3 (e10))))/\(((h3 (op1 (e11) (e11))) = (op2 (h3 (e11)) (h3 (e11))))/\(((h3 (op1 (e11) (e12))) = (op2 (h3 (e11)) (h3 (e12))))/\(((h3 (op1 (e11) (e13))) = (op2 (h3 (e11)) (h3 (e13))))/\(((h3 (op1 (e12) (e10))) = (op2 (h3 (e12)) (h3 (e10))))/\(((h3 (op1 (e12) (e11))) = (op2 (h3 (e12)) (h3 (e11))))/\(((h3 (op1 (e12) (e12))) = (op2 (h3 (e12)) (h3 (e12))))/\(((h3 (op1 (e12) (e13))) = (op2 (h3 (e12)) (h3 (e13))))/\(((h3 (op1 (e13) (e10))) = (op2 (h3 (e13)) (h3 (e10))))/\(((h3 (op1 (e13) (e11))) = (op2 (h3 (e13)) (h3 (e11))))/\(((h3 (op1 (e13) (e12))) = (op2 (h3 (e13)) (h3 (e12))))/\(((h3 (op1 (e13) (e13))) = (op2 (h3 (e13)) (h3 (e13))))/\((((h3 (e10)) = (e20))\/(((h3 (e11)) = (e20))\/(((h3 (e12)) = (e20))\/((h3 (e13)) = (e20)))))/\((((h3 (e10)) = (e21))\/(((h3 (e11)) = (e21))\/(((h3 (e12)) = (e21))\/((h3 (e13)) = (e21)))))/\((((h3 (e10)) = (e22))\/(((h3 (e11)) = (e22))\/(((h3 (e12)) = (e22))\/((h3 (e13)) = (e22)))))/\(((h3 (e10)) = (e23))\/(((h3 (e11)) = (e23))\/(((h3 (e12)) = (e23))\/((h3 (e13)) = (e23))))))))))))))))))))))))\/(((h4 (op1 (e10) (e10))) = (op2 (h4 (e10)) (h4 (e10))))/\(((h4 (op1 (e10) (e11))) = (op2 (h4 (e10)) (h4 (e11))))/\(((h4 (op1 (e10) (e12))) = (op2 (h4 (e10)) (h4 (e12))))/\(((h4 (op1 (e10) (e13))) = (op2 (h4 (e10)) (h4 (e13))))/\(((h4 (op1 (e11) (e10))) = (op2 (h4 (e11)) (h4 (e10))))/\(((h4 (op1 (e11) (e11))) = (op2 (h4 (e11)) (h4 (e11))))/\(((h4 (op1 (e11) (e12))) = (op2 (h4 (e11)) (h4 (e12))))/\(((h4 (op1 (e11) (e13))) = (op2 (h4 (e11)) (h4 (e13))))/\(((h4 (op1 (e12) (e10))) = (op2 (h4 (e12)) (h4 (e10))))/\(((h4 (op1 (e12) (e11))) = (op2 (h4 (e12)) (h4 (e11))))/\(((h4 (op1 (e12) (e12))) = (op2 (h4 (e12)) (h4 (e12))))/\(((h4 (op1 (e12) (e13))) = (op2 (h4 (e12)) (h4 (e13))))/\(((h4 (op1 (e13) (e10))) = (op2 (h4 (e13)) (h4 (e10))))/\(((h4 (op1 (e13) (e11))) = (op2 (h4 (e13)) (h4 (e11))))/\(((h4 (op1 (e13) (e12))) = (op2 (h4 (e13)) (h4 (e12))))/\(((h4 (op1 (e13) (e13))) = (op2 (h4 (e13)) (h4 (e13))))/\((((h4 (e10)) = (e20))\/(((h4 (e11)) = (e20))\/(((h4 (e12)) = (e20))\/((h4 (e13)) = (e20)))))/\((((h4 (e10)) = (e21))\/(((h4 (e11)) = (e21))\/(((h4 (e12)) = (e21))\/((h4 (e13)) = (e21)))))/\((((h4 (e10)) = (e22))\/(((h4 (e11)) = (e22))\/(((h4 (e12)) = (e22))\/((h4 (e13)) = (e22)))))/\(((h4 (e10)) = (e23))\/(((h4 (e11)) = (e23))\/(((h4 (e12)) = (e23))\/((h4 (e13)) = (e23))))))))))))))))))))))))))).
% 40.73/40.96  Proof.
% 40.73/40.96  assert (zenon_L1_ : (~((h2 (e10)) = (e20))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> False).
% 40.73/40.96  do 0 intro. intros zenon_H12 zenon_H13 zenon_H14.
% 40.73/40.96  cut (((h2 (e10)) = (op2 (e21) (e21))) = ((h2 (e10)) = (e20))).
% 40.73/40.96  intro zenon_D_pnotp.
% 40.73/40.96  apply zenon_H12.
% 40.73/40.96  rewrite <- zenon_D_pnotp.
% 40.73/40.96  exact zenon_H13.
% 40.73/40.96  cut (((op2 (e21) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 40.73/40.96  cut (((h2 (e10)) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H16].
% 40.73/40.96  congruence.
% 40.73/40.96  apply zenon_H16. apply refl_equal.
% 40.73/40.96  apply zenon_H15. apply sym_equal. exact zenon_H14.
% 40.73/40.96  (* end of lemma zenon_L1_ *)
% 40.73/40.96  assert (zenon_L2_ : (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e10) (e11)) = (e10)) -> False).
% 40.73/40.96  do 0 intro. intros zenon_H17 zenon_H18 zenon_H19.
% 40.73/40.96  cut (((e10) = (op1 (e11) (e11))) = ((op1 (e10) (e11)) = (op1 (e11) (e11)))).
% 40.73/40.96  intro zenon_D_pnotp.
% 40.73/40.96  apply zenon_H17.
% 40.73/40.96  rewrite <- zenon_D_pnotp.
% 40.73/40.96  exact zenon_H18.
% 40.73/40.96  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.73/40.96  cut (((e10) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1b].
% 40.73/40.96  congruence.
% 40.73/40.96  elim (classic ((op1 (e10) (e11)) = (op1 (e10) (e11)))); [ zenon_intro zenon_H1c | zenon_intro zenon_H1d ].
% 40.73/40.96  cut (((op1 (e10) (e11)) = (op1 (e10) (e11))) = ((e10) = (op1 (e10) (e11)))).
% 40.73/40.96  intro zenon_D_pnotp.
% 40.73/40.96  apply zenon_H1b.
% 40.73/40.96  rewrite <- zenon_D_pnotp.
% 40.73/40.96  exact zenon_H1c.
% 40.73/40.96  cut (((op1 (e10) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1d].
% 40.73/40.96  cut (((op1 (e10) (e11)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H1e].
% 40.73/40.96  congruence.
% 40.73/40.96  exact (zenon_H1e zenon_H19).
% 40.73/40.96  apply zenon_H1d. apply refl_equal.
% 40.73/40.96  apply zenon_H1d. apply refl_equal.
% 40.73/40.96  apply zenon_H1a. apply refl_equal.
% 40.73/40.96  (* end of lemma zenon_L2_ *)
% 40.73/40.96  assert (zenon_L3_ : (~((e11) = (e11))) -> False).
% 40.73/40.96  do 0 intro. intros zenon_H1f.
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L3_ *)
% 40.73/40.97  assert (zenon_L4_ : (~((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H20 zenon_H18.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e11)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H21].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H21. apply sym_equal. exact zenon_H18.
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L4_ *)
% 40.73/40.97  assert (zenon_L5_ : (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e10) (e10)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H22 zenon_H23 zenon_H24 zenon_H18.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e10) (e10)) = (op1 (e10) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H22.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.97  cut (((e13) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H25].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (e10)) = (op1 (e10) (e10)))); [ zenon_intro zenon_H26 | zenon_intro zenon_H27 ].
% 40.73/40.97  cut (((op1 (e10) (e10)) = (op1 (e10) (e10))) = ((e13) = (op1 (e10) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H25.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H26.
% 40.73/40.97  cut (((op1 (e10) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H27].
% 40.73/40.97  cut (((op1 (e10) (e10)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H28].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H28 zenon_H24).
% 40.73/40.97  apply zenon_H27. apply refl_equal.
% 40.73/40.97  apply zenon_H27. apply refl_equal.
% 40.73/40.97  apply (zenon_L4_); trivial.
% 40.73/40.97  (* end of lemma zenon_L5_ *)
% 40.73/40.97  assert (zenon_L6_ : (~((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e11)))) -> ((op1 (e11) (e11)) = (e11)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H29 zenon_H2a.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e11)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H2b zenon_H2a).
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L6_ *)
% 40.73/40.97  assert (zenon_L7_ : (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e11) (e11)) = (e11)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H17 zenon_H23 zenon_H2c zenon_H2a.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e10) (e11)) = (op1 (e11) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H17.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H29].
% 40.73/40.97  cut (((e13) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H2d].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (e11)) = (op1 (e10) (e11)))); [ zenon_intro zenon_H1c | zenon_intro zenon_H1d ].
% 40.73/40.97  cut (((op1 (e10) (e11)) = (op1 (e10) (e11))) = ((e13) = (op1 (e10) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H2d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H1c.
% 40.73/40.97  cut (((op1 (e10) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1d].
% 40.73/40.97  cut (((op1 (e10) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H2e zenon_H2c).
% 40.73/40.97  apply zenon_H1d. apply refl_equal.
% 40.73/40.97  apply zenon_H1d. apply refl_equal.
% 40.73/40.97  apply (zenon_L6_); trivial.
% 40.73/40.97  (* end of lemma zenon_L7_ *)
% 40.73/40.97  assert (zenon_L8_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e10) (e12)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H23 zenon_H2f zenon_H18 zenon_H30.
% 40.73/40.97  elim (classic ((op1 (e10) (e12)) = (op1 (e10) (e12)))); [ zenon_intro zenon_H31 | zenon_intro zenon_H32 ].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12))) = ((op1 (e10) (e11)) = (op1 (e10) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H30.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H31.
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H32].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H33].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e10) (e12)) = (op1 (e10) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H33.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.97  cut (((e13) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (e12)) = (op1 (e10) (e12)))); [ zenon_intro zenon_H31 | zenon_intro zenon_H32 ].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12))) = ((e13) = (op1 (e10) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H34.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H31.
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H32].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H35].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H35 zenon_H2f).
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  apply (zenon_L4_); trivial.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L8_ *)
% 40.73/40.97  assert (zenon_L9_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e10) (e13)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H23 zenon_H36 zenon_H18 zenon_H37.
% 40.73/40.97  elim (classic ((op1 (e10) (e13)) = (op1 (e10) (e13)))); [ zenon_intro zenon_H38 | zenon_intro zenon_H39 ].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13))) = ((op1 (e10) (e11)) = (op1 (e10) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H37.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H38.
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H3a].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e10) (e13)) = (op1 (e10) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H3a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.97  cut (((e13) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H3b].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (e13)) = (op1 (e10) (e13)))); [ zenon_intro zenon_H38 | zenon_intro zenon_H39 ].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13))) = ((e13) = (op1 (e10) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H3b.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H38.
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H3c zenon_H36).
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  apply (zenon_L4_); trivial.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L9_ *)
% 40.73/40.97  assert (zenon_L10_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> ((op1 (e11) (e11)) = (e11)) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H3d zenon_H22 zenon_H2a zenon_H17 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.73/40.97  apply (zenon_L5_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.73/40.97  apply (zenon_L7_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.73/40.97  apply (zenon_L8_); trivial.
% 40.73/40.97  apply (zenon_L9_); trivial.
% 40.73/40.97  (* end of lemma zenon_L10_ *)
% 40.73/40.97  assert (zenon_L11_ : ((op1 (e10) (e12)) = (e10)) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H40 zenon_H41 zenon_H42.
% 40.73/40.97  elim (classic ((op1 (e10) (e12)) = (op1 (e10) (e12)))); [ zenon_intro zenon_H31 | zenon_intro zenon_H32 ].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12))) = ((op1 (e10) (e10)) = (op1 (e10) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H42.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H31.
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H32].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H43].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e10) (e12)) = (e10)) = ((op1 (e10) (e12)) = (op1 (e10) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H43.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H40.
% 40.73/40.97  cut (((e10) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 40.73/40.97  cut (((op1 (e10) (e12)) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H32].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  apply zenon_H44. apply sym_equal. exact zenon_H41.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  apply zenon_H32. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L11_ *)
% 40.73/40.97  assert (zenon_L12_ : ((op1 (e11) (e10)) = (e11)) -> ((op1 (e10) (e10)) = (e11)) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H45 zenon_H46 zenon_H47.
% 40.73/40.97  elim (classic ((op1 (e11) (e10)) = (op1 (e11) (e10)))); [ zenon_intro zenon_H48 | zenon_intro zenon_H49 ].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10))) = ((op1 (e10) (e10)) = (op1 (e11) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H47.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H48.
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4a].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e11) (e10)) = (e11)) = ((op1 (e11) (e10)) = (op1 (e10) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H4a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H45.
% 40.73/40.97  cut (((e11) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4b].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply zenon_H4b. apply sym_equal. exact zenon_H46.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L12_ *)
% 40.73/40.97  assert (zenon_L13_ : (~((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H4c zenon_H18 zenon_H23.
% 40.73/40.97  cut (((op1 (e11) (e11)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H21].
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H4d].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H4d. apply sym_equal. exact zenon_H23.
% 40.73/40.97  apply zenon_H21. apply sym_equal. exact zenon_H18.
% 40.73/40.97  (* end of lemma zenon_L13_ *)
% 40.73/40.97  assert (zenon_L14_ : (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e10) (e10)) = (e12)) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H4e zenon_H4f zenon_H50 zenon_H18 zenon_H23.
% 40.73/40.97  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e10) (e10)) = (op1 (e13) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H4e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H4f.
% 40.73/40.97  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.97  cut (((e12) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H51].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (e10)) = (op1 (e10) (e10)))); [ zenon_intro zenon_H26 | zenon_intro zenon_H27 ].
% 40.73/40.97  cut (((op1 (e10) (e10)) = (op1 (e10) (e10))) = ((e12) = (op1 (e10) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H51.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H26.
% 40.73/40.97  cut (((op1 (e10) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H27].
% 40.73/40.97  cut (((op1 (e10) (e10)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H52].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H52 zenon_H50).
% 40.73/40.97  apply zenon_H27. apply refl_equal.
% 40.73/40.97  apply zenon_H27. apply refl_equal.
% 40.73/40.97  apply (zenon_L13_); trivial.
% 40.73/40.97  (* end of lemma zenon_L14_ *)
% 40.73/40.97  assert (zenon_L15_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> ((op1 (e10) (e12)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> ((op1 (e11) (e10)) = (e11)) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H53 zenon_H42 zenon_H40 zenon_H47 zenon_H45 zenon_H4f zenon_H4e zenon_H22 zenon_H23 zenon_H18.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H53); [ zenon_intro zenon_H41 | zenon_intro zenon_H54 ].
% 40.73/40.97  apply (zenon_L11_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H54); [ zenon_intro zenon_H46 | zenon_intro zenon_H55 ].
% 40.73/40.97  apply (zenon_L12_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H55); [ zenon_intro zenon_H50 | zenon_intro zenon_H24 ].
% 40.73/40.97  apply (zenon_L14_); trivial.
% 40.73/40.97  apply (zenon_L5_); trivial.
% 40.73/40.97  (* end of lemma zenon_L15_ *)
% 40.73/40.97  assert (zenon_L16_ : (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> ((op1 (e11) (e10)) = (e11)) -> ((op1 (e11) (e12)) = (e11)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H56 zenon_H45 zenon_H57.
% 40.73/40.97  cut (((op1 (e11) (e10)) = (e11)) = ((op1 (e11) (e10)) = (op1 (e11) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H56.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H45.
% 40.73/40.97  cut (((e11) = (op1 (e11) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H58].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply zenon_H58. apply sym_equal. exact zenon_H57.
% 40.73/40.97  (* end of lemma zenon_L16_ *)
% 40.73/40.97  assert (zenon_L17_ : (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((op1 (e12) (e11)) = (e12)) -> ((op1 (e12) (e12)) = (e12)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H59 zenon_H5a zenon_H5b.
% 40.73/40.97  cut (((op1 (e12) (e11)) = (e12)) = ((op1 (e12) (e11)) = (op1 (e12) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H59.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H5a.
% 40.73/40.97  cut (((e12) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 40.73/40.97  cut (((op1 (e12) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H5d].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H5d. apply refl_equal.
% 40.73/40.97  apply zenon_H5c. apply sym_equal. exact zenon_H5b.
% 40.73/40.97  (* end of lemma zenon_L17_ *)
% 40.73/40.97  assert (zenon_L18_ : ((op1 (e10) (e13)) = (e10)) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H5e zenon_H41 zenon_H5f.
% 40.73/40.97  elim (classic ((op1 (e10) (e13)) = (op1 (e10) (e13)))); [ zenon_intro zenon_H38 | zenon_intro zenon_H39 ].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13))) = ((op1 (e10) (e10)) = (op1 (e10) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H5f.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H38.
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H60].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e10) (e13)) = (e10)) = ((op1 (e10) (e13)) = (op1 (e10) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H60.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H5e.
% 40.73/40.97  cut (((e10) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 40.73/40.97  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  apply zenon_H44. apply sym_equal. exact zenon_H41.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  apply zenon_H39. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L18_ *)
% 40.73/40.97  assert (zenon_L19_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> ((op1 (e10) (e13)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> ((op1 (e11) (e10)) = (e11)) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H53 zenon_H5f zenon_H5e zenon_H47 zenon_H45 zenon_H4f zenon_H4e zenon_H22 zenon_H23 zenon_H18.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H53); [ zenon_intro zenon_H41 | zenon_intro zenon_H54 ].
% 40.73/40.97  apply (zenon_L18_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H54); [ zenon_intro zenon_H46 | zenon_intro zenon_H55 ].
% 40.73/40.97  apply (zenon_L12_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H55); [ zenon_intro zenon_H50 | zenon_intro zenon_H24 ].
% 40.73/40.97  apply (zenon_L14_); trivial.
% 40.73/40.97  apply (zenon_L5_); trivial.
% 40.73/40.97  (* end of lemma zenon_L19_ *)
% 40.73/40.97  assert (zenon_L20_ : (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> ((op1 (e11) (e10)) = (e11)) -> ((op1 (e11) (e13)) = (e11)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H61 zenon_H45 zenon_H62.
% 40.73/40.97  cut (((op1 (e11) (e10)) = (e11)) = ((op1 (e11) (e10)) = (op1 (e11) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H61.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H45.
% 40.73/40.97  cut (((e11) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H63].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply zenon_H63. apply sym_equal. exact zenon_H62.
% 40.73/40.97  (* end of lemma zenon_L20_ *)
% 40.73/40.97  assert (zenon_L21_ : (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> ((op1 (e12) (e11)) = (e12)) -> ((op1 (e12) (e13)) = (e12)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H64 zenon_H5a zenon_H65.
% 40.73/40.97  cut (((op1 (e12) (e11)) = (e12)) = ((op1 (e12) (e11)) = (op1 (e12) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H64.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H5a.
% 40.73/40.97  cut (((e12) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 40.73/40.97  cut (((op1 (e12) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H5d].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H5d. apply refl_equal.
% 40.73/40.97  apply zenon_H66. apply sym_equal. exact zenon_H65.
% 40.73/40.97  (* end of lemma zenon_L21_ *)
% 40.73/40.97  assert (zenon_L22_ : (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e12)) = (e13)) -> ((op1 (e13) (e13)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H67 zenon_H68 zenon_H69.
% 40.73/40.97  cut (((op1 (e13) (e12)) = (e13)) = ((op1 (e13) (e12)) = (op1 (e13) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H67.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H68.
% 40.73/40.97  cut (((e13) = (op1 (e13) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H6a].
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H6b. apply refl_equal.
% 40.73/40.97  apply zenon_H6a. apply sym_equal. exact zenon_H69.
% 40.73/40.97  (* end of lemma zenon_L22_ *)
% 40.73/40.97  assert (zenon_L23_ : (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> ((op1 (e11) (e10)) = (e11)) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e12)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H6c zenon_H18 zenon_H23 zenon_H22 zenon_H4e zenon_H4f zenon_H47 zenon_H5f zenon_H53 zenon_H45 zenon_H61 zenon_H5a zenon_H64 zenon_H67 zenon_H68.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.73/40.97  apply (zenon_L19_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.73/40.97  apply (zenon_L20_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.73/40.97  apply (zenon_L21_); trivial.
% 40.73/40.97  apply (zenon_L22_); trivial.
% 40.73/40.97  (* end of lemma zenon_L23_ *)
% 40.73/40.97  assert (zenon_L24_ : (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> ((op1 (e11) (e10)) = (e11)) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H18 zenon_H23 zenon_H22 zenon_H4e zenon_H4f zenon_H47 zenon_H5f zenon_H53 zenon_H45 zenon_H61 zenon_H5a zenon_H64 zenon_H67.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.73/40.97  apply (zenon_L15_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.73/40.97  apply (zenon_L16_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.73/40.97  apply (zenon_L17_); trivial.
% 40.73/40.97  apply (zenon_L23_); trivial.
% 40.73/40.97  (* end of lemma zenon_L24_ *)
% 40.73/40.97  assert (zenon_L25_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e13) (e11)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H23 zenon_H72 zenon_H18 zenon_H73.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((op1 (e10) (e11)) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H73.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H76].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e13) (e11)) = (op1 (e10) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H76.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.97  cut (((e13) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((e13) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H77.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H78].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H78 zenon_H72).
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply (zenon_L4_); trivial.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L25_ *)
% 40.73/40.97  assert (zenon_L26_ : (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> ((op1 (e11) (e10)) = (e11)) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H79 zenon_H37 zenon_H30 zenon_H17 zenon_H3d zenon_H67 zenon_H64 zenon_H61 zenon_H45 zenon_H53 zenon_H5f zenon_H47 zenon_H4f zenon_H4e zenon_H22 zenon_H6c zenon_H59 zenon_H56 zenon_H42 zenon_H6f zenon_H23 zenon_H18 zenon_H73.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.73/40.97  apply (zenon_L2_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.73/40.97  apply (zenon_L10_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.73/40.97  apply (zenon_L24_); trivial.
% 40.73/40.97  apply (zenon_L25_); trivial.
% 40.73/40.97  (* end of lemma zenon_L26_ *)
% 40.73/40.97  assert (zenon_L27_ : (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e12) (e10)) = (e12)) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H7c zenon_H4f zenon_H7d zenon_H18 zenon_H23.
% 40.73/40.97  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e12) (e10)) = (op1 (e13) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H7c.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H4f.
% 40.73/40.97  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.97  cut (((e12) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H7e].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e12) (e10)) = (op1 (e12) (e10)))); [ zenon_intro zenon_H7f | zenon_intro zenon_H80 ].
% 40.73/40.97  cut (((op1 (e12) (e10)) = (op1 (e12) (e10))) = ((e12) = (op1 (e12) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H7e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H7f.
% 40.73/40.97  cut (((op1 (e12) (e10)) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H80].
% 40.73/40.97  cut (((op1 (e12) (e10)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H81].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H81 zenon_H7d).
% 40.73/40.97  apply zenon_H80. apply refl_equal.
% 40.73/40.97  apply zenon_H80. apply refl_equal.
% 40.73/40.97  apply (zenon_L13_); trivial.
% 40.73/40.97  (* end of lemma zenon_L27_ *)
% 40.73/40.97  assert (zenon_L28_ : (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e11) (e10)) = (e12)) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H82 zenon_H4f zenon_H83 zenon_H18 zenon_H23.
% 40.73/40.97  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e11) (e10)) = (op1 (e13) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H82.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H4f.
% 40.73/40.97  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.97  cut (((e12) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e11) (e10)) = (op1 (e11) (e10)))); [ zenon_intro zenon_H48 | zenon_intro zenon_H49 ].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10))) = ((e12) = (op1 (e11) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H84.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H48.
% 40.73/40.97  cut (((op1 (e11) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 40.73/40.97  cut (((op1 (e11) (e10)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H85 zenon_H83).
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply zenon_H49. apply refl_equal.
% 40.73/40.97  apply (zenon_L13_); trivial.
% 40.73/40.97  (* end of lemma zenon_L28_ *)
% 40.73/40.97  assert (zenon_L29_ : (~((e13) = (e13))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H86.
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L29_ *)
% 40.73/40.97  assert (zenon_L30_ : (~((e12) = (e13))) -> ((op1 (e13) (e10)) = (e13)) -> ((op1 (e13) (e10)) = (e12)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H87 zenon_H88 zenon_H89.
% 40.73/40.97  cut (((op1 (e13) (e10)) = (e13)) = ((e12) = (e13))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H87.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H88.
% 40.73/40.97  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.97  cut (((op1 (e13) (e10)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H8a].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H8a zenon_H89).
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L30_ *)
% 40.73/40.97  assert (zenon_L31_ : (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> ((op1 (e13) (e10)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87 zenon_H88.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H8b); [ zenon_intro zenon_H50 | zenon_intro zenon_H8c ].
% 40.73/40.97  apply (zenon_L14_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H8c); [ zenon_intro zenon_H83 | zenon_intro zenon_H8d ].
% 40.73/40.97  apply (zenon_L28_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H7d | zenon_intro zenon_H89 ].
% 40.73/40.97  apply (zenon_L27_); trivial.
% 40.73/40.97  apply (zenon_L30_); trivial.
% 40.73/40.97  (* end of lemma zenon_L31_ *)
% 40.73/40.97  assert (zenon_L32_ : (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((op2 (e20) (e21)) = (e20)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H8e zenon_H14 zenon_H8f.
% 40.73/40.97  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e20) (e21)) = (op2 (e21) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H8e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H14.
% 40.73/40.97  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.73/40.97  cut (((e20) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H91].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e21)) = (op2 (e20) (e21)))); [ zenon_intro zenon_H92 | zenon_intro zenon_H93 ].
% 40.73/40.97  cut (((op2 (e20) (e21)) = (op2 (e20) (e21))) = ((e20) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H91.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H92.
% 40.73/40.97  cut (((op2 (e20) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H93].
% 40.73/40.97  cut (((op2 (e20) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H94].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H94 zenon_H8f).
% 40.73/40.97  apply zenon_H93. apply refl_equal.
% 40.73/40.97  apply zenon_H93. apply refl_equal.
% 40.73/40.97  apply zenon_H90. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L32_ *)
% 40.73/40.97  assert (zenon_L33_ : (~((e21) = (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H95.
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L33_ *)
% 40.73/40.97  assert (zenon_L34_ : (~((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H96 zenon_H14.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H15. apply sym_equal. exact zenon_H14.
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L34_ *)
% 40.73/40.97  assert (zenon_L35_ : (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e20) (e20)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H97 zenon_H98 zenon_H99 zenon_H14.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e20) (e20)) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H97.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.97  cut (((e23) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e20)) = (op2 (e20) (e20)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 40.73/40.97  cut (((op2 (e20) (e20)) = (op2 (e20) (e20))) = ((e23) = (op2 (e20) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H9a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H9b.
% 40.73/40.97  cut (((op2 (e20) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 40.73/40.97  cut (((op2 (e20) (e20)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H9d zenon_H99).
% 40.73/40.97  apply zenon_H9c. apply refl_equal.
% 40.73/40.97  apply zenon_H9c. apply refl_equal.
% 40.73/40.97  apply (zenon_L34_); trivial.
% 40.73/40.97  (* end of lemma zenon_L35_ *)
% 40.73/40.97  assert (zenon_L36_ : (~((op2 (op2 (e21) (e21)) (e21)) = (op2 (e21) (e21)))) -> ((op2 (e21) (e21)) = (e21)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H9e zenon_H9f.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e21)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Ha0 zenon_H9f).
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L36_ *)
% 40.73/40.97  assert (zenon_L37_ : (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e20) (e21)) = (e23)) -> ((op2 (e21) (e21)) = (e21)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H8e zenon_H98 zenon_Ha1 zenon_H9f.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e20) (e21)) = (op2 (e21) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H8e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H9e].
% 40.73/40.97  cut (((e23) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Ha2].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e21)) = (op2 (e20) (e21)))); [ zenon_intro zenon_H92 | zenon_intro zenon_H93 ].
% 40.73/40.97  cut (((op2 (e20) (e21)) = (op2 (e20) (e21))) = ((e23) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Ha2.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H92.
% 40.73/40.97  cut (((op2 (e20) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H93].
% 40.73/40.97  cut (((op2 (e20) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Ha3].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Ha3 zenon_Ha1).
% 40.73/40.97  apply zenon_H93. apply refl_equal.
% 40.73/40.97  apply zenon_H93. apply refl_equal.
% 40.73/40.97  apply (zenon_L36_); trivial.
% 40.73/40.97  (* end of lemma zenon_L37_ *)
% 40.73/40.97  assert (zenon_L38_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e20) (e22)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H98 zenon_Ha4 zenon_H14 zenon_Ha5.
% 40.73/40.97  elim (classic ((op2 (e20) (e22)) = (op2 (e20) (e22)))); [ zenon_intro zenon_Ha6 | zenon_intro zenon_Ha7 ].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22))) = ((op2 (e20) (e21)) = (op2 (e20) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Ha5.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Ha6.
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Ha8].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e20) (e22)) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Ha8.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.97  cut (((e23) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Ha9].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e22)) = (op2 (e20) (e22)))); [ zenon_intro zenon_Ha6 | zenon_intro zenon_Ha7 ].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22))) = ((e23) = (op2 (e20) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Ha9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Ha6.
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Haa].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Haa zenon_Ha4).
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  apply (zenon_L34_); trivial.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L38_ *)
% 40.73/40.97  assert (zenon_L39_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e20) (e23)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H98 zenon_Hab zenon_H14 zenon_Hac.
% 40.73/40.97  elim (classic ((op2 (e20) (e23)) = (op2 (e20) (e23)))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23))) = ((op2 (e20) (e21)) = (op2 (e20) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hac.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Had.
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Haf].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e20) (e23)) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Haf.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.97  cut (((e23) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hb0].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e23)) = (op2 (e20) (e23)))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23))) = ((e23) = (op2 (e20) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hb0.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Had.
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hb1].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hb1 zenon_Hab).
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  apply (zenon_L34_); trivial.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L39_ *)
% 40.73/40.97  assert (zenon_L40_ : (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> ((op2 (e21) (e21)) = (e21)) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hb2 zenon_H97 zenon_H9f zenon_H8e zenon_Ha5 zenon_H98 zenon_H14 zenon_Hac.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.73/40.97  apply (zenon_L35_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.73/40.97  apply (zenon_L37_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.73/40.97  apply (zenon_L38_); trivial.
% 40.73/40.97  apply (zenon_L39_); trivial.
% 40.73/40.97  (* end of lemma zenon_L40_ *)
% 40.73/40.97  assert (zenon_L41_ : ((op2 (e20) (e22)) = (e20)) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e20) (e22)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hb5 zenon_Hb6 zenon_Hb7.
% 40.73/40.97  elim (classic ((op2 (e20) (e22)) = (op2 (e20) (e22)))); [ zenon_intro zenon_Ha6 | zenon_intro zenon_Ha7 ].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22))) = ((op2 (e20) (e20)) = (op2 (e20) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hb7.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Ha6.
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e20) (e22)) = (e20)) = ((op2 (e20) (e22)) = (op2 (e20) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hb8.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hb5.
% 40.73/40.97  cut (((e20) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hb9].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  apply zenon_Hb9. apply sym_equal. exact zenon_Hb6.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  apply zenon_Ha7. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L41_ *)
% 40.73/40.97  assert (zenon_L42_ : ((op2 (e21) (e20)) = (e21)) -> ((op2 (e20) (e20)) = (e21)) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hba zenon_Hbb zenon_Hbc.
% 40.73/40.97  elim (classic ((op2 (e21) (e20)) = (op2 (e21) (e20)))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hbe ].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20))) = ((op2 (e20) (e20)) = (op2 (e21) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hbc.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hbd.
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbf].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e21) (e20)) = (e21)) = ((op2 (e21) (e20)) = (op2 (e20) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hbf.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hba.
% 40.73/40.97  cut (((e21) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc0].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply zenon_Hc0. apply sym_equal. exact zenon_Hbb.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L42_ *)
% 40.73/40.97  assert (zenon_L43_ : (~((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc1 zenon_H14 zenon_H98.
% 40.73/40.97  cut (((op2 (e21) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hc2].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hc2. apply sym_equal. exact zenon_H98.
% 40.73/40.97  apply zenon_H15. apply sym_equal. exact zenon_H14.
% 40.73/40.97  (* end of lemma zenon_L43_ *)
% 40.73/40.97  assert (zenon_L44_ : (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e20) (e20)) = (e22)) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc3 zenon_Hc4 zenon_Hc5 zenon_H14 zenon_H98.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e20) (e20)) = (op2 (e23) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hc3.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hc4.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.73/40.97  cut (((e22) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc6].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (e20)) = (op2 (e20) (e20)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 40.73/40.97  cut (((op2 (e20) (e20)) = (op2 (e20) (e20))) = ((e22) = (op2 (e20) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hc6.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H9b.
% 40.73/40.97  cut (((op2 (e20) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 40.73/40.97  cut (((op2 (e20) (e20)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_Hc7].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hc7 zenon_Hc5).
% 40.73/40.97  apply zenon_H9c. apply refl_equal.
% 40.73/40.97  apply zenon_H9c. apply refl_equal.
% 40.73/40.97  apply (zenon_L43_); trivial.
% 40.73/40.97  (* end of lemma zenon_L44_ *)
% 40.73/40.97  assert (zenon_L45_ : (((op2 (e20) (e20)) = (e20))\/(((op2 (e20) (e20)) = (e21))\/(((op2 (e20) (e20)) = (e22))\/((op2 (e20) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e22)))) -> ((op2 (e20) (e22)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> ((op2 (e21) (e20)) = (e21)) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc8 zenon_Hb7 zenon_Hb5 zenon_Hbc zenon_Hba zenon_Hc4 zenon_Hc3 zenon_H97 zenon_H98 zenon_H14.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hc8); [ zenon_intro zenon_Hb6 | zenon_intro zenon_Hc9 ].
% 40.73/40.97  apply (zenon_L41_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hc9); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 40.73/40.97  apply (zenon_L42_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hca); [ zenon_intro zenon_Hc5 | zenon_intro zenon_H99 ].
% 40.73/40.97  apply (zenon_L44_); trivial.
% 40.73/40.97  apply (zenon_L35_); trivial.
% 40.73/40.97  (* end of lemma zenon_L45_ *)
% 40.73/40.97  assert (zenon_L46_ : (~((op2 (e21) (e20)) = (op2 (e21) (e22)))) -> ((op2 (e21) (e20)) = (e21)) -> ((op2 (e21) (e22)) = (e21)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hcb zenon_Hba zenon_Hcc.
% 40.73/40.97  cut (((op2 (e21) (e20)) = (e21)) = ((op2 (e21) (e20)) = (op2 (e21) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hcb.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hba.
% 40.73/40.97  cut (((e21) = (op2 (e21) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply zenon_Hcd. apply sym_equal. exact zenon_Hcc.
% 40.73/40.97  (* end of lemma zenon_L46_ *)
% 40.73/40.97  assert (zenon_L47_ : (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> ((op2 (e22) (e21)) = (e22)) -> ((op2 (e22) (e22)) = (e22)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hce zenon_Hcf zenon_Hd0.
% 40.73/40.97  cut (((op2 (e22) (e21)) = (e22)) = ((op2 (e22) (e21)) = (op2 (e22) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hce.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hcf.
% 40.73/40.97  cut (((e22) = (op2 (e22) (e22)))); [idtac | apply NNPP; zenon_intro zenon_Hd1].
% 40.73/40.97  cut (((op2 (e22) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hd2. apply refl_equal.
% 40.73/40.97  apply zenon_Hd1. apply sym_equal. exact zenon_Hd0.
% 40.73/40.97  (* end of lemma zenon_L47_ *)
% 40.73/40.97  assert (zenon_L48_ : ((op2 (e20) (e23)) = (e20)) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hd3 zenon_Hb6 zenon_Hd4.
% 40.73/40.97  elim (classic ((op2 (e20) (e23)) = (op2 (e20) (e23)))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23))) = ((op2 (e20) (e20)) = (op2 (e20) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hd4.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Had.
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e20) (e23)) = (e20)) = ((op2 (e20) (e23)) = (op2 (e20) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hd5.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hd3.
% 40.73/40.97  cut (((e20) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hb9].
% 40.73/40.97  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  apply zenon_Hb9. apply sym_equal. exact zenon_Hb6.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  apply zenon_Hae. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L48_ *)
% 40.73/40.97  assert (zenon_L49_ : (((op2 (e20) (e20)) = (e20))\/(((op2 (e20) (e20)) = (e21))\/(((op2 (e20) (e20)) = (e22))\/((op2 (e20) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> ((op2 (e20) (e23)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> ((op2 (e21) (e20)) = (e21)) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc8 zenon_Hd4 zenon_Hd3 zenon_Hbc zenon_Hba zenon_Hc4 zenon_Hc3 zenon_H97 zenon_H98 zenon_H14.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hc8); [ zenon_intro zenon_Hb6 | zenon_intro zenon_Hc9 ].
% 40.73/40.97  apply (zenon_L48_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hc9); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hca ].
% 40.73/40.97  apply (zenon_L42_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hca); [ zenon_intro zenon_Hc5 | zenon_intro zenon_H99 ].
% 40.73/40.97  apply (zenon_L44_); trivial.
% 40.73/40.97  apply (zenon_L35_); trivial.
% 40.73/40.97  (* end of lemma zenon_L49_ *)
% 40.73/40.97  assert (zenon_L50_ : (~((op2 (e21) (e20)) = (op2 (e21) (e23)))) -> ((op2 (e21) (e20)) = (e21)) -> ((op2 (e21) (e23)) = (e21)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hd6 zenon_Hba zenon_Hd7.
% 40.73/40.97  cut (((op2 (e21) (e20)) = (e21)) = ((op2 (e21) (e20)) = (op2 (e21) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hd6.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hba.
% 40.73/40.97  cut (((e21) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply zenon_Hd8. apply sym_equal. exact zenon_Hd7.
% 40.73/40.97  (* end of lemma zenon_L50_ *)
% 40.73/40.97  assert (zenon_L51_ : (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> ((op2 (e22) (e21)) = (e22)) -> ((op2 (e22) (e23)) = (e22)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hd9 zenon_Hcf zenon_Hda.
% 40.73/40.97  cut (((op2 (e22) (e21)) = (e22)) = ((op2 (e22) (e21)) = (op2 (e22) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hd9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hcf.
% 40.73/40.97  cut (((e22) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 40.73/40.97  cut (((op2 (e22) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hd2. apply refl_equal.
% 40.73/40.97  apply zenon_Hdb. apply sym_equal. exact zenon_Hda.
% 40.73/40.97  (* end of lemma zenon_L51_ *)
% 40.73/40.97  assert (zenon_L52_ : (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e22)) = (e23)) -> ((op2 (e23) (e23)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hdc zenon_Hdd zenon_Hde.
% 40.73/40.97  cut (((op2 (e23) (e22)) = (e23)) = ((op2 (e23) (e22)) = (op2 (e23) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hdc.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hdd.
% 40.73/40.97  cut (((e23) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hdf].
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e22)))); [idtac | apply NNPP; zenon_intro zenon_He0].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_He0. apply refl_equal.
% 40.73/40.97  apply zenon_Hdf. apply sym_equal. exact zenon_Hde.
% 40.73/40.97  (* end of lemma zenon_L52_ *)
% 40.73/40.97  assert (zenon_L53_ : (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e21))\/(((op2 (e22) (e23)) = (e22))\/((op2 (e23) (e23)) = (e23))))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e20)) = (e20))\/(((op2 (e20) (e20)) = (e21))\/(((op2 (e20) (e20)) = (e22))\/((op2 (e20) (e20)) = (e23))))) -> ((op2 (e21) (e20)) = (e21)) -> (~((op2 (e21) (e20)) = (op2 (e21) (e23)))) -> ((op2 (e22) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e22)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_He1 zenon_H14 zenon_H98 zenon_H97 zenon_Hc3 zenon_Hc4 zenon_Hbc zenon_Hd4 zenon_Hc8 zenon_Hba zenon_Hd6 zenon_Hcf zenon_Hd9 zenon_Hdc zenon_Hdd.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.73/40.97  apply (zenon_L49_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.73/40.97  apply (zenon_L50_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.73/40.97  apply (zenon_L51_); trivial.
% 40.73/40.97  apply (zenon_L52_); trivial.
% 40.73/40.97  (* end of lemma zenon_L53_ *)
% 40.73/40.97  assert (zenon_L54_ : (((op2 (e20) (e22)) = (e20))\/(((op2 (e21) (e22)) = (e21))\/(((op2 (e22) (e22)) = (e22))\/((op2 (e23) (e22)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e22)))) -> (~((op2 (e21) (e20)) = (op2 (e21) (e22)))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e21))\/(((op2 (e22) (e23)) = (e22))\/((op2 (e23) (e23)) = (e23))))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e20)) = (e20))\/(((op2 (e20) (e20)) = (e21))\/(((op2 (e20) (e20)) = (e22))\/((op2 (e20) (e20)) = (e23))))) -> ((op2 (e21) (e20)) = (e21)) -> (~((op2 (e21) (e20)) = (op2 (e21) (e23)))) -> ((op2 (e22) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_He4 zenon_Hb7 zenon_Hcb zenon_Hce zenon_He1 zenon_H14 zenon_H98 zenon_H97 zenon_Hc3 zenon_Hc4 zenon_Hbc zenon_Hd4 zenon_Hc8 zenon_Hba zenon_Hd6 zenon_Hcf zenon_Hd9 zenon_Hdc.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.73/40.97  apply (zenon_L45_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.73/40.97  apply (zenon_L46_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.73/40.97  apply (zenon_L47_); trivial.
% 40.73/40.97  apply (zenon_L53_); trivial.
% 40.73/40.97  (* end of lemma zenon_L54_ *)
% 40.73/40.97  assert (zenon_L55_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e23) (e21)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H98 zenon_He7 zenon_H14 zenon_He8.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((op2 (e20) (e21)) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_He8.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Heb].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e23) (e21)) = (op2 (e20) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Heb.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.97  cut (((e23) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hec].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((e23) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hec.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hed].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hed zenon_He7).
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply (zenon_L34_); trivial.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L55_ *)
% 40.73/40.97  assert (zenon_L56_ : (((op2 (e20) (e21)) = (e20))\/(((op2 (e21) (e21)) = (e21))\/(((op2 (e22) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e21) (e20)) = (op2 (e21) (e23)))) -> ((op2 (e21) (e20)) = (e21)) -> (((op2 (e20) (e20)) = (e20))\/(((op2 (e20) (e20)) = (e21))\/(((op2 (e20) (e20)) = (e22))\/((op2 (e20) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> (~((op2 (e20) (e20)) = (op2 (e21) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e21))\/(((op2 (e22) (e23)) = (e22))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> (~((op2 (e21) (e20)) = (op2 (e21) (e22)))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e22)))) -> (((op2 (e20) (e22)) = (e20))\/(((op2 (e21) (e22)) = (e21))\/(((op2 (e22) (e22)) = (e22))\/((op2 (e23) (e22)) = (e23))))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hee zenon_Hac zenon_Ha5 zenon_H8e zenon_Hb2 zenon_Hdc zenon_Hd9 zenon_Hd6 zenon_Hba zenon_Hc8 zenon_Hd4 zenon_Hbc zenon_Hc4 zenon_Hc3 zenon_H97 zenon_He1 zenon_Hce zenon_Hcb zenon_Hb7 zenon_He4 zenon_H98 zenon_H14 zenon_He8.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.73/40.97  apply (zenon_L32_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.73/40.97  apply (zenon_L40_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.73/40.97  apply (zenon_L54_); trivial.
% 40.73/40.97  apply (zenon_L55_); trivial.
% 40.73/40.97  (* end of lemma zenon_L56_ *)
% 40.73/40.97  assert (zenon_L57_ : (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e22) (e20)) = (e22)) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hf1 zenon_Hc4 zenon_Hf2 zenon_H14 zenon_H98.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e22) (e20)) = (op2 (e23) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hf1.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hc4.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.73/40.97  cut (((e22) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf3].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e22) (e20)) = (op2 (e22) (e20)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ].
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e22) (e20))) = ((e22) = (op2 (e22) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hf3.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hf4.
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 40.73/40.97  cut (((op2 (e22) (e20)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_Hf6].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hf6 zenon_Hf2).
% 40.73/40.97  apply zenon_Hf5. apply refl_equal.
% 40.73/40.97  apply zenon_Hf5. apply refl_equal.
% 40.73/40.97  apply (zenon_L43_); trivial.
% 40.73/40.97  (* end of lemma zenon_L57_ *)
% 40.73/40.97  assert (zenon_L58_ : (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e21) (e20)) = (e22)) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hf7 zenon_Hc4 zenon_Hf8 zenon_H14 zenon_H98.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e21) (e20)) = (op2 (e23) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hf7.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hc4.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.73/40.97  cut (((e22) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf9].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e21) (e20)) = (op2 (e21) (e20)))); [ zenon_intro zenon_Hbd | zenon_intro zenon_Hbe ].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20))) = ((e22) = (op2 (e21) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hf9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hbd.
% 40.73/40.97  cut (((op2 (e21) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 40.73/40.97  cut (((op2 (e21) (e20)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_Hfa].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hfa zenon_Hf8).
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply zenon_Hbe. apply refl_equal.
% 40.73/40.97  apply (zenon_L43_); trivial.
% 40.73/40.97  (* end of lemma zenon_L58_ *)
% 40.73/40.97  assert (zenon_L59_ : (~((e23) = (e23))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hfb.
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L59_ *)
% 40.73/40.97  assert (zenon_L60_ : (~((e22) = (e23))) -> ((op2 (e23) (e20)) = (e23)) -> ((op2 (e23) (e20)) = (e22)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hfc zenon_Hfd zenon_Hfe.
% 40.73/40.97  cut (((op2 (e23) (e20)) = (e23)) = ((e22) = (e23))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hfc.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hfd.
% 40.73/40.97  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.73/40.97  cut (((op2 (e23) (e20)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_Hff].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_Hff zenon_Hfe).
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L60_ *)
% 40.73/40.97  assert (zenon_L61_ : (((op2 (e20) (e20)) = (e22))\/(((op2 (e21) (e20)) = (e22))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e23) (e20)) = (e22))))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> (~((e22) = (e23))) -> ((op2 (e23) (e20)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H100 zenon_Hc3 zenon_Hf7 zenon_H98 zenon_H14 zenon_Hc4 zenon_Hf1 zenon_Hfc zenon_Hfd.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H100); [ zenon_intro zenon_Hc5 | zenon_intro zenon_H101 ].
% 40.73/40.97  apply (zenon_L44_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H101); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H102 ].
% 40.73/40.97  apply (zenon_L58_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H102); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfe ].
% 40.73/40.97  apply (zenon_L57_); trivial.
% 40.73/40.97  apply (zenon_L60_); trivial.
% 40.73/40.97  (* end of lemma zenon_L61_ *)
% 40.73/40.97  assert (zenon_L62_ : (~((h2 (e12)) = (e22))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H103 zenon_H104 zenon_Hc4.
% 40.73/40.97  cut (((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((h2 (e12)) = (e22))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H103.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H104.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H105].
% 40.73/40.97  cut (((h2 (e12)) = (h2 (e12)))); [idtac | apply NNPP; zenon_intro zenon_H106].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H106. apply refl_equal.
% 40.73/40.97  apply zenon_H105. apply sym_equal. exact zenon_Hc4.
% 40.73/40.97  (* end of lemma zenon_L62_ *)
% 40.73/40.97  assert (zenon_L63_ : (~((h2 (op1 (e10) (e12))) = (op2 (h2 (e10)) (h2 (e12))))) -> ((op1 (e10) (e12)) = (e12)) -> ((op2 (e20) (e22)) = (e22)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H107 zenon_H108 zenon_H109 zenon_H13 zenon_H14 zenon_H104 zenon_Hc4.
% 40.73/40.97  cut (((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((h2 (op1 (e10) (e12))) = (op2 (h2 (e10)) (h2 (e12))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H107.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H104.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e10)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H10a].
% 40.73/40.97  cut (((h2 (e12)) = (h2 (op1 (e10) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H10b].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((h2 (op1 (e10) (e12))) = (h2 (op1 (e10) (e12))))); [ zenon_intro zenon_H10c | zenon_intro zenon_H10d ].
% 40.73/40.97  cut (((h2 (op1 (e10) (e12))) = (h2 (op1 (e10) (e12)))) = ((h2 (e12)) = (h2 (op1 (e10) (e12))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H10b.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H10c.
% 40.73/40.97  cut (((h2 (op1 (e10) (e12))) = (h2 (op1 (e10) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H10d].
% 40.73/40.97  cut (((h2 (op1 (e10) (e12))) = (h2 (e12)))); [idtac | apply NNPP; zenon_intro zenon_H10e].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e10) (e12)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H10f].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H10f zenon_H108).
% 40.73/40.97  apply zenon_H10d. apply refl_equal.
% 40.73/40.97  apply zenon_H10d. apply refl_equal.
% 40.73/40.97  elim (classic ((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12))))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12)))) = ((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e10)) (h2 (e12))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H10a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H110.
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H112].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e20) (e22)) = (e22)) = ((op2 (h2 (e10)) (h2 (e12))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H112.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H109.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 40.73/40.97  cut (((op2 (e20) (e22)) = (op2 (h2 (e10)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H114].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12))))); [ zenon_intro zenon_H110 | zenon_intro zenon_H111 ].
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12)))) = ((op2 (e20) (e22)) = (op2 (h2 (e10)) (h2 (e12))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H114.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H110.
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (h2 (e10)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H111].
% 40.73/40.97  cut (((op2 (h2 (e10)) (h2 (e12))) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H115].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.73/40.97  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.73/40.97  congruence.
% 40.73/40.97  apply (zenon_L1_); trivial.
% 40.73/40.97  apply (zenon_L62_); trivial.
% 40.73/40.97  apply zenon_H111. apply refl_equal.
% 40.73/40.97  apply zenon_H111. apply refl_equal.
% 40.73/40.97  exact (zenon_H113 zenon_Hc4).
% 40.73/40.97  apply zenon_H111. apply refl_equal.
% 40.73/40.97  apply zenon_H111. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L63_ *)
% 40.73/40.97  assert (zenon_L64_ : ((op1 (e11) (e12)) = (e11)) -> ((op1 (e11) (e12)) = (e12)) -> (~((e11) = (e12))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H57 zenon_H116 zenon_H117.
% 40.73/40.97  elim (classic ((e12) = (e12))); [ zenon_intro zenon_H118 | zenon_intro zenon_H119 ].
% 40.73/40.97  cut (((e12) = (e12)) = ((e11) = (e12))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H117.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H118.
% 40.73/40.97  cut (((e12) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H119].
% 40.73/40.97  cut (((e12) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H11a].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e11) (e12)) = (e11)) = ((e12) = (e11))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H11a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H57.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e12)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H11b].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H11b zenon_H116).
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L64_ *)
% 40.73/40.97  assert (zenon_L65_ : ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e13) (e12)) = (e12)) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H4f zenon_H11c zenon_H18 zenon_H23 zenon_H11d.
% 40.73/40.97  elim (classic ((op1 (e13) (e12)) = (op1 (e13) (e12)))); [ zenon_intro zenon_H11e | zenon_intro zenon_H6b ].
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e12))) = ((op1 (e13) (e10)) = (op1 (e13) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H11d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H11e.
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H11f].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e13) (e12)) = (op1 (e13) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H11f.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H4f.
% 40.73/40.97  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.97  cut (((e12) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H120].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e13) (e12)) = (op1 (e13) (e12)))); [ zenon_intro zenon_H11e | zenon_intro zenon_H6b ].
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e12))) = ((e12) = (op1 (e13) (e12)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H120.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H11e.
% 40.73/40.97  cut (((op1 (e13) (e12)) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 40.73/40.97  cut (((op1 (e13) (e12)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H121].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H121 zenon_H11c).
% 40.73/40.97  apply zenon_H6b. apply refl_equal.
% 40.73/40.97  apply zenon_H6b. apply refl_equal.
% 40.73/40.97  apply (zenon_L13_); trivial.
% 40.73/40.97  apply zenon_H6b. apply refl_equal.
% 40.73/40.97  apply zenon_H6b. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L65_ *)
% 40.73/40.97  assert (zenon_L66_ : (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((op2 (e20) (e22)) = (e22)) -> (~((h2 (op1 (e10) (e12))) = (op2 (h2 (e10)) (h2 (e12))))) -> (~((e11) = (e12))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H122 zenon_Hc4 zenon_H104 zenon_H14 zenon_H13 zenon_H109 zenon_H107 zenon_H117 zenon_H57 zenon_H5a zenon_H59 zenon_H4f zenon_H18 zenon_H23 zenon_H11d.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H122); [ zenon_intro zenon_H108 | zenon_intro zenon_H123 ].
% 40.73/40.97  apply (zenon_L63_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H123); [ zenon_intro zenon_H116 | zenon_intro zenon_H124 ].
% 40.73/40.97  apply (zenon_L64_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H124); [ zenon_intro zenon_H5b | zenon_intro zenon_H11c ].
% 40.73/40.97  apply (zenon_L17_); trivial.
% 40.73/40.97  apply (zenon_L65_); trivial.
% 40.73/40.97  (* end of lemma zenon_L66_ *)
% 40.73/40.97  assert (zenon_L67_ : ((op2 (e21) (e22)) = (e21)) -> ((op2 (e21) (e22)) = (e22)) -> (~((e21) = (e22))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hcc zenon_H125 zenon_H126.
% 40.73/40.97  elim (classic ((e22) = (e22))); [ zenon_intro zenon_H127 | zenon_intro zenon_H128 ].
% 40.73/40.97  cut (((e22) = (e22)) = ((e21) = (e22))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H126.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H127.
% 40.73/40.97  cut (((e22) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H128].
% 40.73/40.97  cut (((e22) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H129].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e21) (e22)) = (e21)) = ((e22) = (e21))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H129.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hcc.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e22)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H12a].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H12a zenon_H125).
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L67_ *)
% 40.73/40.97  assert (zenon_L68_ : ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e23) (e22)) = (e22)) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e22)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc4 zenon_H12b zenon_H14 zenon_H98 zenon_H12c.
% 40.73/40.97  elim (classic ((op2 (e23) (e22)) = (op2 (e23) (e22)))); [ zenon_intro zenon_H12d | zenon_intro zenon_He0 ].
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e22))) = ((op2 (e23) (e20)) = (op2 (e23) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H12c.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H12d.
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e22)))); [idtac | apply NNPP; zenon_intro zenon_He0].
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H12e].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e23) (e22)) = (op2 (e23) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H12e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hc4.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.73/40.97  cut (((e22) = (op2 (e23) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H12f].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e23) (e22)) = (op2 (e23) (e22)))); [ zenon_intro zenon_H12d | zenon_intro zenon_He0 ].
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e22))) = ((e22) = (op2 (e23) (e22)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H12f.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H12d.
% 40.73/40.97  cut (((op2 (e23) (e22)) = (op2 (e23) (e22)))); [idtac | apply NNPP; zenon_intro zenon_He0].
% 40.73/40.97  cut (((op2 (e23) (e22)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H130].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H130 zenon_H12b).
% 40.73/40.97  apply zenon_He0. apply refl_equal.
% 40.73/40.97  apply zenon_He0. apply refl_equal.
% 40.73/40.97  apply (zenon_L43_); trivial.
% 40.73/40.97  apply zenon_He0. apply refl_equal.
% 40.73/40.97  apply zenon_He0. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L68_ *)
% 40.73/40.97  assert (zenon_L69_ : (~((e10) = (e10))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H131.
% 40.73/40.97  apply zenon_H131. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L69_ *)
% 40.73/40.97  assert (zenon_L70_ : ((op1 (e11) (e13)) = (e11)) -> ((op1 (e11) (e13)) = (e13)) -> (~((e11) = (e13))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H62 zenon_H132 zenon_H133.
% 40.73/40.97  elim (classic ((e13) = (e13))); [ zenon_intro zenon_H134 | zenon_intro zenon_H86 ].
% 40.73/40.97  cut (((e13) = (e13)) = ((e11) = (e13))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H133.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H134.
% 40.73/40.97  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.97  cut (((e13) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H135].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e11) (e13)) = (e11)) = ((e13) = (e11))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H135.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H62.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H136].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H136 zenon_H132).
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L70_ *)
% 40.73/40.97  assert (zenon_L71_ : (~((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e11)))) -> ((op1 (e11) (e11)) = (e12)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H137 zenon_H138.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e11)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H139].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H139 zenon_H138).
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L71_ *)
% 40.73/40.97  assert (zenon_L72_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e12) (e13)) = (e13)) -> ((op1 (e11) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H23 zenon_H13a zenon_H138 zenon_H64.
% 40.73/40.97  elim (classic ((op1 (e12) (e13)) = (op1 (e12) (e13)))); [ zenon_intro zenon_H13b | zenon_intro zenon_H13c ].
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (e13))) = ((op1 (e12) (e11)) = (op1 (e12) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H64.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H13b.
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13c].
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H13d].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e12) (e13)) = (op1 (e12) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H13d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H23.
% 40.73/40.97  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H137].
% 40.73/40.97  cut (((e13) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13e].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e12) (e13)) = (op1 (e12) (e13)))); [ zenon_intro zenon_H13b | zenon_intro zenon_H13c ].
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (e13))) = ((e13) = (op1 (e12) (e13)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H13e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H13b.
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13c].
% 40.73/40.97  cut (((op1 (e12) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H13f zenon_H13a).
% 40.73/40.97  apply zenon_H13c. apply refl_equal.
% 40.73/40.97  apply zenon_H13c. apply refl_equal.
% 40.73/40.97  apply (zenon_L71_); trivial.
% 40.73/40.97  apply zenon_H13c. apply refl_equal.
% 40.73/40.97  apply zenon_H13c. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L72_ *)
% 40.73/40.97  assert (zenon_L73_ : (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> (~((e11) = (e13))) -> ((op1 (e11) (e13)) = (e11)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> ((op1 (e11) (e11)) = (e12)) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e12)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H140 zenon_H37 zenon_H18 zenon_H133 zenon_H62 zenon_H64 zenon_H138 zenon_H23 zenon_H67 zenon_H68.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H140); [ zenon_intro zenon_H36 | zenon_intro zenon_H141 ].
% 40.73/40.97  apply (zenon_L9_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H141); [ zenon_intro zenon_H132 | zenon_intro zenon_H142 ].
% 40.73/40.97  apply (zenon_L70_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H142); [ zenon_intro zenon_H13a | zenon_intro zenon_H69 ].
% 40.73/40.97  apply (zenon_L72_); trivial.
% 40.73/40.97  apply (zenon_L22_); trivial.
% 40.73/40.97  (* end of lemma zenon_L73_ *)
% 40.73/40.97  assert (zenon_L74_ : (~((e12) = (e12))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H119.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L74_ *)
% 40.73/40.97  assert (zenon_L75_ : (~((op1 (e11) (op1 (e11) (e12))) = (e12))) -> ((op1 (e11) (e12)) = (e12)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H143 zenon_H116.
% 40.73/40.97  cut (((op1 (e11) (e12)) = (e12)) = ((op1 (e11) (op1 (e11) (e12))) = (e12))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H143.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H116.
% 40.73/40.97  cut (((e12) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H119].
% 40.73/40.97  cut (((op1 (e11) (e12)) = (op1 (e11) (op1 (e11) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H144].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e11) (op1 (e11) (e12))) = (op1 (e11) (op1 (e11) (e12))))); [ zenon_intro zenon_H145 | zenon_intro zenon_H146 ].
% 40.73/40.97  cut (((op1 (e11) (op1 (e11) (e12))) = (op1 (e11) (op1 (e11) (e12)))) = ((op1 (e11) (e12)) = (op1 (e11) (op1 (e11) (e12))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H144.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H145.
% 40.73/40.97  cut (((op1 (e11) (op1 (e11) (e12))) = (op1 (e11) (op1 (e11) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H146].
% 40.73/40.97  cut (((op1 (e11) (op1 (e11) (e12))) = (op1 (e11) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H147].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e11) (e12)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H11b].
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  exact (zenon_H11b zenon_H116).
% 40.73/40.97  apply zenon_H146. apply refl_equal.
% 40.73/40.97  apply zenon_H146. apply refl_equal.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L75_ *)
% 40.73/40.97  assert (zenon_L76_ : ((op1 (e11) (e13)) = (e11)) -> ((op1 (e11) (e13)) = (e12)) -> (~((e11) = (e12))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H62 zenon_H148 zenon_H117.
% 40.73/40.97  elim (classic ((e12) = (e12))); [ zenon_intro zenon_H118 | zenon_intro zenon_H119 ].
% 40.73/40.97  cut (((e12) = (e12)) = ((e11) = (e12))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H117.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H118.
% 40.73/40.97  cut (((e12) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H119].
% 40.73/40.97  cut (((e12) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H11a].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e11) (e13)) = (e11)) = ((e12) = (e11))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H11a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H62.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e11) (e13)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H149].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H149 zenon_H148).
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L76_ *)
% 40.73/40.97  assert (zenon_L77_ : (~((op1 (e12) (op1 (e12) (e13))) = (e13))) -> ((op1 (e12) (e13)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H14a zenon_H13a.
% 40.73/40.97  cut (((op1 (e12) (e13)) = (e13)) = ((op1 (e12) (op1 (e12) (e13))) = (e13))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H14a.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H13a.
% 40.73/40.97  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.97  cut (((op1 (e12) (e13)) = (op1 (e12) (op1 (e12) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H14b].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e12) (op1 (e12) (e13))) = (op1 (e12) (op1 (e12) (e13))))); [ zenon_intro zenon_H14c | zenon_intro zenon_H14d ].
% 40.73/40.97  cut (((op1 (e12) (op1 (e12) (e13))) = (op1 (e12) (op1 (e12) (e13)))) = ((op1 (e12) (e13)) = (op1 (e12) (op1 (e12) (e13))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H14b.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H14c.
% 40.73/40.97  cut (((op1 (e12) (op1 (e12) (e13))) = (op1 (e12) (op1 (e12) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H14d].
% 40.73/40.97  cut (((op1 (e12) (op1 (e12) (e13))) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H14e].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e12) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 40.73/40.97  cut (((e12) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H119].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H119. apply refl_equal.
% 40.73/40.97  exact (zenon_H13f zenon_H13a).
% 40.73/40.97  apply zenon_H14d. apply refl_equal.
% 40.73/40.97  apply zenon_H14d. apply refl_equal.
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L77_ *)
% 40.73/40.97  assert (zenon_L78_ : ((e10) = (op1 (e11) (e11))) -> ((op1 (e13) (e11)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H18 zenon_H14f zenon_H150.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((op1 (e11) (e11)) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H150.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H151].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e10) = (op1 (e11) (e11))) = ((op1 (e13) (e11)) = (op1 (e11) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H151.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H18.
% 40.73/40.97  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.73/40.97  cut (((e10) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H152].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((e10) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H152.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H153].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H153 zenon_H14f).
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H1a. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L78_ *)
% 40.73/40.97  assert (zenon_L79_ : (~((op1 (e13) (op1 (e13) (e11))) = (e11))) -> ((op1 (e13) (e11)) = (e11)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H154 zenon_H155.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (e11)) = ((op1 (e13) (op1 (e13) (e11))) = (e11))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H154.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H155.
% 40.73/40.97  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (op1 (e13) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H156].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e13) (op1 (e13) (e11))) = (op1 (e13) (op1 (e13) (e11))))); [ zenon_intro zenon_H157 | zenon_intro zenon_H158 ].
% 40.73/40.97  cut (((op1 (e13) (op1 (e13) (e11))) = (op1 (e13) (op1 (e13) (e11)))) = ((op1 (e13) (e11)) = (op1 (e13) (op1 (e13) (e11))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H156.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H157.
% 40.73/40.97  cut (((op1 (e13) (op1 (e13) (e11))) = (op1 (e13) (op1 (e13) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H158].
% 40.73/40.97  cut (((op1 (e13) (op1 (e13) (e11))) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H159].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H15a].
% 40.73/40.97  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H86. apply refl_equal.
% 40.73/40.97  exact (zenon_H15a zenon_H155).
% 40.73/40.97  apply zenon_H158. apply refl_equal.
% 40.73/40.97  apply zenon_H158. apply refl_equal.
% 40.73/40.97  apply zenon_H1f. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L79_ *)
% 40.73/40.97  assert (zenon_L80_ : ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e13) (e11)) = (e12)) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H4f zenon_H15b zenon_H18 zenon_H23 zenon_H15c.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((op1 (e13) (e10)) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H15c.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H15d].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e13) (e11)) = (op1 (e13) (e10)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H15d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H4f.
% 40.73/40.97  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.97  cut (((e12) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H15e].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e13) (e11)) = (op1 (e13) (e11)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11))) = ((e12) = (op1 (e13) (e11)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H15e.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H74.
% 40.73/40.97  cut (((op1 (e13) (e11)) = (op1 (e13) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 40.73/40.97  cut (((op1 (e13) (e11)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H15f].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H15f zenon_H15b).
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply (zenon_L13_); trivial.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  apply zenon_H75. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L80_ *)
% 40.73/40.97  assert (zenon_L81_ : ((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13)))))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H160 zenon_H161 zenon_H150 zenon_H15c zenon_H4f zenon_H23 zenon_H18 zenon_H73.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H160). zenon_intro zenon_H163. zenon_intro zenon_H162.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H162). zenon_intro zenon_H154. zenon_intro zenon_H164.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H161); [ zenon_intro zenon_H14f | zenon_intro zenon_H165 ].
% 40.73/40.97  apply (zenon_L78_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H165); [ zenon_intro zenon_H155 | zenon_intro zenon_H166 ].
% 40.73/40.97  apply (zenon_L79_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H166); [ zenon_intro zenon_H15b | zenon_intro zenon_H72 ].
% 40.73/40.97  apply (zenon_L80_); trivial.
% 40.73/40.97  apply (zenon_L25_); trivial.
% 40.73/40.97  (* end of lemma zenon_L81_ *)
% 40.73/40.97  assert (zenon_L82_ : (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e10) (e10)) = (e10)) -> (~((e11) = (e12))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> ((op1 (e13) (e12)) = (e13)) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> ((op1 (e11) (e13)) = (e11)) -> (~((e11) = (e13))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H167 zenon_H41 zenon_H117 zenon_H64 zenon_H82 zenon_H168 zenon_H68 zenon_H67 zenon_H62 zenon_H133 zenon_H37 zenon_H140 zenon_H161 zenon_H150 zenon_H15c zenon_H4f zenon_H23 zenon_H18 zenon_H73.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H167); [ zenon_intro zenon_H16a | zenon_intro zenon_H169 ].
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H16a). zenon_intro zenon_H16c. zenon_intro zenon_H16b.
% 40.73/40.97  cut (((op1 (e10) (e10)) = (e10)) = ((op1 (e10) (op1 (e10) (e10))) = (e10))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H16c.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H41.
% 40.73/40.97  cut (((e10) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H131].
% 40.73/40.97  cut (((op1 (e10) (e10)) = (op1 (e10) (op1 (e10) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H16d].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op1 (e10) (op1 (e10) (e10))) = (op1 (e10) (op1 (e10) (e10))))); [ zenon_intro zenon_H16e | zenon_intro zenon_H16f ].
% 40.73/40.97  cut (((op1 (e10) (op1 (e10) (e10))) = (op1 (e10) (op1 (e10) (e10)))) = ((op1 (e10) (e10)) = (op1 (e10) (op1 (e10) (e10))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H16d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H16e.
% 40.73/40.97  cut (((op1 (e10) (op1 (e10) (e10))) = (op1 (e10) (op1 (e10) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H16f].
% 40.73/40.97  cut (((op1 (e10) (op1 (e10) (e10))) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H170].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op1 (e10) (e10)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H171].
% 40.73/40.97  cut (((e10) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H131].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H131. apply refl_equal.
% 40.73/40.97  exact (zenon_H171 zenon_H41).
% 40.73/40.97  apply zenon_H16f. apply refl_equal.
% 40.73/40.97  apply zenon_H16f. apply refl_equal.
% 40.73/40.97  apply zenon_H131. apply refl_equal.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H169); [ zenon_intro zenon_H173 | zenon_intro zenon_H172 ].
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H173). zenon_intro zenon_H175. zenon_intro zenon_H174.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H174). zenon_intro zenon_H177. zenon_intro zenon_H176.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H176). zenon_intro zenon_H143. zenon_intro zenon_H178.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H168); [ zenon_intro zenon_H83 | zenon_intro zenon_H179 ].
% 40.73/40.97  apply (zenon_L28_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H179); [ zenon_intro zenon_H138 | zenon_intro zenon_H17a ].
% 40.73/40.97  apply (zenon_L73_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H17a); [ zenon_intro zenon_H116 | zenon_intro zenon_H148 ].
% 40.73/40.97  apply (zenon_L75_); trivial.
% 40.73/40.97  apply (zenon_L76_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H172); [ zenon_intro zenon_H17b | zenon_intro zenon_H160 ].
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H17b). zenon_intro zenon_H17d. zenon_intro zenon_H17c.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H17c). zenon_intro zenon_H17f. zenon_intro zenon_H17e.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H17e). zenon_intro zenon_H180. zenon_intro zenon_H14a.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H140); [ zenon_intro zenon_H36 | zenon_intro zenon_H141 ].
% 40.73/40.97  apply (zenon_L9_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H141); [ zenon_intro zenon_H132 | zenon_intro zenon_H142 ].
% 40.73/40.97  apply (zenon_L70_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H142); [ zenon_intro zenon_H13a | zenon_intro zenon_H69 ].
% 40.73/40.97  apply (zenon_L77_); trivial.
% 40.73/40.97  apply (zenon_L22_); trivial.
% 40.73/40.97  apply (zenon_L81_); trivial.
% 40.73/40.97  (* end of lemma zenon_L82_ *)
% 40.73/40.97  assert (zenon_L83_ : (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((e11) = (e12))) -> ((op1 (e10) (e10)) = (e10)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e12)) = (e13)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H6c zenon_H5f zenon_H73 zenon_H18 zenon_H23 zenon_H4f zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H37 zenon_H133 zenon_H168 zenon_H82 zenon_H117 zenon_H41 zenon_H167 zenon_H5a zenon_H64 zenon_H67 zenon_H68.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.73/40.97  apply (zenon_L18_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.73/40.97  apply (zenon_L82_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.73/40.97  apply (zenon_L21_); trivial.
% 40.73/40.97  apply (zenon_L22_); trivial.
% 40.73/40.97  (* end of lemma zenon_L83_ *)
% 40.73/40.97  assert (zenon_L84_ : (~((e20) = (e20))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H181.
% 40.73/40.97  apply zenon_H181. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L84_ *)
% 40.73/40.97  assert (zenon_L85_ : ((~((op2 (e20) (op2 (e20) (e20))) = (e20)))/\((~((op2 (e20) (op2 (e20) (e21))) = (e21)))/\((~((op2 (e20) (op2 (e20) (e22))) = (e22)))/\(~((op2 (e20) (op2 (e20) (e23))) = (e23)))))) -> ((op2 (e20) (e20)) = (e20)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H182 zenon_Hb6.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H182). zenon_intro zenon_H184. zenon_intro zenon_H183.
% 40.73/40.97  cut (((op2 (e20) (e20)) = (e20)) = ((op2 (e20) (op2 (e20) (e20))) = (e20))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H184.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hb6.
% 40.73/40.97  cut (((e20) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H181].
% 40.73/40.97  cut (((op2 (e20) (e20)) = (op2 (e20) (op2 (e20) (e20))))); [idtac | apply NNPP; zenon_intro zenon_H185].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e20) (op2 (e20) (e20))) = (op2 (e20) (op2 (e20) (e20))))); [ zenon_intro zenon_H186 | zenon_intro zenon_H187 ].
% 40.73/40.97  cut (((op2 (e20) (op2 (e20) (e20))) = (op2 (e20) (op2 (e20) (e20)))) = ((op2 (e20) (e20)) = (op2 (e20) (op2 (e20) (e20))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H185.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H186.
% 40.73/40.97  cut (((op2 (e20) (op2 (e20) (e20))) = (op2 (e20) (op2 (e20) (e20))))); [idtac | apply NNPP; zenon_intro zenon_H187].
% 40.73/40.97  cut (((op2 (e20) (op2 (e20) (e20))) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H188].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e20) (e20)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 40.73/40.97  cut (((e20) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H181].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H181. apply refl_equal.
% 40.73/40.97  exact (zenon_H189 zenon_Hb6).
% 40.73/40.97  apply zenon_H187. apply refl_equal.
% 40.73/40.97  apply zenon_H187. apply refl_equal.
% 40.73/40.97  apply zenon_H181. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L85_ *)
% 40.73/40.97  assert (zenon_L86_ : ((op2 (e21) (e23)) = (e21)) -> ((op2 (e21) (e23)) = (e23)) -> (~((e21) = (e23))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hd7 zenon_H18a zenon_H18b.
% 40.73/40.97  elim (classic ((e23) = (e23))); [ zenon_intro zenon_H18c | zenon_intro zenon_Hfb ].
% 40.73/40.97  cut (((e23) = (e23)) = ((e21) = (e23))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H18b.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H18c.
% 40.73/40.97  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.73/40.97  cut (((e23) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H18d].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e21) (e23)) = (e21)) = ((e23) = (e21))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H18d.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hd7.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e23)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H18e].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H18e zenon_H18a).
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L86_ *)
% 40.73/40.97  assert (zenon_L87_ : (~((op2 (op2 (e21) (e21)) (e21)) = (op2 (e22) (e21)))) -> ((op2 (e21) (e21)) = (e22)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H18f zenon_H190.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e21)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H191].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H191 zenon_H190).
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L87_ *)
% 40.73/40.97  assert (zenon_L88_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e22) (e23)) = (e23)) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H98 zenon_H192 zenon_H190 zenon_Hd9.
% 40.73/40.97  elim (classic ((op2 (e22) (e23)) = (op2 (e22) (e23)))); [ zenon_intro zenon_H193 | zenon_intro zenon_H194 ].
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (e23))) = ((op2 (e22) (e21)) = (op2 (e22) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_Hd9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H193.
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H195].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e22) (e23)) = (op2 (e22) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H195.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H18f].
% 40.73/40.97  cut (((e23) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H196].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e22) (e23)) = (op2 (e22) (e23)))); [ zenon_intro zenon_H193 | zenon_intro zenon_H194 ].
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (e23))) = ((e23) = (op2 (e22) (e23)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H196.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H193.
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H194].
% 40.73/40.97  cut (((op2 (e22) (e23)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H197].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H197 zenon_H192).
% 40.73/40.97  apply zenon_H194. apply refl_equal.
% 40.73/40.97  apply zenon_H194. apply refl_equal.
% 40.73/40.97  apply (zenon_L87_); trivial.
% 40.73/40.97  apply zenon_H194. apply refl_equal.
% 40.73/40.97  apply zenon_H194. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L88_ *)
% 40.73/40.97  assert (zenon_L89_ : (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> ((e20) = (op2 (e21) (e21))) -> (~((e21) = (e23))) -> ((op2 (e21) (e23)) = (e21)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> ((op2 (e21) (e21)) = (e22)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e22)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H198 zenon_Hac zenon_H14 zenon_H18b zenon_Hd7 zenon_Hd9 zenon_H190 zenon_H98 zenon_Hdc zenon_Hdd.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H198); [ zenon_intro zenon_Hab | zenon_intro zenon_H199 ].
% 40.73/40.97  apply (zenon_L39_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H199); [ zenon_intro zenon_H18a | zenon_intro zenon_H19a ].
% 40.73/40.97  apply (zenon_L86_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H19a); [ zenon_intro zenon_H192 | zenon_intro zenon_Hde ].
% 40.73/40.97  apply (zenon_L88_); trivial.
% 40.73/40.97  apply (zenon_L52_); trivial.
% 40.73/40.97  (* end of lemma zenon_L89_ *)
% 40.73/40.97  assert (zenon_L90_ : (~((e22) = (e22))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H128.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L90_ *)
% 40.73/40.97  assert (zenon_L91_ : (~((op2 (e21) (op2 (e21) (e22))) = (e22))) -> ((op2 (e21) (e22)) = (e22)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H19b zenon_H125.
% 40.73/40.97  cut (((op2 (e21) (e22)) = (e22)) = ((op2 (e21) (op2 (e21) (e22))) = (e22))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H19b.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H125.
% 40.73/40.97  cut (((e22) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H128].
% 40.73/40.97  cut (((op2 (e21) (e22)) = (op2 (e21) (op2 (e21) (e22))))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e21) (op2 (e21) (e22))) = (op2 (e21) (op2 (e21) (e22))))); [ zenon_intro zenon_H19d | zenon_intro zenon_H19e ].
% 40.73/40.97  cut (((op2 (e21) (op2 (e21) (e22))) = (op2 (e21) (op2 (e21) (e22)))) = ((op2 (e21) (e22)) = (op2 (e21) (op2 (e21) (e22))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H19c.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H19d.
% 40.73/40.97  cut (((op2 (e21) (op2 (e21) (e22))) = (op2 (e21) (op2 (e21) (e22))))); [idtac | apply NNPP; zenon_intro zenon_H19e].
% 40.73/40.97  cut (((op2 (e21) (op2 (e21) (e22))) = (op2 (e21) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e21) (e22)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H12a].
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  exact (zenon_H12a zenon_H125).
% 40.73/40.97  apply zenon_H19e. apply refl_equal.
% 40.73/40.97  apply zenon_H19e. apply refl_equal.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L91_ *)
% 40.73/40.97  assert (zenon_L92_ : ((op2 (e21) (e23)) = (e21)) -> ((op2 (e21) (e23)) = (e22)) -> (~((e21) = (e22))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hd7 zenon_H1a0 zenon_H126.
% 40.73/40.97  elim (classic ((e22) = (e22))); [ zenon_intro zenon_H127 | zenon_intro zenon_H128 ].
% 40.73/40.97  cut (((e22) = (e22)) = ((e21) = (e22))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H126.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H127.
% 40.73/40.97  cut (((e22) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H128].
% 40.73/40.97  cut (((e22) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H129].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e21) (e23)) = (e21)) = ((e22) = (e21))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H129.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hd7.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e21) (e23)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H1a1].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H1a1 zenon_H1a0).
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L92_ *)
% 40.73/40.97  assert (zenon_L93_ : (~((op2 (e22) (op2 (e22) (e23))) = (e23))) -> ((op2 (e22) (e23)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H1a2 zenon_H192.
% 40.73/40.97  cut (((op2 (e22) (e23)) = (e23)) = ((op2 (e22) (op2 (e22) (e23))) = (e23))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1a2.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H192.
% 40.73/40.97  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.73/40.97  cut (((op2 (e22) (e23)) = (op2 (e22) (op2 (e22) (e23))))); [idtac | apply NNPP; zenon_intro zenon_H1a3].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e22) (op2 (e22) (e23))) = (op2 (e22) (op2 (e22) (e23))))); [ zenon_intro zenon_H1a4 | zenon_intro zenon_H1a5 ].
% 40.73/40.97  cut (((op2 (e22) (op2 (e22) (e23))) = (op2 (e22) (op2 (e22) (e23)))) = ((op2 (e22) (e23)) = (op2 (e22) (op2 (e22) (e23))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1a3.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H1a4.
% 40.73/40.97  cut (((op2 (e22) (op2 (e22) (e23))) = (op2 (e22) (op2 (e22) (e23))))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 40.73/40.97  cut (((op2 (e22) (op2 (e22) (e23))) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H1a6].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e22) (e23)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H197].
% 40.73/40.97  cut (((e22) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H128].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_H128. apply refl_equal.
% 40.73/40.97  exact (zenon_H197 zenon_H192).
% 40.73/40.97  apply zenon_H1a5. apply refl_equal.
% 40.73/40.97  apply zenon_H1a5. apply refl_equal.
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L93_ *)
% 40.73/40.97  assert (zenon_L94_ : ((e20) = (op2 (e21) (e21))) -> ((op2 (e23) (e21)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H14 zenon_H1a7 zenon_H1a8.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((op2 (e21) (e21)) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1a8.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1a9].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e23) (e21)) = (op2 (e21) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1a9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H14.
% 40.73/40.97  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.73/40.97  cut (((e20) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((e20) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1aa.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H1ab].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H1ab zenon_H1a7).
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_H90. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L94_ *)
% 40.73/40.97  assert (zenon_L95_ : (~((op2 (e23) (op2 (e23) (e21))) = (e21))) -> ((op2 (e23) (e21)) = (e21)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H1ac zenon_H1ad.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (e21)) = ((op2 (e23) (op2 (e23) (e21))) = (e21))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1ac.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H1ad.
% 40.73/40.97  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (op2 (e23) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H1ae].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e23) (op2 (e23) (e21))) = (op2 (e23) (op2 (e23) (e21))))); [ zenon_intro zenon_H1af | zenon_intro zenon_H1b0 ].
% 40.73/40.97  cut (((op2 (e23) (op2 (e23) (e21))) = (op2 (e23) (op2 (e23) (e21)))) = ((op2 (e23) (e21)) = (op2 (e23) (op2 (e23) (e21))))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1ae.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H1af.
% 40.73/40.97  cut (((op2 (e23) (op2 (e23) (e21))) = (op2 (e23) (op2 (e23) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H1b0].
% 40.73/40.97  cut (((op2 (e23) (op2 (e23) (e21))) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1b1].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H1b2].
% 40.73/40.97  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.73/40.97  congruence.
% 40.73/40.97  apply zenon_Hfb. apply refl_equal.
% 40.73/40.97  exact (zenon_H1b2 zenon_H1ad).
% 40.73/40.97  apply zenon_H1b0. apply refl_equal.
% 40.73/40.97  apply zenon_H1b0. apply refl_equal.
% 40.73/40.97  apply zenon_H95. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L95_ *)
% 40.73/40.97  assert (zenon_L96_ : ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e23) (e21)) = (e22)) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_Hc4 zenon_H1b3 zenon_H14 zenon_H98 zenon_H1b4.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((op2 (e23) (e20)) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1b4.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1b5].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e23) (e21)) = (op2 (e23) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1b5.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hc4.
% 40.73/40.97  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.73/40.97  cut (((e22) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1b6].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e23) (e21)) = (op2 (e23) (e21)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21))) = ((e22) = (op2 (e23) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1b6.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_He9.
% 40.73/40.97  cut (((op2 (e23) (e21)) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 40.73/40.97  cut (((op2 (e23) (e21)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H1b7].
% 40.73/40.97  congruence.
% 40.73/40.97  exact (zenon_H1b7 zenon_H1b3).
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply (zenon_L43_); trivial.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  apply zenon_Hea. apply refl_equal.
% 40.73/40.97  (* end of lemma zenon_L96_ *)
% 40.73/40.97  assert (zenon_L97_ : ((~((op2 (e23) (op2 (e23) (e20))) = (e20)))/\((~((op2 (e23) (op2 (e23) (e21))) = (e21)))/\((~((op2 (e23) (op2 (e23) (e22))) = (e22)))/\(~((op2 (e23) (op2 (e23) (e23))) = (e23)))))) -> (((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e21)) = (e21))\/(((op2 (e23) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H1b8 zenon_H1b9 zenon_H1a8 zenon_H1b4 zenon_Hc4 zenon_H98 zenon_H14 zenon_He8.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1b8). zenon_intro zenon_H1bb. zenon_intro zenon_H1ba.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1ba). zenon_intro zenon_H1ac. zenon_intro zenon_H1bc.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1b9); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1bd ].
% 40.73/40.97  apply (zenon_L94_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1bd); [ zenon_intro zenon_H1ad | zenon_intro zenon_H1be ].
% 40.73/40.97  apply (zenon_L95_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1be); [ zenon_intro zenon_H1b3 | zenon_intro zenon_He7 ].
% 40.73/40.97  apply (zenon_L96_); trivial.
% 40.73/40.97  apply (zenon_L55_); trivial.
% 40.73/40.97  (* end of lemma zenon_L97_ *)
% 40.73/40.97  assert (zenon_L98_ : (((~((op2 (e20) (op2 (e20) (e20))) = (e20)))/\((~((op2 (e20) (op2 (e20) (e21))) = (e21)))/\((~((op2 (e20) (op2 (e20) (e22))) = (e22)))/\(~((op2 (e20) (op2 (e20) (e23))) = (e23))))))\/(((~((op2 (e21) (op2 (e21) (e20))) = (e20)))/\((~((op2 (e21) (op2 (e21) (e21))) = (e21)))/\((~((op2 (e21) (op2 (e21) (e22))) = (e22)))/\(~((op2 (e21) (op2 (e21) (e23))) = (e23))))))\/(((~((op2 (e22) (op2 (e22) (e20))) = (e20)))/\((~((op2 (e22) (op2 (e22) (e21))) = (e21)))/\((~((op2 (e22) (op2 (e22) (e22))) = (e22)))/\(~((op2 (e22) (op2 (e22) (e23))) = (e23))))))\/((~((op2 (e23) (op2 (e23) (e20))) = (e20)))/\((~((op2 (e23) (op2 (e23) (e21))) = (e21)))/\((~((op2 (e23) (op2 (e23) (e22))) = (e22)))/\(~((op2 (e23) (op2 (e23) (e23))) = (e23))))))))) -> ((op2 (e20) (e20)) = (e20)) -> (~((e21) = (e22))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> ((op2 (e23) (e22)) = (e23)) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((op2 (e21) (e23)) = (e21)) -> (~((e21) = (e23))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e21)) = (e21))\/(((op2 (e23) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H1bf zenon_Hb6 zenon_H126 zenon_Hd9 zenon_Hf7 zenon_H1c0 zenon_Hdd zenon_Hdc zenon_Hd7 zenon_H18b zenon_Hac zenon_H198 zenon_H1b9 zenon_H1a8 zenon_H1b4 zenon_Hc4 zenon_H98 zenon_H14 zenon_He8.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1bf); [ zenon_intro zenon_H182 | zenon_intro zenon_H1c1 ].
% 40.73/40.97  apply (zenon_L85_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1c1); [ zenon_intro zenon_H1c3 | zenon_intro zenon_H1c2 ].
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1c3). zenon_intro zenon_H1c5. zenon_intro zenon_H1c4.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1c4). zenon_intro zenon_H1c7. zenon_intro zenon_H1c6.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1c6). zenon_intro zenon_H19b. zenon_intro zenon_H1c8.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.73/40.97  apply (zenon_L58_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.73/40.97  apply (zenon_L89_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.73/40.97  apply (zenon_L91_); trivial.
% 40.73/40.97  apply (zenon_L92_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H1c2); [ zenon_intro zenon_H1cb | zenon_intro zenon_H1b8 ].
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1cb). zenon_intro zenon_H1cd. zenon_intro zenon_H1cc.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1cc). zenon_intro zenon_H1cf. zenon_intro zenon_H1ce.
% 40.73/40.97  apply (zenon_and_s _ _ zenon_H1ce). zenon_intro zenon_H1d0. zenon_intro zenon_H1a2.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H198); [ zenon_intro zenon_Hab | zenon_intro zenon_H199 ].
% 40.73/40.97  apply (zenon_L39_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H199); [ zenon_intro zenon_H18a | zenon_intro zenon_H19a ].
% 40.73/40.97  apply (zenon_L86_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_H19a); [ zenon_intro zenon_H192 | zenon_intro zenon_Hde ].
% 40.73/40.97  apply (zenon_L93_); trivial.
% 40.73/40.97  apply (zenon_L52_); trivial.
% 40.73/40.97  apply (zenon_L97_); trivial.
% 40.73/40.97  (* end of lemma zenon_L98_ *)
% 40.73/40.97  assert (zenon_L99_ : (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e21))\/(((op2 (e22) (e23)) = (e22))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e21)) = (e21))\/(((op2 (e23) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (~((e21) = (e23))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (~((e21) = (e22))) -> ((op2 (e20) (e20)) = (e20)) -> (((~((op2 (e20) (op2 (e20) (e20))) = (e20)))/\((~((op2 (e20) (op2 (e20) (e21))) = (e21)))/\((~((op2 (e20) (op2 (e20) (e22))) = (e22)))/\(~((op2 (e20) (op2 (e20) (e23))) = (e23))))))\/(((~((op2 (e21) (op2 (e21) (e20))) = (e20)))/\((~((op2 (e21) (op2 (e21) (e21))) = (e21)))/\((~((op2 (e21) (op2 (e21) (e22))) = (e22)))/\(~((op2 (e21) (op2 (e21) (e23))) = (e23))))))\/(((~((op2 (e22) (op2 (e22) (e20))) = (e20)))/\((~((op2 (e22) (op2 (e22) (e21))) = (e21)))/\((~((op2 (e22) (op2 (e22) (e22))) = (e22)))/\(~((op2 (e22) (op2 (e22) (e23))) = (e23))))))\/((~((op2 (e23) (op2 (e23) (e20))) = (e20)))/\((~((op2 (e23) (op2 (e23) (e21))) = (e21)))/\((~((op2 (e23) (op2 (e23) (e22))) = (e22)))/\(~((op2 (e23) (op2 (e23) (e23))) = (e23))))))))) -> ((op2 (e22) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e22)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_He1 zenon_Hd4 zenon_He8 zenon_H14 zenon_H98 zenon_Hc4 zenon_H1b4 zenon_H1a8 zenon_H1b9 zenon_H198 zenon_Hac zenon_H18b zenon_H1c0 zenon_Hf7 zenon_H126 zenon_Hb6 zenon_H1bf zenon_Hcf zenon_Hd9 zenon_Hdc zenon_Hdd.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.73/40.97  apply (zenon_L48_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.73/40.97  apply (zenon_L98_); trivial.
% 40.73/40.97  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.73/40.97  apply (zenon_L51_); trivial.
% 40.73/40.97  apply (zenon_L52_); trivial.
% 40.73/40.97  (* end of lemma zenon_L99_ *)
% 40.73/40.97  assert (zenon_L100_ : (~((op2 (op2 (e21) (e21)) (e21)) = (op2 (e21) (e20)))) -> ((op2 (e20) (e21)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> ((op2 (e21) (e20)) = (e23)) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H1d1 zenon_Ha1 zenon_H14 zenon_H1d2.
% 40.73/40.97  cut (((op2 (e20) (e21)) = (e23)) = ((op2 (op2 (e21) (e21)) (e21)) = (op2 (e21) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1d1.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Ha1.
% 40.73/40.97  cut (((e23) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1d3].
% 40.73/40.97  cut (((op2 (e20) (e21)) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1d4].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (op2 (e21) (e21)) (e21)) = (op2 (op2 (e21) (e21)) (e21)))); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H1d6 ].
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e20) (e21)) = (op2 (op2 (e21) (e21)) (e21)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1d4.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H1d5.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1d6].
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.97  congruence.
% 40.73/40.97  apply (zenon_L34_); trivial.
% 40.73/40.97  apply zenon_H1d6. apply refl_equal.
% 40.73/40.97  apply zenon_H1d6. apply refl_equal.
% 40.73/40.97  apply zenon_H1d3. apply sym_equal. exact zenon_H1d2.
% 40.73/40.97  (* end of lemma zenon_L100_ *)
% 40.73/40.97  assert (zenon_L101_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e22) (e20)) = (e23)) -> ((op2 (e20) (e21)) = (e23)) -> ((op2 (e21) (e20)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> False).
% 40.73/40.97  do 0 intro. intros zenon_H98 zenon_H1d7 zenon_Ha1 zenon_H1d2 zenon_H14 zenon_H1d8.
% 40.73/40.97  elim (classic ((op2 (e22) (e20)) = (op2 (e22) (e20)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ].
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e22) (e20))) = ((op2 (e21) (e20)) = (op2 (e22) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1d8.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_Hf4.
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1d9].
% 40.73/40.97  congruence.
% 40.73/40.97  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e22) (e20)) = (op2 (e21) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1d9.
% 40.73/40.97  rewrite <- zenon_D_pnotp.
% 40.73/40.97  exact zenon_H98.
% 40.73/40.97  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1d1].
% 40.73/40.97  cut (((e23) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1da].
% 40.73/40.97  congruence.
% 40.73/40.97  elim (classic ((op2 (e22) (e20)) = (op2 (e22) (e20)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ].
% 40.73/40.97  cut (((op2 (e22) (e20)) = (op2 (e22) (e20))) = ((e23) = (op2 (e22) (e20)))).
% 40.73/40.97  intro zenon_D_pnotp.
% 40.73/40.97  apply zenon_H1da.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_Hf4.
% 40.73/40.98  cut (((op2 (e22) (e20)) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 40.73/40.98  cut (((op2 (e22) (e20)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H1db].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1db zenon_H1d7).
% 40.73/40.98  apply zenon_Hf5. apply refl_equal.
% 40.73/40.98  apply zenon_Hf5. apply refl_equal.
% 40.73/40.98  apply (zenon_L100_); trivial.
% 40.73/40.98  apply zenon_Hf5. apply refl_equal.
% 40.73/40.98  apply zenon_Hf5. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L101_ *)
% 40.73/40.98  assert (zenon_L102_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e22) (e21)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H98 zenon_H1dc zenon_H14 zenon_H1dd.
% 40.73/40.98  elim (classic ((op2 (e22) (e21)) = (op2 (e22) (e21)))); [ zenon_intro zenon_H1de | zenon_intro zenon_Hd2 ].
% 40.73/40.98  cut (((op2 (e22) (e21)) = (op2 (e22) (e21))) = ((op2 (e20) (e21)) = (op2 (e22) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1dd.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1de.
% 40.73/40.98  cut (((op2 (e22) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 40.73/40.98  cut (((op2 (e22) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1df].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e22) (e21)) = (op2 (e20) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1df.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H98.
% 40.73/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.98  cut (((e23) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1e0].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op2 (e22) (e21)) = (op2 (e22) (e21)))); [ zenon_intro zenon_H1de | zenon_intro zenon_Hd2 ].
% 40.73/40.98  cut (((op2 (e22) (e21)) = (op2 (e22) (e21))) = ((e23) = (op2 (e22) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1e0.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1de.
% 40.73/40.98  cut (((op2 (e22) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 40.73/40.98  cut (((op2 (e22) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H1e1].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1e1 zenon_H1dc).
% 40.73/40.98  apply zenon_Hd2. apply refl_equal.
% 40.73/40.98  apply zenon_Hd2. apply refl_equal.
% 40.73/40.98  apply (zenon_L34_); trivial.
% 40.73/40.98  apply zenon_Hd2. apply refl_equal.
% 40.73/40.98  apply zenon_Hd2. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L102_ *)
% 40.73/40.98  assert (zenon_L103_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e22) (e22)) = (e23)) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H98 zenon_H1e2 zenon_H190 zenon_Hce.
% 40.73/40.98  elim (classic ((op2 (e22) (e22)) = (op2 (e22) (e22)))); [ zenon_intro zenon_H1e3 | zenon_intro zenon_H1e4 ].
% 40.73/40.98  cut (((op2 (e22) (e22)) = (op2 (e22) (e22))) = ((op2 (e22) (e21)) = (op2 (e22) (e22)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_Hce.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1e3.
% 40.73/40.98  cut (((op2 (e22) (e22)) = (op2 (e22) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H1e4].
% 40.73/40.98  cut (((op2 (e22) (e22)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1e5].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e22) (e22)) = (op2 (e22) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1e5.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H98.
% 40.73/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H18f].
% 40.73/40.98  cut (((e23) = (op2 (e22) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H1e6].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op2 (e22) (e22)) = (op2 (e22) (e22)))); [ zenon_intro zenon_H1e3 | zenon_intro zenon_H1e4 ].
% 40.73/40.98  cut (((op2 (e22) (e22)) = (op2 (e22) (e22))) = ((e23) = (op2 (e22) (e22)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1e6.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1e3.
% 40.73/40.98  cut (((op2 (e22) (e22)) = (op2 (e22) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H1e4].
% 40.73/40.98  cut (((op2 (e22) (e22)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H1e7].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1e7 zenon_H1e2).
% 40.73/40.98  apply zenon_H1e4. apply refl_equal.
% 40.73/40.98  apply zenon_H1e4. apply refl_equal.
% 40.73/40.98  apply (zenon_L87_); trivial.
% 40.73/40.98  apply zenon_H1e4. apply refl_equal.
% 40.73/40.98  apply zenon_H1e4. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L103_ *)
% 40.73/40.98  assert (zenon_L104_ : (((op2 (e22) (e20)) = (e23))\/(((op2 (e22) (e21)) = (e23))\/(((op2 (e22) (e22)) = (e23))\/((op2 (e22) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> ((op2 (e21) (e20)) = (e23)) -> ((op2 (e20) (e21)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H1e8 zenon_H1d8 zenon_H1d2 zenon_Ha1 zenon_H1dd zenon_H14 zenon_Hce zenon_H98 zenon_H190 zenon_Hd9.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1e8); [ zenon_intro zenon_H1d7 | zenon_intro zenon_H1e9 ].
% 40.73/40.98  apply (zenon_L101_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1e9); [ zenon_intro zenon_H1dc | zenon_intro zenon_H1ea ].
% 40.73/40.98  apply (zenon_L102_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1ea); [ zenon_intro zenon_H1e2 | zenon_intro zenon_H192 ].
% 40.73/40.98  apply (zenon_L103_); trivial.
% 40.73/40.98  apply (zenon_L88_); trivial.
% 40.73/40.98  (* end of lemma zenon_L104_ *)
% 40.73/40.98  assert (zenon_L105_ : ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e21)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H98 zenon_H1eb zenon_H14 zenon_H8e.
% 40.73/40.98  elim (classic ((op2 (e21) (e21)) = (op2 (e21) (e21)))); [ zenon_intro zenon_H1ec | zenon_intro zenon_H90 ].
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21))) = ((op2 (e20) (e21)) = (op2 (e21) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H8e.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1ec.
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1ed].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e23) = (op2 (op2 (e21) (e21)) (e21))) = ((op2 (e21) (e21)) = (op2 (e20) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1ed.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H98.
% 40.73/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (e20) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 40.73/40.98  cut (((e23) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H1ee].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op2 (e21) (e21)) = (op2 (e21) (e21)))); [ zenon_intro zenon_H1ec | zenon_intro zenon_H90 ].
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21))) = ((e23) = (op2 (e21) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1ee.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1ec.
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.73/40.98  cut (((op2 (e21) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H1ef].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1ef zenon_H1eb).
% 40.73/40.98  apply zenon_H90. apply refl_equal.
% 40.73/40.98  apply zenon_H90. apply refl_equal.
% 40.73/40.98  apply (zenon_L34_); trivial.
% 40.73/40.98  apply zenon_H90. apply refl_equal.
% 40.73/40.98  apply zenon_H90. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L105_ *)
% 40.73/40.98  assert (zenon_L106_ : ((op2 (e21) (e22)) = (e21)) -> ((op2 (e21) (e22)) = (e23)) -> (~((e21) = (e23))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_Hcc zenon_H1f0 zenon_H18b.
% 40.73/40.98  elim (classic ((e23) = (e23))); [ zenon_intro zenon_H18c | zenon_intro zenon_Hfb ].
% 40.73/40.98  cut (((e23) = (e23)) = ((e21) = (e23))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H18b.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H18c.
% 40.73/40.98  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.73/40.98  cut (((e23) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H18d].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((op2 (e21) (e22)) = (e21)) = ((e23) = (e21))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H18d.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_Hcc.
% 40.73/40.98  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.98  cut (((op2 (e21) (e22)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H1f1].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1f1 zenon_H1f0).
% 40.73/40.98  apply zenon_H95. apply refl_equal.
% 40.73/40.98  apply zenon_Hfb. apply refl_equal.
% 40.73/40.98  apply zenon_Hfb. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L106_ *)
% 40.73/40.98  assert (zenon_L107_ : (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (~((e21) = (e22))) -> ((op2 (e21) (e23)) = (e21)) -> ((op2 (e21) (e22)) = (e21)) -> (((op2 (e21) (e20)) = (e23))\/(((op2 (e21) (e21)) = (e23))\/(((op2 (e21) (e22)) = (e23))\/((op2 (e21) (e23)) = (e23))))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> (((op2 (e22) (e20)) = (e23))\/(((op2 (e22) (e21)) = (e23))\/(((op2 (e22) (e22)) = (e23))\/((op2 (e22) (e23)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (~((e21) = (e23))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_Hb2 zenon_H97 zenon_H126 zenon_Hd7 zenon_Hcc zenon_H1f2 zenon_Hd9 zenon_Hce zenon_H1dd zenon_H1d8 zenon_H1e8 zenon_H8e zenon_H18b zenon_Hf7 zenon_Hc4 zenon_H1c0 zenon_Ha5 zenon_H98 zenon_H14 zenon_Hac.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.73/40.98  apply (zenon_L35_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.73/40.98  apply (zenon_L58_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.73/40.98  apply (zenon_L104_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.73/40.98  apply (zenon_L105_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.73/40.98  apply (zenon_L106_); trivial.
% 40.73/40.98  apply (zenon_L86_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.73/40.98  apply (zenon_L67_); trivial.
% 40.73/40.98  apply (zenon_L92_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.73/40.98  apply (zenon_L38_); trivial.
% 40.73/40.98  apply (zenon_L39_); trivial.
% 40.73/40.98  (* end of lemma zenon_L107_ *)
% 40.73/40.98  assert (zenon_L108_ : (~((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e10)))) -> ((op1 (e10) (e11)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e11) (e10)) = (e13)) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H1f5 zenon_H2c zenon_H18 zenon_H1f6.
% 40.73/40.98  cut (((op1 (e10) (e11)) = (e13)) = ((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e10)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1f5.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H2c.
% 40.73/40.98  cut (((e13) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H1f7].
% 40.73/40.98  cut (((op1 (e10) (e11)) = (op1 (op1 (e11) (e11)) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1f8].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11)))); [ zenon_intro zenon_H1f9 | zenon_intro zenon_H1fa ].
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e10) (e11)) = (op1 (op1 (e11) (e11)) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1f8.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H1f9.
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1fa].
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.98  congruence.
% 40.73/40.98  apply (zenon_L4_); trivial.
% 40.73/40.98  apply zenon_H1fa. apply refl_equal.
% 40.73/40.98  apply zenon_H1fa. apply refl_equal.
% 40.73/40.98  apply zenon_H1f7. apply sym_equal. exact zenon_H1f6.
% 40.73/40.98  (* end of lemma zenon_L108_ *)
% 40.73/40.98  assert (zenon_L109_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e12) (e10)) = (e13)) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e11) (e10)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H23 zenon_H1fb zenon_H2c zenon_H1f6 zenon_H18 zenon_H1fc.
% 40.73/40.98  elim (classic ((op1 (e12) (e10)) = (op1 (e12) (e10)))); [ zenon_intro zenon_H7f | zenon_intro zenon_H80 ].
% 40.73/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10))) = ((op1 (e11) (e10)) = (op1 (e12) (e10)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1fc.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H7f.
% 40.73/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H80].
% 40.73/40.98  cut (((op1 (e12) (e10)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H1fd].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e12) (e10)) = (op1 (e11) (e10)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1fd.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23.
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H1f5].
% 40.73/40.98  cut (((e13) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H1fe].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e12) (e10)) = (op1 (e12) (e10)))); [ zenon_intro zenon_H7f | zenon_intro zenon_H80 ].
% 40.73/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10))) = ((e13) = (op1 (e12) (e10)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H1fe.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H7f.
% 40.73/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H80].
% 40.73/40.98  cut (((op1 (e12) (e10)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H1ff].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H1ff zenon_H1fb).
% 40.73/40.98  apply zenon_H80. apply refl_equal.
% 40.73/40.98  apply zenon_H80. apply refl_equal.
% 40.73/40.98  apply (zenon_L108_); trivial.
% 40.73/40.98  apply zenon_H80. apply refl_equal.
% 40.73/40.98  apply zenon_H80. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L109_ *)
% 40.73/40.98  assert (zenon_L110_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e12) (e11)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H23 zenon_H200 zenon_H18 zenon_H201.
% 40.73/40.98  elim (classic ((op1 (e12) (e11)) = (op1 (e12) (e11)))); [ zenon_intro zenon_H202 | zenon_intro zenon_H5d ].
% 40.73/40.98  cut (((op1 (e12) (e11)) = (op1 (e12) (e11))) = ((op1 (e10) (e11)) = (op1 (e12) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H201.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H202.
% 40.73/40.98  cut (((op1 (e12) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H5d].
% 40.73/40.98  cut (((op1 (e12) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H203].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e12) (e11)) = (op1 (e10) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H203.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23.
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.98  cut (((e13) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H204].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e12) (e11)) = (op1 (e12) (e11)))); [ zenon_intro zenon_H202 | zenon_intro zenon_H5d ].
% 40.73/40.98  cut (((op1 (e12) (e11)) = (op1 (e12) (e11))) = ((e13) = (op1 (e12) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H204.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H202.
% 40.73/40.98  cut (((op1 (e12) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H5d].
% 40.73/40.98  cut (((op1 (e12) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H205].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H205 zenon_H200).
% 40.73/40.98  apply zenon_H5d. apply refl_equal.
% 40.73/40.98  apply zenon_H5d. apply refl_equal.
% 40.73/40.98  apply (zenon_L4_); trivial.
% 40.73/40.98  apply zenon_H5d. apply refl_equal.
% 40.73/40.98  apply zenon_H5d. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L110_ *)
% 40.73/40.98  assert (zenon_L111_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e12) (e12)) = (e13)) -> ((op1 (e11) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H23 zenon_H206 zenon_H138 zenon_H59.
% 40.73/40.98  elim (classic ((op1 (e12) (e12)) = (op1 (e12) (e12)))); [ zenon_intro zenon_H207 | zenon_intro zenon_H208 ].
% 40.73/40.98  cut (((op1 (e12) (e12)) = (op1 (e12) (e12))) = ((op1 (e12) (e11)) = (op1 (e12) (e12)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H59.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H207.
% 40.73/40.98  cut (((op1 (e12) (e12)) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H208].
% 40.73/40.98  cut (((op1 (e12) (e12)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H209].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e12) (e12)) = (op1 (e12) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H209.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23.
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H137].
% 40.73/40.98  cut (((e13) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H20a].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e12) (e12)) = (op1 (e12) (e12)))); [ zenon_intro zenon_H207 | zenon_intro zenon_H208 ].
% 40.73/40.98  cut (((op1 (e12) (e12)) = (op1 (e12) (e12))) = ((e13) = (op1 (e12) (e12)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H20a.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H207.
% 40.73/40.98  cut (((op1 (e12) (e12)) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H208].
% 40.73/40.98  cut (((op1 (e12) (e12)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H20b].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H20b zenon_H206).
% 40.73/40.98  apply zenon_H208. apply refl_equal.
% 40.73/40.98  apply zenon_H208. apply refl_equal.
% 40.73/40.98  apply (zenon_L71_); trivial.
% 40.73/40.98  apply zenon_H208. apply refl_equal.
% 40.73/40.98  apply zenon_H208. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L111_ *)
% 40.73/40.98  assert (zenon_L112_ : (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> ((op1 (e11) (e10)) = (e13)) -> ((op1 (e10) (e11)) = (e13)) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e11) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H20c zenon_H1fc zenon_H1f6 zenon_H2c zenon_H201 zenon_H18 zenon_H59 zenon_H23 zenon_H138 zenon_H64.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H20c); [ zenon_intro zenon_H1fb | zenon_intro zenon_H20d ].
% 40.73/40.98  apply (zenon_L109_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H20d); [ zenon_intro zenon_H200 | zenon_intro zenon_H20e ].
% 40.73/40.98  apply (zenon_L110_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H20e); [ zenon_intro zenon_H206 | zenon_intro zenon_H13a ].
% 40.73/40.98  apply (zenon_L111_); trivial.
% 40.73/40.98  apply (zenon_L72_); trivial.
% 40.73/40.98  (* end of lemma zenon_L112_ *)
% 40.73/40.98  assert (zenon_L113_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e11) (e11)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H23 zenon_H20f zenon_H18 zenon_H17.
% 40.73/40.98  elim (classic ((op1 (e11) (e11)) = (op1 (e11) (e11)))); [ zenon_intro zenon_H210 | zenon_intro zenon_H1a ].
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11))) = ((op1 (e10) (e11)) = (op1 (e11) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H17.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H210.
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H211].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e11) (e11)) = (op1 (e10) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H211.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23.
% 40.73/40.98  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e10) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 40.73/40.98  cut (((e13) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H212].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e11) (e11)) = (op1 (e11) (e11)))); [ zenon_intro zenon_H210 | zenon_intro zenon_H1a ].
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11))) = ((e13) = (op1 (e11) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H212.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H210.
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.73/40.98  cut (((op1 (e11) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H213].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H213 zenon_H20f).
% 40.73/40.98  apply zenon_H1a. apply refl_equal.
% 40.73/40.98  apply zenon_H1a. apply refl_equal.
% 40.73/40.98  apply (zenon_L4_); trivial.
% 40.73/40.98  apply zenon_H1a. apply refl_equal.
% 40.73/40.98  apply zenon_H1a. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L113_ *)
% 40.73/40.98  assert (zenon_L114_ : ((op1 (e11) (e12)) = (e11)) -> ((op1 (e11) (e12)) = (e13)) -> (~((e11) = (e13))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H57 zenon_H214 zenon_H133.
% 40.73/40.98  elim (classic ((e13) = (e13))); [ zenon_intro zenon_H134 | zenon_intro zenon_H86 ].
% 40.73/40.98  cut (((e13) = (e13)) = ((e11) = (e13))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H133.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H134.
% 40.73/40.98  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.98  cut (((e13) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H135].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((op1 (e11) (e12)) = (e11)) = ((e13) = (e11))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H135.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H57.
% 40.73/40.98  cut (((e11) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 40.73/40.98  cut (((op1 (e11) (e12)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H215].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H215 zenon_H214).
% 40.73/40.98  apply zenon_H1f. apply refl_equal.
% 40.73/40.98  apply zenon_H86. apply refl_equal.
% 40.73/40.98  apply zenon_H86. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L114_ *)
% 40.73/40.98  assert (zenon_L115_ : (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e12) (e10)) = (e13)) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e11) (e13)) = (e11)) -> (~((e11) = (e13))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H216 zenon_H1fc zenon_H2c zenon_H1fb zenon_H17 zenon_H18 zenon_H23 zenon_H57 zenon_H62 zenon_H133.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H217 ].
% 40.73/40.98  apply (zenon_L109_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H217); [ zenon_intro zenon_H20f | zenon_intro zenon_H218 ].
% 40.73/40.98  apply (zenon_L113_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H218); [ zenon_intro zenon_H214 | zenon_intro zenon_H132 ].
% 40.73/40.98  apply (zenon_L114_); trivial.
% 40.73/40.98  apply (zenon_L70_); trivial.
% 40.73/40.98  (* end of lemma zenon_L115_ *)
% 40.73/40.98  assert (zenon_L116_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e11) (e13)) = (e11)) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((e11) = (e12))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H3d zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H216 zenon_H1fc zenon_H17 zenon_H57 zenon_H62 zenon_H133 zenon_H168 zenon_H64 zenon_H59 zenon_H201 zenon_H20c zenon_H117 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.73/40.98  apply (zenon_L5_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H219); [ zenon_intro zenon_H24 | zenon_intro zenon_H21a ].
% 40.73/40.98  apply (zenon_L5_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H21a); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H21b ].
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H168); [ zenon_intro zenon_H83 | zenon_intro zenon_H179 ].
% 40.73/40.98  apply (zenon_L28_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H179); [ zenon_intro zenon_H138 | zenon_intro zenon_H17a ].
% 40.73/40.98  apply (zenon_L112_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H17a); [ zenon_intro zenon_H116 | zenon_intro zenon_H148 ].
% 40.73/40.98  apply (zenon_L64_); trivial.
% 40.73/40.98  apply (zenon_L76_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H21b); [ zenon_intro zenon_H1fb | zenon_intro zenon_H88 ].
% 40.73/40.98  apply (zenon_L115_); trivial.
% 40.73/40.98  apply (zenon_L31_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.73/40.98  apply (zenon_L8_); trivial.
% 40.73/40.98  apply (zenon_L9_); trivial.
% 40.73/40.98  (* end of lemma zenon_L116_ *)
% 40.73/40.98  assert (zenon_L117_ : ((e20) = (op2 (e21) (e21))) -> ((op2 (e21) (e23)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e21) (e23)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H14 zenon_H21c zenon_H21d.
% 40.73/40.98  elim (classic ((op2 (e21) (e23)) = (op2 (e21) (e23)))); [ zenon_intro zenon_H21e | zenon_intro zenon_H21f ].
% 40.73/40.98  cut (((op2 (e21) (e23)) = (op2 (e21) (e23))) = ((op2 (e21) (e21)) = (op2 (e21) (e23)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H21d.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H21e.
% 40.73/40.98  cut (((op2 (e21) (e23)) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H21f].
% 40.73/40.98  cut (((op2 (e21) (e23)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H220].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e21) (e23)) = (op2 (e21) (e21)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H220.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H14.
% 40.73/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.73/40.98  cut (((e20) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H221].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op2 (e21) (e23)) = (op2 (e21) (e23)))); [ zenon_intro zenon_H21e | zenon_intro zenon_H21f ].
% 40.73/40.98  cut (((op2 (e21) (e23)) = (op2 (e21) (e23))) = ((e20) = (op2 (e21) (e23)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H221.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H21e.
% 40.73/40.98  cut (((op2 (e21) (e23)) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H21f].
% 40.73/40.98  cut (((op2 (e21) (e23)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H222].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H222 zenon_H21c).
% 40.73/40.98  apply zenon_H21f. apply refl_equal.
% 40.73/40.98  apply zenon_H21f. apply refl_equal.
% 40.73/40.98  apply zenon_H90. apply refl_equal.
% 40.73/40.98  apply zenon_H21f. apply refl_equal.
% 40.73/40.98  apply zenon_H21f. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L117_ *)
% 40.73/40.98  assert (zenon_L118_ : (~((op2 (e20) (e23)) = (op2 (e22) (e23)))) -> ((op2 (e20) (e23)) = (e20)) -> ((op2 (e22) (e23)) = (e20)) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H223 zenon_Hd3 zenon_H224.
% 40.73/40.98  cut (((op2 (e20) (e23)) = (e20)) = ((op2 (e20) (e23)) = (op2 (e22) (e23)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H223.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_Hd3.
% 40.73/40.98  cut (((e20) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H225].
% 40.73/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.73/40.98  congruence.
% 40.73/40.98  apply zenon_Hae. apply refl_equal.
% 40.73/40.98  apply zenon_H225. apply sym_equal. exact zenon_H224.
% 40.73/40.98  (* end of lemma zenon_L118_ *)
% 40.73/40.98  assert (zenon_L119_ : ((e10) = (op1 (e11) (e11))) -> ((op1 (e11) (e13)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H18 zenon_H226 zenon_H227.
% 40.73/40.98  elim (classic ((op1 (e11) (e13)) = (op1 (e11) (e13)))); [ zenon_intro zenon_H228 | zenon_intro zenon_H229 ].
% 40.73/40.98  cut (((op1 (e11) (e13)) = (op1 (e11) (e13))) = ((op1 (e11) (e11)) = (op1 (e11) (e13)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H227.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H228.
% 40.73/40.98  cut (((op1 (e11) (e13)) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H229].
% 40.73/40.98  cut (((op1 (e11) (e13)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H22a].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e10) = (op1 (e11) (e11))) = ((op1 (e11) (e13)) = (op1 (e11) (e11)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H22a.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H18.
% 40.73/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.73/40.98  cut (((e10) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H22b].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e11) (e13)) = (op1 (e11) (e13)))); [ zenon_intro zenon_H228 | zenon_intro zenon_H229 ].
% 40.73/40.98  cut (((op1 (e11) (e13)) = (op1 (e11) (e13))) = ((e10) = (op1 (e11) (e13)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H22b.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H228.
% 40.73/40.98  cut (((op1 (e11) (e13)) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H229].
% 40.73/40.98  cut (((op1 (e11) (e13)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H22c].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H22c zenon_H226).
% 40.73/40.98  apply zenon_H229. apply refl_equal.
% 40.73/40.98  apply zenon_H229. apply refl_equal.
% 40.73/40.98  apply zenon_H1a. apply refl_equal.
% 40.73/40.98  apply zenon_H229. apply refl_equal.
% 40.73/40.98  apply zenon_H229. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L119_ *)
% 40.73/40.98  assert (zenon_L120_ : (~((op1 (e10) (e13)) = (op1 (e12) (e13)))) -> ((op1 (e10) (e13)) = (e10)) -> ((op1 (e12) (e13)) = (e10)) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H22d zenon_H5e zenon_H22e.
% 40.73/40.98  cut (((op1 (e10) (e13)) = (e10)) = ((op1 (e10) (e13)) = (op1 (e12) (e13)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H22d.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H5e.
% 40.73/40.98  cut (((e10) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H22f].
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.98  congruence.
% 40.73/40.98  apply zenon_H39. apply refl_equal.
% 40.73/40.98  apply zenon_H22f. apply sym_equal. exact zenon_H22e.
% 40.73/40.98  (* end of lemma zenon_L120_ *)
% 40.73/40.98  assert (zenon_L121_ : (~((h2 (e13)) = (e23))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H230 zenon_H231 zenon_H98.
% 40.73/40.98  cut (((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) = ((h2 (e13)) = (e23))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H230.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H231.
% 40.73/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hc2].
% 40.73/40.98  cut (((h2 (e13)) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H232].
% 40.73/40.98  congruence.
% 40.73/40.98  apply zenon_H232. apply refl_equal.
% 40.73/40.98  apply zenon_Hc2. apply sym_equal. exact zenon_H98.
% 40.73/40.98  (* end of lemma zenon_L121_ *)
% 40.73/40.98  assert (zenon_L122_ : (~((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))) -> ((h2 (e11)) = (e21)) -> ((op1 (e10) (e13)) = (e11)) -> ((op2 (e20) (e23)) = (e21)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H233 zenon_H234 zenon_H235 zenon_H236 zenon_H13 zenon_H14 zenon_H231 zenon_H98.
% 40.73/40.98  cut (((h2 (e11)) = (e21)) = ((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H233.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H234.
% 40.73/40.98  cut (((e21) = (op2 (h2 (e10)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H237].
% 40.73/40.98  cut (((h2 (e11)) = (h2 (op1 (e10) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H238].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((h2 (op1 (e10) (e13))) = (h2 (op1 (e10) (e13))))); [ zenon_intro zenon_H239 | zenon_intro zenon_H23a ].
% 40.73/40.98  cut (((h2 (op1 (e10) (e13))) = (h2 (op1 (e10) (e13)))) = ((h2 (e11)) = (h2 (op1 (e10) (e13))))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H238.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H239.
% 40.73/40.98  cut (((h2 (op1 (e10) (e13))) = (h2 (op1 (e10) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H23a].
% 40.73/40.98  cut (((h2 (op1 (e10) (e13))) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H23b].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((op1 (e10) (e13)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H23c].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H23c zenon_H235).
% 40.73/40.98  apply zenon_H23a. apply refl_equal.
% 40.73/40.98  apply zenon_H23a. apply refl_equal.
% 40.73/40.98  elim (classic ((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13))))); [ zenon_intro zenon_H23d | zenon_intro zenon_H23e ].
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13)))) = ((e21) = (op2 (h2 (e10)) (h2 (e13))))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H237.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23d.
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H23e].
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H23f].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((op2 (e20) (e23)) = (e21)) = ((op2 (h2 (e10)) (h2 (e13))) = (e21))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H23f.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H236.
% 40.73/40.98  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.73/40.98  cut (((op2 (e20) (e23)) = (op2 (h2 (e10)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H240].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13))))); [ zenon_intro zenon_H23d | zenon_intro zenon_H23e ].
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13)))) = ((op2 (e20) (e23)) = (op2 (h2 (e10)) (h2 (e13))))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H240.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H23d.
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (op2 (h2 (e10)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H23e].
% 40.73/40.98  cut (((op2 (h2 (e10)) (h2 (e13))) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H241].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.73/40.98  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.73/40.98  congruence.
% 40.73/40.98  apply (zenon_L1_); trivial.
% 40.73/40.98  apply (zenon_L121_); trivial.
% 40.73/40.98  apply zenon_H23e. apply refl_equal.
% 40.73/40.98  apply zenon_H23e. apply refl_equal.
% 40.73/40.98  apply zenon_H95. apply refl_equal.
% 40.73/40.98  apply zenon_H23e. apply refl_equal.
% 40.73/40.98  apply zenon_H23e. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L122_ *)
% 40.73/40.98  assert (zenon_L123_ : (~((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e10) (e12)))) -> ((op1 (e13) (e10)) = (e12)) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e10) (e12)) = (e12)) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H242 zenon_H89 zenon_H23 zenon_H18 zenon_H108.
% 40.73/40.98  cut (((op1 (e13) (e10)) = (e12)) = ((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e10) (e12)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H242.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H89.
% 40.73/40.98  cut (((e12) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H243].
% 40.73/40.98  cut (((op1 (e13) (e10)) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H244].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))))); [ zenon_intro zenon_H245 | zenon_intro zenon_H246 ].
% 40.73/40.98  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e13) (e10)) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H244.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H245.
% 40.73/40.98  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H246].
% 40.73/40.98  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e13) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 40.73/40.98  congruence.
% 40.73/40.98  apply (zenon_L13_); trivial.
% 40.73/40.98  apply zenon_H246. apply refl_equal.
% 40.73/40.98  apply zenon_H246. apply refl_equal.
% 40.73/40.98  apply zenon_H243. apply sym_equal. exact zenon_H108.
% 40.73/40.98  (* end of lemma zenon_L123_ *)
% 40.73/40.98  assert (zenon_L124_ : ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op1 (e10) (e13)) = (e12)) -> ((op1 (e13) (e10)) = (e12)) -> ((op1 (e10) (e12)) = (e12)) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H4f zenon_H247 zenon_H89 zenon_H108 zenon_H23 zenon_H18 zenon_H248.
% 40.73/40.98  elim (classic ((op1 (e10) (e13)) = (op1 (e10) (e13)))); [ zenon_intro zenon_H38 | zenon_intro zenon_H39 ].
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e13))) = ((op1 (e10) (e12)) = (op1 (e10) (e13)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H248.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H38.
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H249].
% 40.73/40.98  congruence.
% 40.73/40.98  cut (((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) = ((op1 (e10) (e13)) = (op1 (e10) (e12)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H249.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H4f.
% 40.73/40.98  cut (((op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11))) = (op1 (e10) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H242].
% 40.73/40.98  cut (((e12) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H24a].
% 40.73/40.98  congruence.
% 40.73/40.98  elim (classic ((op1 (e10) (e13)) = (op1 (e10) (e13)))); [ zenon_intro zenon_H38 | zenon_intro zenon_H39 ].
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e13))) = ((e12) = (op1 (e10) (e13)))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H24a.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H38.
% 40.73/40.98  cut (((op1 (e10) (e13)) = (op1 (e10) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 40.73/40.98  cut (((op1 (e10) (e13)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H24b].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H24b zenon_H247).
% 40.73/40.98  apply zenon_H39. apply refl_equal.
% 40.73/40.98  apply zenon_H39. apply refl_equal.
% 40.73/40.98  apply (zenon_L123_); trivial.
% 40.73/40.98  apply zenon_H39. apply refl_equal.
% 40.73/40.98  apply zenon_H39. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L124_ *)
% 40.73/40.98  assert (zenon_L125_ : (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> ((op1 (e13) (e10)) = (e12)) -> ((op1 (e10) (e13)) = (e12)) -> (~((e11) = (e12))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H122 zenon_H248 zenon_H89 zenon_H247 zenon_H117 zenon_H57 zenon_H5a zenon_H59 zenon_H4f zenon_H18 zenon_H23 zenon_H11d.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H122); [ zenon_intro zenon_H108 | zenon_intro zenon_H123 ].
% 40.73/40.98  apply (zenon_L124_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H123); [ zenon_intro zenon_H116 | zenon_intro zenon_H124 ].
% 40.73/40.98  apply (zenon_L64_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H124); [ zenon_intro zenon_H5b | zenon_intro zenon_H11c ].
% 40.73/40.98  apply (zenon_L17_); trivial.
% 40.73/40.98  apply (zenon_L65_); trivial.
% 40.73/40.98  (* end of lemma zenon_L125_ *)
% 40.73/40.98  assert (zenon_L126_ : (((op1 (e10) (e13)) = (e10))\/(((op1 (e10) (e13)) = (e11))\/(((op1 (e10) (e13)) = (e12))\/((op1 (e10) (e13)) = (e13))))) -> ((op1 (e12) (e13)) = (e10)) -> (~((op1 (e10) (e13)) = (op1 (e12) (e13)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((op2 (e20) (e23)) = (e21)) -> ((h2 (e11)) = (e21)) -> (~((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((op1 (e12) (e11)) = (e12)) -> ((op1 (e11) (e12)) = (e11)) -> (~((e11) = (e12))) -> ((op1 (e13) (e10)) = (e12)) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H24c zenon_H22e zenon_H22d zenon_H98 zenon_H231 zenon_H14 zenon_H13 zenon_H236 zenon_H234 zenon_H233 zenon_H11d zenon_H4f zenon_H59 zenon_H5a zenon_H57 zenon_H117 zenon_H89 zenon_H248 zenon_H122 zenon_H23 zenon_H18 zenon_H37.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H24c); [ zenon_intro zenon_H5e | zenon_intro zenon_H24d ].
% 40.73/40.98  apply (zenon_L120_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H24d); [ zenon_intro zenon_H235 | zenon_intro zenon_H24e ].
% 40.73/40.98  apply (zenon_L122_); trivial.
% 40.73/40.98  apply (zenon_or_s _ _ zenon_H24e); [ zenon_intro zenon_H247 | zenon_intro zenon_H36 ].
% 40.73/40.98  apply (zenon_L125_); trivial.
% 40.73/40.98  apply (zenon_L9_); trivial.
% 40.73/40.98  (* end of lemma zenon_L126_ *)
% 40.73/40.98  assert (zenon_L127_ : (~((e10) = (e13))) -> ((op1 (e13) (e13)) = (e13)) -> ((op1 (e13) (e13)) = (e10)) -> False).
% 40.73/40.98  do 0 intro. intros zenon_H24f zenon_H69 zenon_H250.
% 40.73/40.98  cut (((op1 (e13) (e13)) = (e13)) = ((e10) = (e13))).
% 40.73/40.98  intro zenon_D_pnotp.
% 40.73/40.98  apply zenon_H24f.
% 40.73/40.98  rewrite <- zenon_D_pnotp.
% 40.73/40.98  exact zenon_H69.
% 40.73/40.98  cut (((e13) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H86].
% 40.73/40.98  cut (((op1 (e13) (e13)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H251].
% 40.73/40.98  congruence.
% 40.73/40.98  exact (zenon_H251 zenon_H250).
% 40.73/40.98  apply zenon_H86. apply refl_equal.
% 40.73/40.98  (* end of lemma zenon_L127_ *)
% 40.73/40.98  assert (zenon_L128_ : (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> (~((e11) = (e12))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))) -> ((h2 (e11)) = (e21)) -> ((op2 (e20) (e23)) = (e21)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op1 (e10) (e13)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e10) (e13)) = (e11))\/(((op1 (e10) (e13)) = (e12))\/((op1 (e10) (e13)) = (e13))))) -> (~((e10) = (e13))) -> ((op1 (e13) (e13)) = (e13)) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H8b zenon_H4e zenon_H82 zenon_H7c zenon_H252 zenon_H5f zenon_H41 zenon_H227 zenon_H37 zenon_H18 zenon_H23 zenon_H122 zenon_H248 zenon_H117 zenon_H57 zenon_H5a zenon_H59 zenon_H4f zenon_H11d zenon_H233 zenon_H234 zenon_H236 zenon_H13 zenon_H14 zenon_H231 zenon_H98 zenon_H22d zenon_H24c zenon_H24f zenon_H69.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8b); [ zenon_intro zenon_H50 | zenon_intro zenon_H8c ].
% 40.81/40.98  apply (zenon_L14_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8c); [ zenon_intro zenon_H83 | zenon_intro zenon_H8d ].
% 40.81/40.98  apply (zenon_L28_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H7d | zenon_intro zenon_H89 ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H252); [ zenon_intro zenon_H5e | zenon_intro zenon_H253 ].
% 40.81/40.98  apply (zenon_L18_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H253); [ zenon_intro zenon_H226 | zenon_intro zenon_H254 ].
% 40.81/40.98  apply (zenon_L119_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H254); [ zenon_intro zenon_H22e | zenon_intro zenon_H250 ].
% 40.81/40.98  apply (zenon_L126_); trivial.
% 40.81/40.98  apply (zenon_L127_); trivial.
% 40.81/40.98  (* end of lemma zenon_L128_ *)
% 40.81/40.98  assert (zenon_L129_ : (~((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e20) (e22)))) -> ((op2 (e23) (e20)) = (e22)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((op2 (e20) (e22)) = (e22)) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H255 zenon_Hfe zenon_H98 zenon_H14 zenon_H109.
% 40.81/40.98  cut (((op2 (e23) (e20)) = (e22)) = ((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e20) (e22)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H255.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Hfe.
% 40.81/40.98  cut (((e22) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H256].
% 40.81/40.98  cut (((op2 (e23) (e20)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H257].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [ zenon_intro zenon_H258 | zenon_intro zenon_H259 ].
% 40.81/40.98  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e23) (e20)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H257.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H258.
% 40.81/40.98  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H259].
% 40.81/40.98  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 40.81/40.98  congruence.
% 40.81/40.98  apply (zenon_L43_); trivial.
% 40.81/40.98  apply zenon_H259. apply refl_equal.
% 40.81/40.98  apply zenon_H259. apply refl_equal.
% 40.81/40.98  apply zenon_H256. apply sym_equal. exact zenon_H109.
% 40.81/40.98  (* end of lemma zenon_L129_ *)
% 40.81/40.98  assert (zenon_L130_ : ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e20) (e23)) = (e22)) -> ((op2 (e23) (e20)) = (e22)) -> ((op2 (e20) (e22)) = (e22)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e22)) = (op2 (e20) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_Hc4 zenon_H25a zenon_Hfe zenon_H109 zenon_H98 zenon_H14 zenon_H25b.
% 40.81/40.98  elim (classic ((op2 (e20) (e23)) = (op2 (e20) (e23)))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 40.81/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e23))) = ((op2 (e20) (e22)) = (op2 (e20) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H25b.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Had.
% 40.81/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.81/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H25c].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((op2 (e20) (e23)) = (op2 (e20) (e22)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H25c.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Hc4.
% 40.81/40.98  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (e20) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H255].
% 40.81/40.98  cut (((e22) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H25d].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (e20) (e23)) = (op2 (e20) (e23)))); [ zenon_intro zenon_Had | zenon_intro zenon_Hae ].
% 40.81/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e23))) = ((e22) = (op2 (e20) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H25d.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Had.
% 40.81/40.98  cut (((op2 (e20) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 40.81/40.98  cut (((op2 (e20) (e23)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H25e].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H25e zenon_H25a).
% 40.81/40.98  apply zenon_Hae. apply refl_equal.
% 40.81/40.98  apply zenon_Hae. apply refl_equal.
% 40.81/40.98  apply (zenon_L129_); trivial.
% 40.81/40.98  apply zenon_Hae. apply refl_equal.
% 40.81/40.98  apply zenon_Hae. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L130_ *)
% 40.81/40.98  assert (zenon_L131_ : (((op2 (e20) (e23)) = (e20))\/(((op2 (e20) (e23)) = (e21))\/(((op2 (e20) (e23)) = (e22))\/((op2 (e20) (e23)) = (e23))))) -> ((op2 (e22) (e23)) = (e20)) -> (~((op2 (e20) (e23)) = (op2 (e22) (e23)))) -> ((op1 (e13) (e13)) = (e13)) -> (~((e10) = (e13))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e10) (e13)) = (e11))\/(((op1 (e10) (e13)) = (e12))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e13)) = (op1 (e12) (e13)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((h2 (e11)) = (e21)) -> (~((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((op1 (e12) (e11)) = (e12)) -> ((op1 (e11) (e12)) = (e11)) -> (~((e11) = (e12))) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op2 (e20) (e22)) = (op2 (e20) (e23)))) -> ((op2 (e20) (e22)) = (e22)) -> ((op2 (e23) (e20)) = (e22)) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H25f zenon_H224 zenon_H223 zenon_H69 zenon_H24f zenon_H24c zenon_H22d zenon_H231 zenon_H13 zenon_H234 zenon_H233 zenon_H11d zenon_H4f zenon_H59 zenon_H5a zenon_H57 zenon_H117 zenon_H248 zenon_H122 zenon_H23 zenon_H18 zenon_H37 zenon_H227 zenon_H41 zenon_H5f zenon_H252 zenon_H7c zenon_H82 zenon_H4e zenon_H8b zenon_H25b zenon_H109 zenon_Hfe zenon_Hc4 zenon_H98 zenon_H14 zenon_Hac.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H25f); [ zenon_intro zenon_Hd3 | zenon_intro zenon_H260 ].
% 40.81/40.98  apply (zenon_L118_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H260); [ zenon_intro zenon_H236 | zenon_intro zenon_H261 ].
% 40.81/40.98  apply (zenon_L128_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H261); [ zenon_intro zenon_H25a | zenon_intro zenon_Hab ].
% 40.81/40.98  apply (zenon_L130_); trivial.
% 40.81/40.98  apply (zenon_L39_); trivial.
% 40.81/40.98  (* end of lemma zenon_L131_ *)
% 40.81/40.98  assert (zenon_L132_ : (~((op2 (op2 (e23) (e23)) (e23)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e23)) = (e23)) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H262 zenon_Hde.
% 40.81/40.98  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H263].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H263 zenon_Hde).
% 40.81/40.98  apply zenon_Hfb. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L132_ *)
% 40.81/40.98  assert (zenon_L133_ : ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> ((op2 (e23) (e23)) = (e23)) -> (~((op2 (e23) (e23)) = (h4 (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H264 zenon_Hde zenon_H265.
% 40.81/40.98  elim (classic ((h4 (e13)) = (h4 (e13)))); [ zenon_intro zenon_H266 | zenon_intro zenon_H267 ].
% 40.81/40.98  cut (((h4 (e13)) = (h4 (e13))) = ((op2 (e23) (e23)) = (h4 (e13)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H265.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H266.
% 40.81/40.98  cut (((h4 (e13)) = (h4 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H267].
% 40.81/40.98  cut (((h4 (e13)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H268].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) = ((h4 (e13)) = (op2 (e23) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H268.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H264.
% 40.81/40.98  cut (((op2 (op2 (e23) (e23)) (e23)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H262].
% 40.81/40.98  cut (((h4 (e13)) = (h4 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H267].
% 40.81/40.98  congruence.
% 40.81/40.98  apply zenon_H267. apply refl_equal.
% 40.81/40.98  apply (zenon_L132_); trivial.
% 40.81/40.98  apply zenon_H267. apply refl_equal.
% 40.81/40.98  apply zenon_H267. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L133_ *)
% 40.81/40.98  assert (zenon_L134_ : (~((op2 (op2 (e23) (e23)) (e23)) = (op2 (e20) (e23)))) -> ((op2 (e23) (e23)) = (e20)) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H269 zenon_H26a.
% 40.81/40.98  cut (((e23) = (e23))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H26b].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H26b zenon_H26a).
% 40.81/40.98  apply zenon_Hfb. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L134_ *)
% 40.81/40.98  assert (zenon_L135_ : ((op2 (e23) (e23)) = (e23)) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> ((op2 (e23) (e23)) = (e20)) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_Hde zenon_H264 zenon_H26a zenon_H26c.
% 40.81/40.98  elim (classic ((op2 (e23) (e23)) = (op2 (e23) (e23)))); [ zenon_intro zenon_H26d | zenon_intro zenon_H26e ].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23))) = ((op2 (e20) (e23)) = (op2 (e23) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H26c.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H26d.
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H26e].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H26f].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) = ((op2 (e23) (e23)) = (op2 (e20) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H26f.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H264.
% 40.81/40.98  cut (((op2 (op2 (e23) (e23)) (e23)) = (op2 (e20) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H269].
% 40.81/40.98  cut (((h4 (e13)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H268].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (e23) (e23)) = (op2 (e23) (e23)))); [ zenon_intro zenon_H26d | zenon_intro zenon_H26e ].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23))) = ((h4 (e13)) = (op2 (e23) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H268.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H26d.
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H26e].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (h4 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H265].
% 40.81/40.98  congruence.
% 40.81/40.98  apply (zenon_L133_); trivial.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  apply (zenon_L134_); trivial.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L135_ *)
% 40.81/40.98  assert (zenon_L136_ : (((op2 (e20) (e20)) = (e22))\/(((op2 (e21) (e20)) = (e22))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e23) (e20)) = (e22))))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e20))\/(((op2 (e22) (e23)) = (e20))\/((op2 (e23) (e23)) = (e20))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e21) (e23)))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e20) (e22)) = (e22)) -> (~((op2 (e20) (e22)) = (op2 (e20) (e23)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (((op1 (e10) (e12)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e12))))) -> (~((op1 (e10) (e12)) = (op1 (e10) (e13)))) -> (~((e11) = (e12))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((h2 (op1 (e10) (e13))) = (op2 (h2 (e10)) (h2 (e13))))) -> ((h2 (e11)) = (e21)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op1 (e10) (e13)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e10) (e13)) = (e11))\/(((op1 (e10) (e13)) = (e12))\/((op1 (e10) (e13)) = (e13))))) -> (~((e10) = (e13))) -> ((op1 (e13) (e13)) = (e13)) -> (~((op2 (e20) (e23)) = (op2 (e22) (e23)))) -> (((op2 (e20) (e23)) = (e20))\/(((op2 (e20) (e23)) = (e21))\/(((op2 (e20) (e23)) = (e22))\/((op2 (e20) (e23)) = (e23))))) -> ((op2 (e23) (e23)) = (e23)) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H100 zenon_Hc3 zenon_Hf7 zenon_Hf1 zenon_H270 zenon_Hd4 zenon_Hb6 zenon_H21d zenon_Hac zenon_H14 zenon_H98 zenon_Hc4 zenon_H109 zenon_H25b zenon_H8b zenon_H4e zenon_H82 zenon_H7c zenon_H252 zenon_H5f zenon_H41 zenon_H227 zenon_H37 zenon_H18 zenon_H23 zenon_H122 zenon_H248 zenon_H117 zenon_H57 zenon_H5a zenon_H59 zenon_H4f zenon_H11d zenon_H233 zenon_H234 zenon_H13 zenon_H231 zenon_H22d zenon_H24c zenon_H24f zenon_H69 zenon_H223 zenon_H25f zenon_Hde zenon_H264 zenon_H26c.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H100); [ zenon_intro zenon_Hc5 | zenon_intro zenon_H101 ].
% 40.81/40.98  apply (zenon_L44_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H101); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H102 ].
% 40.81/40.98  apply (zenon_L58_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H102); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfe ].
% 40.81/40.98  apply (zenon_L57_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H270); [ zenon_intro zenon_Hd3 | zenon_intro zenon_H271 ].
% 40.81/40.98  apply (zenon_L48_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H271); [ zenon_intro zenon_H21c | zenon_intro zenon_H272 ].
% 40.81/40.98  apply (zenon_L117_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H272); [ zenon_intro zenon_H224 | zenon_intro zenon_H26a ].
% 40.81/40.98  apply (zenon_L131_); trivial.
% 40.81/40.98  apply (zenon_L135_); trivial.
% 40.81/40.98  (* end of lemma zenon_L136_ *)
% 40.81/40.98  assert (zenon_L137_ : ((op1 (e13) (e13)) = (e13)) -> ((op1 (e11) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H69 zenon_H132 zenon_H273.
% 40.81/40.98  elim (classic ((op1 (e13) (e13)) = (op1 (e13) (e13)))); [ zenon_intro zenon_H274 | zenon_intro zenon_H275 ].
% 40.81/40.98  cut (((op1 (e13) (e13)) = (op1 (e13) (e13))) = ((op1 (e11) (e13)) = (op1 (e13) (e13)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H273.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H274.
% 40.81/40.98  cut (((op1 (e13) (e13)) = (op1 (e13) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H275].
% 40.81/40.98  cut (((op1 (e13) (e13)) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H276].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op1 (e13) (e13)) = (e13)) = ((op1 (e13) (e13)) = (op1 (e11) (e13)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H276.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H69.
% 40.81/40.98  cut (((e13) = (op1 (e11) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H277].
% 40.81/40.98  cut (((op1 (e13) (e13)) = (op1 (e13) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H275].
% 40.81/40.98  congruence.
% 40.81/40.98  apply zenon_H275. apply refl_equal.
% 40.81/40.98  apply zenon_H277. apply sym_equal. exact zenon_H132.
% 40.81/40.98  apply zenon_H275. apply refl_equal.
% 40.81/40.98  apply zenon_H275. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L137_ *)
% 40.81/40.98  assert (zenon_L138_ : (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e12) (e10)) = (e13)) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H216 zenon_H1fc zenon_H2c zenon_H1fb zenon_H17 zenon_H18 zenon_H23 zenon_H133 zenon_H57 zenon_H69 zenon_H273.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H217 ].
% 40.81/40.98  apply (zenon_L109_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H217); [ zenon_intro zenon_H20f | zenon_intro zenon_H218 ].
% 40.81/40.98  apply (zenon_L113_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H218); [ zenon_intro zenon_H214 | zenon_intro zenon_H132 ].
% 40.81/40.98  apply (zenon_L114_); trivial.
% 40.81/40.98  apply (zenon_L137_); trivial.
% 40.81/40.98  (* end of lemma zenon_L138_ *)
% 40.81/40.98  assert (zenon_L139_ : (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (~((h2 (op1 (e11) (e10))) = (op2 (h2 (e11)) (h2 (e10))))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e20)) = (e23)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e11)) = (e21)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H8b zenon_H4e zenon_H82 zenon_H4f zenon_H7c zenon_H3d zenon_H87 zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H278 zenon_H231 zenon_H1d2 zenon_H98 zenon_H234 zenon_H13 zenon_H14 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8b); [ zenon_intro zenon_H50 | zenon_intro zenon_H8c ].
% 40.81/40.98  apply (zenon_L14_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8c); [ zenon_intro zenon_H83 | zenon_intro zenon_H8d ].
% 40.81/40.98  apply (zenon_L28_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H7d | zenon_intro zenon_H89 ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.98  apply (zenon_L5_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H219); [ zenon_intro zenon_H24 | zenon_intro zenon_H21a ].
% 40.81/40.98  apply (zenon_L5_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H21a); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H21b ].
% 40.81/40.98  cut (((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) = ((h2 (op1 (e11) (e10))) = (op2 (h2 (e11)) (h2 (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H278.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H231.
% 40.81/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e11)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H279].
% 40.81/40.98  cut (((h2 (e13)) = (h2 (op1 (e11) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H27a].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((h2 (op1 (e11) (e10))) = (h2 (op1 (e11) (e10))))); [ zenon_intro zenon_H27b | zenon_intro zenon_H27c ].
% 40.81/40.98  cut (((h2 (op1 (e11) (e10))) = (h2 (op1 (e11) (e10)))) = ((h2 (e13)) = (h2 (op1 (e11) (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H27a.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H27b.
% 40.81/40.98  cut (((h2 (op1 (e11) (e10))) = (h2 (op1 (e11) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H27c].
% 40.81/40.98  cut (((h2 (op1 (e11) (e10))) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H27d].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op1 (e11) (e10)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H27e].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H27e zenon_H1f6).
% 40.81/40.98  apply zenon_H27c. apply refl_equal.
% 40.81/40.98  apply zenon_H27c. apply refl_equal.
% 40.81/40.98  elim (classic ((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10))))); [ zenon_intro zenon_H27f | zenon_intro zenon_H280 ].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10)))) = ((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e11)) (h2 (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H279.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H27f.
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H280].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H281].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op2 (e21) (e20)) = (e23)) = ((op2 (h2 (e11)) (h2 (e10))) = (op2 (op2 (e21) (e21)) (e21)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H281.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H1d2.
% 40.81/40.98  cut (((e23) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H282].
% 40.81/40.98  cut (((op2 (e21) (e20)) = (op2 (h2 (e11)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H283].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10))))); [ zenon_intro zenon_H27f | zenon_intro zenon_H280 ].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10)))) = ((op2 (e21) (e20)) = (op2 (h2 (e11)) (h2 (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H283.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H27f.
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (h2 (e11)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H280].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e10))) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H284].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.81/40.98  cut (((h2 (e11)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H285 zenon_H234).
% 40.81/40.98  apply (zenon_L1_); trivial.
% 40.81/40.98  apply zenon_H280. apply refl_equal.
% 40.81/40.98  apply zenon_H280. apply refl_equal.
% 40.81/40.98  exact (zenon_H282 zenon_H98).
% 40.81/40.98  apply zenon_H280. apply refl_equal.
% 40.81/40.98  apply zenon_H280. apply refl_equal.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H21b); [ zenon_intro zenon_H1fb | zenon_intro zenon_H88 ].
% 40.81/40.98  apply (zenon_L138_); trivial.
% 40.81/40.98  apply (zenon_L30_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.98  apply (zenon_L8_); trivial.
% 40.81/40.98  apply (zenon_L9_); trivial.
% 40.81/40.98  (* end of lemma zenon_L139_ *)
% 40.81/40.98  assert (zenon_L140_ : ((op2 (e23) (e23)) = (e23)) -> ((op2 (e21) (e23)) = (e23)) -> (~((op2 (e21) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_Hde zenon_H18a zenon_H286.
% 40.81/40.98  elim (classic ((op2 (e23) (e23)) = (op2 (e23) (e23)))); [ zenon_intro zenon_H26d | zenon_intro zenon_H26e ].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23))) = ((op2 (e21) (e23)) = (op2 (e23) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H286.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H26d.
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H26e].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H287].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op2 (e23) (e23)) = (e23)) = ((op2 (e23) (e23)) = (op2 (e21) (e23)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H287.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Hde.
% 40.81/40.98  cut (((e23) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H288].
% 40.81/40.98  cut (((op2 (e23) (e23)) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H26e].
% 40.81/40.98  congruence.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  apply zenon_H288. apply sym_equal. exact zenon_H18a.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  apply zenon_H26e. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L140_ *)
% 40.81/40.98  assert (zenon_L141_ : (((op2 (e21) (e20)) = (e23))\/(((op2 (e21) (e21)) = (e23))\/(((op2 (e21) (e22)) = (e23))\/((op2 (e21) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> ((op2 (e20) (e21)) = (e23)) -> ((op2 (e22) (e20)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((e21) = (e23))) -> ((op2 (e21) (e22)) = (e21)) -> ((op2 (e23) (e23)) = (e23)) -> (~((op2 (e21) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H1f2 zenon_H1d8 zenon_Ha1 zenon_H1d7 zenon_H8e zenon_H14 zenon_H98 zenon_H18b zenon_Hcc zenon_Hde zenon_H286.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.81/40.98  apply (zenon_L101_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.81/40.98  apply (zenon_L105_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.81/40.98  apply (zenon_L106_); trivial.
% 40.81/40.98  apply (zenon_L140_); trivial.
% 40.81/40.98  (* end of lemma zenon_L141_ *)
% 40.81/40.98  assert (zenon_L142_ : (~((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op1 (e11) (e13)) = (e12)) -> ((op2 (e21) (e23)) = (e22)) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e11)) = (e21)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H289 zenon_H104 zenon_H148 zenon_H1a0 zenon_Hc4 zenon_H234 zenon_H231 zenon_H98.
% 40.81/40.98  cut (((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H289.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H104.
% 40.81/40.98  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e11)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H28a].
% 40.81/40.98  cut (((h2 (e12)) = (h2 (op1 (e11) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H28b].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((h2 (op1 (e11) (e13))) = (h2 (op1 (e11) (e13))))); [ zenon_intro zenon_H28c | zenon_intro zenon_H28d ].
% 40.81/40.98  cut (((h2 (op1 (e11) (e13))) = (h2 (op1 (e11) (e13)))) = ((h2 (e12)) = (h2 (op1 (e11) (e13))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H28b.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H28c.
% 40.81/40.98  cut (((h2 (op1 (e11) (e13))) = (h2 (op1 (e11) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H28d].
% 40.81/40.98  cut (((h2 (op1 (e11) (e13))) = (h2 (e12)))); [idtac | apply NNPP; zenon_intro zenon_H28e].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op1 (e11) (e13)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H149].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H149 zenon_H148).
% 40.81/40.98  apply zenon_H28d. apply refl_equal.
% 40.81/40.98  apply zenon_H28d. apply refl_equal.
% 40.81/40.98  elim (classic ((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13))))); [ zenon_intro zenon_H28f | zenon_intro zenon_H290 ].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13)))) = ((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e11)) (h2 (e13))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H28a.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H28f.
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H290].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H291].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op2 (e21) (e23)) = (e22)) = ((op2 (h2 (e11)) (h2 (e13))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H291.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H1a0.
% 40.81/40.98  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 40.81/40.98  cut (((op2 (e21) (e23)) = (op2 (h2 (e11)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H292].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13))))); [ zenon_intro zenon_H28f | zenon_intro zenon_H290 ].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13)))) = ((op2 (e21) (e23)) = (op2 (h2 (e11)) (h2 (e13))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H292.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H28f.
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (h2 (e11)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H290].
% 40.81/40.98  cut (((op2 (h2 (e11)) (h2 (e13))) = (op2 (e21) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H293].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.98  cut (((h2 (e11)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H285 zenon_H234).
% 40.81/40.98  apply (zenon_L121_); trivial.
% 40.81/40.98  apply zenon_H290. apply refl_equal.
% 40.81/40.98  apply zenon_H290. apply refl_equal.
% 40.81/40.98  exact (zenon_H113 zenon_Hc4).
% 40.81/40.98  apply zenon_H290. apply refl_equal.
% 40.81/40.98  apply zenon_H290. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L142_ *)
% 40.81/40.98  assert (zenon_L143_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((e11) = (e12))) -> (~((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((op2 (e21) (e23)) = (e22)) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e11)) = (e21)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H3d zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H168 zenon_H64 zenon_H59 zenon_H201 zenon_H20c zenon_H117 zenon_H289 zenon_H104 zenon_H1a0 zenon_Hc4 zenon_H234 zenon_H231 zenon_H98 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.98  apply (zenon_L5_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H219); [ zenon_intro zenon_H24 | zenon_intro zenon_H21a ].
% 40.81/40.98  apply (zenon_L5_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H21a); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H21b ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H168); [ zenon_intro zenon_H83 | zenon_intro zenon_H179 ].
% 40.81/40.98  apply (zenon_L28_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H179); [ zenon_intro zenon_H138 | zenon_intro zenon_H17a ].
% 40.81/40.98  apply (zenon_L112_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H17a); [ zenon_intro zenon_H116 | zenon_intro zenon_H148 ].
% 40.81/40.98  apply (zenon_L64_); trivial.
% 40.81/40.98  apply (zenon_L142_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H21b); [ zenon_intro zenon_H1fb | zenon_intro zenon_H88 ].
% 40.81/40.98  apply (zenon_L138_); trivial.
% 40.81/40.98  apply (zenon_L31_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.98  apply (zenon_L8_); trivial.
% 40.81/40.98  apply (zenon_L9_); trivial.
% 40.81/40.98  (* end of lemma zenon_L143_ *)
% 40.81/40.98  assert (zenon_L144_ : (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e22) (op2 (e22) (e23))) = (e23))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> ((op2 (e20) (e21)) = (e23)) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> (((op2 (e22) (e20)) = (e23))\/(((op2 (e22) (e21)) = (e23))\/(((op2 (e22) (e22)) = (e23))\/((op2 (e22) (e23)) = (e23))))) -> (~((e21) = (e22))) -> ((op2 (e21) (e22)) = (e21)) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((e11) = (e12))) -> (~((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e11)) = (e21)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H1c0 zenon_Hf7 zenon_H1a2 zenon_Hce zenon_H14 zenon_H1dd zenon_Ha1 zenon_H1d2 zenon_H1d8 zenon_H1e8 zenon_H126 zenon_Hcc zenon_H3d zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H168 zenon_H64 zenon_H59 zenon_H201 zenon_H20c zenon_H117 zenon_H289 zenon_H104 zenon_Hc4 zenon_H234 zenon_H231 zenon_H98 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.81/40.98  apply (zenon_L58_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1e8); [ zenon_intro zenon_H1d7 | zenon_intro zenon_H1e9 ].
% 40.81/40.98  apply (zenon_L101_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1e9); [ zenon_intro zenon_H1dc | zenon_intro zenon_H1ea ].
% 40.81/40.98  apply (zenon_L102_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1ea); [ zenon_intro zenon_H1e2 | zenon_intro zenon_H192 ].
% 40.81/40.98  apply (zenon_L103_); trivial.
% 40.81/40.98  apply (zenon_L93_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.81/40.98  apply (zenon_L67_); trivial.
% 40.81/40.98  apply (zenon_L143_); trivial.
% 40.81/40.98  (* end of lemma zenon_L144_ *)
% 40.81/40.98  assert (zenon_L145_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e21) (e20)) = (e23))\/(((op2 (e22) (e20)) = (e23))\/((op2 (e23) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e11)) = (e21)) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((e21) = (e22))) -> (((op2 (e22) (e20)) = (e23))\/(((op2 (e22) (e21)) = (e23))\/(((op2 (e22) (e22)) = (e23))\/((op2 (e22) (e23)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> (~((op2 (e22) (op2 (e22) (e23))) = (e23))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e21) (e23)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e23)) = (e23)) -> ((op2 (e21) (e22)) = (e21)) -> (~((e21) = (e23))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> (((op2 (e21) (e20)) = (e23))\/(((op2 (e21) (e21)) = (e23))\/(((op2 (e21) (e22)) = (e23))\/((op2 (e21) (e23)) = (e23))))) -> (((op2 (e20) (e20)) = (e22))\/(((op2 (e21) (e20)) = (e22))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e23) (e20)) = (e22))))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> (~((e22) = (e23))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H294 zenon_Hac zenon_H14 zenon_H98 zenon_Ha5 zenon_H295 zenon_H97 zenon_H219 zenon_H231 zenon_H234 zenon_H104 zenon_H289 zenon_H20c zenon_H201 zenon_H273 zenon_H1fc zenon_H216 zenon_H126 zenon_H1e8 zenon_H1dd zenon_Hce zenon_H1a2 zenon_H1c0 zenon_H286 zenon_Hde zenon_Hcc zenon_H18b zenon_H8e zenon_H1d8 zenon_H1f2 zenon_H100 zenon_Hc3 zenon_Hf7 zenon_Hc4 zenon_Hf1 zenon_Hfc zenon_Hb2 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.98  apply (zenon_L2_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.98  apply (zenon_L10_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.98  apply (zenon_L11_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.98  apply (zenon_L18_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.98  apply (zenon_L116_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.98  apply (zenon_L21_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H295); [ zenon_intro zenon_H99 | zenon_intro zenon_H297 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H297); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H298 ].
% 40.81/40.98  apply (zenon_L144_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H1d7 | zenon_intro zenon_Hfd ].
% 40.81/40.98  apply (zenon_L141_); trivial.
% 40.81/40.98  apply (zenon_L61_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.81/40.98  apply (zenon_L38_); trivial.
% 40.81/40.98  apply (zenon_L39_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.98  apply (zenon_L17_); trivial.
% 40.81/40.98  apply (zenon_L83_); trivial.
% 40.81/40.98  apply (zenon_L25_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.98  apply (zenon_L26_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_L31_); trivial.
% 40.81/40.98  (* end of lemma zenon_L145_ *)
% 40.81/40.98  assert (zenon_L146_ : (((~((op2 (e20) (op2 (e20) (e20))) = (e20)))/\((~((op2 (e20) (op2 (e20) (e21))) = (e21)))/\((~((op2 (e20) (op2 (e20) (e22))) = (e22)))/\(~((op2 (e20) (op2 (e20) (e23))) = (e23))))))\/(((~((op2 (e21) (op2 (e21) (e20))) = (e20)))/\((~((op2 (e21) (op2 (e21) (e21))) = (e21)))/\((~((op2 (e21) (op2 (e21) (e22))) = (e22)))/\(~((op2 (e21) (op2 (e21) (e23))) = (e23))))))\/(((~((op2 (e22) (op2 (e22) (e20))) = (e20)))/\((~((op2 (e22) (op2 (e22) (e21))) = (e21)))/\((~((op2 (e22) (op2 (e22) (e22))) = (e22)))/\(~((op2 (e22) (op2 (e22) (e23))) = (e23))))))\/((~((op2 (e23) (op2 (e23) (e20))) = (e20)))/\((~((op2 (e23) (op2 (e23) (e21))) = (e21)))/\((~((op2 (e23) (op2 (e23) (e22))) = (e22)))/\(~((op2 (e23) (op2 (e23) (e23))) = (e23))))))))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((e11) = (e12))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e13))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((e22) = (e23))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (((op2 (e20) (e20)) = (e22))\/(((op2 (e21) (e20)) = (e22))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e23) (e20)) = (e22))))) -> (((op2 (e21) (e20)) = (e23))\/(((op2 (e21) (e21)) = (e23))\/(((op2 (e21) (e22)) = (e23))\/((op2 (e21) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (~((e21) = (e23))) -> ((op2 (e21) (e22)) = (e21)) -> ((op2 (e23) (e23)) = (e23)) -> (~((op2 (e21) (e23)) = (op2 (e23) (e23)))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e22)))) -> (~((op2 (e20) (e21)) = (op2 (e22) (e21)))) -> (((op2 (e22) (e20)) = (e23))\/(((op2 (e22) (e21)) = (e23))\/(((op2 (e22) (e22)) = (e23))\/((op2 (e22) (e23)) = (e23))))) -> (~((e21) = (e22))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((h2 (op1 (e11) (e13))) = (op2 (h2 (e11)) (h2 (e13))))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e11)) = (e21)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e21) (e20)) = (e23))\/(((op2 (e22) (e20)) = (e23))\/((op2 (e23) (e20)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> (((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e21)) = (e21))\/(((op2 (e23) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H1bf zenon_Hb6 zenon_Hd9 zenon_H87 zenon_H7c zenon_H4f zenon_H18 zenon_H23 zenon_H82 zenon_H4e zenon_H8b zenon_H79 zenon_H37 zenon_H30 zenon_H17 zenon_H3d zenon_H67 zenon_H64 zenon_H61 zenon_H53 zenon_H5f zenon_H47 zenon_H22 zenon_H6c zenon_H59 zenon_H56 zenon_H42 zenon_H6f zenon_H73 zenon_H167 zenon_H117 zenon_H168 zenon_H133 zenon_H140 zenon_H161 zenon_H150 zenon_H15c zenon_Hb2 zenon_Hfc zenon_Hf1 zenon_Hf7 zenon_Hc3 zenon_H100 zenon_H1f2 zenon_H1d8 zenon_H8e zenon_H18b zenon_Hcc zenon_Hde zenon_H286 zenon_H1c0 zenon_Hce zenon_H1dd zenon_H1e8 zenon_H126 zenon_H216 zenon_H1fc zenon_H273 zenon_H201 zenon_H20c zenon_H289 zenon_H104 zenon_H234 zenon_H231 zenon_H219 zenon_H97 zenon_H295 zenon_Ha5 zenon_Hac zenon_H294 zenon_H1b9 zenon_H1a8 zenon_H1b4 zenon_Hc4 zenon_H98 zenon_H14 zenon_He8.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1bf); [ zenon_intro zenon_H182 | zenon_intro zenon_H1c1 ].
% 40.81/40.98  apply (zenon_L85_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c1); [ zenon_intro zenon_H1c3 | zenon_intro zenon_H1c2 ].
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1c3). zenon_intro zenon_H1c5. zenon_intro zenon_H1c4.
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1c4). zenon_intro zenon_H1c7. zenon_intro zenon_H1c6.
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1c6). zenon_intro zenon_H19b. zenon_intro zenon_H1c8.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.98  apply (zenon_L2_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.98  apply (zenon_L10_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.98  apply (zenon_L11_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.98  apply (zenon_L18_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.98  apply (zenon_L116_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.98  apply (zenon_L21_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H295); [ zenon_intro zenon_H99 | zenon_intro zenon_H297 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H297); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H298 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.81/40.98  apply (zenon_L58_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.81/40.98  apply (zenon_L104_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.81/40.98  apply (zenon_L91_); trivial.
% 40.81/40.98  apply (zenon_L143_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H1d7 | zenon_intro zenon_Hfd ].
% 40.81/40.98  apply (zenon_L141_); trivial.
% 40.81/40.98  apply (zenon_L61_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.81/40.98  apply (zenon_L38_); trivial.
% 40.81/40.98  apply (zenon_L39_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.98  apply (zenon_L17_); trivial.
% 40.81/40.98  apply (zenon_L83_); trivial.
% 40.81/40.98  apply (zenon_L25_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.98  apply (zenon_L26_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_L31_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H1c2); [ zenon_intro zenon_H1cb | zenon_intro zenon_H1b8 ].
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1cb). zenon_intro zenon_H1cd. zenon_intro zenon_H1cc.
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1cc). zenon_intro zenon_H1cf. zenon_intro zenon_H1ce.
% 40.81/40.98  apply (zenon_and_s _ _ zenon_H1ce). zenon_intro zenon_H1d0. zenon_intro zenon_H1a2.
% 40.81/40.98  apply (zenon_L145_); trivial.
% 40.81/40.98  apply (zenon_L97_); trivial.
% 40.81/40.98  (* end of lemma zenon_L146_ *)
% 40.81/40.98  assert (zenon_L147_ : ((e20) = (op2 (e21) (e21))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e20) (e20)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H14 zenon_Hb6 zenon_H29a.
% 40.81/40.98  elim (classic ((op2 (e20) (e20)) = (op2 (e20) (e20)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 40.81/40.98  cut (((op2 (e20) (e20)) = (op2 (e20) (e20))) = ((op2 (e21) (e21)) = (op2 (e20) (e20)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H29a.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H9b.
% 40.81/40.98  cut (((op2 (e20) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 40.81/40.98  cut (((op2 (e20) (e20)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H29b].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e20) (e20)) = (op2 (e21) (e21)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H29b.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H14.
% 40.81/40.98  cut (((op2 (e21) (e21)) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 40.81/40.98  cut (((e20) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hb9].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (e20) (e20)) = (op2 (e20) (e20)))); [ zenon_intro zenon_H9b | zenon_intro zenon_H9c ].
% 40.81/40.98  cut (((op2 (e20) (e20)) = (op2 (e20) (e20))) = ((e20) = (op2 (e20) (e20)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_Hb9.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H9b.
% 40.81/40.98  cut (((op2 (e20) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 40.81/40.98  cut (((op2 (e20) (e20)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H189].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H189 zenon_Hb6).
% 40.81/40.98  apply zenon_H9c. apply refl_equal.
% 40.81/40.98  apply zenon_H9c. apply refl_equal.
% 40.81/40.98  apply zenon_H90. apply refl_equal.
% 40.81/40.98  apply zenon_H9c. apply refl_equal.
% 40.81/40.98  apply zenon_H9c. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L147_ *)
% 40.81/40.98  assert (zenon_L148_ : ((e10) = (op1 (e11) (e11))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e10) (e10)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H18 zenon_H41 zenon_H29c.
% 40.81/40.98  elim (classic ((op1 (e10) (e10)) = (op1 (e10) (e10)))); [ zenon_intro zenon_H26 | zenon_intro zenon_H27 ].
% 40.81/40.98  cut (((op1 (e10) (e10)) = (op1 (e10) (e10))) = ((op1 (e11) (e11)) = (op1 (e10) (e10)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H29c.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H26.
% 40.81/40.98  cut (((op1 (e10) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H27].
% 40.81/40.98  cut (((op1 (e10) (e10)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H29d].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((e10) = (op1 (e11) (e11))) = ((op1 (e10) (e10)) = (op1 (e11) (e11)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H29d.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H18.
% 40.81/40.98  cut (((op1 (e11) (e11)) = (op1 (e11) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 40.81/40.98  cut (((e10) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op1 (e10) (e10)) = (op1 (e10) (e10)))); [ zenon_intro zenon_H26 | zenon_intro zenon_H27 ].
% 40.81/40.98  cut (((op1 (e10) (e10)) = (op1 (e10) (e10))) = ((e10) = (op1 (e10) (e10)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H44.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H26.
% 40.81/40.98  cut (((op1 (e10) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H27].
% 40.81/40.98  cut (((op1 (e10) (e10)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H171].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H171 zenon_H41).
% 40.81/40.98  apply zenon_H27. apply refl_equal.
% 40.81/40.98  apply zenon_H27. apply refl_equal.
% 40.81/40.98  apply zenon_H1a. apply refl_equal.
% 40.81/40.98  apply zenon_H27. apply refl_equal.
% 40.81/40.98  apply zenon_H27. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L148_ *)
% 40.81/40.98  assert (zenon_L149_ : ((op1 (e12) (e10)) = (e10)) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e12) (e10)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H29e zenon_H18 zenon_H41 zenon_H29f.
% 40.81/40.98  elim (classic ((op1 (e12) (e10)) = (op1 (e12) (e10)))); [ zenon_intro zenon_H7f | zenon_intro zenon_H80 ].
% 40.81/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10))) = ((op1 (e10) (e10)) = (op1 (e12) (e10)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H29f.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H7f.
% 40.81/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H80].
% 40.81/40.98  cut (((op1 (e12) (e10)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H2a0].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((e10) = (op1 (e11) (e11))) = ((op1 (e12) (e10)) = (op1 (e10) (e10)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2a0.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H18.
% 40.81/40.98  cut (((op1 (e11) (e11)) = (op1 (e10) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H29c].
% 40.81/40.98  cut (((e10) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H2a1].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op1 (e12) (e10)) = (op1 (e12) (e10)))); [ zenon_intro zenon_H7f | zenon_intro zenon_H80 ].
% 40.81/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10))) = ((e10) = (op1 (e12) (e10)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2a1.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H7f.
% 40.81/40.98  cut (((op1 (e12) (e10)) = (op1 (e12) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H80].
% 40.81/40.98  cut (((op1 (e12) (e10)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H2a2].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H2a2 zenon_H29e).
% 40.81/40.98  apply zenon_H80. apply refl_equal.
% 40.81/40.98  apply zenon_H80. apply refl_equal.
% 40.81/40.98  apply (zenon_L148_); trivial.
% 40.81/40.98  apply zenon_H80. apply refl_equal.
% 40.81/40.98  apply zenon_H80. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L149_ *)
% 40.81/40.98  assert (zenon_L150_ : ((h2 (e11)) = (e21)) -> ((op1 (e12) (e10)) = (e11)) -> (~((e21) = (h2 (op1 (e12) (e10))))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H234 zenon_H2a3 zenon_H2a4.
% 40.81/40.98  elim (classic ((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10))))); [ zenon_intro zenon_H2a5 | zenon_intro zenon_H2a6 ].
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10)))) = ((e21) = (h2 (op1 (e12) (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2a4.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2a5.
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2a6].
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H2a7].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h2 (e11)) = (e21)) = ((h2 (op1 (e12) (e10))) = (e21))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2a7.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H234.
% 40.81/40.98  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.81/40.98  cut (((h2 (e11)) = (h2 (op1 (e12) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2a8].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10))))); [ zenon_intro zenon_H2a5 | zenon_intro zenon_H2a6 ].
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10)))) = ((h2 (e11)) = (h2 (op1 (e12) (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2a8.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2a5.
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (h2 (op1 (e12) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2a6].
% 40.81/40.98  cut (((h2 (op1 (e12) (e10))) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H2a9].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op1 (e12) (e10)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H2aa].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H2aa zenon_H2a3).
% 40.81/40.98  apply zenon_H2a6. apply refl_equal.
% 40.81/40.98  apply zenon_H2a6. apply refl_equal.
% 40.81/40.98  apply zenon_H95. apply refl_equal.
% 40.81/40.98  apply zenon_H2a6. apply refl_equal.
% 40.81/40.98  apply zenon_H2a6. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L150_ *)
% 40.81/40.98  assert (zenon_L151_ : ((op2 (e22) (e20)) = (e21)) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e11)) = (e21)) -> ((op1 (e12) (e10)) = (e11)) -> (~((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H2ab zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H234 zenon_H2a3 zenon_H2ac.
% 40.81/40.98  elim (classic ((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10))))); [ zenon_intro zenon_H2ad | zenon_intro zenon_H2ae ].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10)))) = ((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2ac.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2ad.
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2ae].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (h2 (op1 (e12) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2af].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op2 (e22) (e20)) = (e21)) = ((op2 (h2 (e12)) (h2 (e10))) = (h2 (op1 (e12) (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2af.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2ab.
% 40.81/40.98  cut (((e21) = (h2 (op1 (e12) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2a4].
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (h2 (e12)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2b0].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10))))); [ zenon_intro zenon_H2ad | zenon_intro zenon_H2ae ].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10)))) = ((op2 (e22) (e20)) = (op2 (h2 (e12)) (h2 (e10))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2b0.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2ad.
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (op2 (h2 (e12)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H2ae].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e10))) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2b1].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.81/40.98  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/40.98  congruence.
% 40.81/40.98  apply (zenon_L62_); trivial.
% 40.81/40.98  apply (zenon_L1_); trivial.
% 40.81/40.98  apply zenon_H2ae. apply refl_equal.
% 40.81/40.98  apply zenon_H2ae. apply refl_equal.
% 40.81/40.98  apply (zenon_L150_); trivial.
% 40.81/40.98  apply zenon_H2ae. apply refl_equal.
% 40.81/40.98  apply zenon_H2ae. apply refl_equal.
% 40.81/40.98  (* end of lemma zenon_L151_ *)
% 40.81/40.98  assert (zenon_L152_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e13)) = (e13)) -> ((op1 (e11) (e12)) = (e11)) -> (~((e11) = (e13))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((op2 (e22) (e20)) = (e21)) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e11)) = (e21)) -> (~((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e12) (e10)) = (e10))\/(((op1 (e12) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e12) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H3d zenon_H22 zenon_H273 zenon_H69 zenon_H57 zenon_H133 zenon_H17 zenon_H1fc zenon_H216 zenon_H7c zenon_H4f zenon_H2ab zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H234 zenon_H2ac zenon_H41 zenon_H29f zenon_H2b2 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.98  apply (zenon_L5_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2b2); [ zenon_intro zenon_H29e | zenon_intro zenon_H2b3 ].
% 40.81/40.98  apply (zenon_L149_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2b3); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2b4 ].
% 40.81/40.98  apply (zenon_L151_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2b4); [ zenon_intro zenon_H7d | zenon_intro zenon_H1fb ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_L138_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.98  apply (zenon_L8_); trivial.
% 40.81/40.98  apply (zenon_L9_); trivial.
% 40.81/40.98  (* end of lemma zenon_L152_ *)
% 40.81/40.98  assert (zenon_L153_ : (((op2 (e22) (e20)) = (e20))\/(((op2 (e22) (e20)) = (e21))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e22) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e22) (e20)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (((op1 (e12) (e10)) = (e10))\/(((op1 (e12) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e12) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e12) (e10)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))) -> ((h2 (e11)) = (e21)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e20) (e21)) = (e23)) -> ((op2 (e21) (e20)) = (e23)) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H2b5 zenon_H2b6 zenon_Hb6 zenon_H37 zenon_H18 zenon_H23 zenon_H30 zenon_H2b2 zenon_H29f zenon_H41 zenon_H2ac zenon_H234 zenon_H13 zenon_H104 zenon_H4f zenon_H7c zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H22 zenon_H3d zenon_Hc4 zenon_Hf1 zenon_H98 zenon_Ha1 zenon_H1d2 zenon_H14 zenon_H1d8.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2b5); [ zenon_intro zenon_H2b8 | zenon_intro zenon_H2b7 ].
% 40.81/40.98  elim (classic ((op2 (e22) (e20)) = (op2 (e22) (e20)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ].
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (e22) (e20))) = ((op2 (e20) (e20)) = (op2 (e22) (e20)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2b6.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Hf4.
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2b9].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e22) (e20)) = (op2 (e20) (e20)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2b9.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H14.
% 40.81/40.98  cut (((op2 (e21) (e21)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H29a].
% 40.81/40.98  cut (((e20) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2ba].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (e22) (e20)) = (op2 (e22) (e20)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ].
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (e22) (e20))) = ((e20) = (op2 (e22) (e20)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2ba.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_Hf4.
% 40.81/40.98  cut (((op2 (e22) (e20)) = (op2 (e22) (e20)))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 40.81/40.98  cut (((op2 (e22) (e20)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H2bb].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H2bb zenon_H2b8).
% 40.81/40.98  apply zenon_Hf5. apply refl_equal.
% 40.81/40.98  apply zenon_Hf5. apply refl_equal.
% 40.81/40.98  apply (zenon_L147_); trivial.
% 40.81/40.98  apply zenon_Hf5. apply refl_equal.
% 40.81/40.98  apply zenon_Hf5. apply refl_equal.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2b7); [ zenon_intro zenon_H2ab | zenon_intro zenon_H2bc ].
% 40.81/40.98  apply (zenon_L152_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H2bc); [ zenon_intro zenon_Hf2 | zenon_intro zenon_H1d7 ].
% 40.81/40.98  apply (zenon_L57_); trivial.
% 40.81/40.98  apply (zenon_L101_); trivial.
% 40.81/40.98  (* end of lemma zenon_L153_ *)
% 40.81/40.98  assert (zenon_L154_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> ((e20) = (op2 (e21) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e22)))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e21) (e20)) = (e23))\/(((op2 (e22) (e20)) = (e23))\/((op2 (e23) (e20)) = (e23))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e21)))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((h2 (e11)) = (e21)) -> (~((h2 (op1 (e12) (e10))) = (op2 (h2 (e12)) (h2 (e10))))) -> (~((op1 (e10) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e12) (e10)) = (e10))\/(((op1 (e12) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e12) (e10)) = (e13))))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e22) (e20)))) -> (((op2 (e22) (e20)) = (e20))\/(((op2 (e22) (e20)) = (e21))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e22) (e20)) = (e23))))) -> (~((op2 (e21) (e23)) = (op2 (e23) (e23)))) -> ((op2 (e23) (e23)) = (e23)) -> ((op2 (e21) (e22)) = (e21)) -> (~((e21) = (e23))) -> (~((op2 (e20) (e21)) = (op2 (e21) (e21)))) -> (~((op2 (e21) (e20)) = (op2 (e22) (e20)))) -> (((op2 (e21) (e20)) = (e23))\/(((op2 (e21) (e21)) = (e23))\/(((op2 (e21) (e22)) = (e23))\/((op2 (e21) (e23)) = (e23))))) -> (((op2 (e20) (e20)) = (e22))\/(((op2 (e21) (e20)) = (e22))\/(((op2 (e22) (e20)) = (e22))\/((op2 (e23) (e20)) = (e22))))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e22) (e20)) = (op2 (e23) (e20)))) -> (~((e22) = (e23))) -> (((op2 (e20) (e20)) = (e23))\/(((op2 (e20) (e21)) = (e23))\/(((op2 (e20) (e22)) = (e23))\/((op2 (e20) (e23)) = (e23))))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H294 zenon_Hac zenon_H14 zenon_H98 zenon_Ha5 zenon_H295 zenon_H97 zenon_H273 zenon_H1fc zenon_H216 zenon_H104 zenon_H13 zenon_H234 zenon_H2ac zenon_H29f zenon_H2b2 zenon_Hb6 zenon_H2b6 zenon_H2b5 zenon_H286 zenon_Hde zenon_Hcc zenon_H18b zenon_H8e zenon_H1d8 zenon_H1f2 zenon_H100 zenon_Hc3 zenon_Hf7 zenon_Hc4 zenon_Hf1 zenon_Hfc zenon_Hb2 zenon_H201 zenon_H20c zenon_H219 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.98  apply (zenon_L2_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.98  apply (zenon_L10_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.98  apply (zenon_L11_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.98  apply (zenon_L18_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.98  apply (zenon_L116_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.98  apply (zenon_L21_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H295); [ zenon_intro zenon_H99 | zenon_intro zenon_H297 ].
% 40.81/40.98  apply (zenon_L35_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H297); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H298 ].
% 40.81/40.98  apply (zenon_L153_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H1d7 | zenon_intro zenon_Hfd ].
% 40.81/40.98  apply (zenon_L141_); trivial.
% 40.81/40.98  apply (zenon_L61_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.81/40.98  apply (zenon_L38_); trivial.
% 40.81/40.98  apply (zenon_L39_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.98  apply (zenon_L17_); trivial.
% 40.81/40.98  apply (zenon_L83_); trivial.
% 40.81/40.98  apply (zenon_L25_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.98  apply (zenon_L26_); trivial.
% 40.81/40.98  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.98  apply (zenon_L27_); trivial.
% 40.81/40.98  apply (zenon_L31_); trivial.
% 40.81/40.98  (* end of lemma zenon_L154_ *)
% 40.81/40.98  assert (zenon_L155_ : (~((h2 (op1 (e12) (e12))) = (op2 (h2 (e12)) (h2 (e12))))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((op1 (e12) (e12)) = (e13)) -> ((op2 (e22) (e22)) = (e23)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> False).
% 40.81/40.98  do 0 intro. intros zenon_H2bd zenon_H231 zenon_H206 zenon_H1e2 zenon_H98 zenon_H104 zenon_Hc4.
% 40.81/40.98  cut (((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) = ((h2 (op1 (e12) (e12))) = (op2 (h2 (e12)) (h2 (e12))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2bd.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H231.
% 40.81/40.98  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e12)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2be].
% 40.81/40.98  cut (((h2 (e13)) = (h2 (op1 (e12) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2bf].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((h2 (op1 (e12) (e12))) = (h2 (op1 (e12) (e12))))); [ zenon_intro zenon_H2c0 | zenon_intro zenon_H2c1 ].
% 40.81/40.98  cut (((h2 (op1 (e12) (e12))) = (h2 (op1 (e12) (e12)))) = ((h2 (e13)) = (h2 (op1 (e12) (e12))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2bf.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2c0.
% 40.81/40.98  cut (((h2 (op1 (e12) (e12))) = (h2 (op1 (e12) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2c1].
% 40.81/40.98  cut (((h2 (op1 (e12) (e12))) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H2c2].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op1 (e12) (e12)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H20b].
% 40.81/40.98  congruence.
% 40.81/40.98  exact (zenon_H20b zenon_H206).
% 40.81/40.98  apply zenon_H2c1. apply refl_equal.
% 40.81/40.98  apply zenon_H2c1. apply refl_equal.
% 40.81/40.98  elim (classic ((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12))))); [ zenon_intro zenon_H2c3 | zenon_intro zenon_H2c4 ].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12)))) = ((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e12)) (h2 (e12))))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2be.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H2c3.
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2c4].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H2c5].
% 40.81/40.98  congruence.
% 40.81/40.98  cut (((op2 (e22) (e22)) = (e23)) = ((op2 (h2 (e12)) (h2 (e12))) = (op2 (op2 (e21) (e21)) (e21)))).
% 40.81/40.98  intro zenon_D_pnotp.
% 40.81/40.98  apply zenon_H2c5.
% 40.81/40.98  rewrite <- zenon_D_pnotp.
% 40.81/40.98  exact zenon_H1e2.
% 40.81/40.98  cut (((e23) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H282].
% 40.81/40.98  cut (((op2 (e22) (e22)) = (op2 (h2 (e12)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2c6].
% 40.81/40.98  congruence.
% 40.81/40.98  elim (classic ((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12))))); [ zenon_intro zenon_H2c3 | zenon_intro zenon_H2c4 ].
% 40.81/40.98  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12)))) = ((op2 (e22) (e22)) = (op2 (h2 (e12)) (h2 (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2c6.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2c3.
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (h2 (e12)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2c4].
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e12))) = (op2 (e22) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H2c7].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/40.99  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L62_); trivial.
% 40.81/40.99  apply (zenon_L62_); trivial.
% 40.81/40.99  apply zenon_H2c4. apply refl_equal.
% 40.81/40.99  apply zenon_H2c4. apply refl_equal.
% 40.81/40.99  exact (zenon_H282 zenon_H98).
% 40.81/40.99  apply zenon_H2c4. apply refl_equal.
% 40.81/40.99  apply zenon_H2c4. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L155_ *)
% 40.81/40.99  assert (zenon_L156_ : (~((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e12)))) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e11) (e10)) = (e13)) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e12) (e12)) = (e13)) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2c8 zenon_H18 zenon_H1f6 zenon_H2c zenon_H206.
% 40.81/40.99  cut (((op1 (e11) (e10)) = (e13)) = ((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e12)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2c8.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H1f6.
% 40.81/40.99  cut (((e13) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H20a].
% 40.81/40.99  cut (((op1 (e11) (e10)) = (op1 (op1 (e11) (e11)) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H2c9].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11)))); [ zenon_intro zenon_H1f9 | zenon_intro zenon_H1fa ].
% 40.81/40.99  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e11) (e10)) = (op1 (op1 (e11) (e11)) (e11)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2c9.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H1f9.
% 40.81/40.99  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (op1 (e11) (e11)) (e11)))); [idtac | apply NNPP; zenon_intro zenon_H1fa].
% 40.81/40.99  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e11) (e10)))); [idtac | apply NNPP; zenon_intro zenon_H1f5].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L108_); trivial.
% 40.81/40.99  apply zenon_H1fa. apply refl_equal.
% 40.81/40.99  apply zenon_H1fa. apply refl_equal.
% 40.81/40.99  apply zenon_H20a. apply sym_equal. exact zenon_H206.
% 40.81/40.99  (* end of lemma zenon_L156_ *)
% 40.81/40.99  assert (zenon_L157_ : ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((op1 (e12) (e13)) = (e13)) -> ((op1 (e12) (e12)) = (e13)) -> ((e10) = (op1 (e11) (e11))) -> ((op1 (e11) (e10)) = (e13)) -> ((op1 (e10) (e11)) = (e13)) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H23 zenon_H13a zenon_H206 zenon_H18 zenon_H1f6 zenon_H2c zenon_H2ca.
% 40.81/40.99  elim (classic ((op1 (e12) (e13)) = (op1 (e12) (e13)))); [ zenon_intro zenon_H13b | zenon_intro zenon_H13c ].
% 40.81/40.99  cut (((op1 (e12) (e13)) = (op1 (e12) (e13))) = ((op1 (e12) (e12)) = (op1 (e12) (e13)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2ca.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H13b.
% 40.81/40.99  cut (((op1 (e12) (e13)) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13c].
% 40.81/40.99  cut (((op1 (e12) (e13)) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H2cb].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((e13) = (op1 (op1 (e11) (e11)) (e11))) = ((op1 (e12) (e13)) = (op1 (e12) (e12)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2cb.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H23.
% 40.81/40.99  cut (((op1 (op1 (e11) (e11)) (e11)) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H2c8].
% 40.81/40.99  cut (((e13) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13e].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op1 (e12) (e13)) = (op1 (e12) (e13)))); [ zenon_intro zenon_H13b | zenon_intro zenon_H13c ].
% 40.81/40.99  cut (((op1 (e12) (e13)) = (op1 (e12) (e13))) = ((e13) = (op1 (e12) (e13)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H13e.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H13b.
% 40.81/40.99  cut (((op1 (e12) (e13)) = (op1 (e12) (e13)))); [idtac | apply NNPP; zenon_intro zenon_H13c].
% 40.81/40.99  cut (((op1 (e12) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H13f].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H13f zenon_H13a).
% 40.81/40.99  apply zenon_H13c. apply refl_equal.
% 40.81/40.99  apply zenon_H13c. apply refl_equal.
% 40.81/40.99  apply (zenon_L156_); trivial.
% 40.81/40.99  apply zenon_H13c. apply refl_equal.
% 40.81/40.99  apply zenon_H13c. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L157_ *)
% 40.81/40.99  assert (zenon_L158_ : (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((op1 (e11) (e12)) = (e11)) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e11) (e10)) = (e13)) -> ((op1 (e12) (e13)) = (e13)) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((e11) = (e12))) -> ((op1 (e10) (e10)) = (e10)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2cc zenon_H30 zenon_H57 zenon_H2ca zenon_H2c zenon_H1f6 zenon_H13a zenon_H6c zenon_H5f zenon_H73 zenon_H18 zenon_H23 zenon_H4f zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H37 zenon_H133 zenon_H168 zenon_H82 zenon_H117 zenon_H41 zenon_H167 zenon_H5a zenon_H64 zenon_H67.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2cc); [ zenon_intro zenon_H2f | zenon_intro zenon_H2cd ].
% 40.81/40.99  apply (zenon_L8_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2cd); [ zenon_intro zenon_H214 | zenon_intro zenon_H2ce ].
% 40.81/40.99  apply (zenon_L114_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2ce); [ zenon_intro zenon_H206 | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L157_); trivial.
% 40.81/40.99  apply (zenon_L83_); trivial.
% 40.81/40.99  (* end of lemma zenon_L158_ *)
% 40.81/40.99  assert (zenon_L159_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e22) (e22)) = (e23)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> (~((h2 (op1 (e12) (e12))) = (op2 (h2 (e12)) (h2 (e12))))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> ((op1 (e10) (e10)) = (e10)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H3d zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H20c zenon_H201 zenon_Hc4 zenon_H104 zenon_H98 zenon_H1e2 zenon_H231 zenon_H2bd zenon_H2cc zenon_H2ca zenon_H6c zenon_H5f zenon_H73 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H168 zenon_H117 zenon_H41 zenon_H167 zenon_H5a zenon_H64 zenon_H67 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.99  apply (zenon_L5_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H219); [ zenon_intro zenon_H24 | zenon_intro zenon_H21a ].
% 40.81/40.99  apply (zenon_L5_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H21a); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H21b ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20c); [ zenon_intro zenon_H1fb | zenon_intro zenon_H20d ].
% 40.81/40.99  apply (zenon_L109_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20d); [ zenon_intro zenon_H200 | zenon_intro zenon_H20e ].
% 40.81/40.99  apply (zenon_L110_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20e); [ zenon_intro zenon_H206 | zenon_intro zenon_H13a ].
% 40.81/40.99  apply (zenon_L155_); trivial.
% 40.81/40.99  apply (zenon_L158_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H21b); [ zenon_intro zenon_H1fb | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L138_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.99  apply (zenon_L8_); trivial.
% 40.81/40.99  apply (zenon_L9_); trivial.
% 40.81/40.99  (* end of lemma zenon_L159_ *)
% 40.81/40.99  assert (zenon_L160_ : ((op2 (e22) (e23)) = (e20)) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e21) (e21)) = (op2 (h2 (e12)) (h2 (e13))))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H224 zenon_H104 zenon_Hc4 zenon_H231 zenon_H98 zenon_H14 zenon_H2cf.
% 40.81/40.99  elim (classic ((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13))))); [ zenon_intro zenon_H2d0 | zenon_intro zenon_H2d1 ].
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13)))) = ((op2 (e21) (e21)) = (op2 (h2 (e12)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2cf.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2d0.
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2d1].
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H2d2].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e22) (e23)) = (e20)) = ((op2 (h2 (e12)) (h2 (e13))) = (op2 (e21) (e21)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2d2.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H224.
% 40.81/40.99  cut (((e20) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H2d3].
% 40.81/40.99  cut (((op2 (e22) (e23)) = (op2 (h2 (e12)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2d4].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13))))); [ zenon_intro zenon_H2d0 | zenon_intro zenon_H2d1 ].
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13)))) = ((op2 (e22) (e23)) = (op2 (h2 (e12)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2d4.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2d0.
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (h2 (e12)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2d1].
% 40.81/40.99  cut (((op2 (h2 (e12)) (h2 (e13))) = (op2 (e22) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H2d5].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.99  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L62_); trivial.
% 40.81/40.99  apply (zenon_L121_); trivial.
% 40.81/40.99  apply zenon_H2d1. apply refl_equal.
% 40.81/40.99  apply zenon_H2d1. apply refl_equal.
% 40.81/40.99  exact (zenon_H2d3 zenon_H14).
% 40.81/40.99  apply zenon_H2d1. apply refl_equal.
% 40.81/40.99  apply zenon_H2d1. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L160_ *)
% 40.81/40.99  assert (zenon_L161_ : (~((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((op1 (e12) (e13)) = (e10)) -> ((op2 (e22) (e23)) = (e20)) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2d6 zenon_H13 zenon_H22e zenon_H224 zenon_H14 zenon_H104 zenon_Hc4 zenon_H231 zenon_H98.
% 40.81/40.99  cut (((h2 (e10)) = (op2 (e21) (e21))) = ((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2d6.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H13.
% 40.81/40.99  cut (((op2 (e21) (e21)) = (op2 (h2 (e12)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2cf].
% 40.81/40.99  cut (((h2 (e10)) = (h2 (op1 (e12) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2d7].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e12) (e13))) = (h2 (op1 (e12) (e13))))); [ zenon_intro zenon_H2d8 | zenon_intro zenon_H2d9 ].
% 40.81/40.99  cut (((h2 (op1 (e12) (e13))) = (h2 (op1 (e12) (e13)))) = ((h2 (e10)) = (h2 (op1 (e12) (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2d7.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2d8.
% 40.81/40.99  cut (((h2 (op1 (e12) (e13))) = (h2 (op1 (e12) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H2d9].
% 40.81/40.99  cut (((h2 (op1 (e12) (e13))) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H2da].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e12) (e13)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H2db].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H2db zenon_H22e).
% 40.81/40.99  apply zenon_H2d9. apply refl_equal.
% 40.81/40.99  apply zenon_H2d9. apply refl_equal.
% 40.81/40.99  apply (zenon_L160_); trivial.
% 40.81/40.99  (* end of lemma zenon_L161_ *)
% 40.81/40.99  assert (zenon_L162_ : (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((op2 (e22) (e23)) = (e20)) -> ((h2 (e10)) = (op2 (e21) (e21))) -> (~((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))) -> (~((e10) = (e13))) -> ((op1 (e13) (e13)) = (e13)) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H252 zenon_H5f zenon_H41 zenon_H227 zenon_H18 zenon_H98 zenon_H231 zenon_Hc4 zenon_H104 zenon_H14 zenon_H224 zenon_H13 zenon_H2d6 zenon_H24f zenon_H69.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H252); [ zenon_intro zenon_H5e | zenon_intro zenon_H253 ].
% 40.81/40.99  apply (zenon_L18_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H253); [ zenon_intro zenon_H226 | zenon_intro zenon_H254 ].
% 40.81/40.99  apply (zenon_L119_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H254); [ zenon_intro zenon_H22e | zenon_intro zenon_H250 ].
% 40.81/40.99  apply (zenon_L161_); trivial.
% 40.81/40.99  apply (zenon_L127_); trivial.
% 40.81/40.99  (* end of lemma zenon_L162_ *)
% 40.81/40.99  assert (zenon_L163_ : ((op2 (e23) (e20)) = (e23)) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_Hfd zenon_H1d2 zenon_Hf7.
% 40.81/40.99  elim (classic ((op2 (e23) (e20)) = (op2 (e23) (e20)))); [ zenon_intro zenon_H2dc | zenon_intro zenon_H2dd ].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20))) = ((op2 (e21) (e20)) = (op2 (e23) (e20)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_Hf7.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2dc.
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2dd].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2de].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e23) (e20)) = (e23)) = ((op2 (e23) (e20)) = (op2 (e21) (e20)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2de.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_Hfd.
% 40.81/40.99  cut (((e23) = (op2 (e21) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H1d3].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2dd].
% 40.81/40.99  congruence.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  apply zenon_H1d3. apply sym_equal. exact zenon_H1d2.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L163_ *)
% 40.81/40.99  assert (zenon_L164_ : (((op2 (e23) (e20)) = (e23))\/(((op2 (e23) (e21)) = (e23))\/(((op2 (e23) (e22)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> ((op2 (e21) (e23)) = (e21)) -> (~((e21) = (e23))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> ((op2 (e23) (e23)) = (e20)) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2df zenon_Hf7 zenon_H1d2 zenon_He8 zenon_Hdc zenon_H98 zenon_H190 zenon_Hd9 zenon_Hd7 zenon_H18b zenon_H14 zenon_Hac zenon_H198 zenon_H264 zenon_H26a zenon_H26c.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2df); [ zenon_intro zenon_Hfd | zenon_intro zenon_H2e0 ].
% 40.81/40.99  apply (zenon_L163_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2e0); [ zenon_intro zenon_He7 | zenon_intro zenon_H2e1 ].
% 40.81/40.99  apply (zenon_L55_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2e1); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 40.81/40.99  apply (zenon_L89_); trivial.
% 40.81/40.99  apply (zenon_L135_); trivial.
% 40.81/40.99  (* end of lemma zenon_L164_ *)
% 40.81/40.99  assert (zenon_L165_ : (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e20))\/(((op2 (e22) (e23)) = (e20))\/((op2 (e23) (e23)) = (e20))))) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e21) (e23)))) -> ((op1 (e13) (e13)) = (e13)) -> (~((e10) = (e13))) -> (~((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> ((op1 (e10) (e10)) = (e10)) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (((op2 (e23) (e20)) = (e23))\/(((op2 (e23) (e21)) = (e23))\/(((op2 (e23) (e22)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> ((op2 (e21) (e23)) = (e21)) -> (~((e21) = (e23))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H270 zenon_Hd4 zenon_Hb6 zenon_H21d zenon_H69 zenon_H24f zenon_H2d6 zenon_H13 zenon_H104 zenon_Hc4 zenon_H231 zenon_H18 zenon_H227 zenon_H41 zenon_H5f zenon_H252 zenon_H2df zenon_Hf7 zenon_H1d2 zenon_He8 zenon_Hdc zenon_H98 zenon_H190 zenon_Hd9 zenon_Hd7 zenon_H18b zenon_H14 zenon_Hac zenon_H198 zenon_H264 zenon_H26c.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H270); [ zenon_intro zenon_Hd3 | zenon_intro zenon_H271 ].
% 40.81/40.99  apply (zenon_L48_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H271); [ zenon_intro zenon_H21c | zenon_intro zenon_H272 ].
% 40.81/40.99  apply (zenon_L117_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H272); [ zenon_intro zenon_H224 | zenon_intro zenon_H26a ].
% 40.81/40.99  apply (zenon_L162_); trivial.
% 40.81/40.99  apply (zenon_L164_); trivial.
% 40.81/40.99  (* end of lemma zenon_L165_ *)
% 40.81/40.99  assert (zenon_L166_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> ((op2 (e23) (e23)) = (e23)) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e10))\/(((op1 (e12) (e13)) = (e10))\/((op1 (e13) (e13)) = (e10))))) -> (~((op1 (e11) (e11)) = (op1 (e11) (e13)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> (~((h2 (op1 (e12) (e13))) = (op2 (h2 (e12)) (h2 (e13))))) -> (~((e10) = (e13))) -> (~((op2 (e21) (e21)) = (op2 (e21) (e23)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e23)) = (e20))\/(((op2 (e21) (e23)) = (e20))\/(((op2 (e22) (e23)) = (e20))\/((op2 (e23) (e23)) = (e20))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H294 zenon_H26c zenon_H264 zenon_Hde zenon_H252 zenon_H227 zenon_H98 zenon_H231 zenon_Hc4 zenon_H104 zenon_H14 zenon_H13 zenon_H2d6 zenon_H24f zenon_H21d zenon_Hb6 zenon_Hd4 zenon_H270 zenon_H216 zenon_H1fc zenon_H201 zenon_H20c zenon_H219 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.99  apply (zenon_L2_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.99  apply (zenon_L10_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.99  apply (zenon_L11_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.99  apply (zenon_L18_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.99  apply (zenon_L116_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.99  apply (zenon_L21_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H270); [ zenon_intro zenon_Hd3 | zenon_intro zenon_H271 ].
% 40.81/40.99  apply (zenon_L48_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H271); [ zenon_intro zenon_H21c | zenon_intro zenon_H272 ].
% 40.81/40.99  apply (zenon_L117_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H272); [ zenon_intro zenon_H224 | zenon_intro zenon_H26a ].
% 40.81/40.99  apply (zenon_L162_); trivial.
% 40.81/40.99  apply (zenon_L135_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L17_); trivial.
% 40.81/40.99  apply (zenon_L83_); trivial.
% 40.81/40.99  apply (zenon_L25_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.99  apply (zenon_L26_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L27_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  (* end of lemma zenon_L166_ *)
% 40.81/40.99  assert (zenon_L167_ : (~((h2 (op1 (e13) (e11))) = (op2 (h2 (e13)) (h2 (e11))))) -> ((op1 (e13) (e11)) = (e11)) -> ((op2 (e23) (e21)) = (e21)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e11)) = (e21)) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2e2 zenon_H155 zenon_H1ad zenon_H231 zenon_H98 zenon_H234.
% 40.81/40.99  cut (((h2 (e11)) = (e21)) = ((h2 (op1 (e13) (e11))) = (op2 (h2 (e13)) (h2 (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2e2.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H234.
% 40.81/40.99  cut (((e21) = (op2 (h2 (e13)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2e3].
% 40.81/40.99  cut (((h2 (e11)) = (h2 (op1 (e13) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2e4].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e13) (e11))) = (h2 (op1 (e13) (e11))))); [ zenon_intro zenon_H2e5 | zenon_intro zenon_H2e6 ].
% 40.81/40.99  cut (((h2 (op1 (e13) (e11))) = (h2 (op1 (e13) (e11)))) = ((h2 (e11)) = (h2 (op1 (e13) (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2e4.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2e5.
% 40.81/40.99  cut (((h2 (op1 (e13) (e11))) = (h2 (op1 (e13) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2e6].
% 40.81/40.99  cut (((h2 (op1 (e13) (e11))) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H2e7].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e13) (e11)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H15a].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H15a zenon_H155).
% 40.81/40.99  apply zenon_H2e6. apply refl_equal.
% 40.81/40.99  apply zenon_H2e6. apply refl_equal.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11))))); [ zenon_intro zenon_H2e8 | zenon_intro zenon_H2e9 ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11)))) = ((e21) = (op2 (h2 (e13)) (h2 (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2e3.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2e8.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2e9].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H2ea].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e23) (e21)) = (e21)) = ((op2 (h2 (e13)) (h2 (e11))) = (e21))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2ea.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H1ad.
% 40.81/40.99  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.81/40.99  cut (((op2 (e23) (e21)) = (op2 (h2 (e13)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2eb].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11))))); [ zenon_intro zenon_H2e8 | zenon_intro zenon_H2e9 ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11)))) = ((op2 (e23) (e21)) = (op2 (h2 (e13)) (h2 (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2eb.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2e8.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (op2 (h2 (e13)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H2e9].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e11))) = (op2 (e23) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H2ec].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e11)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 40.81/40.99  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L121_); trivial.
% 40.81/40.99  exact (zenon_H285 zenon_H234).
% 40.81/40.99  apply zenon_H2e9. apply refl_equal.
% 40.81/40.99  apply zenon_H2e9. apply refl_equal.
% 40.81/40.99  apply zenon_H95. apply refl_equal.
% 40.81/40.99  apply zenon_H2e9. apply refl_equal.
% 40.81/40.99  apply zenon_H2e9. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L167_ *)
% 40.81/40.99  assert (zenon_L168_ : (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> ((h2 (e11)) = (e21)) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e23) (e21)) = (e21)) -> (~((h2 (op1 (e13) (e11))) = (op2 (h2 (e13)) (h2 (e11))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H161 zenon_H150 zenon_H234 zenon_H98 zenon_H231 zenon_H1ad zenon_H2e2 zenon_H15c zenon_H4f zenon_H23 zenon_H18 zenon_H73.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H161); [ zenon_intro zenon_H14f | zenon_intro zenon_H165 ].
% 40.81/40.99  apply (zenon_L78_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H165); [ zenon_intro zenon_H155 | zenon_intro zenon_H166 ].
% 40.81/40.99  apply (zenon_L167_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H166); [ zenon_intro zenon_H15b | zenon_intro zenon_H72 ].
% 40.81/40.99  apply (zenon_L80_); trivial.
% 40.81/40.99  apply (zenon_L25_); trivial.
% 40.81/40.99  (* end of lemma zenon_L168_ *)
% 40.81/40.99  assert (zenon_L169_ : ((op2 (e23) (e20)) = (e20)) -> ((e20) = (op2 (e21) (e21))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2ed zenon_H14 zenon_Hb6 zenon_Hc3.
% 40.81/40.99  elim (classic ((op2 (e23) (e20)) = (op2 (e23) (e20)))); [ zenon_intro zenon_H2dc | zenon_intro zenon_H2dd ].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20))) = ((op2 (e20) (e20)) = (op2 (e23) (e20)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_Hc3.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2dc.
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2dd].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2ee].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((e20) = (op2 (e21) (e21))) = ((op2 (e23) (e20)) = (op2 (e20) (e20)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2ee.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H14.
% 40.81/40.99  cut (((op2 (e21) (e21)) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H29a].
% 40.81/40.99  cut (((e20) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2ef].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (e23) (e20)) = (op2 (e23) (e20)))); [ zenon_intro zenon_H2dc | zenon_intro zenon_H2dd ].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20))) = ((e20) = (op2 (e23) (e20)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2ef.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2dc.
% 40.81/40.99  cut (((op2 (e23) (e20)) = (op2 (e23) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H2dd].
% 40.81/40.99  cut (((op2 (e23) (e20)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H2f0].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H2f0 zenon_H2ed).
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  apply (zenon_L147_); trivial.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  apply zenon_H2dd. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L169_ *)
% 40.81/40.99  assert (zenon_L170_ : ((h2 (e10)) = (op2 (e21) (e21))) -> ((op1 (e13) (e12)) = (e10)) -> ((e20) = (op2 (e21) (e21))) -> (~((e20) = (h2 (op1 (e13) (e12))))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H13 zenon_H2f1 zenon_H14 zenon_H2f2.
% 40.81/40.99  elim (classic ((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12))))); [ zenon_intro zenon_H2f3 | zenon_intro zenon_H2f4 ].
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12)))) = ((e20) = (h2 (op1 (e13) (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2f2.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2f3.
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2f4].
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H2f5].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e10)) = (op2 (e21) (e21))) = ((h2 (op1 (e13) (e12))) = (e20))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2f5.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H13.
% 40.81/40.99  cut (((op2 (e21) (e21)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 40.81/40.99  cut (((h2 (e10)) = (h2 (op1 (e13) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2f6].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12))))); [ zenon_intro zenon_H2f3 | zenon_intro zenon_H2f4 ].
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12)))) = ((h2 (e10)) = (h2 (op1 (e13) (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2f6.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2f3.
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (h2 (op1 (e13) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2f4].
% 40.81/40.99  cut (((h2 (op1 (e13) (e12))) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H2f7].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e13) (e12)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H2f8].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H2f8 zenon_H2f1).
% 40.81/40.99  apply zenon_H2f4. apply refl_equal.
% 40.81/40.99  apply zenon_H2f4. apply refl_equal.
% 40.81/40.99  apply zenon_H15. apply sym_equal. exact zenon_H14.
% 40.81/40.99  apply zenon_H2f4. apply refl_equal.
% 40.81/40.99  apply zenon_H2f4. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L170_ *)
% 40.81/40.99  assert (zenon_L171_ : ((op2 (e23) (e22)) = (e20)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> ((op1 (e13) (e12)) = (e10)) -> (~((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2f9 zenon_H231 zenon_H98 zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H2f1 zenon_H2fa.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12))))); [ zenon_intro zenon_H2fb | zenon_intro zenon_H2fc ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12)))) = ((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2fa.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2fb.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2fc].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (h2 (op1 (e13) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2fd].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e23) (e22)) = (e20)) = ((op2 (h2 (e13)) (h2 (e12))) = (h2 (op1 (e13) (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2fd.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2f9.
% 40.81/40.99  cut (((e20) = (h2 (op1 (e13) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2f2].
% 40.81/40.99  cut (((op2 (e23) (e22)) = (op2 (h2 (e13)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2fe].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12))))); [ zenon_intro zenon_H2fb | zenon_intro zenon_H2fc ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12)))) = ((op2 (e23) (e22)) = (op2 (h2 (e13)) (h2 (e12))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H2fe.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H2fb.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (op2 (h2 (e13)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H2fc].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e12))) = (op2 (e23) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H2ff].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/40.99  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L121_); trivial.
% 40.81/40.99  apply (zenon_L62_); trivial.
% 40.81/40.99  apply zenon_H2fc. apply refl_equal.
% 40.81/40.99  apply zenon_H2fc. apply refl_equal.
% 40.81/40.99  apply (zenon_L170_); trivial.
% 40.81/40.99  apply zenon_H2fc. apply refl_equal.
% 40.81/40.99  apply zenon_H2fc. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L171_ *)
% 40.81/40.99  assert (zenon_L172_ : (~((op1 (e11) (e12)) = (op1 (e13) (e12)))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e12)) = (e11)) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H300 zenon_H57 zenon_H301.
% 40.81/40.99  cut (((op1 (e11) (e12)) = (e11)) = ((op1 (e11) (e12)) = (op1 (e13) (e12)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H300.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H57.
% 40.81/40.99  cut (((e11) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H302].
% 40.81/40.99  cut (((op1 (e11) (e12)) = (op1 (e11) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H303].
% 40.81/40.99  congruence.
% 40.81/40.99  apply zenon_H303. apply refl_equal.
% 40.81/40.99  apply zenon_H302. apply sym_equal. exact zenon_H301.
% 40.81/40.99  (* end of lemma zenon_L172_ *)
% 40.81/40.99  assert (zenon_L173_ : ((op1 (e13) (e12)) = (e13)) -> ((op1 (e12) (e12)) = (e13)) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H68 zenon_H206 zenon_H304.
% 40.81/40.99  elim (classic ((op1 (e13) (e12)) = (op1 (e13) (e12)))); [ zenon_intro zenon_H11e | zenon_intro zenon_H6b ].
% 40.81/40.99  cut (((op1 (e13) (e12)) = (op1 (e13) (e12))) = ((op1 (e12) (e12)) = (op1 (e13) (e12)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H304.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H11e.
% 40.81/40.99  cut (((op1 (e13) (e12)) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 40.81/40.99  cut (((op1 (e13) (e12)) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H305].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e13) (e12)) = (e13)) = ((op1 (e13) (e12)) = (op1 (e12) (e12)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H305.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H68.
% 40.81/40.99  cut (((e13) = (op1 (e12) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H20a].
% 40.81/40.99  cut (((op1 (e13) (e12)) = (op1 (e13) (e12)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 40.81/40.99  congruence.
% 40.81/40.99  apply zenon_H6b. apply refl_equal.
% 40.81/40.99  apply zenon_H20a. apply sym_equal. exact zenon_H206.
% 40.81/40.99  apply zenon_H6b. apply refl_equal.
% 40.81/40.99  apply zenon_H6b. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L173_ *)
% 40.81/40.99  assert (zenon_L174_ : (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((op1 (e11) (e12)) = (op1 (e13) (e12)))) -> ((op2 (e23) (e22)) = (e20)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))) -> (((op1 (e13) (e12)) = (e10))\/(((op1 (e13) (e12)) = (e11))\/(((op1 (e13) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((op1 (e11) (e12)) = (e11)) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> ((op1 (e10) (e11)) = (e13)) -> ((op1 (e11) (e10)) = (e13)) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((e11) = (e12))) -> ((op1 (e10) (e10)) = (e10)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H20c zenon_H1fc zenon_H201 zenon_H304 zenon_H11d zenon_H300 zenon_H2f9 zenon_H231 zenon_H98 zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H2fa zenon_H306 zenon_H2cc zenon_H30 zenon_H57 zenon_H2ca zenon_H2c zenon_H1f6 zenon_H6c zenon_H5f zenon_H73 zenon_H18 zenon_H23 zenon_H4f zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H37 zenon_H133 zenon_H168 zenon_H82 zenon_H117 zenon_H41 zenon_H167 zenon_H5a zenon_H64 zenon_H67.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20c); [ zenon_intro zenon_H1fb | zenon_intro zenon_H20d ].
% 40.81/40.99  apply (zenon_L109_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20d); [ zenon_intro zenon_H200 | zenon_intro zenon_H20e ].
% 40.81/40.99  apply (zenon_L110_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H20e); [ zenon_intro zenon_H206 | zenon_intro zenon_H13a ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H306); [ zenon_intro zenon_H2f1 | zenon_intro zenon_H307 ].
% 40.81/40.99  apply (zenon_L171_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H307); [ zenon_intro zenon_H301 | zenon_intro zenon_H308 ].
% 40.81/40.99  apply (zenon_L172_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H308); [ zenon_intro zenon_H11c | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L65_); trivial.
% 40.81/40.99  apply (zenon_L173_); trivial.
% 40.81/40.99  apply (zenon_L158_); trivial.
% 40.81/40.99  (* end of lemma zenon_L174_ *)
% 40.81/40.99  assert (zenon_L175_ : (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((e11) = (e13))) -> ((op1 (e11) (e12)) = (e11)) -> ((op1 (e13) (e13)) = (e13)) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((op1 (e11) (e12)) = (op1 (e13) (e12)))) -> ((op2 (e23) (e22)) = (e20)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))) -> (((op1 (e13) (e12)) = (e10))\/(((op1 (e13) (e12)) = (e11))\/(((op1 (e13) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> ((op1 (e10) (e10)) = (e10)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e12) (e11)) = (e12)) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H3d zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H216 zenon_H1fc zenon_H17 zenon_H133 zenon_H57 zenon_H69 zenon_H273 zenon_H20c zenon_H201 zenon_H304 zenon_H11d zenon_H300 zenon_H2f9 zenon_H231 zenon_H98 zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H2fa zenon_H306 zenon_H2cc zenon_H2ca zenon_H6c zenon_H5f zenon_H73 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H168 zenon_H117 zenon_H41 zenon_H167 zenon_H5a zenon_H64 zenon_H67 zenon_H22 zenon_H219 zenon_H30 zenon_H23 zenon_H18 zenon_H37.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.99  apply (zenon_L5_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H219); [ zenon_intro zenon_H24 | zenon_intro zenon_H21a ].
% 40.81/40.99  apply (zenon_L5_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H21a); [ zenon_intro zenon_H1f6 | zenon_intro zenon_H21b ].
% 40.81/40.99  apply (zenon_L174_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H21b); [ zenon_intro zenon_H1fb | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L138_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.99  apply (zenon_L8_); trivial.
% 40.81/40.99  apply (zenon_L9_); trivial.
% 40.81/40.99  (* end of lemma zenon_L175_ *)
% 40.81/40.99  assert (zenon_L176_ : (((op2 (e23) (e20)) = (e20))\/(((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e22)) = (e20))\/((op2 (e23) (e23)) = (e20))))) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> ((op1 (e12) (e11)) = (e12)) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> ((op1 (e10) (e10)) = (e10)) -> (~((e11) = (e12))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (((op1 (e13) (e12)) = (e10))\/(((op1 (e13) (e12)) = (e11))\/(((op1 (e13) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> (~((op1 (e11) (e12)) = (op1 (e13) (e12)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> ((op1 (e13) (e13)) = (e13)) -> ((op1 (e11) (e12)) = (e11)) -> (~((e11) = (e13))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (((op2 (e23) (e20)) = (e23))\/(((op2 (e23) (e21)) = (e23))\/(((op2 (e23) (e22)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e21) (e21)) = (e22)) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> ((op2 (e21) (e23)) = (e21)) -> (~((e21) = (e23))) -> ((e20) = (op2 (e21) (e21))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H309 zenon_Hc3 zenon_Hb6 zenon_H1a8 zenon_H37 zenon_H18 zenon_H23 zenon_H30 zenon_H219 zenon_H22 zenon_H67 zenon_H64 zenon_H5a zenon_H167 zenon_H41 zenon_H117 zenon_H168 zenon_H140 zenon_H161 zenon_H150 zenon_H15c zenon_H73 zenon_H5f zenon_H6c zenon_H2ca zenon_H2cc zenon_H306 zenon_H2fa zenon_H13 zenon_Hc4 zenon_H104 zenon_H231 zenon_H300 zenon_H11d zenon_H304 zenon_H201 zenon_H20c zenon_H273 zenon_H69 zenon_H57 zenon_H133 zenon_H17 zenon_H1fc zenon_H216 zenon_H8b zenon_H4e zenon_H82 zenon_H4f zenon_H7c zenon_H87 zenon_H3d zenon_H2df zenon_Hf7 zenon_H1d2 zenon_He8 zenon_Hdc zenon_H98 zenon_H190 zenon_Hd9 zenon_Hd7 zenon_H18b zenon_H14 zenon_Hac zenon_H198 zenon_H264 zenon_H26c.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H309); [ zenon_intro zenon_H2ed | zenon_intro zenon_H30a ].
% 40.81/40.99  apply (zenon_L169_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H30a); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H30b ].
% 40.81/40.99  apply (zenon_L94_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H30b); [ zenon_intro zenon_H2f9 | zenon_intro zenon_H26a ].
% 40.81/40.99  apply (zenon_L175_); trivial.
% 40.81/40.99  apply (zenon_L164_); trivial.
% 40.81/40.99  (* end of lemma zenon_L176_ *)
% 40.81/40.99  assert (zenon_L177_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e20) (e23)) = (op2 (e23) (e23)))) -> ((h4 (e13)) = (op2 (op2 (e23) (e23)) (e23))) -> ((op2 (e23) (e23)) = (e23)) -> (((op1 (e11) (e10)) = (e13))\/(((op1 (e11) (e11)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/((op1 (e11) (e13)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e12) (e10)))) -> (~((op1 (e11) (e13)) = (op1 (e13) (e13)))) -> (((op1 (e12) (e10)) = (e13))\/(((op1 (e12) (e11)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e12) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e12) (e11)))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e12)))) -> (~((op1 (e11) (e12)) = (op1 (e13) (e12)))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> ((h2 (e10)) = (op2 (e21) (e21))) -> ((e20) = (op2 (e21) (e21))) -> (~((h2 (op1 (e13) (e12))) = (op2 (h2 (e13)) (h2 (e12))))) -> (((op1 (e13) (e12)) = (e10))\/(((op1 (e13) (e12)) = (e11))\/(((op1 (e13) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e12) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e11) (e10)) = (e13))\/(((op1 (e12) (e10)) = (e13))\/((op1 (e13) (e10)) = (e13))))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> ((op2 (e20) (e20)) = (e20)) -> (~((op2 (e20) (e20)) = (op2 (e23) (e20)))) -> (((op2 (e23) (e20)) = (e20))\/(((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e22)) = (e20))\/((op2 (e23) (e23)) = (e20))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H294 zenon_H26c zenon_H264 zenon_Hde zenon_H216 zenon_H1fc zenon_H273 zenon_H20c zenon_H201 zenon_H304 zenon_H11d zenon_H300 zenon_H231 zenon_H98 zenon_H104 zenon_Hc4 zenon_H13 zenon_H14 zenon_H2fa zenon_H306 zenon_H2cc zenon_H2ca zenon_H219 zenon_H1a8 zenon_Hb6 zenon_Hc3 zenon_H309 zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.99  apply (zenon_L2_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.99  apply (zenon_L10_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.99  apply (zenon_L11_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.99  apply (zenon_L18_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.99  apply (zenon_L116_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.99  apply (zenon_L21_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H309); [ zenon_intro zenon_H2ed | zenon_intro zenon_H30a ].
% 40.81/40.99  apply (zenon_L169_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H30a); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H30b ].
% 40.81/40.99  apply (zenon_L94_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H30b); [ zenon_intro zenon_H2f9 | zenon_intro zenon_H26a ].
% 40.81/40.99  apply (zenon_L175_); trivial.
% 40.81/40.99  apply (zenon_L135_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L17_); trivial.
% 40.81/40.99  apply (zenon_L83_); trivial.
% 40.81/40.99  apply (zenon_L25_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.99  apply (zenon_L26_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L27_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  (* end of lemma zenon_L177_ *)
% 40.81/40.99  assert (zenon_L178_ : (~((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))) -> ((op1 (e13) (e13)) = (e13)) -> ((op2 (e23) (e23)) = (e23)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H30c zenon_H69 zenon_Hde zenon_H231 zenon_H98.
% 40.81/40.99  cut (((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) = ((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H30c.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H231.
% 40.81/40.99  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e13)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H30d].
% 40.81/40.99  cut (((h2 (e13)) = (h2 (op1 (e13) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H30e].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e13) (e13))) = (h2 (op1 (e13) (e13))))); [ zenon_intro zenon_H30f | zenon_intro zenon_H310 ].
% 40.81/40.99  cut (((h2 (op1 (e13) (e13))) = (h2 (op1 (e13) (e13)))) = ((h2 (e13)) = (h2 (op1 (e13) (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H30e.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H30f.
% 40.81/40.99  cut (((h2 (op1 (e13) (e13))) = (h2 (op1 (e13) (e13))))); [idtac | apply NNPP; zenon_intro zenon_H310].
% 40.81/40.99  cut (((h2 (op1 (e13) (e13))) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H311].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e13) (e13)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H312].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H312 zenon_H69).
% 40.81/40.99  apply zenon_H310. apply refl_equal.
% 40.81/40.99  apply zenon_H310. apply refl_equal.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13))))); [ zenon_intro zenon_H313 | zenon_intro zenon_H314 ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13)))) = ((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e13)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H30d.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H313.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H314].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H315].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e23) (e23)) = (e23)) = ((op2 (h2 (e13)) (h2 (e13))) = (op2 (op2 (e21) (e21)) (e21)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H315.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_Hde.
% 40.81/40.99  cut (((e23) = (op2 (op2 (e21) (e21)) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H282].
% 40.81/40.99  cut (((op2 (e23) (e23)) = (op2 (h2 (e13)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H316].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13))))); [ zenon_intro zenon_H313 | zenon_intro zenon_H314 ].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13)))) = ((op2 (e23) (e23)) = (op2 (h2 (e13)) (h2 (e13))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H316.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H313.
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (h2 (e13)) (h2 (e13))))); [idtac | apply NNPP; zenon_intro zenon_H314].
% 40.81/40.99  cut (((op2 (h2 (e13)) (h2 (e13))) = (op2 (e23) (e23)))); [idtac | apply NNPP; zenon_intro zenon_H317].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.99  cut (((h2 (e13)) = (e23))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L121_); trivial.
% 40.81/40.99  apply (zenon_L121_); trivial.
% 40.81/40.99  apply zenon_H314. apply refl_equal.
% 40.81/40.99  apply zenon_H314. apply refl_equal.
% 40.81/40.99  exact (zenon_H282 zenon_H98).
% 40.81/40.99  apply zenon_H314. apply refl_equal.
% 40.81/40.99  apply zenon_H314. apply refl_equal.
% 40.81/40.99  (* end of lemma zenon_L178_ *)
% 40.81/40.99  assert (zenon_L179_ : (((op1 (e13) (e10)) = (e13))\/(((op1 (e13) (e11)) = (e13))\/(((op1 (e13) (e12)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e12) = (e13))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> ((e10) = (op1 (e11) (e11))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> ((op1 (e12) (e12)) = (e13)) -> (~((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))) -> ((op2 (e23) (e23)) = (e23)) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H318 zenon_H87 zenon_H7c zenon_H4f zenon_H82 zenon_H4e zenon_H8b zenon_H73 zenon_H18 zenon_H23 zenon_H304 zenon_H206 zenon_H30c zenon_Hde zenon_H231 zenon_H98.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H318); [ zenon_intro zenon_H88 | zenon_intro zenon_H319 ].
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H319); [ zenon_intro zenon_H72 | zenon_intro zenon_H31a ].
% 40.81/40.99  apply (zenon_L25_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H31a); [ zenon_intro zenon_H68 | zenon_intro zenon_H69 ].
% 40.81/40.99  apply (zenon_L173_); trivial.
% 40.81/40.99  apply (zenon_L178_); trivial.
% 40.81/40.99  (* end of lemma zenon_L179_ *)
% 40.81/40.99  assert (zenon_L180_ : (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> ((op2 (e23) (e23)) = (e23)) -> (~((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))) -> (((op1 (e13) (e10)) = (e13))\/(((op1 (e13) (e11)) = (e13))\/(((op1 (e13) (e12)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H294 zenon_H98 zenon_H231 zenon_Hde zenon_H30c zenon_H318 zenon_H304 zenon_H2cc zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.99  apply (zenon_L2_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.99  apply (zenon_L10_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.99  apply (zenon_L11_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/40.99  apply (zenon_L18_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H168); [ zenon_intro zenon_H83 | zenon_intro zenon_H179 ].
% 40.81/40.99  apply (zenon_L28_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H179); [ zenon_intro zenon_H138 | zenon_intro zenon_H17a ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2cc); [ zenon_intro zenon_H2f | zenon_intro zenon_H2cd ].
% 40.81/40.99  apply (zenon_L8_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2cd); [ zenon_intro zenon_H214 | zenon_intro zenon_H2ce ].
% 40.81/40.99  apply (zenon_L114_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2ce); [ zenon_intro zenon_H206 | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L179_); trivial.
% 40.81/40.99  apply (zenon_L73_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H17a); [ zenon_intro zenon_H116 | zenon_intro zenon_H148 ].
% 40.81/40.99  apply (zenon_L64_); trivial.
% 40.81/40.99  apply (zenon_L76_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/40.99  apply (zenon_L21_); trivial.
% 40.81/40.99  apply (zenon_L178_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/40.99  apply (zenon_L17_); trivial.
% 40.81/40.99  apply (zenon_L83_); trivial.
% 40.81/40.99  apply (zenon_L25_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.99  apply (zenon_L26_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L27_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  (* end of lemma zenon_L180_ *)
% 40.81/40.99  assert (zenon_L181_ : (((op2 (e23) (e20)) = (e23))\/(((op2 (e23) (e21)) = (e23))\/(((op2 (e23) (e22)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> ((op2 (e21) (e20)) = (e23)) -> (~((op2 (e20) (e21)) = (op2 (e23) (e21)))) -> ((e20) = (op2 (e21) (e21))) -> ((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) -> (~((op2 (e23) (e20)) = (op2 (e23) (e21)))) -> (~((op2 (e21) (e21)) = (op2 (e23) (e21)))) -> (((op2 (e23) (e21)) = (e20))\/(((op2 (e23) (e21)) = (e21))\/(((op2 (e23) (e21)) = (e22))\/((op2 (e23) (e21)) = (e23))))) -> (((op2 (e20) (e23)) = (e23))\/(((op2 (e21) (e23)) = (e23))\/(((op2 (e22) (e23)) = (e23))\/((op2 (e23) (e23)) = (e23))))) -> (~((op2 (e20) (e21)) = (op2 (e20) (e23)))) -> (~((e21) = (e23))) -> ((op2 (e21) (e23)) = (e21)) -> (~((op2 (e23) (e22)) = (op2 (e23) (e23)))) -> (((op2 (e21) (e20)) = (e22))\/(((op2 (e21) (e21)) = (e22))\/(((op2 (e21) (e22)) = (e22))\/((op2 (e21) (e23)) = (e22))))) -> (~((op2 (e21) (e20)) = (op2 (e23) (e20)))) -> (~((op2 (e22) (e21)) = (op2 (e22) (e23)))) -> (~((e21) = (e22))) -> ((op2 (e20) (e20)) = (e20)) -> (((~((op2 (e20) (op2 (e20) (e20))) = (e20)))/\((~((op2 (e20) (op2 (e20) (e21))) = (e21)))/\((~((op2 (e20) (op2 (e20) (e22))) = (e22)))/\(~((op2 (e20) (op2 (e20) (e23))) = (e23))))))\/(((~((op2 (e21) (op2 (e21) (e20))) = (e20)))/\((~((op2 (e21) (op2 (e21) (e21))) = (e21)))/\((~((op2 (e21) (op2 (e21) (e22))) = (e22)))/\(~((op2 (e21) (op2 (e21) (e23))) = (e23))))))\/(((~((op2 (e22) (op2 (e22) (e20))) = (e20)))/\((~((op2 (e22) (op2 (e22) (e21))) = (e21)))/\((~((op2 (e22) (op2 (e22) (e22))) = (e22)))/\(~((op2 (e22) (op2 (e22) (e23))) = (e23))))))\/((~((op2 (e23) (op2 (e23) (e20))) = (e20)))/\((~((op2 (e23) (op2 (e23) (e21))) = (e21)))/\((~((op2 (e23) (op2 (e23) (e22))) = (e22)))/\(~((op2 (e23) (op2 (e23) (e23))) = (e23))))))))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e11) (e10)) = (e11))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e13))))) -> ((e23) = (op2 (op2 (e21) (e21)) (e21))) -> ((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) -> (~((h2 (op1 (e13) (e13))) = (op2 (h2 (e13)) (h2 (e13))))) -> (((op1 (e13) (e10)) = (e13))\/(((op1 (e13) (e11)) = (e13))\/(((op1 (e13) (e12)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e12) (e12)) = (op1 (e13) (e12)))) -> (((op1 (e10) (e12)) = (e13))\/(((op1 (e11) (e12)) = (e13))\/(((op1 (e12) (e12)) = (e13))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e13) (e10)) = (op1 (e13) (e11)))) -> (~((op1 (e11) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e13) (e11)) = (e10))\/(((op1 (e13) (e11)) = (e11))\/(((op1 (e13) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e13)) = (e13))\/(((op1 (e11) (e13)) = (e13))\/(((op1 (e12) (e13)) = (e13))\/((op1 (e13) (e13)) = (e13))))) -> (~((e11) = (e13))) -> (((op1 (e11) (e10)) = (e12))\/(((op1 (e11) (e11)) = (e12))\/(((op1 (e11) (e12)) = (e12))\/((op1 (e11) (e13)) = (e12))))) -> (~((e11) = (e12))) -> (((~((op1 (e10) (op1 (e10) (e10))) = (e10)))/\((~((op1 (e10) (op1 (e10) (e11))) = (e11)))/\((~((op1 (e10) (op1 (e10) (e12))) = (e12)))/\(~((op1 (e10) (op1 (e10) (e13))) = (e13))))))\/(((~((op1 (e11) (op1 (e11) (e10))) = (e10)))/\((~((op1 (e11) (op1 (e11) (e11))) = (e11)))/\((~((op1 (e11) (op1 (e11) (e12))) = (e12)))/\(~((op1 (e11) (op1 (e11) (e13))) = (e13))))))\/(((~((op1 (e12) (op1 (e12) (e10))) = (e10)))/\((~((op1 (e12) (op1 (e12) (e11))) = (e11)))/\((~((op1 (e12) (op1 (e12) (e12))) = (e12)))/\(~((op1 (e12) (op1 (e12) (e13))) = (e13))))))\/((~((op1 (e13) (op1 (e13) (e10))) = (e10)))/\((~((op1 (e13) (op1 (e13) (e11))) = (e11)))/\((~((op1 (e13) (op1 (e13) (e12))) = (e12)))/\(~((op1 (e13) (op1 (e13) (e13))) = (e13))))))))) -> (~((op1 (e10) (e11)) = (op1 (e13) (e11)))) -> (((op1 (e10) (e12)) = (e10))\/(((op1 (e11) (e12)) = (e11))\/(((op1 (e12) (e12)) = (e12))\/((op1 (e13) (e12)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e12)))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e12)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e12)))) -> (((op1 (e10) (e13)) = (e10))\/(((op1 (e11) (e13)) = (e11))\/(((op1 (e12) (e13)) = (e12))\/((op1 (e13) (e13)) = (e13))))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e11)))) -> (~((op1 (e10) (e10)) = (op1 (e11) (e10)))) -> (~((op1 (e10) (e10)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e10)) = (e10))\/(((op1 (e10) (e10)) = (e11))\/(((op1 (e10) (e10)) = (e12))\/((op1 (e10) (e10)) = (e13))))) -> (~((op1 (e11) (e10)) = (op1 (e11) (e13)))) -> (~((op1 (e12) (e11)) = (op1 (e12) (e13)))) -> (~((op1 (e13) (e12)) = (op1 (e13) (e13)))) -> (((op1 (e10) (e10)) = (e13))\/(((op1 (e10) (e11)) = (e13))\/(((op1 (e10) (e12)) = (e13))\/((op1 (e10) (e13)) = (e13))))) -> (~((op1 (e10) (e11)) = (op1 (e11) (e11)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e12)))) -> (~((op1 (e10) (e11)) = (op1 (e10) (e13)))) -> (((op1 (e10) (e11)) = (e10))\/(((op1 (e11) (e11)) = (e11))\/(((op1 (e12) (e11)) = (e12))\/((op1 (e13) (e11)) = (e13))))) -> (((op1 (e10) (e10)) = (e12))\/(((op1 (e11) (e10)) = (e12))\/(((op1 (e12) (e10)) = (e12))\/((op1 (e13) (e10)) = (e12))))) -> (~((op1 (e10) (e10)) = (op1 (e13) (e10)))) -> (~((op1 (e11) (e10)) = (op1 (e13) (e10)))) -> ((e13) = (op1 (op1 (e11) (e11)) (e11))) -> ((e10) = (op1 (e11) (e11))) -> ((e12) = (op1 (op1 (op1 (e11) (e11)) (e11)) (op1 (e11) (e11)))) -> (~((op1 (e12) (e10)) = (op1 (e13) (e10)))) -> (~((e12) = (e13))) -> False).
% 40.81/40.99  do 0 intro. intros zenon_H2df zenon_H1d2 zenon_He8 zenon_H14 zenon_Hc4 zenon_H1b4 zenon_H1a8 zenon_H1b9 zenon_H198 zenon_Hac zenon_H18b zenon_Hd7 zenon_Hdc zenon_H1c0 zenon_Hf7 zenon_Hd9 zenon_H126 zenon_Hb6 zenon_H1bf zenon_H294 zenon_H98 zenon_H231 zenon_H30c zenon_H318 zenon_H304 zenon_H2cc zenon_H15c zenon_H150 zenon_H161 zenon_H140 zenon_H133 zenon_H168 zenon_H117 zenon_H167 zenon_H73 zenon_H6f zenon_H42 zenon_H56 zenon_H59 zenon_H6c zenon_H22 zenon_H47 zenon_H5f zenon_H53 zenon_H61 zenon_H64 zenon_H67 zenon_H3d zenon_H17 zenon_H30 zenon_H37 zenon_H79 zenon_H8b zenon_H4e zenon_H82 zenon_H23 zenon_H18 zenon_H4f zenon_H7c zenon_H87.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2df); [ zenon_intro zenon_Hfd | zenon_intro zenon_H2e0 ].
% 40.81/40.99  apply (zenon_L163_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2e0); [ zenon_intro zenon_He7 | zenon_intro zenon_H2e1 ].
% 40.81/40.99  apply (zenon_L55_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H2e1); [ zenon_intro zenon_Hdd | zenon_intro zenon_Hde ].
% 40.81/40.99  apply (zenon_L98_); trivial.
% 40.81/40.99  apply (zenon_L180_); trivial.
% 40.81/40.99  (* end of lemma zenon_L181_ *)
% 40.81/40.99  apply NNPP. intro zenon_G.
% 40.81/40.99  apply (zenon_and_s _ _ ax1). zenon_intro zenon_H53. zenon_intro zenon_H31b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H31b). zenon_intro zenon_H31d. zenon_intro zenon_H31c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H31c). zenon_intro zenon_H31f. zenon_intro zenon_H31e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H31e). zenon_intro zenon_H24c. zenon_intro zenon_H320.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H320). zenon_intro zenon_H322. zenon_intro zenon_H321.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H321). zenon_intro zenon_H324. zenon_intro zenon_H323.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H323). zenon_intro zenon_H326. zenon_intro zenon_H325.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H325). zenon_intro zenon_H328. zenon_intro zenon_H327.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H327). zenon_intro zenon_H2b2. zenon_intro zenon_H329.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H329). zenon_intro zenon_H32b. zenon_intro zenon_H32a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H32a). zenon_intro zenon_H32d. zenon_intro zenon_H32c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H32c). zenon_intro zenon_H32f. zenon_intro zenon_H32e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H32e). zenon_intro zenon_H331. zenon_intro zenon_H330.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H330). zenon_intro zenon_H161. zenon_intro zenon_H332.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H332). zenon_intro zenon_H306. zenon_intro zenon_H333.
% 40.81/40.99  apply (zenon_and_s _ _ ax2). zenon_intro zenon_H335. zenon_intro zenon_H334.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H334). zenon_intro zenon_H337. zenon_intro zenon_H336.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H336). zenon_intro zenon_H339. zenon_intro zenon_H338.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H338). zenon_intro zenon_H33b. zenon_intro zenon_H33a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H33a). zenon_intro zenon_H33d. zenon_intro zenon_H33c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H33c). zenon_intro zenon_H8b. zenon_intro zenon_H33e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H33e). zenon_intro zenon_H3d. zenon_intro zenon_H33f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H33f). zenon_intro zenon_H219. zenon_intro zenon_H340.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H340). zenon_intro zenon_H342. zenon_intro zenon_H341.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H341). zenon_intro zenon_H344. zenon_intro zenon_H343.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H343). zenon_intro zenon_H346. zenon_intro zenon_H345.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H345). zenon_intro zenon_H348. zenon_intro zenon_H347.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H347). zenon_intro zenon_H168. zenon_intro zenon_H349.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H349). zenon_intro zenon_H34b. zenon_intro zenon_H34a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H34a). zenon_intro zenon_H216. zenon_intro zenon_H34c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H34c). zenon_intro zenon_H34e. zenon_intro zenon_H34d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H34d). zenon_intro zenon_H350. zenon_intro zenon_H34f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H34f). zenon_intro zenon_H352. zenon_intro zenon_H351.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H351). zenon_intro zenon_H354. zenon_intro zenon_H353.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H353). zenon_intro zenon_H356. zenon_intro zenon_H355.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H355). zenon_intro zenon_H358. zenon_intro zenon_H357.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H357). zenon_intro zenon_H122. zenon_intro zenon_H359.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H359). zenon_intro zenon_H20c. zenon_intro zenon_H35a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H35a). zenon_intro zenon_H2cc. zenon_intro zenon_H35b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H35b). zenon_intro zenon_H35d. zenon_intro zenon_H35c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H35c). zenon_intro zenon_H252. zenon_intro zenon_H35e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H35e). zenon_intro zenon_H360. zenon_intro zenon_H35f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H35f). zenon_intro zenon_H362. zenon_intro zenon_H361.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H361). zenon_intro zenon_H364. zenon_intro zenon_H363.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H363). zenon_intro zenon_H366. zenon_intro zenon_H365.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H365). zenon_intro zenon_H318. zenon_intro zenon_H140.
% 40.81/40.99  apply (zenon_and_s _ _ ax3). zenon_intro zenon_Hc8. zenon_intro zenon_H367.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H367). zenon_intro zenon_H369. zenon_intro zenon_H368.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H368). zenon_intro zenon_H36b. zenon_intro zenon_H36a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H36a). zenon_intro zenon_H25f. zenon_intro zenon_H36c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H36c). zenon_intro zenon_H36e. zenon_intro zenon_H36d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H36d). zenon_intro zenon_H370. zenon_intro zenon_H36f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H36f). zenon_intro zenon_H372. zenon_intro zenon_H371.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H371). zenon_intro zenon_H374. zenon_intro zenon_H373.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H373). zenon_intro zenon_H2b5. zenon_intro zenon_H375.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H375). zenon_intro zenon_H377. zenon_intro zenon_H376.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H376). zenon_intro zenon_H379. zenon_intro zenon_H378.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H378). zenon_intro zenon_H37b. zenon_intro zenon_H37a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H37a). zenon_intro zenon_H37d. zenon_intro zenon_H37c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H37c). zenon_intro zenon_H1b9. zenon_intro zenon_H37e.
% 40.81/40.99  apply (zenon_and_s _ _ ax4). zenon_intro zenon_H380. zenon_intro zenon_H37f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H37f). zenon_intro zenon_H382. zenon_intro zenon_H381.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H381). zenon_intro zenon_H384. zenon_intro zenon_H383.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H383). zenon_intro zenon_H386. zenon_intro zenon_H385.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H385). zenon_intro zenon_H388. zenon_intro zenon_H387.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H387). zenon_intro zenon_H100. zenon_intro zenon_H389.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H389). zenon_intro zenon_Hb2. zenon_intro zenon_H38a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H38a). zenon_intro zenon_H295. zenon_intro zenon_H38b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H38b). zenon_intro zenon_H38d. zenon_intro zenon_H38c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H38c). zenon_intro zenon_H38f. zenon_intro zenon_H38e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H38e). zenon_intro zenon_H391. zenon_intro zenon_H390.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H390). zenon_intro zenon_H393. zenon_intro zenon_H392.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H392). zenon_intro zenon_H1c0. zenon_intro zenon_H394.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H394). zenon_intro zenon_H396. zenon_intro zenon_H395.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H395). zenon_intro zenon_H1f2. zenon_intro zenon_H397.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H397). zenon_intro zenon_H399. zenon_intro zenon_H398.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H398). zenon_intro zenon_H39b. zenon_intro zenon_H39a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H39a). zenon_intro zenon_H39d. zenon_intro zenon_H39c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H39c). zenon_intro zenon_H39f. zenon_intro zenon_H39e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H39e). zenon_intro zenon_H3a1. zenon_intro zenon_H3a0.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a0). zenon_intro zenon_H3a3. zenon_intro zenon_H3a2.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a2). zenon_intro zenon_H3a5. zenon_intro zenon_H3a4.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a4). zenon_intro zenon_H1e8. zenon_intro zenon_H3a6.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a6). zenon_intro zenon_H3a8. zenon_intro zenon_H3a7.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a7). zenon_intro zenon_H309. zenon_intro zenon_H3a9.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3a9). zenon_intro zenon_H270. zenon_intro zenon_H3aa.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3aa). zenon_intro zenon_H3ac. zenon_intro zenon_H3ab.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ab). zenon_intro zenon_H3ae. zenon_intro zenon_H3ad.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ad). zenon_intro zenon_H3b0. zenon_intro zenon_H3af.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3af). zenon_intro zenon_H3b2. zenon_intro zenon_H3b1.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b1). zenon_intro zenon_H2df. zenon_intro zenon_H198.
% 40.81/40.99  apply (zenon_and_s _ _ ax5). zenon_intro zenon_H47. zenon_intro zenon_H3b3.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b3). zenon_intro zenon_H29f. zenon_intro zenon_H3b4.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b4). zenon_intro zenon_H4e. zenon_intro zenon_H3b5.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b5). zenon_intro zenon_H1fc. zenon_intro zenon_H3b6.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b6). zenon_intro zenon_H82. zenon_intro zenon_H3b7.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b7). zenon_intro zenon_H7c. zenon_intro zenon_H3b8.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b8). zenon_intro zenon_H17. zenon_intro zenon_H3b9.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3b9). zenon_intro zenon_H201. zenon_intro zenon_H3ba.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ba). zenon_intro zenon_H73. zenon_intro zenon_H3bb.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3bb). zenon_intro zenon_H3bd. zenon_intro zenon_H3bc.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3bc). zenon_intro zenon_H150. zenon_intro zenon_H3be.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3be). zenon_intro zenon_H3c0. zenon_intro zenon_H3bf.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3bf). zenon_intro zenon_H3c2. zenon_intro zenon_H3c1.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3c1). zenon_intro zenon_H3c4. zenon_intro zenon_H3c3.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3c3). zenon_intro zenon_H3c6. zenon_intro zenon_H3c5.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3c5). zenon_intro zenon_H3c8. zenon_intro zenon_H3c7.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3c7). zenon_intro zenon_H300. zenon_intro zenon_H3c9.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3c9). zenon_intro zenon_H304. zenon_intro zenon_H3ca.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ca). zenon_intro zenon_H3cc. zenon_intro zenon_H3cb.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3cb). zenon_intro zenon_H22d. zenon_intro zenon_H3cd.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3cd). zenon_intro zenon_H3cf. zenon_intro zenon_H3ce.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ce). zenon_intro zenon_H3d1. zenon_intro zenon_H3d0.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d0). zenon_intro zenon_H273. zenon_intro zenon_H3d2.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d2). zenon_intro zenon_H3d4. zenon_intro zenon_H3d3.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d3). zenon_intro zenon_H22. zenon_intro zenon_H3d5.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d5). zenon_intro zenon_H42. zenon_intro zenon_H3d6.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d6). zenon_intro zenon_H5f. zenon_intro zenon_H3d7.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d7). zenon_intro zenon_H30. zenon_intro zenon_H3d8.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d8). zenon_intro zenon_H37. zenon_intro zenon_H3d9.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3d9). zenon_intro zenon_H248. zenon_intro zenon_H3da.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3da). zenon_intro zenon_H3dc. zenon_intro zenon_H3db.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3db). zenon_intro zenon_H56. zenon_intro zenon_H3dd.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3dd). zenon_intro zenon_H61. zenon_intro zenon_H3de.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3de). zenon_intro zenon_H3e0. zenon_intro zenon_H3df.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3df). zenon_intro zenon_H227. zenon_intro zenon_H3e1.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3e1). zenon_intro zenon_H3e3. zenon_intro zenon_H3e2.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3e2). zenon_intro zenon_H3e5. zenon_intro zenon_H3e4.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3e4). zenon_intro zenon_H3e7. zenon_intro zenon_H3e6.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3e6). zenon_intro zenon_H3e9. zenon_intro zenon_H3e8.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3e8). zenon_intro zenon_H59. zenon_intro zenon_H3ea.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ea). zenon_intro zenon_H64. zenon_intro zenon_H3eb.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3eb). zenon_intro zenon_H2ca. zenon_intro zenon_H3ec.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ec). zenon_intro zenon_H15c. zenon_intro zenon_H3ed.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ed). zenon_intro zenon_H11d. zenon_intro zenon_H3ee.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ee). zenon_intro zenon_H3f0. zenon_intro zenon_H3ef.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ef). zenon_intro zenon_H3f2. zenon_intro zenon_H3f1.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f1). zenon_intro zenon_H3f3. zenon_intro zenon_H67.
% 40.81/40.99  apply (zenon_and_s _ _ ax6). zenon_intro zenon_Hbc. zenon_intro zenon_H3f4.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f4). zenon_intro zenon_H2b6. zenon_intro zenon_H3f5.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f5). zenon_intro zenon_Hc3. zenon_intro zenon_H3f6.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f6). zenon_intro zenon_H1d8. zenon_intro zenon_H3f7.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f7). zenon_intro zenon_Hf7. zenon_intro zenon_H3f8.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f8). zenon_intro zenon_Hf1. zenon_intro zenon_H3f9.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3f9). zenon_intro zenon_H8e. zenon_intro zenon_H3fa.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3fa). zenon_intro zenon_H1dd. zenon_intro zenon_H3fb.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3fb). zenon_intro zenon_He8. zenon_intro zenon_H3fc.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3fc). zenon_intro zenon_H3fe. zenon_intro zenon_H3fd.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3fd). zenon_intro zenon_H1a8. zenon_intro zenon_H3ff.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H3ff). zenon_intro zenon_H401. zenon_intro zenon_H400.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H400). zenon_intro zenon_H403. zenon_intro zenon_H402.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H402). zenon_intro zenon_H405. zenon_intro zenon_H404.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H404). zenon_intro zenon_H407. zenon_intro zenon_H406.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H406). zenon_intro zenon_H409. zenon_intro zenon_H408.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H408). zenon_intro zenon_H40b. zenon_intro zenon_H40a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H40a). zenon_intro zenon_H40d. zenon_intro zenon_H40c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H40c). zenon_intro zenon_H40f. zenon_intro zenon_H40e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H40e). zenon_intro zenon_H223. zenon_intro zenon_H410.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H410). zenon_intro zenon_H26c. zenon_intro zenon_H411.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H411). zenon_intro zenon_H413. zenon_intro zenon_H412.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H412). zenon_intro zenon_H286. zenon_intro zenon_H414.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H414). zenon_intro zenon_H416. zenon_intro zenon_H415.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H415). zenon_intro zenon_H97. zenon_intro zenon_H417.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H417). zenon_intro zenon_Hb7. zenon_intro zenon_H418.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H418). zenon_intro zenon_Hd4. zenon_intro zenon_H419.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H419). zenon_intro zenon_Ha5. zenon_intro zenon_H41a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H41a). zenon_intro zenon_Hac. zenon_intro zenon_H41b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H41b). zenon_intro zenon_H25b. zenon_intro zenon_H41c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H41c). zenon_intro zenon_H41e. zenon_intro zenon_H41d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H41d). zenon_intro zenon_Hcb. zenon_intro zenon_H41f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H41f). zenon_intro zenon_Hd6. zenon_intro zenon_H420.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H420). zenon_intro zenon_H422. zenon_intro zenon_H421.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H421). zenon_intro zenon_H21d. zenon_intro zenon_H423.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H423). zenon_intro zenon_H425. zenon_intro zenon_H424.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H424). zenon_intro zenon_H427. zenon_intro zenon_H426.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H426). zenon_intro zenon_H429. zenon_intro zenon_H428.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H428). zenon_intro zenon_H42b. zenon_intro zenon_H42a.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H42a). zenon_intro zenon_Hce. zenon_intro zenon_H42c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H42c). zenon_intro zenon_Hd9. zenon_intro zenon_H42d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H42d). zenon_intro zenon_H42f. zenon_intro zenon_H42e.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H42e). zenon_intro zenon_H1b4. zenon_intro zenon_H430.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H430). zenon_intro zenon_H12c. zenon_intro zenon_H431.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H431). zenon_intro zenon_H433. zenon_intro zenon_H432.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H432). zenon_intro zenon_H435. zenon_intro zenon_H434.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H434). zenon_intro zenon_H436. zenon_intro zenon_Hdc.
% 40.81/40.99  apply (zenon_and_s _ _ ax7). zenon_intro zenon_H438. zenon_intro zenon_H437.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H437). zenon_intro zenon_H43a. zenon_intro zenon_H439.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H439). zenon_intro zenon_H24f. zenon_intro zenon_H43b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H43b). zenon_intro zenon_H117. zenon_intro zenon_H43c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H43c). zenon_intro zenon_H133. zenon_intro zenon_H87.
% 40.81/40.99  apply (zenon_and_s _ _ ax8). zenon_intro zenon_H43e. zenon_intro zenon_H43d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H43d). zenon_intro zenon_H440. zenon_intro zenon_H43f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H43f). zenon_intro zenon_H442. zenon_intro zenon_H441.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H441). zenon_intro zenon_H126. zenon_intro zenon_H443.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H443). zenon_intro zenon_H18b. zenon_intro zenon_Hfc.
% 40.81/40.99  apply (zenon_and_s _ _ ax10). zenon_intro zenon_H294. zenon_intro zenon_H444.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H444). zenon_intro zenon_H79. zenon_intro zenon_H445.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H445). zenon_intro zenon_H6f. zenon_intro zenon_H446.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H446). zenon_intro zenon_H6c. zenon_intro zenon_H447.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H447). zenon_intro zenon_H167. zenon_intro zenon_H448.
% 40.81/40.99  apply (zenon_and_s _ _ ax11). zenon_intro zenon_H44a. zenon_intro zenon_H449.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H449). zenon_intro zenon_Hee. zenon_intro zenon_H44b.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H44b). zenon_intro zenon_He4. zenon_intro zenon_H44c.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H44c). zenon_intro zenon_He1. zenon_intro zenon_H44d.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H44d). zenon_intro zenon_H1bf. zenon_intro zenon_H44e.
% 40.81/40.99  apply (zenon_and_s _ _ ax12). zenon_intro zenon_H18. zenon_intro zenon_H44f.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H44f). zenon_intro zenon_H4f. zenon_intro zenon_H23.
% 40.81/40.99  apply (zenon_and_s _ _ ax13). zenon_intro zenon_H14. zenon_intro zenon_H450.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H450). zenon_intro zenon_Hc4. zenon_intro zenon_H98.
% 40.81/40.99  apply (zenon_and_s _ _ ax15). zenon_intro zenon_H234. zenon_intro zenon_H451.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H451). zenon_intro zenon_H13. zenon_intro zenon_H452.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H452). zenon_intro zenon_H104. zenon_intro zenon_H231.
% 40.81/40.99  apply (zenon_and_s _ _ ax17). zenon_intro zenon_H454. zenon_intro zenon_H453.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H453). zenon_intro zenon_H456. zenon_intro zenon_H455.
% 40.81/40.99  apply (zenon_and_s _ _ zenon_H455). zenon_intro zenon_H457. zenon_intro zenon_H264.
% 40.81/40.99  apply (zenon_notor_s _ _ zenon_G). zenon_intro zenon_H459. zenon_intro zenon_H458.
% 40.81/40.99  apply (zenon_notor_s _ _ zenon_H458). zenon_intro zenon_H45b. zenon_intro zenon_H45a.
% 40.81/40.99  apply (zenon_notand_s _ _ zenon_H45b); [ zenon_intro zenon_H45d | zenon_intro zenon_H45c ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.99  cut (((h2 (e10)) = (op2 (e21) (e21))) = ((h2 (op1 (e10) (e10))) = (op2 (h2 (e10)) (h2 (e10))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H45d.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H13.
% 40.81/40.99  cut (((op2 (e21) (e21)) = (op2 (h2 (e10)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H45f].
% 40.81/40.99  cut (((h2 (e10)) = (h2 (op1 (e10) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H460].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e10) (e10))) = (h2 (op1 (e10) (e10))))); [ zenon_intro zenon_H461 | zenon_intro zenon_H462 ].
% 40.81/40.99  cut (((h2 (op1 (e10) (e10))) = (h2 (op1 (e10) (e10)))) = ((h2 (e10)) = (h2 (op1 (e10) (e10))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H460.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H461.
% 40.81/40.99  cut (((h2 (op1 (e10) (e10))) = (h2 (op1 (e10) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H462].
% 40.81/40.99  cut (((h2 (op1 (e10) (e10))) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H463].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e10) (e10)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H171].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H171 zenon_H41).
% 40.81/40.99  apply zenon_H462. apply refl_equal.
% 40.81/40.99  apply zenon_H462. apply refl_equal.
% 40.81/40.99  elim (classic ((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10))))); [ zenon_intro zenon_H464 | zenon_intro zenon_H465 ].
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10)))) = ((op2 (e21) (e21)) = (op2 (h2 (e10)) (h2 (e10))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H45f.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H464.
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H465].
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H466].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op2 (e20) (e20)) = (e20)) = ((op2 (h2 (e10)) (h2 (e10))) = (op2 (e21) (e21)))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H466.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_Hb6.
% 40.81/40.99  cut (((e20) = (op2 (e21) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H2d3].
% 40.81/40.99  cut (((op2 (e20) (e20)) = (op2 (h2 (e10)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H467].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10))))); [ zenon_intro zenon_H464 | zenon_intro zenon_H465 ].
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10)))) = ((op2 (e20) (e20)) = (op2 (h2 (e10)) (h2 (e10))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H467.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H464.
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (h2 (e10)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H465].
% 40.81/40.99  cut (((op2 (h2 (e10)) (h2 (e10))) = (op2 (e20) (e20)))); [idtac | apply NNPP; zenon_intro zenon_H468].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.81/40.99  cut (((h2 (e10)) = (e20))); [idtac | apply NNPP; zenon_intro zenon_H12].
% 40.81/40.99  congruence.
% 40.81/40.99  apply (zenon_L1_); trivial.
% 40.81/40.99  apply (zenon_L1_); trivial.
% 40.81/40.99  apply zenon_H465. apply refl_equal.
% 40.81/40.99  apply zenon_H465. apply refl_equal.
% 40.81/40.99  exact (zenon_H2d3 zenon_H14).
% 40.81/40.99  apply zenon_H465. apply refl_equal.
% 40.81/40.99  apply zenon_H465. apply refl_equal.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/40.99  apply (zenon_L26_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/40.99  apply (zenon_L27_); trivial.
% 40.81/40.99  apply (zenon_L31_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.81/40.99  apply (zenon_L56_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.81/40.99  apply (zenon_L57_); trivial.
% 40.81/40.99  apply (zenon_L61_); trivial.
% 40.81/40.99  apply (zenon_notand_s _ _ zenon_H45c); [ zenon_intro zenon_H46b | zenon_intro zenon_H46a ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3d); [ zenon_intro zenon_H24 | zenon_intro zenon_H3e ].
% 40.81/40.99  apply (zenon_L5_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3e); [ zenon_intro zenon_H2c | zenon_intro zenon_H3f ].
% 40.81/40.99  cut (((h2 (e13)) = (op2 (op2 (e21) (e21)) (e21))) = ((h2 (op1 (e10) (e11))) = (op2 (h2 (e10)) (h2 (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H46b.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H231.
% 40.81/40.99  cut (((op2 (op2 (e21) (e21)) (e21)) = (op2 (h2 (e10)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H46c].
% 40.81/40.99  cut (((h2 (e13)) = (h2 (op1 (e10) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H46d].
% 40.81/40.99  congruence.
% 40.81/40.99  elim (classic ((h2 (op1 (e10) (e11))) = (h2 (op1 (e10) (e11))))); [ zenon_intro zenon_H46e | zenon_intro zenon_H46f ].
% 40.81/40.99  cut (((h2 (op1 (e10) (e11))) = (h2 (op1 (e10) (e11)))) = ((h2 (e13)) = (h2 (op1 (e10) (e11))))).
% 40.81/40.99  intro zenon_D_pnotp.
% 40.81/40.99  apply zenon_H46d.
% 40.81/40.99  rewrite <- zenon_D_pnotp.
% 40.81/40.99  exact zenon_H46e.
% 40.81/40.99  cut (((h2 (op1 (e10) (e11))) = (h2 (op1 (e10) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H46f].
% 40.81/40.99  cut (((h2 (op1 (e10) (e11))) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H470].
% 40.81/40.99  congruence.
% 40.81/40.99  cut (((op1 (e10) (e11)) = (e13))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 40.81/40.99  congruence.
% 40.81/40.99  exact (zenon_H2e zenon_H2c).
% 40.81/40.99  apply zenon_H46f. apply refl_equal.
% 40.81/40.99  apply zenon_H46f. apply refl_equal.
% 40.81/40.99  cut (((e21) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H471].
% 40.81/40.99  cut (((op2 (e21) (e21)) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H472].
% 40.81/40.99  congruence.
% 40.81/40.99  apply zenon_H472. apply sym_equal. exact zenon_H13.
% 40.81/40.99  apply zenon_H471. apply sym_equal. exact zenon_H234.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3f); [ zenon_intro zenon_H2f | zenon_intro zenon_H36 ].
% 40.81/40.99  apply (zenon_L8_); trivial.
% 40.81/40.99  apply (zenon_L9_); trivial.
% 40.81/40.99  apply (zenon_notand_s _ _ zenon_H46a); [ zenon_intro zenon_H107 | zenon_intro zenon_H473 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.81/40.99  apply (zenon_L32_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.81/40.99  apply (zenon_L40_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.81/40.99  apply (zenon_L41_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/40.99  apply (zenon_L2_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/40.99  apply (zenon_L10_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/40.99  apply (zenon_L11_); trivial.
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/40.99  apply (zenon_or_s _ _ zenon_H3a5); [ zenon_intro zenon_H109 | zenon_intro zenon_H474 ].
% 40.81/41.00  apply (zenon_L66_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H474); [ zenon_intro zenon_H125 | zenon_intro zenon_H475 ].
% 40.81/41.00  apply (zenon_L67_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H475); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12b ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L68_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/41.00  apply (zenon_L17_); trivial.
% 40.81/41.00  apply (zenon_L83_); trivial.
% 40.81/41.00  apply (zenon_L25_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/41.00  apply (zenon_L26_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/41.00  apply (zenon_L27_); trivial.
% 40.81/41.00  apply (zenon_L31_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L99_); trivial.
% 40.81/41.00  apply (zenon_L55_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.81/41.00  apply (zenon_L56_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.81/41.00  apply (zenon_L57_); trivial.
% 40.81/41.00  apply (zenon_L61_); trivial.
% 40.81/41.00  apply (zenon_notand_s _ _ zenon_H473); [ zenon_intro zenon_H233 | zenon_intro zenon_H476 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.81/41.00  apply (zenon_L32_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.81/41.00  apply (zenon_L40_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.81/41.00  apply (zenon_L41_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.81/41.00  apply (zenon_L48_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.81/41.00  apply (zenon_L107_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.81/41.00  apply (zenon_L51_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/41.00  apply (zenon_L2_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/41.00  apply (zenon_L10_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/41.00  apply (zenon_L11_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/41.00  apply (zenon_L18_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/41.00  apply (zenon_L116_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/41.00  apply (zenon_L21_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H3a5); [ zenon_intro zenon_H109 | zenon_intro zenon_H474 ].
% 40.81/41.00  apply (zenon_L136_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H474); [ zenon_intro zenon_H125 | zenon_intro zenon_H475 ].
% 40.81/41.00  apply (zenon_L67_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H475); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H12b ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L68_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/41.00  apply (zenon_L17_); trivial.
% 40.81/41.00  apply (zenon_L83_); trivial.
% 40.81/41.00  apply (zenon_L25_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/41.00  apply (zenon_L26_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/41.00  apply (zenon_L27_); trivial.
% 40.81/41.00  apply (zenon_L31_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L99_); trivial.
% 40.81/41.00  apply (zenon_L55_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.81/41.00  apply (zenon_L56_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.81/41.00  apply (zenon_L57_); trivial.
% 40.81/41.00  apply (zenon_L61_); trivial.
% 40.81/41.00  apply (zenon_notand_s _ _ zenon_H476); [ zenon_intro zenon_H278 | zenon_intro zenon_H477 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.81/41.00  apply (zenon_L32_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.81/41.00  apply (zenon_L40_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.81/41.00  apply (zenon_L41_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.81/41.00  apply (zenon_L48_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.81/41.00  apply (zenon_L107_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.81/41.00  apply (zenon_L51_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/41.00  apply (zenon_L2_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/41.00  apply (zenon_L10_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/41.00  apply (zenon_L11_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.81/41.00  apply (zenon_L18_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.81/41.00  apply (zenon_L116_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.81/41.00  apply (zenon_L21_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.81/41.00  apply (zenon_L35_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H295); [ zenon_intro zenon_H99 | zenon_intro zenon_H297 ].
% 40.81/41.00  apply (zenon_L35_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H297); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H298 ].
% 40.81/41.00  apply (zenon_L139_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H298); [ zenon_intro zenon_H1d7 | zenon_intro zenon_Hfd ].
% 40.81/41.00  apply (zenon_L141_); trivial.
% 40.81/41.00  apply (zenon_L61_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.81/41.00  apply (zenon_L38_); trivial.
% 40.81/41.00  apply (zenon_L39_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/41.00  apply (zenon_L17_); trivial.
% 40.81/41.00  apply (zenon_L83_); trivial.
% 40.81/41.00  apply (zenon_L25_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/41.00  apply (zenon_L26_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/41.00  apply (zenon_L27_); trivial.
% 40.81/41.00  apply (zenon_L31_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L99_); trivial.
% 40.81/41.00  apply (zenon_L55_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.81/41.00  apply (zenon_L56_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.81/41.00  apply (zenon_L57_); trivial.
% 40.81/41.00  apply (zenon_L61_); trivial.
% 40.81/41.00  apply (zenon_notand_s _ _ zenon_H477); [ zenon_intro zenon_H479 | zenon_intro zenon_H478 ].
% 40.81/41.00  cut (((h2 (e10)) = (op2 (e21) (e21))) = ((h2 (op1 (e11) (e11))) = (op2 (h2 (e11)) (h2 (e11))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H479.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H13.
% 40.81/41.00  cut (((op2 (e21) (e21)) = (op2 (h2 (e11)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H47a].
% 40.81/41.00  cut (((h2 (e10)) = (h2 (op1 (e11) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H47b].
% 40.81/41.00  congruence.
% 40.81/41.00  elim (classic ((h2 (op1 (e11) (e11))) = (h2 (op1 (e11) (e11))))); [ zenon_intro zenon_H47c | zenon_intro zenon_H47d ].
% 40.81/41.00  cut (((h2 (op1 (e11) (e11))) = (h2 (op1 (e11) (e11)))) = ((h2 (e10)) = (h2 (op1 (e11) (e11))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H47b.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H47c.
% 40.81/41.00  cut (((h2 (op1 (e11) (e11))) = (h2 (op1 (e11) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H47d].
% 40.81/41.00  cut (((h2 (op1 (e11) (e11))) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H47e].
% 40.81/41.00  congruence.
% 40.81/41.00  cut (((op1 (e11) (e11)) = (e10))); [idtac | apply NNPP; zenon_intro zenon_H21].
% 40.81/41.00  congruence.
% 40.81/41.00  apply zenon_H21. apply sym_equal. exact zenon_H18.
% 40.81/41.00  apply zenon_H47d. apply refl_equal.
% 40.81/41.00  apply zenon_H47d. apply refl_equal.
% 40.81/41.00  cut (((e21) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H471].
% 40.81/41.00  cut (((e21) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H471].
% 40.81/41.00  congruence.
% 40.81/41.00  apply zenon_H471. apply sym_equal. exact zenon_H234.
% 40.81/41.00  apply zenon_H471. apply sym_equal. exact zenon_H234.
% 40.81/41.00  apply (zenon_notand_s _ _ zenon_H478); [ zenon_intro zenon_H480 | zenon_intro zenon_H47f ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.81/41.00  apply (zenon_L32_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.81/41.00  apply (zenon_L40_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.81/41.00  apply (zenon_L41_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.81/41.00  apply (zenon_L2_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.81/41.00  apply (zenon_L10_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.81/41.00  apply (zenon_L11_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.81/41.00  cut (((h2 (e11)) = (e21)) = ((h2 (op1 (e11) (e12))) = (op2 (h2 (e11)) (h2 (e12))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H480.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H234.
% 40.81/41.00  cut (((e21) = (op2 (h2 (e11)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H481].
% 40.81/41.00  cut (((h2 (e11)) = (h2 (op1 (e11) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H482].
% 40.81/41.00  congruence.
% 40.81/41.00  elim (classic ((h2 (op1 (e11) (e12))) = (h2 (op1 (e11) (e12))))); [ zenon_intro zenon_H483 | zenon_intro zenon_H484 ].
% 40.81/41.00  cut (((h2 (op1 (e11) (e12))) = (h2 (op1 (e11) (e12)))) = ((h2 (e11)) = (h2 (op1 (e11) (e12))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H482.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H483.
% 40.81/41.00  cut (((h2 (op1 (e11) (e12))) = (h2 (op1 (e11) (e12))))); [idtac | apply NNPP; zenon_intro zenon_H484].
% 40.81/41.00  cut (((h2 (op1 (e11) (e12))) = (h2 (e11)))); [idtac | apply NNPP; zenon_intro zenon_H485].
% 40.81/41.00  congruence.
% 40.81/41.00  cut (((op1 (e11) (e12)) = (e11))); [idtac | apply NNPP; zenon_intro zenon_H486].
% 40.81/41.00  congruence.
% 40.81/41.00  exact (zenon_H486 zenon_H57).
% 40.81/41.00  apply zenon_H484. apply refl_equal.
% 40.81/41.00  apply zenon_H484. apply refl_equal.
% 40.81/41.00  elim (classic ((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12))))); [ zenon_intro zenon_H487 | zenon_intro zenon_H488 ].
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12)))) = ((e21) = (op2 (h2 (e11)) (h2 (e12))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H481.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H487.
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H488].
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H489].
% 40.81/41.00  congruence.
% 40.81/41.00  cut (((op2 (e21) (e22)) = (e21)) = ((op2 (h2 (e11)) (h2 (e12))) = (e21))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H489.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_Hcc.
% 40.81/41.00  cut (((e21) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 40.81/41.00  cut (((op2 (e21) (e22)) = (op2 (h2 (e11)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H48a].
% 40.81/41.00  congruence.
% 40.81/41.00  elim (classic ((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12))))); [ zenon_intro zenon_H487 | zenon_intro zenon_H488 ].
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12)))) = ((op2 (e21) (e22)) = (op2 (h2 (e11)) (h2 (e12))))).
% 40.81/41.00  intro zenon_D_pnotp.
% 40.81/41.00  apply zenon_H48a.
% 40.81/41.00  rewrite <- zenon_D_pnotp.
% 40.81/41.00  exact zenon_H487.
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (op2 (h2 (e11)) (h2 (e12))))); [idtac | apply NNPP; zenon_intro zenon_H488].
% 40.81/41.00  cut (((op2 (h2 (e11)) (h2 (e12))) = (op2 (e21) (e22)))); [idtac | apply NNPP; zenon_intro zenon_H48b].
% 40.81/41.00  congruence.
% 40.81/41.00  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.81/41.00  cut (((h2 (e11)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 40.81/41.00  congruence.
% 40.81/41.00  exact (zenon_H285 zenon_H234).
% 40.81/41.00  apply (zenon_L62_); trivial.
% 40.81/41.00  apply zenon_H488. apply refl_equal.
% 40.81/41.00  apply zenon_H488. apply refl_equal.
% 40.81/41.00  apply zenon_H95. apply refl_equal.
% 40.81/41.00  apply zenon_H488. apply refl_equal.
% 40.81/41.00  apply zenon_H488. apply refl_equal.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.81/41.00  apply (zenon_L17_); trivial.
% 40.81/41.00  apply (zenon_L83_); trivial.
% 40.81/41.00  apply (zenon_L25_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.81/41.00  apply (zenon_L26_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.81/41.00  apply (zenon_L27_); trivial.
% 40.81/41.00  apply (zenon_L31_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.81/41.00  apply (zenon_L47_); trivial.
% 40.81/41.00  apply (zenon_L99_); trivial.
% 40.81/41.00  apply (zenon_L55_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.81/41.00  apply (zenon_L56_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.81/41.00  apply (zenon_L57_); trivial.
% 40.81/41.00  apply (zenon_L61_); trivial.
% 40.81/41.00  apply (zenon_notand_s _ _ zenon_H47f); [ zenon_intro zenon_H289 | zenon_intro zenon_H48c ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.81/41.00  apply (zenon_L32_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.81/41.00  apply (zenon_L40_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.81/41.00  apply (zenon_L41_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.81/41.00  apply (zenon_L48_); trivial.
% 40.81/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.85/41.00  apply (zenon_L107_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.85/41.00  apply (zenon_L51_); trivial.
% 40.85/41.00  apply (zenon_L146_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H48c); [ zenon_intro zenon_H2ac | zenon_intro zenon_H48d ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.85/41.00  apply (zenon_L41_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.85/41.00  apply (zenon_L48_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.85/41.00  apply (zenon_L2_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.85/41.00  apply (zenon_L10_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.85/41.00  apply (zenon_L11_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.85/41.00  apply (zenon_L18_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.85/41.00  apply (zenon_L116_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.85/41.00  apply (zenon_L21_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hb2); [ zenon_intro zenon_H99 | zenon_intro zenon_Hb3 ].
% 40.85/41.00  apply (zenon_L35_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hb3); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hb4 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.85/41.00  apply (zenon_L153_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.85/41.00  apply (zenon_L105_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.85/41.00  apply (zenon_L106_); trivial.
% 40.85/41.00  apply (zenon_L86_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hb4); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Hab ].
% 40.85/41.00  apply (zenon_L38_); trivial.
% 40.85/41.00  apply (zenon_L39_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.85/41.00  apply (zenon_L17_); trivial.
% 40.85/41.00  apply (zenon_L83_); trivial.
% 40.85/41.00  apply (zenon_L25_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.85/41.00  apply (zenon_L26_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.85/41.00  apply (zenon_L27_); trivial.
% 40.85/41.00  apply (zenon_L31_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.85/41.00  apply (zenon_L51_); trivial.
% 40.85/41.00  apply (zenon_L154_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H48d); [ zenon_intro zenon_H48f | zenon_intro zenon_H48e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.85/41.00  apply (zenon_L2_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.85/41.00  apply (zenon_L10_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.85/41.00  cut (((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((h2 (op1 (e12) (e11))) = (op2 (h2 (e12)) (h2 (e11))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H48f.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H104.
% 40.85/41.00  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e12)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H490].
% 40.85/41.00  cut (((h2 (e12)) = (h2 (op1 (e12) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H491].
% 40.85/41.00  congruence.
% 40.85/41.00  elim (classic ((h2 (op1 (e12) (e11))) = (h2 (op1 (e12) (e11))))); [ zenon_intro zenon_H492 | zenon_intro zenon_H493 ].
% 40.85/41.00  cut (((h2 (op1 (e12) (e11))) = (h2 (op1 (e12) (e11)))) = ((h2 (e12)) = (h2 (op1 (e12) (e11))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H491.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H492.
% 40.85/41.00  cut (((h2 (op1 (e12) (e11))) = (h2 (op1 (e12) (e11))))); [idtac | apply NNPP; zenon_intro zenon_H493].
% 40.85/41.00  cut (((h2 (op1 (e12) (e11))) = (h2 (e12)))); [idtac | apply NNPP; zenon_intro zenon_H494].
% 40.85/41.00  congruence.
% 40.85/41.00  cut (((op1 (e12) (e11)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H495].
% 40.85/41.00  congruence.
% 40.85/41.00  exact (zenon_H495 zenon_H5a).
% 40.85/41.00  apply zenon_H493. apply refl_equal.
% 40.85/41.00  apply zenon_H493. apply refl_equal.
% 40.85/41.00  elim (classic ((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11))))); [ zenon_intro zenon_H496 | zenon_intro zenon_H497 ].
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11)))) = ((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e12)) (h2 (e11))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H490.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H496.
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H497].
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H498].
% 40.85/41.00  congruence.
% 40.85/41.00  cut (((op2 (e22) (e21)) = (e22)) = ((op2 (h2 (e12)) (h2 (e11))) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H498.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_Hcf.
% 40.85/41.00  cut (((e22) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))))); [idtac | apply NNPP; zenon_intro zenon_H113].
% 40.85/41.00  cut (((op2 (e22) (e21)) = (op2 (h2 (e12)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H499].
% 40.85/41.00  congruence.
% 40.85/41.00  elim (classic ((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11))))); [ zenon_intro zenon_H496 | zenon_intro zenon_H497 ].
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11)))) = ((op2 (e22) (e21)) = (op2 (h2 (e12)) (h2 (e11))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H499.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H496.
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (h2 (e12)) (h2 (e11))))); [idtac | apply NNPP; zenon_intro zenon_H497].
% 40.85/41.00  cut (((op2 (h2 (e12)) (h2 (e11))) = (op2 (e22) (e21)))); [idtac | apply NNPP; zenon_intro zenon_H49a].
% 40.85/41.00  congruence.
% 40.85/41.00  cut (((h2 (e11)) = (e21))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 40.85/41.00  cut (((h2 (e12)) = (e22))); [idtac | apply NNPP; zenon_intro zenon_H103].
% 40.85/41.00  congruence.
% 40.85/41.00  apply (zenon_L62_); trivial.
% 40.85/41.00  exact (zenon_H285 zenon_H234).
% 40.85/41.00  apply zenon_H497. apply refl_equal.
% 40.85/41.00  apply zenon_H497. apply refl_equal.
% 40.85/41.00  exact (zenon_H113 zenon_Hc4).
% 40.85/41.00  apply zenon_H497. apply refl_equal.
% 40.85/41.00  apply zenon_H497. apply refl_equal.
% 40.85/41.00  apply (zenon_L25_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H48e); [ zenon_intro zenon_H2bd | zenon_intro zenon_H49b ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.85/41.00  apply (zenon_L41_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.85/41.00  apply (zenon_L2_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.85/41.00  apply (zenon_L10_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.85/41.00  apply (zenon_L11_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.85/41.00  apply (zenon_L18_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.85/41.00  apply (zenon_L116_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.85/41.00  apply (zenon_L21_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H3a8); [ zenon_intro zenon_Ha4 | zenon_intro zenon_H49c ].
% 40.85/41.00  apply (zenon_L38_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H49c); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H49d ].
% 40.85/41.00  apply (zenon_L106_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H49d); [ zenon_intro zenon_H1e2 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L159_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.85/41.00  apply (zenon_L17_); trivial.
% 40.85/41.00  apply (zenon_L83_); trivial.
% 40.85/41.00  apply (zenon_L25_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.85/41.00  apply (zenon_L26_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.85/41.00  apply (zenon_L27_); trivial.
% 40.85/41.00  apply (zenon_L31_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H49b); [ zenon_intro zenon_H2d6 | zenon_intro zenon_H49e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.85/41.00  apply (zenon_L41_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.85/41.00  apply (zenon_L48_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.85/41.00  apply (zenon_L2_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.85/41.00  apply (zenon_L10_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.85/41.00  apply (zenon_L11_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.85/41.00  apply (zenon_L18_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.85/41.00  apply (zenon_L116_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.85/41.00  apply (zenon_L21_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.85/41.00  apply (zenon_L58_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.85/41.00  apply (zenon_L165_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.85/41.00  apply (zenon_L105_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.85/41.00  apply (zenon_L106_); trivial.
% 40.85/41.00  apply (zenon_L86_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.85/41.00  apply (zenon_L67_); trivial.
% 40.85/41.00  apply (zenon_L92_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.85/41.00  apply (zenon_L17_); trivial.
% 40.85/41.00  apply (zenon_L83_); trivial.
% 40.85/41.00  apply (zenon_L25_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.85/41.00  apply (zenon_L26_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.85/41.00  apply (zenon_L27_); trivial.
% 40.85/41.00  apply (zenon_L31_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.85/41.00  apply (zenon_L51_); trivial.
% 40.85/41.00  apply (zenon_L166_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H49e); [ zenon_intro zenon_H4a0 | zenon_intro zenon_H49f ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H8b); [ zenon_intro zenon_H50 | zenon_intro zenon_H8c ].
% 40.85/41.00  apply (zenon_L14_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H8c); [ zenon_intro zenon_H83 | zenon_intro zenon_H8d ].
% 40.85/41.00  apply (zenon_L28_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H8d); [ zenon_intro zenon_H7d | zenon_intro zenon_H89 ].
% 40.85/41.00  apply (zenon_L27_); trivial.
% 40.85/41.00  cut (((h2 (e12)) = (op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21)))) = ((h2 (op1 (e13) (e10))) = (op2 (h2 (e13)) (h2 (e10))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H4a0.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H104.
% 40.85/41.00  cut (((op2 (op2 (op2 (e21) (e21)) (e21)) (op2 (e21) (e21))) = (op2 (h2 (e13)) (h2 (e10))))); [idtac | apply NNPP; zenon_intro zenon_H4a1].
% 40.85/41.00  cut (((h2 (e12)) = (h2 (op1 (e13) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H4a2].
% 40.85/41.00  congruence.
% 40.85/41.00  elim (classic ((h2 (op1 (e13) (e10))) = (h2 (op1 (e13) (e10))))); [ zenon_intro zenon_H4a3 | zenon_intro zenon_H4a4 ].
% 40.85/41.00  cut (((h2 (op1 (e13) (e10))) = (h2 (op1 (e13) (e10)))) = ((h2 (e12)) = (h2 (op1 (e13) (e10))))).
% 40.85/41.00  intro zenon_D_pnotp.
% 40.85/41.00  apply zenon_H4a2.
% 40.85/41.00  rewrite <- zenon_D_pnotp.
% 40.85/41.00  exact zenon_H4a3.
% 40.85/41.00  cut (((h2 (op1 (e13) (e10))) = (h2 (op1 (e13) (e10))))); [idtac | apply NNPP; zenon_intro zenon_H4a4].
% 40.85/41.00  cut (((h2 (op1 (e13) (e10))) = (h2 (e12)))); [idtac | apply NNPP; zenon_intro zenon_H4a5].
% 40.85/41.00  congruence.
% 40.85/41.00  cut (((op1 (e13) (e10)) = (e12))); [idtac | apply NNPP; zenon_intro zenon_H8a].
% 40.85/41.00  congruence.
% 40.85/41.00  exact (zenon_H8a zenon_H89).
% 40.85/41.00  apply zenon_H4a4. apply refl_equal.
% 40.85/41.00  apply zenon_H4a4. apply refl_equal.
% 40.85/41.00  cut (((op2 (e21) (e21)) = (h2 (e10)))); [idtac | apply NNPP; zenon_intro zenon_H472].
% 40.85/41.00  cut (((op2 (op2 (e21) (e21)) (e21)) = (h2 (e13)))); [idtac | apply NNPP; zenon_intro zenon_H4a6].
% 40.85/41.00  congruence.
% 40.85/41.00  apply zenon_H4a6. apply sym_equal. exact zenon_H231.
% 40.85/41.00  apply zenon_H472. apply sym_equal. exact zenon_H13.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H49f); [ zenon_intro zenon_H2e2 | zenon_intro zenon_H4a7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1b9); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1bd ].
% 40.85/41.00  apply (zenon_L94_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1bd); [ zenon_intro zenon_H1ad | zenon_intro zenon_H1be ].
% 40.85/41.00  apply (zenon_L168_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1be); [ zenon_intro zenon_H1b3 | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_L96_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H4a7); [ zenon_intro zenon_H2fa | zenon_intro zenon_H4a8 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.85/41.00  apply (zenon_L41_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.85/41.00  apply (zenon_L48_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H294); [ zenon_intro zenon_H41 | zenon_intro zenon_H296 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H79); [ zenon_intro zenon_H19 | zenon_intro zenon_H7a ].
% 40.85/41.00  apply (zenon_L2_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7a); [ zenon_intro zenon_H2a | zenon_intro zenon_H7b ].
% 40.85/41.00  apply (zenon_L10_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H7b); [ zenon_intro zenon_H5a | zenon_intro zenon_H72 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6f); [ zenon_intro zenon_H40 | zenon_intro zenon_H70 ].
% 40.85/41.00  apply (zenon_L11_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H70); [ zenon_intro zenon_H57 | zenon_intro zenon_H71 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6c); [ zenon_intro zenon_H5e | zenon_intro zenon_H6d ].
% 40.85/41.00  apply (zenon_L18_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ].
% 40.85/41.00  apply (zenon_L116_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H6e); [ zenon_intro zenon_H65 | zenon_intro zenon_H69 ].
% 40.85/41.00  apply (zenon_L21_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1c0); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H1c9 ].
% 40.85/41.00  apply (zenon_L58_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1c9); [ zenon_intro zenon_H190 | zenon_intro zenon_H1ca ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.85/41.00  apply (zenon_L176_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.85/41.00  apply (zenon_L105_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.85/41.00  apply (zenon_L106_); trivial.
% 40.85/41.00  apply (zenon_L86_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1ca); [ zenon_intro zenon_H125 | zenon_intro zenon_H1a0 ].
% 40.85/41.00  apply (zenon_L67_); trivial.
% 40.85/41.00  apply (zenon_L92_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H71); [ zenon_intro zenon_H5b | zenon_intro zenon_H68 ].
% 40.85/41.00  apply (zenon_L17_); trivial.
% 40.85/41.00  apply (zenon_L83_); trivial.
% 40.85/41.00  apply (zenon_L25_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H296); [ zenon_intro zenon_H45 | zenon_intro zenon_H299 ].
% 40.85/41.00  apply (zenon_L26_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H299); [ zenon_intro zenon_H7d | zenon_intro zenon_H88 ].
% 40.85/41.00  apply (zenon_L27_); trivial.
% 40.85/41.00  apply (zenon_L31_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.85/41.00  apply (zenon_L51_); trivial.
% 40.85/41.00  apply (zenon_L177_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H4a8); [ zenon_intro zenon_H30c | zenon_intro zenon_H4a9 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H44a); [ zenon_intro zenon_Hb6 | zenon_intro zenon_H45e ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hee); [ zenon_intro zenon_H8f | zenon_intro zenon_Hef ].
% 40.85/41.00  apply (zenon_L32_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hef); [ zenon_intro zenon_H9f | zenon_intro zenon_Hf0 ].
% 40.85/41.00  apply (zenon_L40_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_Hf0); [ zenon_intro zenon_Hcf | zenon_intro zenon_He7 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He4); [ zenon_intro zenon_Hb5 | zenon_intro zenon_He5 ].
% 40.85/41.00  apply (zenon_L41_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He5); [ zenon_intro zenon_Hcc | zenon_intro zenon_He6 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_Hd3 | zenon_intro zenon_He2 ].
% 40.85/41.00  apply (zenon_L48_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_Hd7 | zenon_intro zenon_He3 ].
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f2); [ zenon_intro zenon_H1d2 | zenon_intro zenon_H1f3 ].
% 40.85/41.00  apply (zenon_L181_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f3); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1f4 ].
% 40.85/41.00  apply (zenon_L105_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H18a ].
% 40.85/41.00  apply (zenon_L106_); trivial.
% 40.85/41.00  apply (zenon_L86_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hda | zenon_intro zenon_Hde ].
% 40.85/41.00  apply (zenon_L51_); trivial.
% 40.85/41.00  apply (zenon_L180_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_He6); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hdd ].
% 40.85/41.00  apply (zenon_L47_); trivial.
% 40.85/41.00  apply (zenon_L99_); trivial.
% 40.85/41.00  apply (zenon_L55_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H45e); [ zenon_intro zenon_Hba | zenon_intro zenon_H469 ].
% 40.85/41.00  apply (zenon_L56_); trivial.
% 40.85/41.00  apply (zenon_or_s _ _ zenon_H469); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hfd ].
% 40.85/41.00  apply (zenon_L57_); trivial.
% 40.85/41.00  apply (zenon_L61_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H4a9); [ zenon_intro zenon_H4ab | zenon_intro zenon_H4aa ].
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4ab). zenon_intro zenon_H12. zenon_intro zenon_H4ac.
% 40.85/41.00  apply (zenon_L1_); trivial.
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H4aa); [ zenon_intro zenon_H4ae | zenon_intro zenon_H4ad ].
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4ae). zenon_intro zenon_H4b0. zenon_intro zenon_H4af.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4af). zenon_intro zenon_H285. zenon_intro zenon_H4b1.
% 40.85/41.00  exact (zenon_H285 zenon_H234).
% 40.85/41.00  apply (zenon_notand_s _ _ zenon_H4ad); [ zenon_intro zenon_H4b3 | zenon_intro zenon_H4b2 ].
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4b3). zenon_intro zenon_H4b5. zenon_intro zenon_H4b4.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4b4). zenon_intro zenon_H4b7. zenon_intro zenon_H4b6.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4b6). zenon_intro zenon_H103. zenon_intro zenon_H4b8.
% 40.85/41.00  apply (zenon_L62_); trivial.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4b2). zenon_intro zenon_H4ba. zenon_intro zenon_H4b9.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4b9). zenon_intro zenon_H4bc. zenon_intro zenon_H4bb.
% 40.85/41.00  apply (zenon_notor_s _ _ zenon_H4bb). zenon_intro zenon_H4bd. zenon_intro zenon_H230.
% 40.85/41.00  apply (zenon_L121_); trivial.
% 40.85/41.00  Qed.
% 40.85/41.00  % SZS output end Proof
% 40.85/41.00  (* END-PROOF *)
% 40.85/41.00  nodes searched: 2099471
% 40.85/41.00  max branch formulas: 1977
% 40.85/41.00  proof nodes created: 21256
% 40.85/41.00  formulas created: 1060701
% 40.85/41.00  
%------------------------------------------------------------------------------