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

View Problem - Process Solution

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

% Computer : n021.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 600s
% DateTime : Thu Jul 14 18:29:00 EDT 2022

% Result   : Theorem 1.97s 2.12s
% Output   : Proof 1.97s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.03/0.12  % Problem  : ALG022+1 : TPTP v8.1.0. Released v2.7.0.
% 0.03/0.12  % Command  : run_zenon %s %d
% 0.13/0.33  % Computer : n021.cluster.edu
% 0.13/0.33  % Model    : x86_64 x86_64
% 0.13/0.33  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.33  % Memory   : 8042.1875MB
% 0.13/0.33  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.33  % CPULimit : 300
% 0.13/0.33  % WCLimit  : 600
% 0.13/0.33  % DateTime : Wed Jun  8 06:51:52 EDT 2022
% 0.13/0.34  % CPUTime  : 
% 1.97/2.12  (* PROOF-FOUND *)
% 1.97/2.12  % SZS status Theorem
% 1.97/2.12  (* BEGIN-PROOF *)
% 1.97/2.12  % SZS output start Proof
% 1.97/2.12  Theorem co1 : ((~((((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0)))))\/((((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1)))))\/((((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2)))))\/(((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3)))))))))/\((((op (e0) (e0)) = (e0))\/(((op (e0) (e0)) = (e1))\/(((op (e0) (e0)) = (e2))\/((op (e0) (e0)) = (e3)))))/\((((op (e0) (e1)) = (e0))\/(((op (e0) (e1)) = (e1))\/(((op (e0) (e1)) = (e2))\/((op (e0) (e1)) = (e3)))))/\((((op (e0) (e2)) = (e0))\/(((op (e0) (e2)) = (e1))\/(((op (e0) (e2)) = (e2))\/((op (e0) (e2)) = (e3)))))/\((((op (e0) (e3)) = (e0))\/(((op (e0) (e3)) = (e1))\/(((op (e0) (e3)) = (e2))\/((op (e0) (e3)) = (e3)))))/\((((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3)))))/\((((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3)))))/\((((op (e1) (e2)) = (e0))\/(((op (e1) (e2)) = (e1))\/(((op (e1) (e2)) = (e2))\/((op (e1) (e2)) = (e3)))))/\((((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3)))))/\((((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3)))))/\((((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3)))))/\((((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3)))))/\((((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3)))))/\((((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3)))))/\((((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3)))))/\((((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3)))))/\((((op (e3) (e3)) = (e0))\/(((op (e3) (e3)) = (e1))\/(((op (e3) (e3)) = (e2))\/((op (e3) (e3)) = (e3)))))/\(((op (op (e0) (e0)) (e0)) = (op (e0) (op (e0) (e0))))/\(((op (op (e0) (e0)) (e1)) = (op (e0) (op (e0) (e1))))/\(((op (op (e0) (e0)) (e2)) = (op (e0) (op (e0) (e2))))/\(((op (op (e0) (e0)) (e3)) = (op (e0) (op (e0) (e3))))/\(((op (op (e0) (e1)) (e0)) = (op (e0) (op (e1) (e0))))/\(((op (op (e0) (e1)) (e1)) = (op (e0) (op (e1) (e1))))/\(((op (op (e0) (e1)) (e2)) = (op (e0) (op (e1) (e2))))/\(((op (op (e0) (e1)) (e3)) = (op (e0) (op (e1) (e3))))/\(((op (op (e0) (e2)) (e0)) = (op (e0) (op (e2) (e0))))/\(((op (op (e0) (e2)) (e1)) = (op (e0) (op (e2) (e1))))/\(((op (op (e0) (e2)) (e2)) = (op (e0) (op (e2) (e2))))/\(((op (op (e0) (e2)) (e3)) = (op (e0) (op (e2) (e3))))/\(((op (op (e0) (e3)) (e0)) = (op (e0) (op (e3) (e0))))/\(((op (op (e0) (e3)) (e1)) = (op (e0) (op (e3) (e1))))/\(((op (op (e0) (e3)) (e2)) = (op (e0) (op (e3) (e2))))/\(((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3))))/\(((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0))))/\(((op (op (e1) (e0)) (e1)) = (op (e1) (op (e0) (e1))))/\(((op (op (e1) (e0)) (e2)) = (op (e1) (op (e0) (e2))))/\(((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3))))/\(((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0))))/\(((op (op (e1) (e1)) (e1)) = (op (e1) (op (e1) (e1))))/\(((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2))))/\(((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3))))/\(((op (op (e1) (e2)) (e0)) = (op (e1) (op (e2) (e0))))/\(((op (op (e1) (e2)) (e1)) = (op (e1) (op (e2) (e1))))/\(((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2))))/\(((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3))))/\(((op (op (e1) (e3)) (e0)) = (op (e1) (op (e3) (e0))))/\(((op (op (e1) (e3)) (e1)) = (op (e1) (op (e3) (e1))))/\(((op (op (e1) (e3)) (e2)) = (op (e1) (op (e3) (e2))))/\(((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3))))/\(((op (op (e2) (e0)) (e0)) = (op (e2) (op (e0) (e0))))/\(((op (op (e2) (e0)) (e1)) = (op (e2) (op (e0) (e1))))/\(((op (op (e2) (e0)) (e2)) = (op (e2) (op (e0) (e2))))/\(((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3))))/\(((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0))))/\(((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1))))/\(((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2))))/\(((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3))))/\(((op (op (e2) (e2)) (e0)) = (op (e2) (op (e2) (e0))))/\(((op (op (e2) (e2)) (e1)) = (op (e2) (op (e2) (e1))))/\(((op (op (e2) (e2)) (e2)) = (op (e2) (op (e2) (e2))))/\(((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3))))/\(((op (op (e2) (e3)) (e0)) = (op (e2) (op (e3) (e0))))/\(((op (op (e2) (e3)) (e1)) = (op (e2) (op (e3) (e1))))/\(((op (op (e2) (e3)) (e2)) = (op (e2) (op (e3) (e2))))/\(((op (op (e2) (e3)) (e3)) = (op (e2) (op (e3) (e3))))/\(((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0))))/\(((op (op (e3) (e0)) (e1)) = (op (e3) (op (e0) (e1))))/\(((op (op (e3) (e0)) (e2)) = (op (e3) (op (e0) (e2))))/\(((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3))))/\(((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0))))/\(((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1))))/\(((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2))))/\(((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3))))/\(((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0))))/\(((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1))))/\(((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2))))/\(((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3))))/\(((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0))))/\(((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1))))/\(((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2))))/\(((op (op (e3) (e3)) (e3)) = (op (e3) (op (e3) (e3))))/\(((op (unit) (e0)) = (e0))/\(((op (e0) (unit)) = (e0))/\(((op (unit) (e1)) = (e1))/\(((op (e1) (unit)) = (e1))/\(((op (unit) (e2)) = (e2))/\(((op (e2) (unit)) = (e2))/\(((op (unit) (e3)) = (e3))/\(((op (e3) (unit)) = (e3))/\((((unit) = (e0))\/(((unit) = (e1))\/(((unit) = (e2))\/((unit) = (e3)))))/\(((op (e0) (inv (e0))) = (unit))/\(((op (inv (e0)) (e0)) = (unit))/\(((op (e1) (inv (e1))) = (unit))/\(((op (inv (e1)) (e1)) = (unit))/\(((op (e2) (inv (e2))) = (unit))/\(((op (inv (e2)) (e2)) = (unit))/\(((op (e3) (inv (e3))) = (unit))/\(((op (inv (e3)) (e3)) = (unit))/\((((inv (e0)) = (e0))\/(((inv (e0)) = (e1))\/(((inv (e0)) = (e2))\/((inv (e0)) = (e3)))))/\((((inv (e1)) = (e0))\/(((inv (e1)) = (e1))\/(((inv (e1)) = (e2))\/((inv (e1)) = (e3)))))/\((((inv (e2)) = (e0))\/(((inv (e2)) = (e1))\/(((inv (e2)) = (e2))\/((inv (e2)) = (e3)))))/\(((inv (e3)) = (e0))\/(((inv (e3)) = (e1))\/(((inv (e3)) = (e2))\/((inv (e3)) = (e3)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))).
% 1.97/2.12  Proof.
% 1.97/2.12  assert (zenon_L1_ : (~((e3) = (e3))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H5.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L1_ *)
% 1.97/2.12  assert (zenon_L2_ : (~((e0) = (e0))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H6.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L2_ *)
% 1.97/2.12  assert (zenon_L3_ : (~((e1) = (e1))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H7.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L3_ *)
% 1.97/2.12  assert (zenon_L4_ : ((op (e0) (e1)) = (e1)) -> ((op (e1) (e0)) = (e1)) -> (~((e1) = (op (e0) (op (e1) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H8 zenon_H9 zenon_Ha.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0))))); [ zenon_intro zenon_Hb | zenon_intro zenon_Hc ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0)))) = ((e1) = (op (e0) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb.
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hc].
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hd].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e1)) = (e1)) = ((op (e0) (op (e1) (e0))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hd.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H8.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e0) (e1)) = (op (e0) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_He].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0))))); [ zenon_intro zenon_Hb | zenon_intro zenon_Hc ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0)))) = ((op (e0) (e1)) = (op (e0) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_He.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb.
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (op (e0) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hc].
% 1.97/2.12  cut (((op (e0) (op (e1) (e0))) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H10 zenon_H9).
% 1.97/2.12  apply zenon_Hc. apply refl_equal.
% 1.97/2.12  apply zenon_Hc. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_Hc. apply refl_equal.
% 1.97/2.12  apply zenon_Hc. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L4_ *)
% 1.97/2.12  assert (zenon_L5_ : ((op (e0) (e3)) = (e3)) -> ((op (e1) (e1)) = (e3)) -> (~((e3) = (op (e0) (op (e1) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H11 zenon_H12 zenon_H13.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1))))); [ zenon_intro zenon_H14 | zenon_intro zenon_H15 ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1)))) = ((e3) = (op (e0) (op (e1) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H13.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H14.
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H16].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e3)) = (e3)) = ((op (e0) (op (e1) (e1))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H16.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H11.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e0) (e3)) = (op (e0) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H17].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1))))); [ zenon_intro zenon_H14 | zenon_intro zenon_H15 ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1)))) = ((op (e0) (e3)) = (op (e0) (op (e1) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H17.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H14.
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (op (e0) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H15].
% 1.97/2.12  cut (((op (e0) (op (e1) (e1))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H18].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H19 zenon_H12).
% 1.97/2.12  apply zenon_H15. apply refl_equal.
% 1.97/2.12  apply zenon_H15. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H15. apply refl_equal.
% 1.97/2.12  apply zenon_H15. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L5_ *)
% 1.97/2.12  assert (zenon_L6_ : (~((e2) = (e2))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1a.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L6_ *)
% 1.97/2.12  assert (zenon_L7_ : ((op (e0) (e0)) = (e0)) -> ((op (e1) (e2)) = (e0)) -> (~((e0) = (op (e0) (op (e1) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1b zenon_H1c zenon_H1d.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2))))); [ zenon_intro zenon_H1e | zenon_intro zenon_H1f ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2)))) = ((e0) = (op (e0) (op (e1) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H1d.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1e.
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H20].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e0)) = (e0)) = ((op (e0) (op (e1) (e2))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H20.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1b.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e0) (e0)) = (op (e0) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H21].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2))))); [ zenon_intro zenon_H1e | zenon_intro zenon_H1f ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2)))) = ((op (e0) (e0)) = (op (e0) (op (e1) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H21.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1e.
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (op (e0) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1f].
% 1.97/2.12  cut (((op (e0) (op (e1) (e2))) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H22].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H23 zenon_H1c).
% 1.97/2.12  apply zenon_H1f. apply refl_equal.
% 1.97/2.12  apply zenon_H1f. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_H1f. apply refl_equal.
% 1.97/2.12  apply zenon_H1f. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L7_ *)
% 1.97/2.12  assert (zenon_L8_ : ((op (e0) (e2)) = (e2)) -> ((op (e1) (e3)) = (e2)) -> (~((e2) = (op (e0) (op (e1) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H24 zenon_H25 zenon_H26.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3))))); [ zenon_intro zenon_H27 | zenon_intro zenon_H28 ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3)))) = ((e2) = (op (e0) (op (e1) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H26.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H27.
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H28].
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H29].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e2)) = (e2)) = ((op (e0) (op (e1) (e3))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H29.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H24.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e0) (e2)) = (op (e0) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H2a].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3))))); [ zenon_intro zenon_H27 | zenon_intro zenon_H28 ].
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3)))) = ((op (e0) (e2)) = (op (e0) (op (e1) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H2a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H27.
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (op (e0) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H28].
% 1.97/2.12  cut (((op (e0) (op (e1) (e3))) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2b].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H2c zenon_H25).
% 1.97/2.12  apply zenon_H28. apply refl_equal.
% 1.97/2.12  apply zenon_H28. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_H28. apply refl_equal.
% 1.97/2.12  apply zenon_H28. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L8_ *)
% 1.97/2.12  assert (zenon_L9_ : ((op (e0) (e2)) = (e2)) -> ((op (e2) (e0)) = (e2)) -> (~((e2) = (op (e0) (op (e2) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H24 zenon_H2d zenon_H2e.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0))))); [ zenon_intro zenon_H2f | zenon_intro zenon_H30 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0)))) = ((e2) = (op (e0) (op (e2) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H2e.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H2f.
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H30].
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H31].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e2)) = (e2)) = ((op (e0) (op (e2) (e0))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H31.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H24.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e0) (e2)) = (op (e0) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H32].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0))))); [ zenon_intro zenon_H2f | zenon_intro zenon_H30 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0)))) = ((op (e0) (e2)) = (op (e0) (op (e2) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H32.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H2f.
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (op (e0) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H30].
% 1.97/2.12  cut (((op (e0) (op (e2) (e0))) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H33].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H34 zenon_H2d).
% 1.97/2.12  apply zenon_H30. apply refl_equal.
% 1.97/2.12  apply zenon_H30. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_H30. apply refl_equal.
% 1.97/2.12  apply zenon_H30. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L9_ *)
% 1.97/2.12  assert (zenon_L10_ : ((op (e0) (e0)) = (e0)) -> ((op (e2) (e1)) = (e0)) -> (~((e0) = (op (e0) (op (e2) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1b zenon_H35 zenon_H36.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1))))); [ zenon_intro zenon_H37 | zenon_intro zenon_H38 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1)))) = ((e0) = (op (e0) (op (e2) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H36.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H37.
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H38].
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H39].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e0)) = (e0)) = ((op (e0) (op (e2) (e1))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H39.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1b.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e0) (e0)) = (op (e0) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H3a].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1))))); [ zenon_intro zenon_H37 | zenon_intro zenon_H38 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1)))) = ((op (e0) (e0)) = (op (e0) (op (e2) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H3a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H37.
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (op (e0) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H38].
% 1.97/2.12  cut (((op (e0) (op (e2) (e1))) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H3b].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H3c zenon_H35).
% 1.97/2.12  apply zenon_H38. apply refl_equal.
% 1.97/2.12  apply zenon_H38. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_H38. apply refl_equal.
% 1.97/2.12  apply zenon_H38. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L10_ *)
% 1.97/2.12  assert (zenon_L11_ : ((op (e0) (e3)) = (e3)) -> ((op (e2) (e2)) = (e3)) -> (~((e3) = (op (e0) (op (e2) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H11 zenon_H3d zenon_H3e.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2))))); [ zenon_intro zenon_H3f | zenon_intro zenon_H40 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2)))) = ((e3) = (op (e0) (op (e2) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H3e.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H3f.
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H40].
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H41].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e3)) = (e3)) = ((op (e0) (op (e2) (e2))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H41.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H11.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e0) (e3)) = (op (e0) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H42].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2))))); [ zenon_intro zenon_H3f | zenon_intro zenon_H40 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2)))) = ((op (e0) (e3)) = (op (e0) (op (e2) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H42.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H3f.
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (op (e0) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H40].
% 1.97/2.12  cut (((op (e0) (op (e2) (e2))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H43].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H44 zenon_H3d).
% 1.97/2.12  apply zenon_H40. apply refl_equal.
% 1.97/2.12  apply zenon_H40. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H40. apply refl_equal.
% 1.97/2.12  apply zenon_H40. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L11_ *)
% 1.97/2.12  assert (zenon_L12_ : ((op (e0) (e1)) = (e1)) -> ((op (e2) (e3)) = (e1)) -> (~((e1) = (op (e0) (op (e2) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H8 zenon_H45 zenon_H46.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3))))); [ zenon_intro zenon_H47 | zenon_intro zenon_H48 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3)))) = ((e1) = (op (e0) (op (e2) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H46.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H47.
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H48].
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H49].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e1)) = (e1)) = ((op (e0) (op (e2) (e3))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H49.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H8.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e0) (e1)) = (op (e0) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H4a].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3))))); [ zenon_intro zenon_H47 | zenon_intro zenon_H48 ].
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3)))) = ((op (e0) (e1)) = (op (e0) (op (e2) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H4a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H47.
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (op (e0) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H48].
% 1.97/2.12  cut (((op (e0) (op (e2) (e3))) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H4b].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H4c zenon_H45).
% 1.97/2.12  apply zenon_H48. apply refl_equal.
% 1.97/2.12  apply zenon_H48. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_H48. apply refl_equal.
% 1.97/2.12  apply zenon_H48. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L12_ *)
% 1.97/2.12  assert (zenon_L13_ : ((op (e0) (e3)) = (e3)) -> ((op (e3) (e0)) = (e3)) -> (~((e3) = (op (e0) (op (e3) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H11 zenon_H4d zenon_H4e.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0))))); [ zenon_intro zenon_H4f | zenon_intro zenon_H50 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0)))) = ((e3) = (op (e0) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H4e.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H4f.
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H50].
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H51].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e3)) = (e3)) = ((op (e0) (op (e3) (e0))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H51.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H11.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e0) (e3)) = (op (e0) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H52].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0))))); [ zenon_intro zenon_H4f | zenon_intro zenon_H50 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0)))) = ((op (e0) (e3)) = (op (e0) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H52.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H4f.
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (op (e0) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H50].
% 1.97/2.12  cut (((op (e0) (op (e3) (e0))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H53].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H54 zenon_H4d).
% 1.97/2.12  apply zenon_H50. apply refl_equal.
% 1.97/2.12  apply zenon_H50. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H50. apply refl_equal.
% 1.97/2.12  apply zenon_H50. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L13_ *)
% 1.97/2.12  assert (zenon_L14_ : ((op (e0) (e2)) = (e2)) -> ((op (e3) (e1)) = (e2)) -> (~((e2) = (op (e0) (op (e3) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H24 zenon_H55 zenon_H56.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1))))); [ zenon_intro zenon_H57 | zenon_intro zenon_H58 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1)))) = ((e2) = (op (e0) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H56.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H57.
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H58].
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H59].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e2)) = (e2)) = ((op (e0) (op (e3) (e1))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H59.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H24.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e0) (e2)) = (op (e0) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H5a].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1))))); [ zenon_intro zenon_H57 | zenon_intro zenon_H58 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1)))) = ((op (e0) (e2)) = (op (e0) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H5a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H57.
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (op (e0) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H58].
% 1.97/2.12  cut (((op (e0) (op (e3) (e1))) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H5b].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H5c zenon_H55).
% 1.97/2.12  apply zenon_H58. apply refl_equal.
% 1.97/2.12  apply zenon_H58. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_H58. apply refl_equal.
% 1.97/2.12  apply zenon_H58. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L14_ *)
% 1.97/2.12  assert (zenon_L15_ : ((op (e0) (e1)) = (e1)) -> ((op (e3) (e2)) = (e1)) -> (~((e1) = (op (e0) (op (e3) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H8 zenon_H5d zenon_H5e.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2))))); [ zenon_intro zenon_H5f | zenon_intro zenon_H60 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2)))) = ((e1) = (op (e0) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H5e.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H5f.
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H60].
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H61].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e1)) = (e1)) = ((op (e0) (op (e3) (e2))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H61.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H8.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e0) (e1)) = (op (e0) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H62].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2))))); [ zenon_intro zenon_H5f | zenon_intro zenon_H60 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2)))) = ((op (e0) (e1)) = (op (e0) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H62.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H5f.
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (op (e0) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H60].
% 1.97/2.12  cut (((op (e0) (op (e3) (e2))) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H63].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H64 zenon_H5d).
% 1.97/2.12  apply zenon_H60. apply refl_equal.
% 1.97/2.12  apply zenon_H60. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_H60. apply refl_equal.
% 1.97/2.12  apply zenon_H60. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L15_ *)
% 1.97/2.12  assert (zenon_L16_ : ((op (e0) (e0)) = (e0)) -> ((op (e3) (e3)) = (e0)) -> (~((e0) = (op (e0) (op (e3) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1b zenon_H65 zenon_H66.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3))))); [ zenon_intro zenon_H67 | zenon_intro zenon_H68 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3)))) = ((e0) = (op (e0) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H66.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H67.
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H68].
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H69].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e0) (e0)) = (e0)) = ((op (e0) (op (e3) (e3))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H69.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1b.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e0) (e0)) = (op (e0) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H6a].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3))))); [ zenon_intro zenon_H67 | zenon_intro zenon_H68 ].
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3)))) = ((op (e0) (e0)) = (op (e0) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H6a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H67.
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (op (e0) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H68].
% 1.97/2.12  cut (((op (e0) (op (e3) (e3))) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  exact (zenon_H6c zenon_H65).
% 1.97/2.12  apply zenon_H68. apply refl_equal.
% 1.97/2.12  apply zenon_H68. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_H68. apply refl_equal.
% 1.97/2.12  apply zenon_H68. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L16_ *)
% 1.97/2.12  assert (zenon_L17_ : ((op (e1) (e1)) = (e3)) -> ((op (e1) (e0)) = (e1)) -> (~((e3) = (op (e1) (op (e1) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H12 zenon_H9 zenon_H6d.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0))))); [ zenon_intro zenon_H6e | zenon_intro zenon_H6f ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0)))) = ((e3) = (op (e1) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H6d.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H6e.
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H70].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e1)) = (e3)) = ((op (e1) (op (e1) (e0))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H70.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H12.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e1) (e1)) = (op (e1) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H71].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0))))); [ zenon_intro zenon_H6e | zenon_intro zenon_H6f ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0)))) = ((op (e1) (e1)) = (op (e1) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H71.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H6e.
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (op (e1) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6f].
% 1.97/2.12  cut (((op (e1) (op (e1) (e0))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H72].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H10 zenon_H9).
% 1.97/2.12  apply zenon_H6f. apply refl_equal.
% 1.97/2.12  apply zenon_H6f. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H6f. apply refl_equal.
% 1.97/2.12  apply zenon_H6f. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L17_ *)
% 1.97/2.12  assert (zenon_L18_ : ((op (e1) (e3)) = (e2)) -> ((op (e1) (e1)) = (e3)) -> (~((e2) = (op (e1) (op (e1) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H25 zenon_H12 zenon_H73.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1))))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1)))) = ((e2) = (op (e1) (op (e1) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H73.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H74.
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H76].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e3)) = (e2)) = ((op (e1) (op (e1) (e1))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H76.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H25.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e1) (e3)) = (op (e1) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H77].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1))))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1)))) = ((op (e1) (e3)) = (op (e1) (op (e1) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H77.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H74.
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (op (e1) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H75].
% 1.97/2.12  cut (((op (e1) (op (e1) (e1))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H78].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H19 zenon_H12).
% 1.97/2.12  apply zenon_H75. apply refl_equal.
% 1.97/2.12  apply zenon_H75. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_H75. apply refl_equal.
% 1.97/2.12  apply zenon_H75. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L18_ *)
% 1.97/2.12  assert (zenon_L19_ : ((op (e1) (e0)) = (e1)) -> ((op (e1) (e2)) = (e0)) -> (~((e1) = (op (e1) (op (e1) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H9 zenon_H1c zenon_H79.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2))))); [ zenon_intro zenon_H7a | zenon_intro zenon_H7b ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2)))) = ((e1) = (op (e1) (op (e1) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H79.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H7a.
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H7b].
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7c].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (op (e1) (e2))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H7c.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H9.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e1) (e0)) = (op (e1) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H7d].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2))))); [ zenon_intro zenon_H7a | zenon_intro zenon_H7b ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2)))) = ((op (e1) (e0)) = (op (e1) (op (e1) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H7d.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H7a.
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (op (e1) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H7b].
% 1.97/2.12  cut (((op (e1) (op (e1) (e2))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H7e].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H23 zenon_H1c).
% 1.97/2.12  apply zenon_H7b. apply refl_equal.
% 1.97/2.12  apply zenon_H7b. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_H7b. apply refl_equal.
% 1.97/2.12  apply zenon_H7b. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L19_ *)
% 1.97/2.12  assert (zenon_L20_ : ((op (e1) (e2)) = (e0)) -> ((op (e1) (e3)) = (e2)) -> (~((e0) = (op (e1) (op (e1) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1c zenon_H25 zenon_H7f.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3))))); [ zenon_intro zenon_H80 | zenon_intro zenon_H81 ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3)))) = ((e0) = (op (e1) (op (e1) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H7f.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H80.
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H81].
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H82].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e2)) = (e0)) = ((op (e1) (op (e1) (e3))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H82.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1c.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e1) (e2)) = (op (e1) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H83].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3))))); [ zenon_intro zenon_H80 | zenon_intro zenon_H81 ].
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3)))) = ((op (e1) (e2)) = (op (e1) (op (e1) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H83.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H80.
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (op (e1) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H81].
% 1.97/2.12  cut (((op (e1) (op (e1) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H2c zenon_H25).
% 1.97/2.12  apply zenon_H81. apply refl_equal.
% 1.97/2.12  apply zenon_H81. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_H81. apply refl_equal.
% 1.97/2.12  apply zenon_H81. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L20_ *)
% 1.97/2.12  assert (zenon_L21_ : ((op (e1) (e3)) = (e2)) -> ((op (e3) (e0)) = (e3)) -> (~((e2) = (op (e1) (op (e3) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H25 zenon_H4d zenon_H85.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0))))); [ zenon_intro zenon_H86 | zenon_intro zenon_H87 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0)))) = ((e2) = (op (e1) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H85.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H86.
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H87].
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H88].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e3)) = (e2)) = ((op (e1) (op (e3) (e0))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H88.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H25.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e1) (e3)) = (op (e1) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H89].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0))))); [ zenon_intro zenon_H86 | zenon_intro zenon_H87 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0)))) = ((op (e1) (e3)) = (op (e1) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H89.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H86.
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (op (e1) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H87].
% 1.97/2.12  cut (((op (e1) (op (e3) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H8a].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H54 zenon_H4d).
% 1.97/2.12  apply zenon_H87. apply refl_equal.
% 1.97/2.12  apply zenon_H87. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_H87. apply refl_equal.
% 1.97/2.12  apply zenon_H87. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L21_ *)
% 1.97/2.12  assert (zenon_L22_ : ((op (e1) (e2)) = (e0)) -> ((op (e3) (e1)) = (e2)) -> (~((e0) = (op (e1) (op (e3) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H1c zenon_H55 zenon_H8b.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1))))); [ zenon_intro zenon_H8c | zenon_intro zenon_H8d ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1)))) = ((e0) = (op (e1) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H8b.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H8c.
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H8d].
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H8e].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e2)) = (e0)) = ((op (e1) (op (e3) (e1))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H8e.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H1c.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e1) (e2)) = (op (e1) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H8f].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1))))); [ zenon_intro zenon_H8c | zenon_intro zenon_H8d ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1)))) = ((op (e1) (e2)) = (op (e1) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H8f.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H8c.
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (op (e1) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H8d].
% 1.97/2.12  cut (((op (e1) (op (e3) (e1))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H90].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H5c zenon_H55).
% 1.97/2.12  apply zenon_H8d. apply refl_equal.
% 1.97/2.12  apply zenon_H8d. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_H8d. apply refl_equal.
% 1.97/2.12  apply zenon_H8d. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L22_ *)
% 1.97/2.12  assert (zenon_L23_ : ((op (e1) (e1)) = (e3)) -> ((op (e3) (e2)) = (e1)) -> (~((e3) = (op (e1) (op (e3) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H12 zenon_H5d zenon_H91.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2))))); [ zenon_intro zenon_H92 | zenon_intro zenon_H93 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2)))) = ((e3) = (op (e1) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H91.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H92.
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H93].
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H94].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e1)) = (e3)) = ((op (e1) (op (e3) (e2))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H94.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H12.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e1) (e1)) = (op (e1) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H95].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2))))); [ zenon_intro zenon_H92 | zenon_intro zenon_H93 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2)))) = ((op (e1) (e1)) = (op (e1) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H95.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H92.
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (op (e1) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H93].
% 1.97/2.12  cut (((op (e1) (op (e3) (e2))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H64 zenon_H5d).
% 1.97/2.12  apply zenon_H93. apply refl_equal.
% 1.97/2.12  apply zenon_H93. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H93. apply refl_equal.
% 1.97/2.12  apply zenon_H93. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L23_ *)
% 1.97/2.12  assert (zenon_L24_ : ((op (e1) (e0)) = (e1)) -> ((op (e3) (e3)) = (e0)) -> (~((e1) = (op (e1) (op (e3) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H9 zenon_H65 zenon_H97.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3))))); [ zenon_intro zenon_H98 | zenon_intro zenon_H99 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3)))) = ((e1) = (op (e1) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H97.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H98.
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H9a].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (op (e3) (e3))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H9a.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H9.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e1) (e0)) = (op (e1) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H9b].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3))))); [ zenon_intro zenon_H98 | zenon_intro zenon_H99 ].
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3)))) = ((op (e1) (e0)) = (op (e1) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H9b.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H98.
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (op (e1) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H99].
% 1.97/2.12  cut (((op (e1) (op (e3) (e3))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9c].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  exact (zenon_H6c zenon_H65).
% 1.97/2.12  apply zenon_H99. apply refl_equal.
% 1.97/2.12  apply zenon_H99. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_H99. apply refl_equal.
% 1.97/2.12  apply zenon_H99. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L24_ *)
% 1.97/2.12  assert (zenon_L25_ : ((op (e2) (e2)) = (e3)) -> ((op (e2) (e0)) = (e2)) -> (~((e3) = (op (e2) (op (e2) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H3d zenon_H2d zenon_H9d.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0)))) = ((e3) = (op (e2) (op (e2) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_H9d.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H9e.
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H9f].
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Ha0].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e2)) = (e3)) = ((op (e2) (op (e2) (e0))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha0.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H3d.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e2) (e2)) = (op (e2) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Ha1].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0))))); [ zenon_intro zenon_H9e | zenon_intro zenon_H9f ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0)))) = ((op (e2) (e2)) = (op (e2) (op (e2) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha1.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H9e.
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (op (e2) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H9f].
% 1.97/2.12  cut (((op (e2) (op (e2) (e0))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha2].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H34 zenon_H2d).
% 1.97/2.12  apply zenon_H9f. apply refl_equal.
% 1.97/2.12  apply zenon_H9f. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_H9f. apply refl_equal.
% 1.97/2.12  apply zenon_H9f. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L25_ *)
% 1.97/2.12  assert (zenon_L26_ : ((op (e2) (e0)) = (e2)) -> ((op (e2) (e1)) = (e0)) -> (~((e2) = (op (e2) (op (e2) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H2d zenon_H35 zenon_Ha3.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1))))); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Ha5 ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1)))) = ((e2) = (op (e2) (op (e2) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha3.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Ha4.
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Ha5].
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Ha6].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (op (e2) (e1))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha6.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H2d.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e2) (e0)) = (op (e2) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Ha7].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1))))); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Ha5 ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1)))) = ((op (e2) (e0)) = (op (e2) (op (e2) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha7.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Ha4.
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (op (e2) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Ha5].
% 1.97/2.12  cut (((op (e2) (op (e2) (e1))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Ha8].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H3c zenon_H35).
% 1.97/2.12  apply zenon_Ha5. apply refl_equal.
% 1.97/2.12  apply zenon_Ha5. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_Ha5. apply refl_equal.
% 1.97/2.12  apply zenon_Ha5. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L26_ *)
% 1.97/2.12  assert (zenon_L27_ : ((op (e2) (e3)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> (~((e1) = (op (e2) (op (e2) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H45 zenon_H3d zenon_Ha9.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2))))); [ zenon_intro zenon_Haa | zenon_intro zenon_Hab ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2)))) = ((e1) = (op (e2) (op (e2) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Ha9.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Haa.
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hab].
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hac].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e3)) = (e1)) = ((op (e2) (op (e2) (e2))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hac.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H45.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e2) (e3)) = (op (e2) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Had].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2))))); [ zenon_intro zenon_Haa | zenon_intro zenon_Hab ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2)))) = ((op (e2) (e3)) = (op (e2) (op (e2) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Had.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Haa.
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (op (e2) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hab].
% 1.97/2.12  cut (((op (e2) (op (e2) (e2))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hae].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H44 zenon_H3d).
% 1.97/2.12  apply zenon_Hab. apply refl_equal.
% 1.97/2.12  apply zenon_Hab. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_Hab. apply refl_equal.
% 1.97/2.12  apply zenon_Hab. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L27_ *)
% 1.97/2.12  assert (zenon_L28_ : ((op (e2) (e1)) = (e0)) -> ((op (e2) (e3)) = (e1)) -> (~((e0) = (op (e2) (op (e2) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H35 zenon_H45 zenon_Haf.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3))))); [ zenon_intro zenon_Hb0 | zenon_intro zenon_Hb1 ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3)))) = ((e0) = (op (e2) (op (e2) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Haf.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb0.
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hb1].
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hb2].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e1)) = (e0)) = ((op (e2) (op (e2) (e3))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hb2.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H35.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e2) (e1)) = (op (e2) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hb3].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3))))); [ zenon_intro zenon_Hb0 | zenon_intro zenon_Hb1 ].
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3)))) = ((op (e2) (e1)) = (op (e2) (op (e2) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hb3.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb0.
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (op (e2) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hb1].
% 1.97/2.12  cut (((op (e2) (op (e2) (e3))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb4].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H4c zenon_H45).
% 1.97/2.12  apply zenon_Hb1. apply refl_equal.
% 1.97/2.12  apply zenon_Hb1. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_Hb1. apply refl_equal.
% 1.97/2.12  apply zenon_Hb1. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L28_ *)
% 1.97/2.12  assert (zenon_L29_ : ((op (e2) (e3)) = (e1)) -> ((op (e3) (e0)) = (e3)) -> (~((e1) = (op (e2) (op (e3) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H45 zenon_H4d zenon_Hb5.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0))))); [ zenon_intro zenon_Hb6 | zenon_intro zenon_Hb7 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0)))) = ((e1) = (op (e2) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hb5.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb6.
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hb7].
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Hb8].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e3)) = (e1)) = ((op (e2) (op (e3) (e0))) = (e1))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hb8.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H45.
% 1.97/2.12  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.12  cut (((op (e2) (e3)) = (op (e2) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hb9].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0))))); [ zenon_intro zenon_Hb6 | zenon_intro zenon_Hb7 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0)))) = ((op (e2) (e3)) = (op (e2) (op (e3) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hb9.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hb6.
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (op (e2) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hb7].
% 1.97/2.12  cut (((op (e2) (op (e3) (e0))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hba].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H54 zenon_H4d).
% 1.97/2.12  apply zenon_Hb7. apply refl_equal.
% 1.97/2.12  apply zenon_Hb7. apply refl_equal.
% 1.97/2.12  apply zenon_H7. apply refl_equal.
% 1.97/2.12  apply zenon_Hb7. apply refl_equal.
% 1.97/2.12  apply zenon_Hb7. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L29_ *)
% 1.97/2.12  assert (zenon_L30_ : ((op (e2) (e2)) = (e3)) -> ((op (e3) (e1)) = (e2)) -> (~((e3) = (op (e2) (op (e3) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H3d zenon_H55 zenon_Hbb.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1))))); [ zenon_intro zenon_Hbc | zenon_intro zenon_Hbd ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1)))) = ((e3) = (op (e2) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hbb.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hbc.
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hbd].
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hbe].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e2)) = (e3)) = ((op (e2) (op (e3) (e1))) = (e3))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hbe.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H3d.
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  cut (((op (e2) (e2)) = (op (e2) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hbf].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1))))); [ zenon_intro zenon_Hbc | zenon_intro zenon_Hbd ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1)))) = ((op (e2) (e2)) = (op (e2) (op (e3) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hbf.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hbc.
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (op (e2) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hbd].
% 1.97/2.12  cut (((op (e2) (op (e3) (e1))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hc0].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H5c zenon_H55).
% 1.97/2.12  apply zenon_Hbd. apply refl_equal.
% 1.97/2.12  apply zenon_Hbd. apply refl_equal.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  apply zenon_Hbd. apply refl_equal.
% 1.97/2.12  apply zenon_Hbd. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L30_ *)
% 1.97/2.12  assert (zenon_L31_ : ((op (e2) (e1)) = (e0)) -> ((op (e3) (e2)) = (e1)) -> (~((e0) = (op (e2) (op (e3) (e2))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H35 zenon_H5d zenon_Hc1.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2))))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_Hc3 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2)))) = ((e0) = (op (e2) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hc1.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hc2.
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc4].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e1)) = (e0)) = ((op (e2) (op (e3) (e2))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hc4.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H35.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.12  cut (((op (e2) (e1)) = (op (e2) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hc5].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2))))); [ zenon_intro zenon_Hc2 | zenon_intro zenon_Hc3 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2)))) = ((op (e2) (e1)) = (op (e2) (op (e3) (e2))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hc5.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hc2.
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (op (e2) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hc3].
% 1.97/2.12  cut (((op (e2) (op (e3) (e2))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc6].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H64 zenon_H5d).
% 1.97/2.12  apply zenon_Hc3. apply refl_equal.
% 1.97/2.12  apply zenon_Hc3. apply refl_equal.
% 1.97/2.12  apply zenon_H6. apply refl_equal.
% 1.97/2.12  apply zenon_Hc3. apply refl_equal.
% 1.97/2.12  apply zenon_Hc3. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L31_ *)
% 1.97/2.12  assert (zenon_L32_ : ((op (e2) (e0)) = (e2)) -> ((op (e3) (e3)) = (e0)) -> (~((e2) = (op (e2) (op (e3) (e3))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H2d zenon_H65 zenon_Hc7.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3))))); [ zenon_intro zenon_Hc8 | zenon_intro zenon_Hc9 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3)))) = ((e2) = (op (e2) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hc7.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hc8.
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hc9].
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hca].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (op (e3) (e3))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hca.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H2d.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e2) (e0)) = (op (e2) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hcb].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3))))); [ zenon_intro zenon_Hc8 | zenon_intro zenon_Hc9 ].
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3)))) = ((op (e2) (e0)) = (op (e2) (op (e3) (e3))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hcb.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hc8.
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (op (e2) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hc9].
% 1.97/2.12  cut (((op (e2) (op (e3) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hcc].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  exact (zenon_H6c zenon_H65).
% 1.97/2.12  apply zenon_Hc9. apply refl_equal.
% 1.97/2.12  apply zenon_Hc9. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_Hc9. apply refl_equal.
% 1.97/2.12  apply zenon_Hc9. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L32_ *)
% 1.97/2.12  assert (zenon_L33_ : ((op (e3) (e1)) = (e2)) -> ((op (e1) (e0)) = (e1)) -> (~((e2) = (op (e3) (op (e1) (e0))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H55 zenon_H9 zenon_Hcd.
% 1.97/2.12  elim (classic ((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0))))); [ zenon_intro zenon_Hce | zenon_intro zenon_Hcf ].
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0)))) = ((e2) = (op (e3) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hcd.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hce.
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hcf].
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hd0].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e1)) = (e2)) = ((op (e3) (op (e1) (e0))) = (e2))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hd0.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H55.
% 1.97/2.12  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.12  cut (((op (e3) (e1)) = (op (e3) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hd1].
% 1.97/2.12  congruence.
% 1.97/2.12  elim (classic ((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0))))); [ zenon_intro zenon_Hce | zenon_intro zenon_Hcf ].
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0)))) = ((op (e3) (e1)) = (op (e3) (op (e1) (e0))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hd1.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hce.
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (op (e3) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hcf].
% 1.97/2.12  cut (((op (e3) (op (e1) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd2].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.12  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.12  congruence.
% 1.97/2.12  apply zenon_H5. apply refl_equal.
% 1.97/2.12  exact (zenon_H10 zenon_H9).
% 1.97/2.12  apply zenon_Hcf. apply refl_equal.
% 1.97/2.12  apply zenon_Hcf. apply refl_equal.
% 1.97/2.12  apply zenon_H1a. apply refl_equal.
% 1.97/2.12  apply zenon_Hcf. apply refl_equal.
% 1.97/2.12  apply zenon_Hcf. apply refl_equal.
% 1.97/2.12  (* end of lemma zenon_L33_ *)
% 1.97/2.12  assert (zenon_L34_ : ((op (e3) (e3)) = (e0)) -> ((op (e1) (e1)) = (e3)) -> (~((e0) = (op (e3) (op (e1) (e1))))) -> False).
% 1.97/2.12  do 0 intro. intros zenon_H65 zenon_H12 zenon_Hd3.
% 1.97/2.12  elim (classic ((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1))))); [ zenon_intro zenon_Hd4 | zenon_intro zenon_Hd5 ].
% 1.97/2.12  cut (((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1)))) = ((e0) = (op (e3) (op (e1) (e1))))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hd3.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_Hd4.
% 1.97/2.12  cut (((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 1.97/2.12  cut (((op (e3) (op (e1) (e1))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hd6].
% 1.97/2.12  congruence.
% 1.97/2.12  cut (((op (e3) (e3)) = (e0)) = ((op (e3) (op (e1) (e1))) = (e0))).
% 1.97/2.12  intro zenon_D_pnotp.
% 1.97/2.12  apply zenon_Hd6.
% 1.97/2.12  rewrite <- zenon_D_pnotp.
% 1.97/2.12  exact zenon_H65.
% 1.97/2.12  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (e3) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hd7].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1))))); [ zenon_intro zenon_Hd4 | zenon_intro zenon_Hd5 ].
% 1.97/2.13  cut (((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e3)) = (op (e3) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hd7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hd4.
% 1.97/2.13  cut (((op (e3) (op (e1) (e1))) = (op (e3) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hd5].
% 1.97/2.13  cut (((op (e3) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hd8].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_Hd5. apply refl_equal.
% 1.97/2.13  apply zenon_Hd5. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_Hd5. apply refl_equal.
% 1.97/2.13  apply zenon_Hd5. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L34_ *)
% 1.97/2.13  assert (zenon_L35_ : ((op (e3) (e0)) = (e3)) -> ((op (e1) (e2)) = (e0)) -> (~((e3) = (op (e3) (op (e1) (e2))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H4d zenon_H1c zenon_Hd9.
% 1.97/2.13  elim (classic ((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2))))); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdb ].
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2)))) = ((e3) = (op (e3) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hd9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hda.
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hdc].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (op (e1) (e2))) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hdc.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (e3) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hdd].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2))))); [ zenon_intro zenon_Hda | zenon_intro zenon_Hdb ].
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2)))) = ((op (e3) (e0)) = (op (e3) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hdd.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hda.
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (op (e3) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hdb].
% 1.97/2.13  cut (((op (e3) (op (e1) (e2))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hde].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_Hdb. apply refl_equal.
% 1.97/2.13  apply zenon_Hdb. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_Hdb. apply refl_equal.
% 1.97/2.13  apply zenon_Hdb. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L35_ *)
% 1.97/2.13  assert (zenon_L36_ : ((op (e3) (e2)) = (e1)) -> ((op (e1) (e3)) = (e2)) -> (~((e1) = (op (e3) (op (e1) (e3))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H5d zenon_H25 zenon_Hdf.
% 1.97/2.13  elim (classic ((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3))))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3)))) = ((e1) = (op (e3) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hdf.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_He0.
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_He1].
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_He2].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (e3) (op (e1) (e3))) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_He2.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (e3) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_He3].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3))))); [ zenon_intro zenon_He0 | zenon_intro zenon_He1 ].
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3)))) = ((op (e3) (e2)) = (op (e3) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_He3.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_He0.
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (op (e3) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_He1].
% 1.97/2.13  cut (((op (e3) (op (e1) (e3))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_He4].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_He1. apply refl_equal.
% 1.97/2.13  apply zenon_He1. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_He1. apply refl_equal.
% 1.97/2.13  apply zenon_He1. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L36_ *)
% 1.97/2.13  assert (zenon_L37_ : ((op (e3) (e2)) = (e1)) -> ((op (e2) (e0)) = (e2)) -> (~((e1) = (op (e3) (op (e2) (e0))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H5d zenon_H2d zenon_He5.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0))))); [ zenon_intro zenon_He6 | zenon_intro zenon_He7 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0)))) = ((e1) = (op (e3) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_He5.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_He6.
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_He8].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (e3) (op (e2) (e0))) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_He8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (e3) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_He9].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0))))); [ zenon_intro zenon_He6 | zenon_intro zenon_He7 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0)))) = ((op (e3) (e2)) = (op (e3) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_He9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_He6.
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (op (e3) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_He7].
% 1.97/2.13  cut (((op (e3) (op (e2) (e0))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hea].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_He7. apply refl_equal.
% 1.97/2.13  apply zenon_He7. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_He7. apply refl_equal.
% 1.97/2.13  apply zenon_He7. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L37_ *)
% 1.97/2.13  assert (zenon_L38_ : ((op (e3) (e0)) = (e3)) -> ((op (e2) (e1)) = (e0)) -> (~((e3) = (op (e3) (op (e2) (e1))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H4d zenon_H35 zenon_Heb.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1))))); [ zenon_intro zenon_Hec | zenon_intro zenon_Hed ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1)))) = ((e3) = (op (e3) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Heb.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hec.
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hed].
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hee].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (op (e2) (e1))) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hee.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (e3) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hef].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1))))); [ zenon_intro zenon_Hec | zenon_intro zenon_Hed ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1)))) = ((op (e3) (e0)) = (op (e3) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hef.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hec.
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (op (e3) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hed].
% 1.97/2.13  cut (((op (e3) (op (e2) (e1))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hf0].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_Hed. apply refl_equal.
% 1.97/2.13  apply zenon_Hed. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_Hed. apply refl_equal.
% 1.97/2.13  apply zenon_Hed. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L38_ *)
% 1.97/2.13  assert (zenon_L39_ : ((op (e3) (e3)) = (e0)) -> ((op (e2) (e2)) = (e3)) -> (~((e0) = (op (e3) (op (e2) (e2))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H65 zenon_H3d zenon_Hf1.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2))))); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hf3 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2)))) = ((e0) = (op (e3) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hf1.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hf2.
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hf3].
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf4].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (e3) (op (e2) (e2))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hf4.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (e3) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hf5].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2))))); [ zenon_intro zenon_Hf2 | zenon_intro zenon_Hf3 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e3)) = (op (e3) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hf5.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hf2.
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (op (e3) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hf3].
% 1.97/2.13  cut (((op (e3) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hf6].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_Hf3. apply refl_equal.
% 1.97/2.13  apply zenon_Hf3. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_Hf3. apply refl_equal.
% 1.97/2.13  apply zenon_Hf3. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L39_ *)
% 1.97/2.13  assert (zenon_L40_ : ((op (e3) (e1)) = (e2)) -> ((op (e2) (e3)) = (e1)) -> (~((e2) = (op (e3) (op (e2) (e3))))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_H55 zenon_H45 zenon_Hf7.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3))))); [ zenon_intro zenon_Hf8 | zenon_intro zenon_Hf9 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3)))) = ((e2) = (op (e3) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hf7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hf8.
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hf9].
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hfa].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e1)) = (e2)) = ((op (e3) (op (e2) (e3))) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hfa.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H55.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e3) (e1)) = (op (e3) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hfb].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3))))); [ zenon_intro zenon_Hf8 | zenon_intro zenon_Hf9 ].
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3)))) = ((op (e3) (e1)) = (op (e3) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hfb.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_Hf8.
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (op (e3) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hf9].
% 1.97/2.13  cut (((op (e3) (op (e2) (e3))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hfc].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_Hf9. apply refl_equal.
% 1.97/2.13  apply zenon_Hf9. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_Hf9. apply refl_equal.
% 1.97/2.13  apply zenon_Hf9. apply refl_equal.
% 1.97/2.13  (* end of lemma zenon_L40_ *)
% 1.97/2.13  assert (zenon_L41_ : (~((unit) = (e0))) -> False).
% 1.97/2.13  do 0 intro. intros zenon_Hfd.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  (* end of lemma zenon_L41_ *)
% 1.97/2.13  apply NNPP. intro zenon_G.
% 1.97/2.13  apply (zenon_and_s _ _ ax1). zenon_intro zenon_Hff. zenon_intro zenon_Hfe.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_Hfe). zenon_intro zenon_H101. zenon_intro zenon_H100.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H100). zenon_intro zenon_H103. zenon_intro zenon_H102.
% 1.97/2.13  apply (zenon_and_s _ _ ax2). zenon_intro zenon_H1b. zenon_intro zenon_H104.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H104). zenon_intro zenon_H8. zenon_intro zenon_H105.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H105). zenon_intro zenon_H24. zenon_intro zenon_H106.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H106). zenon_intro zenon_H11. zenon_intro zenon_H107.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H107). zenon_intro zenon_H9. zenon_intro zenon_H108.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H108). zenon_intro zenon_H12. zenon_intro zenon_H109.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H109). zenon_intro zenon_H1c. zenon_intro zenon_H10a.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10a). zenon_intro zenon_H25. zenon_intro zenon_H10b.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10b). zenon_intro zenon_H2d. zenon_intro zenon_H10c.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10c). zenon_intro zenon_H35. zenon_intro zenon_H10d.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10d). zenon_intro zenon_H3d. zenon_intro zenon_H10e.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10e). zenon_intro zenon_H45. zenon_intro zenon_H10f.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H10f). zenon_intro zenon_H4d. zenon_intro zenon_H110.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H110). zenon_intro zenon_H55. zenon_intro zenon_H111.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H111). zenon_intro zenon_H5d. zenon_intro zenon_H65.
% 1.97/2.13  apply (zenon_and_s _ _ ax4). zenon_intro zenon_H113. zenon_intro zenon_H112.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H112). zenon_intro zenon_H115. zenon_intro zenon_H114.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H114). zenon_intro zenon_H117. zenon_intro zenon_H116.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_G); [ zenon_intro zenon_H119 | zenon_intro zenon_H118 ].
% 1.97/2.13  apply zenon_H119. zenon_intro zenon_H11a.
% 1.97/2.13  apply (zenon_or_s _ _ zenon_H11a); [ zenon_intro zenon_H11c | zenon_intro zenon_H11b ].
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H11c). zenon_intro zenon_H1b. zenon_intro zenon_H11d.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H11d). zenon_intro zenon_H11f. zenon_intro zenon_H11e.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H11e). zenon_intro zenon_H120. zenon_intro zenon_H65.
% 1.97/2.13  cut (((op (e2) (e2)) = (e3)) = ((e0) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H103.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H3d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e2) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H121].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H121 zenon_H120).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply (zenon_or_s _ _ zenon_H11b); [ zenon_intro zenon_H123 | zenon_intro zenon_H122 ].
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H123). zenon_intro zenon_H125. zenon_intro zenon_H124.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H124). zenon_intro zenon_H127. zenon_intro zenon_H126.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H126). zenon_intro zenon_H129. zenon_intro zenon_H128.
% 1.97/2.13  elim (classic ((e1) = (e1))); [ zenon_intro zenon_H12a | zenon_intro zenon_H7 ].
% 1.97/2.13  cut (((e1) = (e1)) = ((e0) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_Hff.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H12a.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((e1) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H12b].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((e1) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H12b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H12c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H12c zenon_H128).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply (zenon_or_s _ _ zenon_H122); [ zenon_intro zenon_H12e | zenon_intro zenon_H12d ].
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H12e). zenon_intro zenon_H130. zenon_intro zenon_H12f.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H12f). zenon_intro zenon_H132. zenon_intro zenon_H131.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H131). zenon_intro zenon_H134. zenon_intro zenon_H133.
% 1.97/2.13  elim (classic ((e2) = (e2))); [ zenon_intro zenon_H135 | zenon_intro zenon_H1a ].
% 1.97/2.13  cut (((e2) = (e2)) = ((e0) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H101.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H135.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((e2) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H136].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((e2) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H136.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H137].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H137 zenon_H133).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H12d). zenon_intro zenon_H139. zenon_intro zenon_H138.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H138). zenon_intro zenon_H12. zenon_intro zenon_H13a.
% 1.97/2.13  apply (zenon_and_s _ _ zenon_H13a). zenon_intro zenon_H3d. zenon_intro zenon_H13b.
% 1.97/2.13  elim (classic ((e3) = (e3))); [ zenon_intro zenon_H13c | zenon_intro zenon_H5 ].
% 1.97/2.13  cut (((e3) = (e3)) = ((e0) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H103.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H13c.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((e3) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H13d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((e3) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H13d.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H13e].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H13e zenon_H13b).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H118); [ zenon_intro zenon_H140 | zenon_intro zenon_H13f ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H140). zenon_intro zenon_H142. zenon_intro zenon_H141.
% 1.97/2.13  exact (zenon_H142 zenon_H1b).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H13f); [ zenon_intro zenon_H144 | zenon_intro zenon_H143 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H144). zenon_intro zenon_H146. zenon_intro zenon_H145.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H145). zenon_intro zenon_H148. zenon_intro zenon_H147.
% 1.97/2.13  exact (zenon_H148 zenon_H8).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H143); [ zenon_intro zenon_H14a | zenon_intro zenon_H149 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H14a). zenon_intro zenon_H14c. zenon_intro zenon_H14b.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H14b). zenon_intro zenon_H14e. zenon_intro zenon_H14d.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H14d). zenon_intro zenon_H150. zenon_intro zenon_H14f.
% 1.97/2.13  exact (zenon_H150 zenon_H24).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H149); [ zenon_intro zenon_H152 | zenon_intro zenon_H151 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H152). zenon_intro zenon_H154. zenon_intro zenon_H153.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H153). zenon_intro zenon_H156. zenon_intro zenon_H155.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H155). zenon_intro zenon_H158. zenon_intro zenon_H157.
% 1.97/2.13  exact (zenon_H157 zenon_H11).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H151); [ zenon_intro zenon_H15a | zenon_intro zenon_H159 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H15a). zenon_intro zenon_H15c. zenon_intro zenon_H15b.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H15b). zenon_intro zenon_H10. zenon_intro zenon_H15d.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H159); [ zenon_intro zenon_H15f | zenon_intro zenon_H15e ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H15f). zenon_intro zenon_H161. zenon_intro zenon_H160.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H160). zenon_intro zenon_H163. zenon_intro zenon_H162.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H162). zenon_intro zenon_H164. zenon_intro zenon_H19.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H15e); [ zenon_intro zenon_H166 | zenon_intro zenon_H165 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H166). zenon_intro zenon_H23. zenon_intro zenon_H167.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H165); [ zenon_intro zenon_H169 | zenon_intro zenon_H168 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H169). zenon_intro zenon_H16b. zenon_intro zenon_H16a.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H16a). zenon_intro zenon_H16d. zenon_intro zenon_H16c.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H16c). zenon_intro zenon_H2c. zenon_intro zenon_H16e.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H168); [ zenon_intro zenon_H170 | zenon_intro zenon_H16f ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H170). zenon_intro zenon_H172. zenon_intro zenon_H171.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H171). zenon_intro zenon_H174. zenon_intro zenon_H173.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H173). zenon_intro zenon_H34. zenon_intro zenon_H175.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H16f); [ zenon_intro zenon_H177 | zenon_intro zenon_H176 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H177). zenon_intro zenon_H3c. zenon_intro zenon_H178.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H176); [ zenon_intro zenon_H17a | zenon_intro zenon_H179 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H17a). zenon_intro zenon_H121. zenon_intro zenon_H17b.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H17b). zenon_intro zenon_H17d. zenon_intro zenon_H17c.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H17c). zenon_intro zenon_H17e. zenon_intro zenon_H44.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H179); [ zenon_intro zenon_H180 | zenon_intro zenon_H17f ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H180). zenon_intro zenon_H182. zenon_intro zenon_H181.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H181). zenon_intro zenon_H4c. zenon_intro zenon_H183.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H17f); [ zenon_intro zenon_H185 | zenon_intro zenon_H184 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H185). zenon_intro zenon_H187. zenon_intro zenon_H186.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H186). zenon_intro zenon_H189. zenon_intro zenon_H188.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H188). zenon_intro zenon_H18a. zenon_intro zenon_H54.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H184); [ zenon_intro zenon_H18c | zenon_intro zenon_H18b ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H18c). zenon_intro zenon_H18e. zenon_intro zenon_H18d.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H18d). zenon_intro zenon_H190. zenon_intro zenon_H18f.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H18f). zenon_intro zenon_H5c. zenon_intro zenon_H191.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H18b); [ zenon_intro zenon_H193 | zenon_intro zenon_H192 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H193). zenon_intro zenon_H195. zenon_intro zenon_H194.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H194). zenon_intro zenon_H64. zenon_intro zenon_H196.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H192); [ zenon_intro zenon_H198 | zenon_intro zenon_H197 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H198). zenon_intro zenon_H6c. zenon_intro zenon_H199.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H197); [ zenon_intro zenon_H19b | zenon_intro zenon_H19a ].
% 1.97/2.13  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H142].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H142 zenon_H1b).
% 1.97/2.13  apply zenon_H19c. apply sym_equal. exact zenon_H1b.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H19a); [ zenon_intro zenon_H19e | zenon_intro zenon_H19d ].
% 1.97/2.13  cut (((e1) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H142].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H142 zenon_H1b).
% 1.97/2.13  apply zenon_H19f. apply sym_equal. exact zenon_H8.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H19d); [ zenon_intro zenon_H1a1 | zenon_intro zenon_H1a0 ].
% 1.97/2.13  cut (((e2) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a2].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H142].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H142 zenon_H1b).
% 1.97/2.13  apply zenon_H1a2. apply sym_equal. exact zenon_H24.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1a0); [ zenon_intro zenon_H1a4 | zenon_intro zenon_H1a3 ].
% 1.97/2.13  cut (((e3) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H142].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H142 zenon_H1b).
% 1.97/2.13  apply zenon_H1a5. apply sym_equal. exact zenon_H11.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1a3); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1a6 ].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1)) = ((op (op (e0) (e1)) (e0)) = (op (e0) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1a7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H9.
% 1.97/2.13  cut (((e1) = (op (e0) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Ha].
% 1.97/2.13  cut (((op (e1) (e0)) = (op (op (e0) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a8].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e1)) (e0)) = (op (op (e0) (e1)) (e0)))); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e0)) = (op (op (e0) (e1)) (e0))) = ((op (e1) (e0)) = (op (op (e0) (e1)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1a8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1a9.
% 1.97/2.13  cut (((op (op (e0) (e1)) (e0)) = (op (op (e0) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1aa].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ab].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H148].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H148 zenon_H8).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H1aa. apply refl_equal.
% 1.97/2.13  apply zenon_H1aa. apply refl_equal.
% 1.97/2.13  apply (zenon_L4_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1a6); [ zenon_intro zenon_H1ad | zenon_intro zenon_H1ac ].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3)) = ((op (op (e0) (e1)) (e1)) = (op (e0) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1ad.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H12.
% 1.97/2.13  cut (((e3) = (op (e0) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H13].
% 1.97/2.13  cut (((op (e1) (e1)) = (op (op (e0) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ae].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e1)) (e1)) = (op (op (e0) (e1)) (e1)))); [ zenon_intro zenon_H1af | zenon_intro zenon_H1b0 ].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e1)) = (op (op (e0) (e1)) (e1))) = ((op (e1) (e1)) = (op (op (e0) (e1)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1ae.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1af.
% 1.97/2.13  cut (((op (op (e0) (e1)) (e1)) = (op (op (e0) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b0].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b1].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H148].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H148 zenon_H8).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H1b0. apply refl_equal.
% 1.97/2.13  apply zenon_H1b0. apply refl_equal.
% 1.97/2.13  apply (zenon_L5_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1ac); [ zenon_intro zenon_H1b3 | zenon_intro zenon_H1b2 ].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (op (e0) (e1)) (e2)) = (op (e0) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1b3.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (op (e0) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H1d].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (op (e0) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1b4].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e1)) (e2)) = (op (op (e0) (e1)) (e2)))); [ zenon_intro zenon_H1b5 | zenon_intro zenon_H1b6 ].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e2)) = (op (op (e0) (e1)) (e2))) = ((op (e1) (e2)) = (op (op (e0) (e1)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1b4.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b5.
% 1.97/2.13  cut (((op (op (e0) (e1)) (e2)) = (op (op (e0) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1b6].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1b7].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H148].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H148 zenon_H8).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H1b6. apply refl_equal.
% 1.97/2.13  apply zenon_H1b6. apply refl_equal.
% 1.97/2.13  apply (zenon_L7_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1b2); [ zenon_intro zenon_H1b9 | zenon_intro zenon_H1b8 ].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2)) = ((op (op (e0) (e1)) (e3)) = (op (e0) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1b9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H25.
% 1.97/2.13  cut (((e2) = (op (e0) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H26].
% 1.97/2.13  cut (((op (e1) (e3)) = (op (op (e0) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ba].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e1)) (e3)) = (op (op (e0) (e1)) (e3)))); [ zenon_intro zenon_H1bb | zenon_intro zenon_H1bc ].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e3)) = (op (op (e0) (e1)) (e3))) = ((op (e1) (e3)) = (op (op (e0) (e1)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1ba.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1bb.
% 1.97/2.13  cut (((op (op (e0) (e1)) (e3)) = (op (op (e0) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1bc].
% 1.97/2.13  cut (((op (op (e0) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1bd].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H148].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H148 zenon_H8).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H1bc. apply refl_equal.
% 1.97/2.13  apply zenon_H1bc. apply refl_equal.
% 1.97/2.13  apply (zenon_L8_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1b8); [ zenon_intro zenon_H1bf | zenon_intro zenon_H1be ].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2)) = ((op (op (e0) (e2)) (e0)) = (op (e0) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1bf.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d.
% 1.97/2.13  cut (((e2) = (op (e0) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H2e].
% 1.97/2.13  cut (((op (e2) (e0)) = (op (op (e0) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c0].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e2)) (e0)) = (op (op (e0) (e2)) (e0)))); [ zenon_intro zenon_H1c1 | zenon_intro zenon_H1c2 ].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e0)) = (op (op (e0) (e2)) (e0))) = ((op (e2) (e0)) = (op (op (e0) (e2)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1c0.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c1.
% 1.97/2.13  cut (((op (op (e0) (e2)) (e0)) = (op (op (e0) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c2].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c3].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H150 zenon_H24).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H1c2. apply refl_equal.
% 1.97/2.13  apply zenon_H1c2. apply refl_equal.
% 1.97/2.13  apply (zenon_L9_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1be); [ zenon_intro zenon_H1c5 | zenon_intro zenon_H1c4 ].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (op (e0) (e2)) (e1)) = (op (e0) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1c5.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (op (e0) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H36].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (op (e0) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1c6].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e2)) (e1)) = (op (op (e0) (e2)) (e1)))); [ zenon_intro zenon_H1c7 | zenon_intro zenon_H1c8 ].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e1)) = (op (op (e0) (e2)) (e1))) = ((op (e2) (e1)) = (op (op (e0) (e2)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1c6.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c7.
% 1.97/2.13  cut (((op (op (e0) (e2)) (e1)) = (op (op (e0) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1c8].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1c9].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H150 zenon_H24).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H1c8. apply refl_equal.
% 1.97/2.13  apply zenon_H1c8. apply refl_equal.
% 1.97/2.13  apply (zenon_L10_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1c4); [ zenon_intro zenon_H1cb | zenon_intro zenon_H1ca ].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3)) = ((op (op (e0) (e2)) (e2)) = (op (e0) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1cb.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H3d.
% 1.97/2.13  cut (((e3) = (op (e0) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H3e].
% 1.97/2.13  cut (((op (e2) (e2)) = (op (op (e0) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1cc].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e2)) (e2)) = (op (op (e0) (e2)) (e2)))); [ zenon_intro zenon_H1cd | zenon_intro zenon_H1ce ].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e2)) = (op (op (e0) (e2)) (e2))) = ((op (e2) (e2)) = (op (op (e0) (e2)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1cc.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1cd.
% 1.97/2.13  cut (((op (op (e0) (e2)) (e2)) = (op (op (e0) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1ce].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1cf].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H150 zenon_H24).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H1ce. apply refl_equal.
% 1.97/2.13  apply zenon_H1ce. apply refl_equal.
% 1.97/2.13  apply (zenon_L11_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1ca); [ zenon_intro zenon_H1d1 | zenon_intro zenon_H1d0 ].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1)) = ((op (op (e0) (e2)) (e3)) = (op (e0) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1d1.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H45.
% 1.97/2.13  cut (((e1) = (op (e0) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H46].
% 1.97/2.13  cut (((op (e2) (e3)) = (op (op (e0) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d2].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e2)) (e3)) = (op (op (e0) (e2)) (e3)))); [ zenon_intro zenon_H1d3 | zenon_intro zenon_H1d4 ].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e3)) = (op (op (e0) (e2)) (e3))) = ((op (e2) (e3)) = (op (op (e0) (e2)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1d2.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1d3.
% 1.97/2.13  cut (((op (op (e0) (e2)) (e3)) = (op (op (e0) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d4].
% 1.97/2.13  cut (((op (op (e0) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d5].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H150].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H150 zenon_H24).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H1d4. apply refl_equal.
% 1.97/2.13  apply zenon_H1d4. apply refl_equal.
% 1.97/2.13  apply (zenon_L12_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1d0); [ zenon_intro zenon_H1d7 | zenon_intro zenon_H1d6 ].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (op (e0) (e3)) (e0)) = (op (e0) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1d7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (op (e0) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H4e].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (op (e0) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d8].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e3)) (e0)) = (op (op (e0) (e3)) (e0)))); [ zenon_intro zenon_H1d9 | zenon_intro zenon_H1da ].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e0)) = (op (op (e0) (e3)) (e0))) = ((op (e3) (e0)) = (op (op (e0) (e3)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1d8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1d9.
% 1.97/2.13  cut (((op (op (e0) (e3)) (e0)) = (op (op (e0) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1da].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1db].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H157].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H157 zenon_H11).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H1da. apply refl_equal.
% 1.97/2.13  apply zenon_H1da. apply refl_equal.
% 1.97/2.13  apply (zenon_L13_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1d6); [ zenon_intro zenon_H1dd | zenon_intro zenon_H1dc ].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2)) = ((op (op (e0) (e3)) (e1)) = (op (e0) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1dd.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H55.
% 1.97/2.13  cut (((e2) = (op (e0) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H56].
% 1.97/2.13  cut (((op (e3) (e1)) = (op (op (e0) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1de].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e3)) (e1)) = (op (op (e0) (e3)) (e1)))); [ zenon_intro zenon_H1df | zenon_intro zenon_H1e0 ].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e1)) = (op (op (e0) (e3)) (e1))) = ((op (e3) (e1)) = (op (op (e0) (e3)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1de.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1df.
% 1.97/2.13  cut (((op (op (e0) (e3)) (e1)) = (op (op (e0) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e0].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e1].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H157].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H157 zenon_H11).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H1e0. apply refl_equal.
% 1.97/2.13  apply zenon_H1e0. apply refl_equal.
% 1.97/2.13  apply (zenon_L14_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1dc); [ zenon_intro zenon_H1e3 | zenon_intro zenon_H1e2 ].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (op (e0) (e3)) (e2)) = (op (e0) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1e3.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (op (e0) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H5e].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (op (e0) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1e4].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e3)) (e2)) = (op (op (e0) (e3)) (e2)))); [ zenon_intro zenon_H1e5 | zenon_intro zenon_H1e6 ].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e2)) = (op (op (e0) (e3)) (e2))) = ((op (e3) (e2)) = (op (op (e0) (e3)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1e4.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1e5.
% 1.97/2.13  cut (((op (op (e0) (e3)) (e2)) = (op (op (e0) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1e6].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1e7].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H157].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H157 zenon_H11).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H1e6. apply refl_equal.
% 1.97/2.13  apply zenon_H1e6. apply refl_equal.
% 1.97/2.13  apply (zenon_L15_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1e2); [ zenon_intro zenon_H1e9 | zenon_intro zenon_H1e8 ].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1e9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (op (e0) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H66].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ea].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e0) (e3)) (e3)) = (op (op (e0) (e3)) (e3)))); [ zenon_intro zenon_H1eb | zenon_intro zenon_H1ec ].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e3)) = (op (op (e0) (e3)) (e3))) = ((op (e3) (e3)) = (op (op (e0) (e3)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1ea.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1eb.
% 1.97/2.13  cut (((op (op (e0) (e3)) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ec].
% 1.97/2.13  cut (((op (op (e0) (e3)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ed].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H157].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H157 zenon_H11).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H1ec. apply refl_equal.
% 1.97/2.13  apply zenon_H1ec. apply refl_equal.
% 1.97/2.13  apply (zenon_L16_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1e8); [ zenon_intro zenon_H1ef | zenon_intro zenon_H1ee ].
% 1.97/2.13  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply zenon_H19c. apply sym_equal. exact zenon_H1b.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1ee); [ zenon_intro zenon_H1f1 | zenon_intro zenon_H1f0 ].
% 1.97/2.13  cut (((e1) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply zenon_H19f. apply sym_equal. exact zenon_H8.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1f0); [ zenon_intro zenon_H1f3 | zenon_intro zenon_H1f2 ].
% 1.97/2.13  cut (((e2) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a2].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply zenon_H1a2. apply sym_equal. exact zenon_H24.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1f2); [ zenon_intro zenon_H1f5 | zenon_intro zenon_H1f4 ].
% 1.97/2.13  cut (((e3) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply zenon_H1a5. apply sym_equal. exact zenon_H11.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1f4); [ zenon_intro zenon_H1f7 | zenon_intro zenon_H1f6 ].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1f7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (op (e1) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H6d].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1f8].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e1)) (e0)) = (op (op (e1) (e1)) (e0)))); [ zenon_intro zenon_H1f9 | zenon_intro zenon_H1fa ].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e0)) = (op (op (e1) (e1)) (e0))) = ((op (e3) (e0)) = (op (op (e1) (e1)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1f8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1f9.
% 1.97/2.13  cut (((op (op (e1) (e1)) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1fa].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1fb].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H1fa. apply refl_equal.
% 1.97/2.13  apply zenon_H1fa. apply refl_equal.
% 1.97/2.13  apply (zenon_L17_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1f6); [ zenon_intro zenon_H1fd | zenon_intro zenon_H1fc ].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2)) = ((op (op (e1) (e1)) (e1)) = (op (e1) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1fd.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H55.
% 1.97/2.13  cut (((e2) = (op (e1) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H73].
% 1.97/2.13  cut (((op (e3) (e1)) = (op (op (e1) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1fe].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e1)) (e1)) = (op (op (e1) (e1)) (e1)))); [ zenon_intro zenon_H1ff | zenon_intro zenon_H200 ].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e1)) = (op (op (e1) (e1)) (e1))) = ((op (e3) (e1)) = (op (op (e1) (e1)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H1fe.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1ff.
% 1.97/2.13  cut (((op (op (e1) (e1)) (e1)) = (op (op (e1) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H200].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H201].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H200. apply refl_equal.
% 1.97/2.13  apply zenon_H200. apply refl_equal.
% 1.97/2.13  apply (zenon_L18_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H1fc); [ zenon_intro zenon_H203 | zenon_intro zenon_H202 ].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H203.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (op (e1) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H79].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (op (e1) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H204].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e1)) (e2)) = (op (op (e1) (e1)) (e2)))); [ zenon_intro zenon_H205 | zenon_intro zenon_H206 ].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e2)) = (op (op (e1) (e1)) (e2))) = ((op (e3) (e2)) = (op (op (e1) (e1)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H204.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H205.
% 1.97/2.13  cut (((op (op (e1) (e1)) (e2)) = (op (op (e1) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H206].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H207].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H206. apply refl_equal.
% 1.97/2.13  apply zenon_H206. apply refl_equal.
% 1.97/2.13  apply (zenon_L19_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H202); [ zenon_intro zenon_H209 | zenon_intro zenon_H208 ].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H209.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (op (e1) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H7f].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H20a].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e1)) (e3)) = (op (op (e1) (e1)) (e3)))); [ zenon_intro zenon_H20b | zenon_intro zenon_H20c ].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e3)) = (op (op (e1) (e1)) (e3))) = ((op (e3) (e3)) = (op (op (e1) (e1)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H20a.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H20b.
% 1.97/2.13  cut (((op (op (e1) (e1)) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H20c].
% 1.97/2.13  cut (((op (op (e1) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H20d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H20c. apply refl_equal.
% 1.97/2.13  apply zenon_H20c. apply refl_equal.
% 1.97/2.13  apply (zenon_L20_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H208); [ zenon_intro zenon_H20f | zenon_intro zenon_H20e ].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (op (e1) (e2)) (e0)) = (op (e1) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H20f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (op (e1) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H210].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (op (e1) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H211].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e2)) (e0)) = (op (op (e1) (e2)) (e0)))); [ zenon_intro zenon_H212 | zenon_intro zenon_H213 ].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e0)) = (op (op (e1) (e2)) (e0))) = ((op (e0) (e0)) = (op (op (e1) (e2)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H211.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H212.
% 1.97/2.13  cut (((op (op (e1) (e2)) (e0)) = (op (op (e1) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H213].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H214].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H213. apply refl_equal.
% 1.97/2.13  apply zenon_H213. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0))))); [ zenon_intro zenon_H215 | zenon_intro zenon_H216 ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0)))) = ((e0) = (op (e1) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H210.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H215.
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H216].
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H217].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (e1) (op (e2) (e0))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H217.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (e1) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H218].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0))))); [ zenon_intro zenon_H215 | zenon_intro zenon_H216 ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0)))) = ((op (e1) (e2)) = (op (e1) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H218.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H215.
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (op (e1) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H216].
% 1.97/2.13  cut (((op (e1) (op (e2) (e0))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H219].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_H216. apply refl_equal.
% 1.97/2.13  apply zenon_H216. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H216. apply refl_equal.
% 1.97/2.13  apply zenon_H216. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H20e); [ zenon_intro zenon_H21b | zenon_intro zenon_H21a ].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1)) = ((op (op (e1) (e2)) (e1)) = (op (e1) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H21b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H8.
% 1.97/2.13  cut (((e1) = (op (e1) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H21c].
% 1.97/2.13  cut (((op (e0) (e1)) = (op (op (e1) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H21d].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e2)) (e1)) = (op (op (e1) (e2)) (e1)))); [ zenon_intro zenon_H21e | zenon_intro zenon_H21f ].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e1)) = (op (op (e1) (e2)) (e1))) = ((op (e0) (e1)) = (op (op (e1) (e2)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H21d.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H21e.
% 1.97/2.13  cut (((op (op (e1) (e2)) (e1)) = (op (op (e1) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H21f].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H220].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H21f. apply refl_equal.
% 1.97/2.13  apply zenon_H21f. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1))))); [ zenon_intro zenon_H221 | zenon_intro zenon_H222 ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1)))) = ((e1) = (op (e1) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H21c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H221.
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H222].
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H223].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (op (e2) (e1))) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H223.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H9.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e1) (e0)) = (op (e1) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H224].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1))))); [ zenon_intro zenon_H221 | zenon_intro zenon_H222 ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1)))) = ((op (e1) (e0)) = (op (e1) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H224.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H221.
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (op (e1) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H222].
% 1.97/2.13  cut (((op (e1) (op (e2) (e1))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H225].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_H222. apply refl_equal.
% 1.97/2.13  apply zenon_H222. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H222. apply refl_equal.
% 1.97/2.13  apply zenon_H222. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H21a); [ zenon_intro zenon_H227 | zenon_intro zenon_H226 ].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2)) = ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H227.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H24.
% 1.97/2.13  cut (((e2) = (op (e1) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H228].
% 1.97/2.13  cut (((op (e0) (e2)) = (op (op (e1) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H229].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e2)) (e2)) = (op (op (e1) (e2)) (e2)))); [ zenon_intro zenon_H22a | zenon_intro zenon_H22b ].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e2)) = (op (op (e1) (e2)) (e2))) = ((op (e0) (e2)) = (op (op (e1) (e2)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H229.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H22a.
% 1.97/2.13  cut (((op (op (e1) (e2)) (e2)) = (op (op (e1) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H22b].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H22c].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H22b. apply refl_equal.
% 1.97/2.13  apply zenon_H22b. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2))))); [ zenon_intro zenon_H22d | zenon_intro zenon_H22e ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2)))) = ((e2) = (op (e1) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H228.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H22d.
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H22e].
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H22f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e3)) = (e2)) = ((op (e1) (op (e2) (e2))) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H22f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H25.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e1) (e3)) = (op (e1) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H230].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2))))); [ zenon_intro zenon_H22d | zenon_intro zenon_H22e ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2)))) = ((op (e1) (e3)) = (op (e1) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H230.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H22d.
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (op (e1) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H22e].
% 1.97/2.13  cut (((op (e1) (op (e2) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H231].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_H22e. apply refl_equal.
% 1.97/2.13  apply zenon_H22e. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H22e. apply refl_equal.
% 1.97/2.13  apply zenon_H22e. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H226); [ zenon_intro zenon_H233 | zenon_intro zenon_H232 ].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3)) = ((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H233.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H11.
% 1.97/2.13  cut (((e3) = (op (e1) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H234].
% 1.97/2.13  cut (((op (e0) (e3)) = (op (op (e1) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H235].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e2)) (e3)) = (op (op (e1) (e2)) (e3)))); [ zenon_intro zenon_H236 | zenon_intro zenon_H237 ].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e3)) = (op (op (e1) (e2)) (e3))) = ((op (e0) (e3)) = (op (op (e1) (e2)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H235.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H236.
% 1.97/2.13  cut (((op (op (e1) (e2)) (e3)) = (op (op (e1) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H237].
% 1.97/2.13  cut (((op (op (e1) (e2)) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H238].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H237. apply refl_equal.
% 1.97/2.13  apply zenon_H237. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3))))); [ zenon_intro zenon_H239 | zenon_intro zenon_H23a ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3)))) = ((e3) = (op (e1) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H234.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H239.
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H23a].
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H23b].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e1)) = (e3)) = ((op (e1) (op (e2) (e3))) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H23b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H12.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e1) (e1)) = (op (e1) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H23c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3))))); [ zenon_intro zenon_H239 | zenon_intro zenon_H23a ].
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3)))) = ((op (e1) (e1)) = (op (e1) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H23c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H239.
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (op (e1) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H23a].
% 1.97/2.13  cut (((op (e1) (op (e2) (e3))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H23d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_H23a. apply refl_equal.
% 1.97/2.13  apply zenon_H23a. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H23a. apply refl_equal.
% 1.97/2.13  apply zenon_H23a. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H232); [ zenon_intro zenon_H23f | zenon_intro zenon_H23e ].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2)) = ((op (op (e1) (e3)) (e0)) = (op (e1) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H23f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d.
% 1.97/2.13  cut (((e2) = (op (e1) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H85].
% 1.97/2.13  cut (((op (e2) (e0)) = (op (op (e1) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H240].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e3)) (e0)) = (op (op (e1) (e3)) (e0)))); [ zenon_intro zenon_H241 | zenon_intro zenon_H242 ].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e0)) = (op (op (e1) (e3)) (e0))) = ((op (e2) (e0)) = (op (op (e1) (e3)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H240.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H241.
% 1.97/2.13  cut (((op (op (e1) (e3)) (e0)) = (op (op (e1) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H242].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H243].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H242. apply refl_equal.
% 1.97/2.13  apply zenon_H242. apply refl_equal.
% 1.97/2.13  apply (zenon_L21_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H23e); [ zenon_intro zenon_H245 | zenon_intro zenon_H244 ].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (op (e1) (e3)) (e1)) = (op (e1) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H245.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (op (e1) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H8b].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (op (e1) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H246].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e3)) (e1)) = (op (op (e1) (e3)) (e1)))); [ zenon_intro zenon_H247 | zenon_intro zenon_H248 ].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e1)) = (op (op (e1) (e3)) (e1))) = ((op (e2) (e1)) = (op (op (e1) (e3)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H246.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H247.
% 1.97/2.13  cut (((op (op (e1) (e3)) (e1)) = (op (op (e1) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H248].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H249].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H248. apply refl_equal.
% 1.97/2.13  apply zenon_H248. apply refl_equal.
% 1.97/2.13  apply (zenon_L22_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H244); [ zenon_intro zenon_H24b | zenon_intro zenon_H24a ].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3)) = ((op (op (e1) (e3)) (e2)) = (op (e1) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H24b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H3d.
% 1.97/2.13  cut (((e3) = (op (e1) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H91].
% 1.97/2.13  cut (((op (e2) (e2)) = (op (op (e1) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e3)) (e2)) = (op (op (e1) (e3)) (e2)))); [ zenon_intro zenon_H24d | zenon_intro zenon_H24e ].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e2)) = (op (op (e1) (e3)) (e2))) = ((op (e2) (e2)) = (op (op (e1) (e3)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H24c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H24d.
% 1.97/2.13  cut (((op (op (e1) (e3)) (e2)) = (op (op (e1) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24e].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H24f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H24e. apply refl_equal.
% 1.97/2.13  apply zenon_H24e. apply refl_equal.
% 1.97/2.13  apply (zenon_L23_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H24a); [ zenon_intro zenon_H251 | zenon_intro zenon_H250 ].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1)) = ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H251.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H45.
% 1.97/2.13  cut (((e1) = (op (e1) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H97].
% 1.97/2.13  cut (((op (e2) (e3)) = (op (op (e1) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H252].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e1) (e3)) (e3)) = (op (op (e1) (e3)) (e3)))); [ zenon_intro zenon_H253 | zenon_intro zenon_H254 ].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e3)) = (op (op (e1) (e3)) (e3))) = ((op (e2) (e3)) = (op (op (e1) (e3)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H252.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H253.
% 1.97/2.13  cut (((op (op (e1) (e3)) (e3)) = (op (op (e1) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H254].
% 1.97/2.13  cut (((op (op (e1) (e3)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H255].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H254. apply refl_equal.
% 1.97/2.13  apply zenon_H254. apply refl_equal.
% 1.97/2.13  apply (zenon_L24_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H250); [ zenon_intro zenon_H257 | zenon_intro zenon_H256 ].
% 1.97/2.13  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_H19c. apply sym_equal. exact zenon_H1b.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H256); [ zenon_intro zenon_H259 | zenon_intro zenon_H258 ].
% 1.97/2.13  cut (((e1) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_H19f. apply sym_equal. exact zenon_H8.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H258); [ zenon_intro zenon_H25b | zenon_intro zenon_H25a ].
% 1.97/2.13  cut (((e2) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a2].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_H1a2. apply sym_equal. exact zenon_H24.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H25a); [ zenon_intro zenon_H25d | zenon_intro zenon_H25c ].
% 1.97/2.13  cut (((e3) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H34].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H34 zenon_H2d).
% 1.97/2.13  apply zenon_H1a5. apply sym_equal. exact zenon_H11.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H25c); [ zenon_intro zenon_H25f | zenon_intro zenon_H25e ].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H25f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (op (e2) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H260].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H261].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e1)) (e0)) = (op (op (e2) (e1)) (e0)))); [ zenon_intro zenon_H262 | zenon_intro zenon_H263 ].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e0)) = (op (op (e2) (e1)) (e0))) = ((op (e0) (e0)) = (op (op (e2) (e1)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H261.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H262.
% 1.97/2.13  cut (((op (op (e2) (e1)) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H263].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H264].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H263. apply refl_equal.
% 1.97/2.13  apply zenon_H263. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0))))); [ zenon_intro zenon_H265 | zenon_intro zenon_H266 ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0)))) = ((e0) = (op (e2) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H260.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H265.
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H266].
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H267].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (e2) (op (e1) (e0))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H267.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (e2) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H268].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0))))); [ zenon_intro zenon_H265 | zenon_intro zenon_H266 ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0)))) = ((op (e2) (e1)) = (op (e2) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H268.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H265.
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (op (e2) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H266].
% 1.97/2.13  cut (((op (e2) (op (e1) (e0))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H269].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H10].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_H10 zenon_H9).
% 1.97/2.13  apply zenon_H266. apply refl_equal.
% 1.97/2.13  apply zenon_H266. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H266. apply refl_equal.
% 1.97/2.13  apply zenon_H266. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H25e); [ zenon_intro zenon_H26b | zenon_intro zenon_H26a ].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1)) = ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H26b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H8.
% 1.97/2.13  cut (((e1) = (op (e2) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H26c].
% 1.97/2.13  cut (((op (e0) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H26d].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e1)) (e1)) = (op (op (e2) (e1)) (e1)))); [ zenon_intro zenon_H26e | zenon_intro zenon_H26f ].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e1)) = (op (op (e2) (e1)) (e1))) = ((op (e0) (e1)) = (op (op (e2) (e1)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H26d.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H26e.
% 1.97/2.13  cut (((op (op (e2) (e1)) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H26f].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H270].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H26f. apply refl_equal.
% 1.97/2.13  apply zenon_H26f. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1))))); [ zenon_intro zenon_H271 | zenon_intro zenon_H272 ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1)))) = ((e1) = (op (e2) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H26c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H271.
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H272].
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H273].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e3)) = (e1)) = ((op (e2) (op (e1) (e1))) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H273.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H45.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e2) (e3)) = (op (e2) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H274].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1))))); [ zenon_intro zenon_H271 | zenon_intro zenon_H272 ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1)))) = ((op (e2) (e3)) = (op (e2) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H274.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H271.
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (op (e2) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H272].
% 1.97/2.13  cut (((op (e2) (op (e1) (e1))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H275].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H19].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_H19 zenon_H12).
% 1.97/2.13  apply zenon_H272. apply refl_equal.
% 1.97/2.13  apply zenon_H272. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H272. apply refl_equal.
% 1.97/2.13  apply zenon_H272. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H26a); [ zenon_intro zenon_H277 | zenon_intro zenon_H276 ].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2)) = ((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H277.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H24.
% 1.97/2.13  cut (((e2) = (op (e2) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H278].
% 1.97/2.13  cut (((op (e0) (e2)) = (op (op (e2) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H279].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e1)) (e2)) = (op (op (e2) (e1)) (e2)))); [ zenon_intro zenon_H27a | zenon_intro zenon_H27b ].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e2)) = (op (op (e2) (e1)) (e2))) = ((op (e0) (e2)) = (op (op (e2) (e1)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H279.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H27a.
% 1.97/2.13  cut (((op (op (e2) (e1)) (e2)) = (op (op (e2) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H27b].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H27c].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H27b. apply refl_equal.
% 1.97/2.13  apply zenon_H27b. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2))))); [ zenon_intro zenon_H27d | zenon_intro zenon_H27e ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2)))) = ((e2) = (op (e2) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H278.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H27d.
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H27e].
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H27f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (op (e1) (e2))) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H27f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e2) (e0)) = (op (e2) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H280].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2))))); [ zenon_intro zenon_H27d | zenon_intro zenon_H27e ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2)))) = ((op (e2) (e0)) = (op (e2) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H280.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H27d.
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (op (e2) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H27e].
% 1.97/2.13  cut (((op (e2) (op (e1) (e2))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H281].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_H23 zenon_H1c).
% 1.97/2.13  apply zenon_H27e. apply refl_equal.
% 1.97/2.13  apply zenon_H27e. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H27e. apply refl_equal.
% 1.97/2.13  apply zenon_H27e. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H276); [ zenon_intro zenon_H283 | zenon_intro zenon_H282 ].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3)) = ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H283.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H11.
% 1.97/2.13  cut (((e3) = (op (e2) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H284].
% 1.97/2.13  cut (((op (e0) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H285].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e1)) (e3)) = (op (op (e2) (e1)) (e3)))); [ zenon_intro zenon_H286 | zenon_intro zenon_H287 ].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e3)) = (op (op (e2) (e1)) (e3))) = ((op (e0) (e3)) = (op (op (e2) (e1)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H285.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H286.
% 1.97/2.13  cut (((op (op (e2) (e1)) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H287].
% 1.97/2.13  cut (((op (op (e2) (e1)) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H288].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H3c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H3c zenon_H35).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H287. apply refl_equal.
% 1.97/2.13  apply zenon_H287. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3))))); [ zenon_intro zenon_H289 | zenon_intro zenon_H28a ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3)))) = ((e3) = (op (e2) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H284.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H289.
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H28a].
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H28b].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e2) (e2)) = (e3)) = ((op (e2) (op (e1) (e3))) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H28b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H3d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e2) (e2)) = (op (e2) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H28c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3))))); [ zenon_intro zenon_H289 | zenon_intro zenon_H28a ].
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3)))) = ((op (e2) (e2)) = (op (e2) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H28c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H289.
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (op (e2) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H28a].
% 1.97/2.13  cut (((op (e2) (op (e1) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H28d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H2c].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_H2c zenon_H25).
% 1.97/2.13  apply zenon_H28a. apply refl_equal.
% 1.97/2.13  apply zenon_H28a. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H28a. apply refl_equal.
% 1.97/2.13  apply zenon_H28a. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H282); [ zenon_intro zenon_H28f | zenon_intro zenon_H28e ].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (op (e2) (e2)) (e0)) = (op (e2) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H28f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (op (e2) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H9d].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (op (e2) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H290].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e2)) (e0)) = (op (op (e2) (e2)) (e0)))); [ zenon_intro zenon_H291 | zenon_intro zenon_H292 ].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e0)) = (op (op (e2) (e2)) (e0))) = ((op (e3) (e0)) = (op (op (e2) (e2)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H290.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H291.
% 1.97/2.13  cut (((op (op (e2) (e2)) (e0)) = (op (op (e2) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H292].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H293].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H292. apply refl_equal.
% 1.97/2.13  apply zenon_H292. apply refl_equal.
% 1.97/2.13  apply (zenon_L25_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H28e); [ zenon_intro zenon_H295 | zenon_intro zenon_H294 ].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2)) = ((op (op (e2) (e2)) (e1)) = (op (e2) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H295.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H55.
% 1.97/2.13  cut (((e2) = (op (e2) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Ha3].
% 1.97/2.13  cut (((op (e3) (e1)) = (op (op (e2) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H296].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e2)) (e1)) = (op (op (e2) (e2)) (e1)))); [ zenon_intro zenon_H297 | zenon_intro zenon_H298 ].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e1)) = (op (op (e2) (e2)) (e1))) = ((op (e3) (e1)) = (op (op (e2) (e2)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H296.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H297.
% 1.97/2.13  cut (((op (op (e2) (e2)) (e1)) = (op (op (e2) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H298].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H299].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H298. apply refl_equal.
% 1.97/2.13  apply zenon_H298. apply refl_equal.
% 1.97/2.13  apply (zenon_L26_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H294); [ zenon_intro zenon_H29b | zenon_intro zenon_H29a ].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (op (e2) (e2)) (e2)) = (op (e2) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H29b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (op (e2) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Ha9].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (op (e2) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H29c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e2)) (e2)) = (op (op (e2) (e2)) (e2)))); [ zenon_intro zenon_H29d | zenon_intro zenon_H29e ].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e2)) = (op (op (e2) (e2)) (e2))) = ((op (e3) (e2)) = (op (op (e2) (e2)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H29c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H29d.
% 1.97/2.13  cut (((op (op (e2) (e2)) (e2)) = (op (op (e2) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H29e].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H29f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H29e. apply refl_equal.
% 1.97/2.13  apply zenon_H29e. apply refl_equal.
% 1.97/2.13  apply (zenon_L27_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H29a); [ zenon_intro zenon_H2a1 | zenon_intro zenon_H2a0 ].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2a1.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (op (e2) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Haf].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2a2].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e2)) (e3)) = (op (op (e2) (e2)) (e3)))); [ zenon_intro zenon_H2a3 | zenon_intro zenon_H2a4 ].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e3)) = (op (op (e2) (e2)) (e3))) = ((op (e3) (e3)) = (op (op (e2) (e2)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2a2.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2a3.
% 1.97/2.13  cut (((op (op (e2) (e2)) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2a4].
% 1.97/2.13  cut (((op (op (e2) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2a5].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H44].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H44 zenon_H3d).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H2a4. apply refl_equal.
% 1.97/2.13  apply zenon_H2a4. apply refl_equal.
% 1.97/2.13  apply (zenon_L28_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2a0); [ zenon_intro zenon_H2a7 | zenon_intro zenon_H2a6 ].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1)) = ((op (op (e2) (e3)) (e0)) = (op (e2) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2a7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H9.
% 1.97/2.13  cut (((e1) = (op (e2) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hb5].
% 1.97/2.13  cut (((op (e1) (e0)) = (op (op (e2) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2a8].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e3)) (e0)) = (op (op (e2) (e3)) (e0)))); [ zenon_intro zenon_H2a9 | zenon_intro zenon_H2aa ].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e0)) = (op (op (e2) (e3)) (e0))) = ((op (e1) (e0)) = (op (op (e2) (e3)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2a8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2a9.
% 1.97/2.13  cut (((op (op (e2) (e3)) (e0)) = (op (op (e2) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2aa].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2ab].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H2aa. apply refl_equal.
% 1.97/2.13  apply zenon_H2aa. apply refl_equal.
% 1.97/2.13  apply (zenon_L29_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2a6); [ zenon_intro zenon_H2ad | zenon_intro zenon_H2ac ].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3)) = ((op (op (e2) (e3)) (e1)) = (op (e2) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ad.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H12.
% 1.97/2.13  cut (((e3) = (op (e2) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hbb].
% 1.97/2.13  cut (((op (e1) (e1)) = (op (op (e2) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2ae].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e3)) (e1)) = (op (op (e2) (e3)) (e1)))); [ zenon_intro zenon_H2af | zenon_intro zenon_H2b0 ].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e1)) = (op (op (e2) (e3)) (e1))) = ((op (e1) (e1)) = (op (op (e2) (e3)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ae.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2af.
% 1.97/2.13  cut (((op (op (e2) (e3)) (e1)) = (op (op (e2) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2b0].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2b1].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H2b0. apply refl_equal.
% 1.97/2.13  apply zenon_H2b0. apply refl_equal.
% 1.97/2.13  apply (zenon_L30_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2ac); [ zenon_intro zenon_H2b3 | zenon_intro zenon_H2b2 ].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (op (e2) (e3)) (e2)) = (op (e2) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2b3.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (op (e2) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hc1].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (op (e2) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2b4].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e3)) (e2)) = (op (op (e2) (e3)) (e2)))); [ zenon_intro zenon_H2b5 | zenon_intro zenon_H2b6 ].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e2)) = (op (op (e2) (e3)) (e2))) = ((op (e1) (e2)) = (op (op (e2) (e3)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2b4.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2b5.
% 1.97/2.13  cut (((op (op (e2) (e3)) (e2)) = (op (op (e2) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2b6].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2b7].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H2b6. apply refl_equal.
% 1.97/2.13  apply zenon_H2b6. apply refl_equal.
% 1.97/2.13  apply (zenon_L31_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2b2); [ zenon_intro zenon_H2b9 | zenon_intro zenon_H2b8 ].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2)) = ((op (op (e2) (e3)) (e3)) = (op (e2) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2b9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H25.
% 1.97/2.13  cut (((e2) = (op (e2) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hc7].
% 1.97/2.13  cut (((op (e1) (e3)) = (op (op (e2) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2ba].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e2) (e3)) (e3)) = (op (op (e2) (e3)) (e3)))); [ zenon_intro zenon_H2bb | zenon_intro zenon_H2bc ].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e3)) = (op (op (e2) (e3)) (e3))) = ((op (e1) (e3)) = (op (op (e2) (e3)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ba.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2bb.
% 1.97/2.13  cut (((op (op (e2) (e3)) (e3)) = (op (op (e2) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2bc].
% 1.97/2.13  cut (((op (op (e2) (e3)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2bd].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H4c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H4c zenon_H45).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H2bc. apply refl_equal.
% 1.97/2.13  apply zenon_H2bc. apply refl_equal.
% 1.97/2.13  apply (zenon_L32_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2b8); [ zenon_intro zenon_H2bf | zenon_intro zenon_H2be ].
% 1.97/2.13  cut (((e0) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply zenon_H19c. apply sym_equal. exact zenon_H1b.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2be); [ zenon_intro zenon_H2c1 | zenon_intro zenon_H2c0 ].
% 1.97/2.13  cut (((e1) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H19f].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply zenon_H19f. apply sym_equal. exact zenon_H8.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2c0); [ zenon_intro zenon_H2c3 | zenon_intro zenon_H2c2 ].
% 1.97/2.13  cut (((e2) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a2].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply zenon_H1a2. apply sym_equal. exact zenon_H24.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2c2); [ zenon_intro zenon_H2c5 | zenon_intro zenon_H2c4 ].
% 1.97/2.13  cut (((e3) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a5].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply zenon_H1a5. apply sym_equal. exact zenon_H11.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2c4); [ zenon_intro zenon_H2c7 | zenon_intro zenon_H2c6 ].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2)) = ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2c7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d.
% 1.97/2.13  cut (((e2) = (op (e3) (op (e1) (e0))))); [idtac | apply NNPP; zenon_intro zenon_Hcd].
% 1.97/2.13  cut (((op (e2) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2c8].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e1)) (e0)) = (op (op (e3) (e1)) (e0)))); [ zenon_intro zenon_H2c9 | zenon_intro zenon_H2ca ].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e0)) = (op (op (e3) (e1)) (e0))) = ((op (e2) (e0)) = (op (op (e3) (e1)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2c8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2c9.
% 1.97/2.13  cut (((op (op (e3) (e1)) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2ca].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2cb].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H2ca. apply refl_equal.
% 1.97/2.13  apply zenon_H2ca. apply refl_equal.
% 1.97/2.13  apply (zenon_L33_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2c6); [ zenon_intro zenon_H2cd | zenon_intro zenon_H2cc ].
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2cd.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (op (e3) (op (e1) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Hd3].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2ce].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e1)) (e1)) = (op (op (e3) (e1)) (e1)))); [ zenon_intro zenon_H2cf | zenon_intro zenon_H2d0 ].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e1)) = (op (op (e3) (e1)) (e1))) = ((op (e2) (e1)) = (op (op (e3) (e1)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ce.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2cf.
% 1.97/2.13  cut (((op (op (e3) (e1)) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2d0].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2d1].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H2d0. apply refl_equal.
% 1.97/2.13  apply zenon_H2d0. apply refl_equal.
% 1.97/2.13  apply (zenon_L34_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2cc); [ zenon_intro zenon_H2d3 | zenon_intro zenon_H2d2 ].
% 1.97/2.13  cut (((op (e2) (e2)) = (e3)) = ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2d3.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H3d.
% 1.97/2.13  cut (((e3) = (op (e3) (op (e1) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hd9].
% 1.97/2.13  cut (((op (e2) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2d4].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e1)) (e2)) = (op (op (e3) (e1)) (e2)))); [ zenon_intro zenon_H2d5 | zenon_intro zenon_H2d6 ].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e2)) = (op (op (e3) (e1)) (e2))) = ((op (e2) (e2)) = (op (op (e3) (e1)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2d4.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d5.
% 1.97/2.13  cut (((op (op (e3) (e1)) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2d6].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2d7].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H2d6. apply refl_equal.
% 1.97/2.13  apply zenon_H2d6. apply refl_equal.
% 1.97/2.13  apply (zenon_L35_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2d2); [ zenon_intro zenon_H2d9 | zenon_intro zenon_H2d8 ].
% 1.97/2.13  cut (((op (e2) (e3)) = (e1)) = ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2d9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H45.
% 1.97/2.13  cut (((e1) = (op (e3) (op (e1) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hdf].
% 1.97/2.13  cut (((op (e2) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2da].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e1)) (e3)) = (op (op (e3) (e1)) (e3)))); [ zenon_intro zenon_H2db | zenon_intro zenon_H2dc ].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e3)) = (op (op (e3) (e1)) (e3))) = ((op (e2) (e3)) = (op (op (e3) (e1)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2da.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2db.
% 1.97/2.13  cut (((op (op (e3) (e1)) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2dc].
% 1.97/2.13  cut (((op (op (e3) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2dd].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H2dc. apply refl_equal.
% 1.97/2.13  apply zenon_H2dc. apply refl_equal.
% 1.97/2.13  apply (zenon_L36_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2d8); [ zenon_intro zenon_H2df | zenon_intro zenon_H2de ].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1)) = ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2df.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H9.
% 1.97/2.13  cut (((e1) = (op (e3) (op (e2) (e0))))); [idtac | apply NNPP; zenon_intro zenon_He5].
% 1.97/2.13  cut (((op (e1) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2e0].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e2)) (e0)) = (op (op (e3) (e2)) (e0)))); [ zenon_intro zenon_H2e1 | zenon_intro zenon_H2e2 ].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e0)) = (op (op (e3) (e2)) (e0))) = ((op (e1) (e0)) = (op (op (e3) (e2)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2e0.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2e1.
% 1.97/2.13  cut (((op (op (e3) (e2)) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2e2].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2e3].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H2e2. apply refl_equal.
% 1.97/2.13  apply zenon_H2e2. apply refl_equal.
% 1.97/2.13  apply (zenon_L37_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2de); [ zenon_intro zenon_H2e5 | zenon_intro zenon_H2e4 ].
% 1.97/2.13  cut (((op (e1) (e1)) = (e3)) = ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2e5.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H12.
% 1.97/2.13  cut (((e3) = (op (e3) (op (e2) (e1))))); [idtac | apply NNPP; zenon_intro zenon_Heb].
% 1.97/2.13  cut (((op (e1) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2e6].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e2)) (e1)) = (op (op (e3) (e2)) (e1)))); [ zenon_intro zenon_H2e7 | zenon_intro zenon_H2e8 ].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e1)) = (op (op (e3) (e2)) (e1))) = ((op (e1) (e1)) = (op (op (e3) (e2)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2e6.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2e7.
% 1.97/2.13  cut (((op (op (e3) (e2)) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2e8].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2e9].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H2e8. apply refl_equal.
% 1.97/2.13  apply zenon_H2e8. apply refl_equal.
% 1.97/2.13  apply (zenon_L38_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2e4); [ zenon_intro zenon_H2eb | zenon_intro zenon_H2ea ].
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2eb.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (op (e3) (op (e2) (e2))))); [idtac | apply NNPP; zenon_intro zenon_Hf1].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2ec].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e2)) (e2)) = (op (op (e3) (e2)) (e2)))); [ zenon_intro zenon_H2ed | zenon_intro zenon_H2ee ].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e2)) = (op (op (e3) (e2)) (e2))) = ((op (e1) (e2)) = (op (op (e3) (e2)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ec.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2ed.
% 1.97/2.13  cut (((op (op (e3) (e2)) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2ee].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H2ef].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H2ee. apply refl_equal.
% 1.97/2.13  apply zenon_H2ee. apply refl_equal.
% 1.97/2.13  apply (zenon_L39_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2ea); [ zenon_intro zenon_H2f1 | zenon_intro zenon_H2f0 ].
% 1.97/2.13  cut (((op (e1) (e3)) = (e2)) = ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2f1.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H25.
% 1.97/2.13  cut (((e2) = (op (e3) (op (e2) (e3))))); [idtac | apply NNPP; zenon_intro zenon_Hf7].
% 1.97/2.13  cut (((op (e1) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2f2].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e2)) (e3)) = (op (op (e3) (e2)) (e3)))); [ zenon_intro zenon_H2f3 | zenon_intro zenon_H2f4 ].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e3)) = (op (op (e3) (e2)) (e3))) = ((op (e1) (e3)) = (op (op (e3) (e2)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2f2.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2f3.
% 1.97/2.13  cut (((op (op (e3) (e2)) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2f4].
% 1.97/2.13  cut (((op (op (e3) (e2)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H2f5].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H2f4. apply refl_equal.
% 1.97/2.13  apply zenon_H2f4. apply refl_equal.
% 1.97/2.13  apply (zenon_L40_); trivial.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2f0); [ zenon_intro zenon_H2f7 | zenon_intro zenon_H2f6 ].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2f7.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (op (e3) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H2f8].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2f9].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e3)) (e0)) = (op (op (e3) (e3)) (e0)))); [ zenon_intro zenon_H2fa | zenon_intro zenon_H2fb ].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e0)) = (op (op (e3) (e3)) (e0))) = ((op (e0) (e0)) = (op (op (e3) (e3)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2f9.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2fa.
% 1.97/2.13  cut (((op (op (e3) (e3)) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2fb].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2fc].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H2fb. apply refl_equal.
% 1.97/2.13  apply zenon_H2fb. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0))))); [ zenon_intro zenon_H2fd | zenon_intro zenon_H2fe ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0)))) = ((e0) = (op (e3) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2f8.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2fd.
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H2fe].
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H2ff].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (e3) (op (e3) (e0))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H2ff.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (e3) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H300].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0))))); [ zenon_intro zenon_H2fd | zenon_intro zenon_H2fe ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0)))) = ((op (e3) (e3)) = (op (e3) (op (e3) (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H300.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2fd.
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (op (e3) (op (e3) (e0))))); [idtac | apply NNPP; zenon_intro zenon_H2fe].
% 1.97/2.13  cut (((op (e3) (op (e3) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H301].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H54].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H54 zenon_H4d).
% 1.97/2.13  apply zenon_H2fe. apply refl_equal.
% 1.97/2.13  apply zenon_H2fe. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H2fe. apply refl_equal.
% 1.97/2.13  apply zenon_H2fe. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H2f6); [ zenon_intro zenon_H303 | zenon_intro zenon_H302 ].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1)) = ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H303.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H8.
% 1.97/2.13  cut (((e1) = (op (e3) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H304].
% 1.97/2.13  cut (((op (e0) (e1)) = (op (op (e3) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H305].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e3)) (e1)) = (op (op (e3) (e3)) (e1)))); [ zenon_intro zenon_H306 | zenon_intro zenon_H307 ].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e1)) = (op (op (e3) (e3)) (e1))) = ((op (e0) (e1)) = (op (op (e3) (e3)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H305.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H306.
% 1.97/2.13  cut (((op (op (e3) (e3)) (e1)) = (op (op (e3) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H307].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H308].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H307. apply refl_equal.
% 1.97/2.13  apply zenon_H307. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1))))); [ zenon_intro zenon_H309 | zenon_intro zenon_H30a ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1)))) = ((e1) = (op (e3) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H304.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H309.
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H30a].
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H30b].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e2)) = (e1)) = ((op (e3) (op (e3) (e1))) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H30b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H5d.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e3) (e2)) = (op (e3) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H30c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1))))); [ zenon_intro zenon_H309 | zenon_intro zenon_H30a ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1)))) = ((op (e3) (e2)) = (op (e3) (op (e3) (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H30c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H309.
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (op (e3) (op (e3) (e1))))); [idtac | apply NNPP; zenon_intro zenon_H30a].
% 1.97/2.13  cut (((op (e3) (op (e3) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H30d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H5c].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H5c zenon_H55).
% 1.97/2.13  apply zenon_H30a. apply refl_equal.
% 1.97/2.13  apply zenon_H30a. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H30a. apply refl_equal.
% 1.97/2.13  apply zenon_H30a. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H302); [ zenon_intro zenon_H30f | zenon_intro zenon_H30e ].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2)) = ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H30f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H24.
% 1.97/2.13  cut (((e2) = (op (e3) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H310].
% 1.97/2.13  cut (((op (e0) (e2)) = (op (op (e3) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H311].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e3)) (e2)) = (op (op (e3) (e3)) (e2)))); [ zenon_intro zenon_H312 | zenon_intro zenon_H313 ].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e2)) = (op (op (e3) (e3)) (e2))) = ((op (e0) (e2)) = (op (op (e3) (e3)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H311.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H312.
% 1.97/2.13  cut (((op (op (e3) (e3)) (e2)) = (op (op (e3) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H313].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H314].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H313. apply refl_equal.
% 1.97/2.13  apply zenon_H313. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2))))); [ zenon_intro zenon_H315 | zenon_intro zenon_H316 ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2)))) = ((e2) = (op (e3) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H310.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H315.
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H316].
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H317].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e1)) = (e2)) = ((op (e3) (op (e3) (e2))) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H317.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H55.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e3) (e1)) = (op (e3) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H318].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2))))); [ zenon_intro zenon_H315 | zenon_intro zenon_H316 ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2)))) = ((op (e3) (e1)) = (op (e3) (op (e3) (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H318.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H315.
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (op (e3) (op (e3) (e2))))); [idtac | apply NNPP; zenon_intro zenon_H316].
% 1.97/2.13  cut (((op (e3) (op (e3) (e2))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H319].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H64].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H64 zenon_H5d).
% 1.97/2.13  apply zenon_H316. apply refl_equal.
% 1.97/2.13  apply zenon_H316. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H316. apply refl_equal.
% 1.97/2.13  apply zenon_H316. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H30e); [ zenon_intro zenon_H31b | zenon_intro zenon_H31a ].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3)) = ((op (op (e3) (e3)) (e3)) = (op (e3) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H31b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H11.
% 1.97/2.13  cut (((e3) = (op (e3) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H31c].
% 1.97/2.13  cut (((op (e0) (e3)) = (op (op (e3) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H31d].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (op (e3) (e3)) (e3)) = (op (op (e3) (e3)) (e3)))); [ zenon_intro zenon_H31e | zenon_intro zenon_H31f ].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e3)) = (op (op (e3) (e3)) (e3))) = ((op (e0) (e3)) = (op (op (e3) (e3)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H31d.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H31e.
% 1.97/2.13  cut (((op (op (e3) (e3)) (e3)) = (op (op (e3) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H31f].
% 1.97/2.13  cut (((op (op (e3) (e3)) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H320].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H31f. apply refl_equal.
% 1.97/2.13  apply zenon_H31f. apply refl_equal.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3))))); [ zenon_intro zenon_H321 | zenon_intro zenon_H322 ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3)))) = ((e3) = (op (e3) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H31c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H321.
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H322].
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H323].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (op (e3) (e3))) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H323.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (e3) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H324].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3))))); [ zenon_intro zenon_H321 | zenon_intro zenon_H322 ].
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3)))) = ((op (e3) (e0)) = (op (e3) (op (e3) (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H324.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H321.
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (op (e3) (op (e3) (e3))))); [idtac | apply NNPP; zenon_intro zenon_H322].
% 1.97/2.13  cut (((op (e3) (op (e3) (e3))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H325].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6c].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H6c zenon_H65).
% 1.97/2.13  apply zenon_H322. apply refl_equal.
% 1.97/2.13  apply zenon_H322. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H322. apply refl_equal.
% 1.97/2.13  apply zenon_H322. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H31a); [ zenon_intro zenon_H327 | zenon_intro zenon_H326 ].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (unit) (e0)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H327.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H328].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (unit) (e0)) = (op (unit) (e0)))); [ zenon_intro zenon_H329 | zenon_intro zenon_H32a ].
% 1.97/2.13  cut (((op (unit) (e0)) = (op (unit) (e0))) = ((op (e0) (e0)) = (op (unit) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H328.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H329.
% 1.97/2.13  cut (((op (unit) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H32a].
% 1.97/2.13  cut (((op (unit) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H32b].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H32a. apply refl_equal.
% 1.97/2.13  apply zenon_H32a. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H326); [ zenon_intro zenon_H32d | zenon_intro zenon_H32c ].
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (e0) (unit)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H32d.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (e0) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H32e].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e0) (unit)) = (op (e0) (unit)))); [ zenon_intro zenon_H32f | zenon_intro zenon_H330 ].
% 1.97/2.13  cut (((op (e0) (unit)) = (op (e0) (unit))) = ((op (e0) (e0)) = (op (e0) (unit)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H32e.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H32f.
% 1.97/2.13  cut (((op (e0) (unit)) = (op (e0) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H330].
% 1.97/2.13  cut (((op (e0) (unit)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H331].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H330. apply refl_equal.
% 1.97/2.13  apply zenon_H330. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H32c); [ zenon_intro zenon_H333 | zenon_intro zenon_H332 ].
% 1.97/2.13  cut (((op (e0) (e1)) = (e1)) = ((op (unit) (e1)) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H333.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H8.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e0) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H334].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (unit) (e1)) = (op (unit) (e1)))); [ zenon_intro zenon_H335 | zenon_intro zenon_H336 ].
% 1.97/2.13  cut (((op (unit) (e1)) = (op (unit) (e1))) = ((op (e0) (e1)) = (op (unit) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H334.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H335.
% 1.97/2.13  cut (((op (unit) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H336].
% 1.97/2.13  cut (((op (unit) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H337].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H336. apply refl_equal.
% 1.97/2.13  apply zenon_H336. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H332); [ zenon_intro zenon_H339 | zenon_intro zenon_H338 ].
% 1.97/2.13  cut (((op (e1) (e0)) = (e1)) = ((op (e1) (unit)) = (e1))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H339.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H9.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((op (e1) (e0)) = (op (e1) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H33a].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (unit)) = (op (e1) (unit)))); [ zenon_intro zenon_H33b | zenon_intro zenon_H33c ].
% 1.97/2.13  cut (((op (e1) (unit)) = (op (e1) (unit))) = ((op (e1) (e0)) = (op (e1) (unit)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H33a.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H33b.
% 1.97/2.13  cut (((op (e1) (unit)) = (op (e1) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H33c].
% 1.97/2.13  cut (((op (e1) (unit)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H33d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H33c. apply refl_equal.
% 1.97/2.13  apply zenon_H33c. apply refl_equal.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H338); [ zenon_intro zenon_H33f | zenon_intro zenon_H33e ].
% 1.97/2.13  cut (((op (e0) (e2)) = (e2)) = ((op (unit) (e2)) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H33f.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H24.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e0) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H340].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (unit) (e2)) = (op (unit) (e2)))); [ zenon_intro zenon_H341 | zenon_intro zenon_H342 ].
% 1.97/2.13  cut (((op (unit) (e2)) = (op (unit) (e2))) = ((op (e0) (e2)) = (op (unit) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H340.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H341.
% 1.97/2.13  cut (((op (unit) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H342].
% 1.97/2.13  cut (((op (unit) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H343].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H342. apply refl_equal.
% 1.97/2.13  apply zenon_H342. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H33e); [ zenon_intro zenon_H345 | zenon_intro zenon_H344 ].
% 1.97/2.13  cut (((op (e2) (e0)) = (e2)) = ((op (e2) (unit)) = (e2))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H345.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H2d.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((op (e2) (e0)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H346].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (unit)) = (op (e2) (unit)))); [ zenon_intro zenon_H347 | zenon_intro zenon_H348 ].
% 1.97/2.13  cut (((op (e2) (unit)) = (op (e2) (unit))) = ((op (e2) (e0)) = (op (e2) (unit)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H346.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H347.
% 1.97/2.13  cut (((op (e2) (unit)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H348].
% 1.97/2.13  cut (((op (e2) (unit)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H349].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H348. apply refl_equal.
% 1.97/2.13  apply zenon_H348. apply refl_equal.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H344); [ zenon_intro zenon_H34b | zenon_intro zenon_H34a ].
% 1.97/2.13  cut (((op (e0) (e3)) = (e3)) = ((op (unit) (e3)) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H34b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H11.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e0) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H34c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (unit) (e3)) = (op (unit) (e3)))); [ zenon_intro zenon_H34d | zenon_intro zenon_H34e ].
% 1.97/2.13  cut (((op (unit) (e3)) = (op (unit) (e3))) = ((op (e0) (e3)) = (op (unit) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H34c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H34d.
% 1.97/2.13  cut (((op (unit) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H34e].
% 1.97/2.13  cut (((op (unit) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H34f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H34e. apply refl_equal.
% 1.97/2.13  apply zenon_H34e. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H34a); [ zenon_intro zenon_H351 | zenon_intro zenon_H350 ].
% 1.97/2.13  cut (((op (e3) (e0)) = (e3)) = ((op (e3) (unit)) = (e3))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H351.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H4d.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((op (e3) (e0)) = (op (e3) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H352].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (unit)) = (op (e3) (unit)))); [ zenon_intro zenon_H353 | zenon_intro zenon_H354 ].
% 1.97/2.13  cut (((op (e3) (unit)) = (op (e3) (unit))) = ((op (e3) (e0)) = (op (e3) (unit)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H352.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H353.
% 1.97/2.13  cut (((op (e3) (unit)) = (op (e3) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H354].
% 1.97/2.13  cut (((op (e3) (unit)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H355].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((unit) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hfd].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply zenon_H354. apply refl_equal.
% 1.97/2.13  apply zenon_H354. apply refl_equal.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H350); [ zenon_intro zenon_H357 | zenon_intro zenon_H356 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H357). zenon_intro zenon_Hfd. zenon_intro zenon_H358.
% 1.97/2.13  exact (zenon_Hfd ax3).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H356); [ zenon_intro zenon_H35a | zenon_intro zenon_H359 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vh : _ => (~((op (e0) (inv (e0))) = zenon_Vh))) _ _ zenon_H35a ax3). zenon_intro zenon_H35b.
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (e0) (inv (e0))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H35b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (e0) (inv (e0))))); [idtac | apply NNPP; zenon_intro zenon_H35c].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e0) (inv (e0))) = (op (e0) (inv (e0))))); [ zenon_intro zenon_H35d | zenon_intro zenon_H35e ].
% 1.97/2.13  cut (((op (e0) (inv (e0))) = (op (e0) (inv (e0)))) = ((op (e0) (e0)) = (op (e0) (inv (e0))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H35c.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35d.
% 1.97/2.13  cut (((op (e0) (inv (e0))) = (op (e0) (inv (e0))))); [idtac | apply NNPP; zenon_intro zenon_H35e].
% 1.97/2.13  cut (((op (e0) (inv (e0))) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H35f].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((inv (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H360].
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  exact (zenon_H360 zenon_H113).
% 1.97/2.13  apply zenon_H35e. apply refl_equal.
% 1.97/2.13  apply zenon_H35e. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H359); [ zenon_intro zenon_H362 | zenon_intro zenon_H361 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vj : _ => (~((op (inv (e0)) (e0)) = zenon_Vj))) _ _ zenon_H362 ax3). zenon_intro zenon_H363.
% 1.97/2.13  cut (((op (e0) (e0)) = (e0)) = ((op (inv (e0)) (e0)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H363.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1b.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e0) (e0)) = (op (inv (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H364].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (inv (e0)) (e0)) = (op (inv (e0)) (e0)))); [ zenon_intro zenon_H365 | zenon_intro zenon_H366 ].
% 1.97/2.13  cut (((op (inv (e0)) (e0)) = (op (inv (e0)) (e0))) = ((op (e0) (e0)) = (op (inv (e0)) (e0)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H364.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H365.
% 1.97/2.13  cut (((op (inv (e0)) (e0)) = (op (inv (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H366].
% 1.97/2.13  cut (((op (inv (e0)) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H367].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((inv (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H360].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H360 zenon_H113).
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply zenon_H366. apply refl_equal.
% 1.97/2.13  apply zenon_H366. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H361); [ zenon_intro zenon_H369 | zenon_intro zenon_H368 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vl : _ => (~((op (e1) (inv (e1))) = zenon_Vl))) _ _ zenon_H369 ax3). zenon_intro zenon_H36a.
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (e1) (inv (e1))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H36a.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (e1) (inv (e1))))); [idtac | apply NNPP; zenon_intro zenon_H36b].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e1) (inv (e1))) = (op (e1) (inv (e1))))); [ zenon_intro zenon_H36c | zenon_intro zenon_H36d ].
% 1.97/2.13  cut (((op (e1) (inv (e1))) = (op (e1) (inv (e1)))) = ((op (e1) (e2)) = (op (e1) (inv (e1))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H36b.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H36c.
% 1.97/2.13  cut (((op (e1) (inv (e1))) = (op (e1) (inv (e1))))); [idtac | apply NNPP; zenon_intro zenon_H36d].
% 1.97/2.13  cut (((op (e1) (inv (e1))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H36e].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((inv (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H36f].
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  exact (zenon_H36f zenon_H115).
% 1.97/2.13  apply zenon_H36d. apply refl_equal.
% 1.97/2.13  apply zenon_H36d. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H368); [ zenon_intro zenon_H371 | zenon_intro zenon_H370 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vn : _ => (~((op (inv (e1)) (e1)) = zenon_Vn))) _ _ zenon_H371 ax3). zenon_intro zenon_H372.
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (inv (e1)) (e1)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H372.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (inv (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H373].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (inv (e1)) (e1)) = (op (inv (e1)) (e1)))); [ zenon_intro zenon_H374 | zenon_intro zenon_H375 ].
% 1.97/2.13  cut (((op (inv (e1)) (e1)) = (op (inv (e1)) (e1))) = ((op (e2) (e1)) = (op (inv (e1)) (e1)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H373.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H374.
% 1.97/2.13  cut (((op (inv (e1)) (e1)) = (op (inv (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H375].
% 1.97/2.13  cut (((op (inv (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H376].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7].
% 1.97/2.13  cut (((inv (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H36f].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H36f zenon_H115).
% 1.97/2.13  apply zenon_H7. apply refl_equal.
% 1.97/2.13  apply zenon_H375. apply refl_equal.
% 1.97/2.13  apply zenon_H375. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H370); [ zenon_intro zenon_H378 | zenon_intro zenon_H377 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vp : _ => (~((op (e2) (inv (e2))) = zenon_Vp))) _ _ zenon_H378 ax3). zenon_intro zenon_H379.
% 1.97/2.13  cut (((op (e2) (e1)) = (e0)) = ((op (e2) (inv (e2))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H379.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H35.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e2) (e1)) = (op (e2) (inv (e2))))); [idtac | apply NNPP; zenon_intro zenon_H37a].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e2) (inv (e2))) = (op (e2) (inv (e2))))); [ zenon_intro zenon_H37b | zenon_intro zenon_H37c ].
% 1.97/2.13  cut (((op (e2) (inv (e2))) = (op (e2) (inv (e2)))) = ((op (e2) (e1)) = (op (e2) (inv (e2))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H37a.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H37b.
% 1.97/2.13  cut (((op (e2) (inv (e2))) = (op (e2) (inv (e2))))); [idtac | apply NNPP; zenon_intro zenon_H37c].
% 1.97/2.13  cut (((op (e2) (inv (e2))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H37d].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((inv (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H37e].
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  exact (zenon_H37e zenon_H117).
% 1.97/2.13  apply zenon_H37c. apply refl_equal.
% 1.97/2.13  apply zenon_H37c. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H377); [ zenon_intro zenon_H380 | zenon_intro zenon_H37f ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vr : _ => (~((op (inv (e2)) (e2)) = zenon_Vr))) _ _ zenon_H380 ax3). zenon_intro zenon_H381.
% 1.97/2.13  cut (((op (e1) (e2)) = (e0)) = ((op (inv (e2)) (e2)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H381.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H1c.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e1) (e2)) = (op (inv (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H382].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (inv (e2)) (e2)) = (op (inv (e2)) (e2)))); [ zenon_intro zenon_H383 | zenon_intro zenon_H384 ].
% 1.97/2.13  cut (((op (inv (e2)) (e2)) = (op (inv (e2)) (e2))) = ((op (e1) (e2)) = (op (inv (e2)) (e2)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H382.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H383.
% 1.97/2.13  cut (((op (inv (e2)) (e2)) = (op (inv (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H384].
% 1.97/2.13  cut (((op (inv (e2)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H385].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1a].
% 1.97/2.13  cut (((inv (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H37e].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H37e zenon_H117).
% 1.97/2.13  apply zenon_H1a. apply refl_equal.
% 1.97/2.13  apply zenon_H384. apply refl_equal.
% 1.97/2.13  apply zenon_H384. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H37f); [ zenon_intro zenon_H387 | zenon_intro zenon_H386 ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vt : _ => (~((op (e3) (inv (e3))) = zenon_Vt))) _ _ zenon_H387 ax3). zenon_intro zenon_H388.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (e3) (inv (e3))) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H388.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (e3) (inv (e3))))); [idtac | apply NNPP; zenon_intro zenon_H389].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (e3) (inv (e3))) = (op (e3) (inv (e3))))); [ zenon_intro zenon_H38a | zenon_intro zenon_H38b ].
% 1.97/2.13  cut (((op (e3) (inv (e3))) = (op (e3) (inv (e3)))) = ((op (e3) (e3)) = (op (e3) (inv (e3))))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H389.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H38a.
% 1.97/2.13  cut (((op (e3) (inv (e3))) = (op (e3) (inv (e3))))); [idtac | apply NNPP; zenon_intro zenon_H38b].
% 1.97/2.13  cut (((op (e3) (inv (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H38c].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((inv (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H38d].
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  congruence.
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  exact (zenon_H38d zenon_H116).
% 1.97/2.13  apply zenon_H38b. apply refl_equal.
% 1.97/2.13  apply zenon_H38b. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H386); [ zenon_intro zenon_H38f | zenon_intro zenon_H38e ].
% 1.97/2.13  apply (zenon_congruence_lr_s _ (fun zenon_Vv : _ => (~((op (inv (e3)) (e3)) = zenon_Vv))) _ _ zenon_H38f ax3). zenon_intro zenon_H390.
% 1.97/2.13  cut (((op (e3) (e3)) = (e0)) = ((op (inv (e3)) (e3)) = (e0))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H390.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H65.
% 1.97/2.13  cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H6].
% 1.97/2.13  cut (((op (e3) (e3)) = (op (inv (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H391].
% 1.97/2.13  congruence.
% 1.97/2.13  elim (classic ((op (inv (e3)) (e3)) = (op (inv (e3)) (e3)))); [ zenon_intro zenon_H392 | zenon_intro zenon_H393 ].
% 1.97/2.13  cut (((op (inv (e3)) (e3)) = (op (inv (e3)) (e3))) = ((op (e3) (e3)) = (op (inv (e3)) (e3)))).
% 1.97/2.13  intro zenon_D_pnotp.
% 1.97/2.13  apply zenon_H391.
% 1.97/2.13  rewrite <- zenon_D_pnotp.
% 1.97/2.13  exact zenon_H392.
% 1.97/2.13  cut (((op (inv (e3)) (e3)) = (op (inv (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H393].
% 1.97/2.13  cut (((op (inv (e3)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H394].
% 1.97/2.13  congruence.
% 1.97/2.13  cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H5].
% 1.97/2.13  cut (((inv (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H38d].
% 1.97/2.13  congruence.
% 1.97/2.13  exact (zenon_H38d zenon_H116).
% 1.97/2.13  apply zenon_H5. apply refl_equal.
% 1.97/2.13  apply zenon_H393. apply refl_equal.
% 1.97/2.13  apply zenon_H393. apply refl_equal.
% 1.97/2.13  apply zenon_H6. apply refl_equal.
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H38e); [ zenon_intro zenon_H396 | zenon_intro zenon_H395 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H396). zenon_intro zenon_H360. zenon_intro zenon_H397.
% 1.97/2.13  exact (zenon_H360 zenon_H113).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H395); [ zenon_intro zenon_H399 | zenon_intro zenon_H398 ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H399). zenon_intro zenon_H39b. zenon_intro zenon_H39a.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H39a). zenon_intro zenon_H39d. zenon_intro zenon_H39c.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H39c). zenon_intro zenon_H36f. zenon_intro zenon_H39e.
% 1.97/2.13  exact (zenon_H36f zenon_H115).
% 1.97/2.13  apply (zenon_notand_s _ _ zenon_H398); [ zenon_intro zenon_H3a0 | zenon_intro zenon_H39f ].
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H3a0). zenon_intro zenon_H3a2. zenon_intro zenon_H3a1.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H3a1). zenon_intro zenon_H37e. zenon_intro zenon_H3a3.
% 1.97/2.13  exact (zenon_H37e zenon_H117).
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H39f). zenon_intro zenon_H3a5. zenon_intro zenon_H3a4.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H3a4). zenon_intro zenon_H3a7. zenon_intro zenon_H3a6.
% 1.97/2.13  apply (zenon_notor_s _ _ zenon_H3a6). zenon_intro zenon_H3a8. zenon_intro zenon_H38d.
% 1.97/2.13  exact (zenon_H38d zenon_H116).
% 1.97/2.13  Qed.
% 1.97/2.13  % SZS output end Proof
% 1.97/2.13  (* END-PROOF *)
% 1.97/2.13  nodes searched: 66768
% 1.97/2.13  max branch formulas: 270
% 1.97/2.13  proof nodes created: 450
% 1.97/2.13  formulas created: 33689
% 1.97/2.13  
%------------------------------------------------------------------------------