%------------------------------------------------------------------------------ % File : Zenon---0.7.1 % Problem : ALG023+1 : TPTP v8.1.0. Released v2.7.0. % Transfm : none % Format : tptp:raw % Command : run_zenon %s %d % Computer : n023.cluster.edu % Model : x86_64 x86_64 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz % Memory : 8042.1875MB % OS : Linux 3.10.0-693.el7.x86_64 % CPULimit : 300s % WCLimit : 600s % DateTime : Thu Jul 14 18:29:00 EDT 2022 % Result : Unsatisfiable 177.46s 177.70s % Output : Proof 177.56s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.06/0.11 % Problem : ALG023+1 : TPTP v8.1.0. Released v2.7.0. % 0.06/0.12 % Command : run_zenon %s %d % 0.11/0.32 % Computer : n023.cluster.edu % 0.11/0.32 % Model : x86_64 x86_64 % 0.11/0.32 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.11/0.32 % Memory : 8042.1875MB % 0.11/0.32 % OS : Linux 3.10.0-693.el7.x86_64 % 0.11/0.32 % CPULimit : 300 % 0.11/0.32 % WCLimit : 600 % 0.11/0.32 % DateTime : Wed Jun 8 11:47:53 EDT 2022 % 0.11/0.33 % CPUTime : % 177.46/177.70 (* PROOF-FOUND *) % 177.46/177.70 % SZS status Unsatisfiable % 177.46/177.70 (* BEGIN-PROOF *) % 177.46/177.70 % SZS output start Proof % 177.46/177.70 Theorem zenon_thm : False. % 177.46/177.70 Proof. % 177.46/177.70 assert (zenon_L1_ : (~((e0) = (e0))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H23. % 177.46/177.70 apply zenon_H23. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L1_ *) % 177.46/177.70 assert (zenon_L2_ : (~((op (e0) (e0)) = (op (e0) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H24 zenon_H25 zenon_H26 zenon_H27. % 177.46/177.70 cut (((op (unit) (e0)) = (e0)) = ((op (e0) (e0)) = (op (e0) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H24. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H25. % 177.46/177.70 cut (((e0) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H28]. % 177.46/177.70 cut (((op (unit) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H29]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e0)) = (op (e0) (e0)))); [ zenon_intro zenon_H2a | zenon_intro zenon_H2b ]. % 177.46/177.70 cut (((op (e0) (e0)) = (op (e0) (e0))) = ((op (unit) (e0)) = (op (e0) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H29. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H2a. % 177.46/177.70 cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b]. % 177.46/177.70 cut (((op (e0) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2c]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.70 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.70 apply zenon_H23. apply refl_equal. % 177.46/177.70 apply zenon_H2b. apply refl_equal. % 177.46/177.70 apply zenon_H2b. apply refl_equal. % 177.46/177.70 apply zenon_H28. apply sym_equal. exact zenon_H27. % 177.46/177.70 (* end of lemma zenon_L2_ *) % 177.46/177.70 assert (zenon_L3_ : (~((e1) = (e1))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H2e. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L3_ *) % 177.46/177.70 assert (zenon_L4_ : (~((op (e0) (e1)) = (op (unit) (e1)))) -> ((unit) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H2f zenon_H26. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L4_ *) % 177.46/177.70 assert (zenon_L5_ : (~((op (e0) (e1)) = (op (e0) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H30 zenon_H31 zenon_H26 zenon_H32. % 177.46/177.70 cut (((op (unit) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e0) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H30. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H31. % 177.46/177.70 cut (((e1) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H33]. % 177.46/177.70 cut (((op (unit) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (unit) (e1)) = (op (e0) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H34. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H35. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2f]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L4_); trivial. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply zenon_H33. apply sym_equal. exact zenon_H32. % 177.46/177.70 (* end of lemma zenon_L5_ *) % 177.46/177.70 assert (zenon_L6_ : (~((e2) = (e2))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H37. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L6_ *) % 177.46/177.70 assert (zenon_L7_ : (~((op (e0) (e2)) = (op (unit) (e2)))) -> ((unit) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H38 zenon_H26. % 177.46/177.70 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.70 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L7_ *) % 177.46/177.70 assert (zenon_L8_ : (~((op (e0) (e2)) = (op (e0) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e0) (e3)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H39 zenon_H3a zenon_H26 zenon_H3b. % 177.46/177.70 cut (((op (unit) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e0) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H39. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H3a. % 177.46/177.70 cut (((e2) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H3c]. % 177.46/177.70 cut (((op (unit) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3d]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ]. % 177.46/177.70 cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (unit) (e2)) = (op (e0) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H3d. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H3e. % 177.46/177.70 cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f]. % 177.46/177.70 cut (((op (e0) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H38]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L7_); trivial. % 177.46/177.70 apply zenon_H3f. apply refl_equal. % 177.46/177.70 apply zenon_H3f. apply refl_equal. % 177.46/177.70 apply zenon_H3c. apply sym_equal. exact zenon_H3b. % 177.46/177.70 (* end of lemma zenon_L8_ *) % 177.46/177.70 assert (zenon_L9_ : (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e1) (e1)) = (e0)) -> ((op (e2) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H40 zenon_H41 zenon_H42. % 177.46/177.70 cut (((op (e1) (e1)) = (e0)) = ((op (e1) (e1)) = (op (e2) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H40. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H41. % 177.46/177.70 cut (((e0) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H43]. % 177.46/177.70 cut (((op (e1) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H44]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H44. apply refl_equal. % 177.46/177.70 apply zenon_H43. apply sym_equal. exact zenon_H42. % 177.46/177.70 (* end of lemma zenon_L9_ *) % 177.46/177.70 assert (zenon_L10_ : (~((e3) = (e3))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H45. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L10_ *) % 177.46/177.70 assert (zenon_L11_ : (~((op (e3) (op (e0) (e3))) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H46 zenon_H47. % 177.46/177.70 cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H48]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H48 zenon_H47). % 177.46/177.70 (* end of lemma zenon_L11_ *) % 177.46/177.70 assert (zenon_L12_ : (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e0)) -> ((op (e0) (e3)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H49 zenon_H4a zenon_H4b zenon_H47. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e0) (e3)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H49. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H4a. % 177.46/177.70 cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4c]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e3)) = (op (e0) (e3)))); [ zenon_intro zenon_H4d | zenon_intro zenon_H4e ]. % 177.46/177.70 cut (((op (e0) (e3)) = (op (e0) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e0) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H4c. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H4d. % 177.46/177.70 cut (((op (e0) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4e]. % 177.46/177.70 cut (((op (e0) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H4f]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 cut (((e0) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H50]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H50. apply sym_equal. exact zenon_H4b. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 apply zenon_H4e. apply refl_equal. % 177.46/177.70 apply zenon_H4e. apply refl_equal. % 177.46/177.70 apply (zenon_L11_); trivial. % 177.46/177.70 (* end of lemma zenon_L12_ *) % 177.46/177.70 assert (zenon_L13_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e1)) -> ((op (e0) (e3)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H51 zenon_H4a zenon_H52 zenon_H47. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H51. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H4a. % 177.46/177.70 cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H53]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.70 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e1) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H53. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H54. % 177.46/177.70 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.70 cut (((op (e1) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H56]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 cut (((e1) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H57]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H57. apply sym_equal. exact zenon_H52. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 apply zenon_H55. apply refl_equal. % 177.46/177.70 apply zenon_H55. apply refl_equal. % 177.46/177.70 apply (zenon_L11_); trivial. % 177.46/177.70 (* end of lemma zenon_L13_ *) % 177.46/177.70 assert (zenon_L14_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e3) (e0)) = (e2)) -> ((op (e0) (e3)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H58 zenon_H4a zenon_H59 zenon_H47. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H58. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H4a. % 177.46/177.70 cut (((op (e3) (op (e0) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H46]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5a]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e0)) (e3)) = (op (e2) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H5a. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H5b. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (op (e3) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5d]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 cut (((e2) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H5e]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H5e. apply sym_equal. exact zenon_H59. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 apply (zenon_L11_); trivial. % 177.46/177.70 (* end of lemma zenon_L14_ *) % 177.46/177.70 assert (zenon_L15_ : (~((op (e3) (op (e2) (e1))) = (op (e3) (e1)))) -> ((op (e2) (e1)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H5f zenon_H60. % 177.46/177.70 cut (((op (e2) (e1)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H61]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H61 zenon_H60). % 177.46/177.70 (* end of lemma zenon_L15_ *) % 177.46/177.70 assert (zenon_L16_ : ((op (e3) (e2)) = (e1)) -> ((op (e2) (e2)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H62 zenon_H63. % 177.46/177.70 apply (zenon_notand_s _ _ ax13); [ zenon_intro zenon_H65 | zenon_intro zenon_H64 ]. % 177.46/177.70 apply zenon_H65. apply sym_equal. exact zenon_H63. % 177.46/177.70 apply zenon_H64. apply sym_equal. exact zenon_H62. % 177.46/177.70 (* end of lemma zenon_L16_ *) % 177.46/177.70 assert (zenon_L17_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e3) (e2)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H66 zenon_H62. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.46/177.70 apply (zenon_L16_); trivial. % 177.46/177.70 (* end of lemma zenon_L17_ *) % 177.46/177.70 assert (zenon_L18_ : (~((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H6b zenon_H6c. % 177.46/177.70 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.70 cut (((e3) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6d]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H6d. apply sym_equal. exact zenon_H6c. % 177.46/177.70 apply zenon_H23. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L18_ *) % 177.46/177.70 assert (zenon_L19_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e1)))) -> ((op (e0) (e0)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H6e zenon_H6f. % 177.46/177.70 cut (((op (e0) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H70]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H70 zenon_H6f). % 177.46/177.70 (* end of lemma zenon_L19_ *) % 177.46/177.70 assert (zenon_L20_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H71 zenon_H72 zenon_H6c zenon_H6f. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H71. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H72. % 177.46/177.70 cut (((op (e3) (op (e0) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H6e]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H73. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H74. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L18_); trivial. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply (zenon_L19_); trivial. % 177.46/177.70 (* end of lemma zenon_L20_ *) % 177.46/177.70 assert (zenon_L21_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H76 zenon_H71 zenon_H72 zenon_H6c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.70 apply (zenon_L20_); trivial. % 177.46/177.70 (* end of lemma zenon_L21_ *) % 177.46/177.70 assert (zenon_L22_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e2)))) -> ((op (e0) (e0)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H78 zenon_H79. % 177.46/177.70 cut (((op (e0) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H7a]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H7a zenon_H79). % 177.46/177.70 (* end of lemma zenon_L22_ *) % 177.46/177.70 assert (zenon_L23_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H7b zenon_H72 zenon_H6c zenon_H79. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H7b. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H72. % 177.46/177.70 cut (((op (e3) (op (e0) (e0))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H78]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H73. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H74. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L18_); trivial. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply (zenon_L22_); trivial. % 177.46/177.70 (* end of lemma zenon_L23_ *) % 177.46/177.70 assert (zenon_L24_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H7c zenon_H7b zenon_H72 zenon_H6c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.70 apply (zenon_L23_); trivial. % 177.46/177.70 (* end of lemma zenon_L24_ *) % 177.46/177.70 assert (zenon_L25_ : (~((op (e3) (op (e3) (e2))) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H7e zenon_H62. % 177.46/177.70 cut (((op (e3) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H7f]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H7f zenon_H62). % 177.46/177.70 (* end of lemma zenon_L25_ *) % 177.46/177.70 assert (zenon_L26_ : ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H80 zenon_H81 zenon_H62 zenon_H82. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H82. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H85]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) = ((op (e3) (e2)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H85. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H80. % 177.46/177.70 cut (((op (e3) (op (e3) (e2))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H7e]. % 177.46/177.70 cut (((op (op (e3) (e3)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H86]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e3)) (e2)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H86. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (op (e3) (e3)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H87]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.70 cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H88. apply sym_equal. exact zenon_H81. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply (zenon_L25_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L26_ *) % 177.46/177.70 assert (zenon_L27_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H89 zenon_H80 zenon_H62 zenon_H82. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.70 apply (zenon_L26_); trivial. % 177.46/177.70 (* end of lemma zenon_L27_ *) % 177.46/177.70 assert (zenon_L28_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H80 zenon_H62 zenon_H82. % 177.46/177.70 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.70 apply (zenon_L17_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.70 apply (zenon_L21_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.70 apply (zenon_L24_); trivial. % 177.46/177.70 apply (zenon_L27_); trivial. % 177.46/177.70 (* end of lemma zenon_L28_ *) % 177.46/177.70 assert (zenon_L29_ : (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e3) (e2)) = (e2)) -> ((op (e2) (e1)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H91 zenon_H92 zenon_H93 zenon_H60. % 177.46/177.70 cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e2) (e1)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H91. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H92. % 177.46/177.70 cut (((op (e3) (op (e2) (e1))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5f]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H94]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e2) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H94. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H95. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H97]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H98. apply sym_equal. exact zenon_H93. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 apply (zenon_L15_); trivial. % 177.46/177.70 (* end of lemma zenon_L29_ *) % 177.46/177.70 assert (zenon_L30_ : (~((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H99 zenon_H9a. % 177.46/177.70 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.70 cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H9b. apply sym_equal. exact zenon_H9a. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L30_ *) % 177.46/177.70 assert (zenon_L31_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e0)))) -> ((op (e2) (e2)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H9c zenon_H63. % 177.46/177.70 cut (((op (e2) (e2)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H9d]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_H9d zenon_H63). % 177.46/177.70 (* end of lemma zenon_L31_ *) % 177.46/177.70 assert (zenon_L32_ : ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H9e zenon_H9a zenon_H63 zenon_H7b. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e0)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H7b. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9f]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H9f. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H9e. % 177.46/177.70 cut (((op (e3) (op (e2) (e2))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H9c]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Ha0. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L30_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply (zenon_L31_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L32_ *) % 177.46/177.70 assert (zenon_L33_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H66 zenon_H9e zenon_H9a zenon_H7b. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.46/177.70 apply (zenon_L32_); trivial. % 177.46/177.70 (* end of lemma zenon_L33_ *) % 177.46/177.70 assert (zenon_L34_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e1)))) -> ((op (e2) (e2)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Ha1 zenon_Ha2. % 177.46/177.70 cut (((op (e2) (e2)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_Ha3]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_Ha3 zenon_Ha2). % 177.46/177.70 (* end of lemma zenon_L34_ *) % 177.46/177.70 assert (zenon_L35_ : ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H9e zenon_H9a zenon_Ha2 zenon_H82. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H82. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H85]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H85. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H9e. % 177.46/177.70 cut (((op (e3) (op (e2) (e2))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Ha1]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Ha0. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L30_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply (zenon_L34_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L35_ *) % 177.46/177.70 assert (zenon_L36_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_H76 zenon_H9e zenon_H9a zenon_H82. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.70 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.46/177.70 apply (zenon_L35_); trivial. % 177.46/177.70 (* end of lemma zenon_L36_ *) % 177.46/177.70 assert (zenon_L37_ : ((op (e3) (e1)) = (e0)) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Ha7 zenon_Ha8. % 177.46/177.70 apply (zenon_notand_s _ _ ax25); [ zenon_intro zenon_Haa | zenon_intro zenon_Ha9 ]. % 177.46/177.70 apply zenon_Haa. apply sym_equal. exact zenon_Ha8. % 177.46/177.70 apply zenon_Ha9. apply sym_equal. exact zenon_Ha7. % 177.46/177.70 (* end of lemma zenon_L37_ *) % 177.46/177.70 assert (zenon_L38_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e3) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H7c zenon_Ha7. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.70 apply (zenon_L37_); trivial. % 177.46/177.70 (* end of lemma zenon_L38_ *) % 177.46/177.70 assert (zenon_L39_ : (~((op (e3) (op (e2) (e2))) = (op (e3) (e3)))) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hac zenon_H8e. % 177.46/177.70 cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Had]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_Had zenon_H8e). % 177.46/177.70 (* end of lemma zenon_L39_ *) % 177.46/177.70 assert (zenon_L40_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hae zenon_H9e zenon_H9a zenon_H8e. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) = ((op (e3) (e2)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hae. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H9e. % 177.46/177.70 cut (((op (e3) (op (e2) (e2))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hac]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Ha0]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (op (e3) (e2)) (e2)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Ha0. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H83. % 177.46/177.70 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.46/177.70 cut (((op (e3) (e2)) = (op (op (e3) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H99]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L30_); trivial. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply zenon_H84. apply refl_equal. % 177.46/177.70 apply (zenon_L39_); trivial. % 177.46/177.70 (* end of lemma zenon_L40_ *) % 177.46/177.70 assert (zenon_L41_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H89 zenon_Hae zenon_H9e zenon_H9a. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.70 apply (zenon_L40_); trivial. % 177.46/177.70 (* end of lemma zenon_L41_ *) % 177.46/177.70 assert (zenon_L42_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e zenon_H9a. % 177.46/177.70 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.70 apply (zenon_L33_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.70 apply (zenon_L36_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.70 apply (zenon_L38_); trivial. % 177.46/177.70 apply (zenon_L41_); trivial. % 177.46/177.70 (* end of lemma zenon_L42_ *) % 177.46/177.70 assert (zenon_L43_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Haf zenon_Hb0 zenon_H80 zenon_H72 zenon_H6c zenon_H71 zenon_H60 zenon_H92 zenon_H91 zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e0) (e1)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hb0. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H92. % 177.46/177.70 cut (((op (e3) (op (e2) (e1))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H5f]. % 177.46/177.70 cut (((op (op (e3) (e2)) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb3]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e0) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hb3. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H35. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb4]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 cut (((e0) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_Hb5. apply sym_equal. exact zenon_Hb2. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply (zenon_L15_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.70 apply (zenon_L28_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.70 apply (zenon_L29_); trivial. % 177.46/177.70 apply (zenon_L42_); trivial. % 177.46/177.70 (* end of lemma zenon_L43_ *) % 177.46/177.70 assert (zenon_L44_ : (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (e3) (e1)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hb0 zenon_H31 zenon_H26 zenon_Hb7. % 177.46/177.70 cut (((op (unit) (e1)) = (e1)) = ((op (e0) (e1)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hb0. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H31. % 177.46/177.70 cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8]. % 177.46/177.70 cut (((op (unit) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H34]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e0) (e1)) = (op (e0) (e1)))); [ zenon_intro zenon_H35 | zenon_intro zenon_H36 ]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1))) = ((op (unit) (e1)) = (op (e0) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H34. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H35. % 177.46/177.70 cut (((op (e0) (e1)) = (op (e0) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H36]. % 177.46/177.70 cut (((op (e0) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H2f]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L4_); trivial. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply zenon_H36. apply refl_equal. % 177.46/177.70 apply zenon_Hb8. apply sym_equal. exact zenon_Hb7. % 177.46/177.70 (* end of lemma zenon_L44_ *) % 177.46/177.70 assert (zenon_L45_ : ((op (e3) (e1)) = (e2)) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hb9 zenon_H41. % 177.46/177.70 apply (zenon_notand_s _ _ ax15); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hba ]. % 177.46/177.70 apply zenon_Hbb. apply sym_equal. exact zenon_H41. % 177.46/177.70 apply zenon_Hba. apply sym_equal. exact zenon_Hb9. % 177.46/177.70 (* end of lemma zenon_L45_ *) % 177.46/177.70 assert (zenon_L46_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e3) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H66 zenon_Hb9. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.70 apply (zenon_L45_); trivial. % 177.46/177.70 (* end of lemma zenon_L46_ *) % 177.46/177.70 assert (zenon_L47_ : (~((op (e3) (op (e3) (e1))) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hbc zenon_Hb9. % 177.46/177.70 cut (((op (e3) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hbd]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_Hbd zenon_Hb9). % 177.46/177.70 (* end of lemma zenon_L47_ *) % 177.46/177.70 assert (zenon_L48_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H82 zenon_Hbe zenon_H81 zenon_Hb9. % 177.46/177.70 cut (((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H82. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hbe. % 177.46/177.70 cut (((op (e3) (op (e3) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hbc]. % 177.46/177.70 cut (((op (op (e3) (e3)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hbf]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.70 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e3)) (e1)) = (op (e3) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hbf. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hc0. % 177.46/177.70 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.70 cut (((op (e3) (e1)) = (op (op (e3) (e3)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc2]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H88. apply sym_equal. exact zenon_H81. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 apply zenon_Hc1. apply refl_equal. % 177.46/177.70 apply zenon_Hc1. apply refl_equal. % 177.46/177.70 apply (zenon_L47_); trivial. % 177.46/177.70 (* end of lemma zenon_L48_ *) % 177.46/177.70 assert (zenon_L49_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H89 zenon_H82 zenon_Hbe zenon_Hb9. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.70 apply (zenon_L48_); trivial. % 177.46/177.70 (* end of lemma zenon_L49_ *) % 177.46/177.70 assert (zenon_L50_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (e3) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb9. % 177.46/177.70 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.70 apply (zenon_L46_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.70 apply (zenon_L21_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.70 apply (zenon_L24_); trivial. % 177.46/177.70 apply (zenon_L49_); trivial. % 177.46/177.70 (* end of lemma zenon_L50_ *) % 177.46/177.70 assert (zenon_L51_ : (~((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hc3 zenon_Hc4. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_Hc5. apply sym_equal. exact zenon_Hc4. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L51_ *) % 177.46/177.70 assert (zenon_L52_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hc6 zenon_Hc7. % 177.46/177.70 cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_Hc8 zenon_Hc7). % 177.46/177.70 (* end of lemma zenon_L52_ *) % 177.46/177.70 assert (zenon_L53_ : ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hc9 zenon_Hc4 zenon_Hc7 zenon_Hca. % 177.46/177.70 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e0)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hca. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hcb. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hcd]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e3) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hcd. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hc9. % 177.46/177.70 cut (((op (e3) (op (e1) (e3))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hc6]. % 177.46/177.70 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hce]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hce. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hcb. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc3]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L51_); trivial. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply (zenon_L52_); trivial. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L53_ *) % 177.46/177.70 assert (zenon_L54_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Haf zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hc7 zenon_Hca. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.70 apply (zenon_L12_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.70 apply (zenon_L13_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.70 apply (zenon_L14_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.70 apply (zenon_L43_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.70 apply (zenon_L44_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.70 apply (zenon_L50_); trivial. % 177.46/177.70 apply (zenon_L53_); trivial. % 177.46/177.70 (* end of lemma zenon_L54_ *) % 177.46/177.70 assert (zenon_L55_ : (~((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hd5 zenon_Hd6. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_Hd7. apply sym_equal. exact zenon_Hd6. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L55_ *) % 177.46/177.70 assert (zenon_L56_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hd8 zenon_Hc7. % 177.46/177.70 cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8]. % 177.46/177.70 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 exact (zenon_Hc8 zenon_Hc7). % 177.46/177.70 (* end of lemma zenon_L56_ *) % 177.46/177.70 assert (zenon_L57_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hd9 zenon_Hd6 zenon_Hc7 zenon_Hda. % 177.46/177.70 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hda. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H5b. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hdb. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hd9. % 177.46/177.70 cut (((op (e2) (op (e1) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hd8]. % 177.46/177.70 cut (((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdc]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hdc. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H5b. % 177.46/177.70 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.70 cut (((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hd5]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L55_); trivial. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 apply (zenon_L56_); trivial. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 apply zenon_H5c. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L57_ *) % 177.46/177.70 assert (zenon_L58_ : ((op (e2) (e1)) = (e3)) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hdd zenon_H41. % 177.46/177.70 apply (zenon_notand_s _ _ ax17); [ zenon_intro zenon_Hbb | zenon_intro zenon_Hde ]. % 177.46/177.70 apply zenon_Hbb. apply sym_equal. exact zenon_H41. % 177.46/177.70 apply zenon_Hde. apply sym_equal. exact zenon_Hdd. % 177.46/177.70 (* end of lemma zenon_L58_ *) % 177.46/177.70 assert (zenon_L59_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e2) (e1)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H66 zenon_Hdd. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.70 apply (zenon_L58_); trivial. % 177.46/177.70 (* end of lemma zenon_L59_ *) % 177.46/177.70 assert (zenon_L60_ : (~((op (e3) (op (e0) (e0))) = (op (e3) (e3)))) -> ((op (e0) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hdf zenon_H8b. % 177.46/177.70 cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_He0]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_He0 zenon_H8b). % 177.46/177.70 (* end of lemma zenon_L60_ *) % 177.46/177.70 assert (zenon_L61_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((op (e0) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hca zenon_H72 zenon_H6c zenon_H8b. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) = ((op (e3) (e0)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hca. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H72. % 177.46/177.70 cut (((op (e3) (op (e0) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdf]. % 177.46/177.70 cut (((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H73]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e0)) (e0)) = (op (e3) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_H73. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H74. % 177.46/177.70 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.70 cut (((op (e3) (e0)) = (op (op (e3) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H6b]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L18_); trivial. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply zenon_H75. apply refl_equal. % 177.46/177.70 apply (zenon_L60_); trivial. % 177.46/177.70 (* end of lemma zenon_L61_ *) % 177.46/177.70 assert (zenon_L62_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H89 zenon_Hca zenon_H72 zenon_H6c. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.70 apply (zenon_L61_); trivial. % 177.46/177.70 (* end of lemma zenon_L62_ *) % 177.46/177.70 assert (zenon_L63_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e1)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hdd zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.70 apply (zenon_L12_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.70 apply (zenon_L13_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.70 apply (zenon_L14_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.70 apply (zenon_L59_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.70 apply (zenon_L21_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.70 apply (zenon_L24_); trivial. % 177.46/177.70 apply (zenon_L62_); trivial. % 177.46/177.70 (* end of lemma zenon_L63_ *) % 177.46/177.70 assert (zenon_L64_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_He1 zenon_H41 zenon_H40 zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_Hda zenon_Hc7 zenon_Hd9 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.70 apply (zenon_L9_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.70 apply (zenon_L54_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.70 apply (zenon_L57_); trivial. % 177.46/177.70 apply (zenon_L63_); trivial. % 177.46/177.70 (* end of lemma zenon_L64_ *) % 177.46/177.70 assert (zenon_L65_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e1) (unit)) = (e1)) -> ((unit) = (e0)) -> ((op (e1) (e3)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_He4 zenon_He5 zenon_H26 zenon_He6. % 177.46/177.70 cut (((op (e1) (unit)) = (e1)) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_He4. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_He5. % 177.46/177.70 cut (((e1) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_He7]. % 177.46/177.70 cut (((op (e1) (unit)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_He8]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.70 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (e1) (unit)) = (op (e1) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_He8. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_He9. % 177.46/177.70 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.70 cut (((op (e1) (e0)) = (op (e1) (unit)))); [idtac | apply NNPP; zenon_intro zenon_Heb]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.70 apply zenon_Hea. apply refl_equal. % 177.46/177.70 apply zenon_Hea. apply refl_equal. % 177.46/177.70 apply zenon_He7. apply sym_equal. exact zenon_He6. % 177.46/177.70 (* end of lemma zenon_L65_ *) % 177.46/177.70 assert (zenon_L66_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hec zenon_Hed. % 177.46/177.70 cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee]. % 177.46/177.70 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H45. apply refl_equal. % 177.46/177.70 exact (zenon_Hee zenon_Hed). % 177.46/177.70 (* end of lemma zenon_L66_ *) % 177.46/177.70 assert (zenon_L67_ : ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hc9 zenon_Hc4 zenon_Hed zenon_Hae. % 177.46/177.70 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e2)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hae. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hcb. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hef]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e3) (e2)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hef. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hc9. % 177.46/177.70 cut (((op (e3) (op (e1) (e3))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hec]. % 177.46/177.70 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hce]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e3) (e3)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hce. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hcb. % 177.46/177.70 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.70 cut (((op (e3) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hc3]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L51_); trivial. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply (zenon_L66_); trivial. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 apply zenon_Hcc. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L67_ *) % 177.46/177.70 assert (zenon_L68_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Haf zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hed zenon_Hae. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.70 apply (zenon_L12_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.70 apply (zenon_L13_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.70 apply (zenon_L14_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.70 apply (zenon_L43_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.70 apply (zenon_L44_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.70 apply (zenon_L50_); trivial. % 177.46/177.70 apply (zenon_L67_); trivial. % 177.46/177.70 (* end of lemma zenon_L68_ *) % 177.46/177.70 assert (zenon_L69_ : (~((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hf0 zenon_Hd6. % 177.46/177.70 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.70 cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_Hd7. apply sym_equal. exact zenon_Hd6. % 177.46/177.70 apply zenon_H2e. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L69_ *) % 177.46/177.70 assert (zenon_L70_ : (~((op (e2) (op (e1) (e1))) = (op (e2) (e0)))) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hf1 zenon_H41. % 177.46/177.70 cut (((op (e1) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf2]. % 177.46/177.70 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.70 congruence. % 177.46/177.70 apply zenon_H37. apply refl_equal. % 177.46/177.70 exact (zenon_Hf2 zenon_H41). % 177.46/177.70 (* end of lemma zenon_L70_ *) % 177.46/177.70 assert (zenon_L71_ : ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e1)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hf3 zenon_Hd6 zenon_H41 zenon_Hf4. % 177.46/177.70 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (e2) (e0)) = (op (e2) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hf4. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H95. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hf5]. % 177.46/177.70 congruence. % 177.46/177.70 cut (((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) = ((op (e2) (e1)) = (op (e2) (e0)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hf5. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_Hf3. % 177.46/177.70 cut (((op (e2) (op (e1) (e1))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hf1]. % 177.46/177.70 cut (((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf6]. % 177.46/177.70 congruence. % 177.46/177.70 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))). % 177.46/177.70 intro zenon_D_pnotp. % 177.46/177.70 apply zenon_Hf6. % 177.46/177.70 rewrite <- zenon_D_pnotp. % 177.46/177.70 exact zenon_H95. % 177.46/177.70 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.70 cut (((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf0]. % 177.46/177.70 congruence. % 177.46/177.70 apply (zenon_L69_); trivial. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 apply (zenon_L70_); trivial. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 apply zenon_H96. apply refl_equal. % 177.46/177.70 (* end of lemma zenon_L71_ *) % 177.46/177.70 assert (zenon_L72_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_He1 zenon_H40 zenon_Hae zenon_Hed zenon_Hc9 zenon_H71 zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_H9e zenon_Hd0 zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_Hf4 zenon_Hf3 zenon_H41. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.70 apply (zenon_L9_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.70 apply (zenon_L68_); trivial. % 177.46/177.70 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.70 apply (zenon_L71_); trivial. % 177.46/177.70 apply (zenon_L58_); trivial. % 177.46/177.70 (* end of lemma zenon_L72_ *) % 177.46/177.70 assert (zenon_L73_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e2) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H66 zenon_H40 zenon_H42. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.70 apply (zenon_L9_); trivial. % 177.46/177.70 (* end of lemma zenon_L73_ *) % 177.46/177.70 assert (zenon_L74_ : ((op (e3) (e2)) = (e0)) -> ((op (e2) (e2)) = (e1)) -> False). % 177.46/177.70 do 0 intro. intros zenon_Hb2 zenon_Ha2. % 177.46/177.70 apply (zenon_notand_s _ _ ax19); [ zenon_intro zenon_Hf7 | zenon_intro zenon_Hb5 ]. % 177.46/177.70 apply zenon_Hf7. apply sym_equal. exact zenon_Ha2. % 177.46/177.70 apply zenon_Hb5. apply sym_equal. exact zenon_Hb2. % 177.46/177.70 (* end of lemma zenon_L74_ *) % 177.46/177.70 assert (zenon_L75_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e3) (e2)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H76 zenon_Hb2. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.70 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.46/177.70 apply (zenon_L74_); trivial. % 177.46/177.70 (* end of lemma zenon_L75_ *) % 177.46/177.70 assert (zenon_L76_ : ((op (e2) (e1)) = (e0)) -> ((op (e1) (e1)) = (e3)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H42 zenon_H8d. % 177.46/177.70 apply (zenon_notand_s _ _ ax31); [ zenon_intro zenon_Hf8 | zenon_intro zenon_H43 ]. % 177.46/177.70 apply zenon_Hf8. apply sym_equal. exact zenon_H8d. % 177.46/177.70 apply zenon_H43. apply sym_equal. exact zenon_H42. % 177.46/177.70 (* end of lemma zenon_L76_ *) % 177.46/177.70 assert (zenon_L77_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (e2) (e1)) = (e0)) -> False). % 177.46/177.70 do 0 intro. intros zenon_H89 zenon_H42. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.70 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.70 apply (zenon_L76_); trivial. % 177.46/177.70 (* end of lemma zenon_L77_ *) % 177.46/177.70 assert (zenon_L78_ : (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e3) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hf9 zenon_H3a zenon_H26 zenon_H93. % 177.46/177.71 cut (((op (unit) (e2)) = (e2)) = ((op (e0) (e2)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hf9. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H3a. % 177.46/177.71 cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98]. % 177.46/177.71 cut (((op (unit) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3d]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ]. % 177.46/177.71 cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (unit) (e2)) = (op (e0) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H3d. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H3e. % 177.46/177.71 cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f]. % 177.46/177.71 cut (((op (e0) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H38]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L7_); trivial. % 177.46/177.71 apply zenon_H3f. apply refl_equal. % 177.46/177.71 apply zenon_H3f. apply refl_equal. % 177.46/177.71 apply zenon_H98. apply sym_equal. exact zenon_H93. % 177.46/177.71 (* end of lemma zenon_L78_ *) % 177.46/177.71 assert (zenon_L79_ : (~((op (e3) (e0)) = (op (e3) (unit)))) -> ((unit) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hfa zenon_H26. % 177.46/177.71 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.71 (* end of lemma zenon_L79_ *) % 177.46/177.71 assert (zenon_L80_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (e3) (unit)) = (e3)) -> ((unit) = (e0)) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H7b zenon_Hfb zenon_H26 zenon_H9a. % 177.46/177.71 cut (((op (e3) (unit)) = (e3)) = ((op (e3) (e0)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H7b. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hfb. % 177.46/177.71 cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b]. % 177.46/177.71 cut (((op (e3) (unit)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hfc]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.71 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e3) (unit)) = (op (e3) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hfc. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H74. % 177.46/177.71 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.71 cut (((op (e3) (e0)) = (op (e3) (unit)))); [idtac | apply NNPP; zenon_intro zenon_Hfa]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L79_); trivial. % 177.46/177.71 apply zenon_H75. apply refl_equal. % 177.46/177.71 apply zenon_H75. apply refl_equal. % 177.46/177.71 apply zenon_H9b. apply sym_equal. exact zenon_H9a. % 177.46/177.71 (* end of lemma zenon_L80_ *) % 177.46/177.71 assert (zenon_L81_ : (~((op (e3) (op (e1) (e3))) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hfd zenon_Hfe. % 177.46/177.71 cut (((op (e1) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hff]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_Hff zenon_Hfe). % 177.46/177.71 (* end of lemma zenon_L81_ *) % 177.46/177.71 assert (zenon_L82_ : (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H51 zenon_Hc9 zenon_Hb7 zenon_Hfe. % 177.46/177.71 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e3) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H51. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc9. % 177.46/177.71 cut (((op (e3) (op (e1) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hfd]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H100]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.71 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e1) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H100. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H54. % 177.46/177.71 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.71 cut (((op (e1) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H101]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Hb8. apply sym_equal. exact zenon_Hb7. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 apply zenon_H55. apply refl_equal. % 177.46/177.71 apply zenon_H55. apply refl_equal. % 177.46/177.71 apply (zenon_L81_); trivial. % 177.46/177.71 (* end of lemma zenon_L82_ *) % 177.46/177.71 assert (zenon_L83_ : (~((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H102 zenon_Hc4. % 177.46/177.71 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.71 cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Hc5. apply sym_equal. exact zenon_Hc4. % 177.46/177.71 apply zenon_H2e. apply refl_equal. % 177.46/177.71 (* end of lemma zenon_L83_ *) % 177.46/177.71 assert (zenon_L84_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e0)))) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H103 zenon_H41. % 177.46/177.71 cut (((op (e1) (e1)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hf2]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_Hf2 zenon_H41). % 177.46/177.71 (* end of lemma zenon_L84_ *) % 177.46/177.71 assert (zenon_L85_ : ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_H104 zenon_Hc4 zenon_H41 zenon_H71. % 177.46/177.71 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (e3) (e0)) = (op (e3) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H71. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc0. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H105]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H105. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H104. % 177.46/177.71 cut (((op (e3) (op (e1) (e1))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H103]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H106. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc0. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L83_); trivial. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply (zenon_L84_); trivial. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 (* end of lemma zenon_L85_ *) % 177.46/177.71 assert (zenon_L86_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_H66 zenon_H104 zenon_Hc4 zenon_H71. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.71 apply (zenon_L85_); trivial. % 177.46/177.71 (* end of lemma zenon_L86_ *) % 177.46/177.71 assert (zenon_L87_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e2)))) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H107 zenon_Ha8. % 177.46/177.71 cut (((op (e1) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H108]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H108 zenon_Ha8). % 177.46/177.71 (* end of lemma zenon_L87_ *) % 177.46/177.71 assert (zenon_L88_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H82 zenon_H104 zenon_Hc4 zenon_Ha8. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H82. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H104. % 177.46/177.71 cut (((op (e3) (op (e1) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H107]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H106. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc0. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L83_); trivial. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply (zenon_L87_); trivial. % 177.46/177.71 (* end of lemma zenon_L88_ *) % 177.46/177.71 assert (zenon_L89_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H7c zenon_H82 zenon_H104 zenon_Hc4. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.71 apply (zenon_L88_); trivial. % 177.46/177.71 (* end of lemma zenon_L89_ *) % 177.46/177.71 assert (zenon_L90_ : (~((op (e3) (op (e1) (e1))) = (op (e3) (e3)))) -> ((op (e1) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H109 zenon_H8d. % 177.46/177.71 cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10a]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H10a zenon_H8d). % 177.46/177.71 (* end of lemma zenon_L90_ *) % 177.46/177.71 assert (zenon_L91_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H10b zenon_H104 zenon_Hc4 zenon_H8d. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) = ((op (e3) (e1)) = (op (e3) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H10b. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H104. % 177.46/177.71 cut (((op (e3) (op (e1) (e1))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H109]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H106]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e1)) (e1)) = (op (e3) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H106. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc0. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (op (e3) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H102]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L83_); trivial. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply (zenon_L90_); trivial. % 177.46/177.71 (* end of lemma zenon_L91_ *) % 177.46/177.71 assert (zenon_L92_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H89 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.71 apply (zenon_L91_); trivial. % 177.46/177.71 (* end of lemma zenon_L92_ *) % 177.46/177.71 assert (zenon_L93_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H71 zenon_Hb2 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L86_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L75_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L89_); trivial. % 177.46/177.71 apply (zenon_L92_); trivial. % 177.46/177.71 (* end of lemma zenon_L93_ *) % 177.46/177.71 assert (zenon_L94_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e2)) = (e3)) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H71 zenon_H9a zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L86_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L36_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L89_); trivial. % 177.46/177.71 apply (zenon_L92_); trivial. % 177.46/177.71 (* end of lemma zenon_L94_ *) % 177.46/177.71 assert (zenon_L95_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H6c zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.71 apply (zenon_L93_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.71 apply (zenon_L28_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.71 apply (zenon_L78_); trivial. % 177.46/177.71 apply (zenon_L94_); trivial. % 177.46/177.71 (* end of lemma zenon_L95_ *) % 177.46/177.71 assert (zenon_L96_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e3) (unit)) = (e3)) -> ((op (e2) (e2)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e2) (e1)) = (e0)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Hfb zenon_H63 zenon_H40 zenon_H42 zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L73_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L75_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L38_); trivial. % 177.46/177.71 apply (zenon_L77_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.71 apply (zenon_L16_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.71 apply (zenon_L78_); trivial. % 177.46/177.71 apply (zenon_L80_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.71 apply (zenon_L82_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.71 apply (zenon_L50_); trivial. % 177.46/177.71 apply (zenon_L95_); trivial. % 177.46/177.71 (* end of lemma zenon_L96_ *) % 177.46/177.71 assert (zenon_L97_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H71 zenon_H26 zenon_H3a zenon_Hf9 zenon_H9e zenon_Ha2 zenon_H82. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.71 apply (zenon_L74_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.71 apply (zenon_L28_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.71 apply (zenon_L78_); trivial. % 177.46/177.71 apply (zenon_L35_); trivial. % 177.46/177.71 (* end of lemma zenon_L97_ *) % 177.46/177.71 assert (zenon_L98_ : (~((op (e2) (e0)) = (op (e2) (unit)))) -> ((unit) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H10c zenon_H26. % 177.46/177.71 cut (((e0) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H2d]. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 apply zenon_H2d. apply sym_equal. exact zenon_H26. % 177.46/177.71 (* end of lemma zenon_L98_ *) % 177.46/177.71 assert (zenon_L99_ : (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H10d zenon_H10e zenon_H26 zenon_H10f. % 177.46/177.71 cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e0)) = (op (e2) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H10d. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H10e. % 177.46/177.71 cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H110]. % 177.46/177.71 cut (((op (e2) (unit)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H111]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e2) (unit)) = (op (e2) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H111. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H112. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H10c]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L98_); trivial. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply zenon_H110. apply sym_equal. exact zenon_H10f. % 177.46/177.71 (* end of lemma zenon_L99_ *) % 177.46/177.71 assert (zenon_L100_ : ((op (e1) (e2)) = (e0)) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H114 zenon_H8e. % 177.46/177.71 apply (zenon_notand_s _ _ ax30); [ zenon_intro zenon_H116 | zenon_intro zenon_H115 ]. % 177.46/177.71 apply zenon_H116. apply sym_equal. exact zenon_H8e. % 177.46/177.71 apply zenon_H115. apply sym_equal. exact zenon_H114. % 177.46/177.71 (* end of lemma zenon_L100_ *) % 177.46/177.71 assert (zenon_L101_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (e2) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e3) (unit)) = (e3)) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e1) (e2)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H117 zenon_H104 zenon_H10b zenon_Hbe zenon_Hc9 zenon_Hfe zenon_H42 zenon_H40 zenon_Hfb zenon_Hd0 zenon_H82 zenon_H9e zenon_Hf9 zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H80 zenon_Haf zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_H26 zenon_H10e zenon_H10d zenon_H114. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ]. % 177.46/177.71 apply (zenon_L96_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ]. % 177.46/177.71 apply (zenon_L97_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ]. % 177.46/177.71 apply (zenon_L99_); trivial. % 177.46/177.71 apply (zenon_L100_); trivial. % 177.46/177.71 (* end of lemma zenon_L101_ *) % 177.46/177.71 assert (zenon_L102_ : (~((op (e3) (op (e1) (e0))) = (op (e3) (e0)))) -> ((op (e1) (e0)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H11a zenon_H11b. % 177.46/177.71 cut (((op (e1) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H11c]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H11c zenon_H11b). % 177.46/177.71 (* end of lemma zenon_L102_ *) % 177.46/177.71 assert (zenon_L103_ : (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e3) (e1)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H11d zenon_H11e zenon_Hb9 zenon_H11b. % 177.46/177.71 cut (((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) = ((op (e2) (e0)) = (op (e3) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H11d. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H11e. % 177.46/177.71 cut (((op (e3) (op (e1) (e0))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H11a]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H11f]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (op (e3) (e1)) (e0)) = (op (e2) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H11f. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H112. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H120]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.71 cut (((e2) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hba]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Hba. apply sym_equal. exact zenon_Hb9. % 177.46/177.71 apply zenon_H23. apply refl_equal. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply (zenon_L102_); trivial. % 177.46/177.71 (* end of lemma zenon_L103_ *) % 177.46/177.71 assert (zenon_L104_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H6c zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.71 apply (zenon_L43_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.71 apply (zenon_L44_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.71 apply (zenon_L103_); trivial. % 177.46/177.71 apply (zenon_L95_); trivial. % 177.46/177.71 (* end of lemma zenon_L104_ *) % 177.46/177.71 assert (zenon_L105_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_L104_); trivial. % 177.46/177.71 (* end of lemma zenon_L105_ *) % 177.46/177.71 assert (zenon_L106_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_H66 zenon_Hf3 zenon_Hd6 zenon_Hf4. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.71 apply (zenon_L71_); trivial. % 177.46/177.71 (* end of lemma zenon_L106_ *) % 177.46/177.71 assert (zenon_L107_ : ((op (e2) (e3)) = (e0)) -> ((op (e3) (e3)) = (e1)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H121 zenon_Ha6. % 177.46/177.71 apply (zenon_notand_s _ _ ax18); [ zenon_intro zenon_H123 | zenon_intro zenon_H122 ]. % 177.46/177.71 apply zenon_H123. apply sym_equal. exact zenon_Ha6. % 177.46/177.71 apply zenon_H122. apply sym_equal. exact zenon_H121. % 177.46/177.71 (* end of lemma zenon_L107_ *) % 177.46/177.71 assert (zenon_L108_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e2) (e3)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H76 zenon_H121. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.71 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.46/177.71 apply (zenon_L107_); trivial. % 177.46/177.71 (* end of lemma zenon_L108_ *) % 177.46/177.71 assert (zenon_L109_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H7c zenon_H10d zenon_H10e zenon_H26. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.71 apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124. % 177.46/177.71 apply (zenon_L99_); trivial. % 177.46/177.71 (* end of lemma zenon_L109_ *) % 177.46/177.71 assert (zenon_L110_ : (~((op (e2) (op (e1) (e1))) = (op (e2) (e3)))) -> ((op (e1) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H125 zenon_H8d. % 177.46/177.71 cut (((op (e1) (e1)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H10a]. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 exact (zenon_H10a zenon_H8d). % 177.46/177.71 (* end of lemma zenon_L110_ *) % 177.46/177.71 assert (zenon_L111_ : (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e1)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H126 zenon_Hf3 zenon_Hd6 zenon_H8d. % 177.46/177.71 cut (((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) = ((op (e2) (e1)) = (op (e2) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H126. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hf3. % 177.46/177.71 cut (((op (e2) (op (e1) (e1))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H125]. % 177.46/177.71 cut (((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf6]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.71 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (op (e2) (e1)) (e1)) = (op (e2) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hf6. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H95. % 177.46/177.71 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.71 cut (((op (e2) (e1)) = (op (op (e2) (e1)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf0]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L69_); trivial. % 177.46/177.71 apply zenon_H96. apply refl_equal. % 177.46/177.71 apply zenon_H96. apply refl_equal. % 177.46/177.71 apply (zenon_L110_); trivial. % 177.46/177.71 (* end of lemma zenon_L111_ *) % 177.46/177.71 assert (zenon_L112_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H89 zenon_H126 zenon_Hf3 zenon_Hd6. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.71 apply (zenon_L111_); trivial. % 177.46/177.71 (* end of lemma zenon_L112_ *) % 177.46/177.71 assert (zenon_L113_ : (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (e2) (e3)) = (e0)) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hf4 zenon_H121 zenon_H26 zenon_H10e zenon_H10d zenon_H126 zenon_Hf3 zenon_Hd6. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L106_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L108_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L109_); trivial. % 177.46/177.71 apply (zenon_L112_); trivial. % 177.46/177.71 (* end of lemma zenon_L113_ *) % 177.46/177.71 assert (zenon_L114_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e2) (e3)) = (e1)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H66 zenon_H127. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.46/177.71 apply (zenon_notand_s _ _ ax12); [ zenon_intro zenon_H129 | zenon_intro zenon_H128 ]. % 177.46/177.71 apply zenon_H129. apply sym_equal. exact zenon_H6a. % 177.46/177.71 apply zenon_H128. apply sym_equal. exact zenon_H127. % 177.46/177.71 (* end of lemma zenon_L114_ *) % 177.46/177.71 assert (zenon_L115_ : ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H127 zenon_H71 zenon_H7b zenon_Hca zenon_H72 zenon_H6c. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L114_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L21_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L24_); trivial. % 177.46/177.71 apply (zenon_L62_); trivial. % 177.46/177.71 (* end of lemma zenon_L115_ *) % 177.46/177.71 assert (zenon_L116_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H127 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_L115_); trivial. % 177.46/177.71 (* end of lemma zenon_L116_ *) % 177.46/177.71 assert (zenon_L117_ : (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e3)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hda zenon_H10e zenon_H26 zenon_H12a. % 177.46/177.71 cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e0)) = (op (e2) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hda. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H10e. % 177.46/177.71 cut (((e2) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12b]. % 177.46/177.71 cut (((op (e2) (unit)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H111]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (e2) (unit)) = (op (e2) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H111. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H112. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113]. % 177.46/177.71 cut (((op (e2) (e0)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H10c]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L98_); trivial. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply zenon_H113. apply refl_equal. % 177.46/177.71 apply zenon_H12b. apply sym_equal. exact zenon_H12a. % 177.46/177.71 (* end of lemma zenon_L117_ *) % 177.46/177.71 assert (zenon_L118_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H12c zenon_H12d. % 177.46/177.71 cut (((op (e2) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H12e]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H12e zenon_H12d). % 177.46/177.71 (* end of lemma zenon_L118_ *) % 177.46/177.71 assert (zenon_L119_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e2)) -> ((op (e2) (e3)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H58 zenon_H12f zenon_H93 zenon_H12d. % 177.46/177.71 cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H58. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H12f. % 177.46/177.71 cut (((op (e3) (op (e2) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12c]. % 177.46/177.71 cut (((op (op (e3) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H130]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e2) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H130. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H5b. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.71 cut (((op (e2) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H131]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H98. apply sym_equal. exact zenon_H93. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 apply zenon_H5c. apply refl_equal. % 177.46/177.71 apply zenon_H5c. apply refl_equal. % 177.46/177.71 apply (zenon_L118_); trivial. % 177.46/177.71 (* end of lemma zenon_L119_ *) % 177.46/177.71 assert (zenon_L120_ : (~((op (e3) (e1)) = (op (op (e3) (e2)) (e1)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H132 zenon_H9a. % 177.46/177.71 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.71 cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H9b. apply sym_equal. exact zenon_H9a. % 177.46/177.71 apply zenon_H2e. apply refl_equal. % 177.46/177.71 (* end of lemma zenon_L120_ *) % 177.46/177.71 assert (zenon_L121_ : (~((op (e3) (op (e2) (e1))) = (op (e3) (e2)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H133 zenon_Hd6. % 177.46/177.71 cut (((op (e2) (e1)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H134]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H134 zenon_Hd6). % 177.46/177.71 (* end of lemma zenon_L121_ *) % 177.46/177.71 assert (zenon_L122_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H82 zenon_H92 zenon_H9a zenon_Hd6. % 177.46/177.71 cut (((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H82. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H92. % 177.46/177.71 cut (((op (e3) (op (e2) (e1))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H133]. % 177.46/177.71 cut (((op (op (e3) (e2)) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H135]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (op (e3) (e2)) (e1)) = (op (e3) (e1)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H135. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hc0. % 177.46/177.71 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.46/177.71 cut (((op (e3) (e1)) = (op (op (e3) (e2)) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H132]. % 177.46/177.71 congruence. % 177.46/177.71 apply (zenon_L120_); trivial. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply zenon_Hc1. apply refl_equal. % 177.46/177.71 apply (zenon_L121_); trivial. % 177.46/177.71 (* end of lemma zenon_L122_ *) % 177.46/177.71 assert (zenon_L123_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e1)) = (e2)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_H136 zenon_H126 zenon_H10d zenon_H10e zenon_Hda zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hd6 zenon_H92 zenon_H58 zenon_H12f zenon_Hf4 zenon_Hf3 zenon_Hca zenon_H31 zenon_Hb0 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.46/177.71 apply (zenon_L113_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.46/177.71 apply (zenon_L116_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.46/177.71 apply (zenon_L117_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.71 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.71 apply (zenon_L106_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.71 apply (zenon_L75_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.71 apply (zenon_L38_); trivial. % 177.46/177.71 apply (zenon_L62_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.71 apply (zenon_L28_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.71 apply (zenon_L119_); trivial. % 177.46/177.71 apply (zenon_L122_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.71 apply (zenon_L44_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.71 apply (zenon_L103_); trivial. % 177.46/177.71 apply (zenon_L95_); trivial. % 177.46/177.71 (* end of lemma zenon_L123_ *) % 177.46/177.71 assert (zenon_L124_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e0)) -> ((op (e3) (unit)) = (e3)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_He1 zenon_H114 zenon_Hfb zenon_H40 zenon_Hfe zenon_Hc9 zenon_Hbe zenon_H117 zenon_H91 zenon_Hae zenon_H104 zenon_H10b zenon_H82 zenon_H9e zenon_Hf9 zenon_H3a zenon_H26 zenon_H80 zenon_Haf zenon_H11d zenon_H11e zenon_H11b zenon_Hb0 zenon_H31 zenon_Hf3 zenon_Hf4 zenon_H12f zenon_H92 zenon_Hd0 zenon_Hda zenon_H10e zenon_H10d zenon_H126 zenon_H136 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.71 apply (zenon_L101_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.71 apply (zenon_L105_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.71 apply (zenon_L123_); trivial. % 177.46/177.71 apply (zenon_L63_); trivial. % 177.46/177.71 (* end of lemma zenon_L124_ *) % 177.46/177.71 assert (zenon_L125_ : (~((op (e1) (op (e2) (e2))) = (op (e1) (e3)))) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H139 zenon_H8e. % 177.46/177.71 cut (((op (e2) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Had]. % 177.46/177.71 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H2e. apply refl_equal. % 177.46/177.71 exact (zenon_Had zenon_H8e). % 177.46/177.71 (* end of lemma zenon_L125_ *) % 177.46/177.71 assert (zenon_L126_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> ((op (e1) (e2)) = (e1)) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H13a zenon_H13b zenon_H13c zenon_H8e. % 177.46/177.71 cut (((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) = ((op (e1) (e2)) = (op (e1) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H13a. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H13b. % 177.46/177.71 cut (((op (e1) (op (e2) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H139]. % 177.46/177.71 cut (((op (op (e1) (e2)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13d]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ]. % 177.46/177.71 cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e1) (e2)) (e2)) = (op (e1) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H13d. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H13e. % 177.46/177.71 cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f]. % 177.46/177.71 cut (((op (e1) (e2)) = (op (op (e1) (e2)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H140]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 cut (((e1) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H141]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H141. apply sym_equal. exact zenon_H13c. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 apply zenon_H13f. apply refl_equal. % 177.46/177.71 apply zenon_H13f. apply refl_equal. % 177.46/177.71 apply (zenon_L125_); trivial. % 177.46/177.71 (* end of lemma zenon_L126_ *) % 177.46/177.71 assert (zenon_L127_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e3)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H142 zenon_Hfe. % 177.46/177.71 cut (((op (e1) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_Hff]. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 exact (zenon_Hff zenon_Hfe). % 177.46/177.71 (* end of lemma zenon_L127_ *) % 177.46/177.71 assert (zenon_L128_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e3)) -> ((op (e1) (e3)) = (e3)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hd9 zenon_Hdd zenon_Hfe zenon_H58. % 177.46/177.71 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.71 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e2) (e3)) = (op (e3) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H58. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hcb. % 177.46/177.71 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.71 cut (((op (e3) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H143]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e3) (e3)) = (op (e2) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H143. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hd9. % 177.46/177.71 cut (((op (e2) (op (e1) (e3))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H142]. % 177.46/177.71 cut (((op (op (e2) (e1)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H144]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.71 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e3) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H144. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_Hcb. % 177.46/177.71 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.71 cut (((op (e3) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H145]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 cut (((e3) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hde]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Hde. apply sym_equal. exact zenon_Hdd. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 apply zenon_Hcc. apply refl_equal. % 177.46/177.71 apply zenon_Hcc. apply refl_equal. % 177.46/177.71 apply (zenon_L127_); trivial. % 177.46/177.71 apply zenon_Hcc. apply refl_equal. % 177.46/177.71 apply zenon_Hcc. apply refl_equal. % 177.46/177.71 (* end of lemma zenon_L128_ *) % 177.46/177.71 assert (zenon_L129_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e1)) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e3) (unit)) = (e3)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_He1 zenon_H13c zenon_H13b zenon_H13a zenon_Hfb zenon_H40 zenon_Hc9 zenon_Hbe zenon_H117 zenon_H91 zenon_Hae zenon_H104 zenon_H10b zenon_H82 zenon_H9e zenon_H71 zenon_Hf9 zenon_H3a zenon_H26 zenon_H72 zenon_H7b zenon_H80 zenon_Haf zenon_H11d zenon_H11e zenon_H11b zenon_Hb0 zenon_H31 zenon_Hca zenon_Hf3 zenon_Hf4 zenon_H12f zenon_H92 zenon_Hd0 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_Hda zenon_H10e zenon_H10d zenon_H126 zenon_H136 zenon_Hd9 zenon_Hfe zenon_H58. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ]. % 177.46/177.71 apply (zenon_L96_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ]. % 177.46/177.71 apply (zenon_L97_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ]. % 177.46/177.71 apply (zenon_L99_); trivial. % 177.46/177.71 apply (zenon_L126_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.71 apply (zenon_L105_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.71 apply (zenon_L123_); trivial. % 177.46/177.71 apply (zenon_L128_); trivial. % 177.46/177.71 (* end of lemma zenon_L129_ *) % 177.46/177.71 assert (zenon_L130_ : (~((op (e3) (op (e1) (e2))) = (op (e3) (e2)))) -> ((op (e1) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H146 zenon_H147. % 177.46/177.71 cut (((op (e1) (e2)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H148]. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 exact (zenon_H148 zenon_H147). % 177.46/177.71 (* end of lemma zenon_L130_ *) % 177.46/177.71 assert (zenon_L131_ : (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (e1) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hf9 zenon_H149 zenon_Ha7 zenon_H147. % 177.46/177.71 cut (((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) = ((op (e0) (e2)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hf9. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H149. % 177.46/177.71 cut (((op (e3) (op (e1) (e2))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H146]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14a]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e0) (e2)) = (op (e0) (e2)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ]. % 177.46/177.71 cut (((op (e0) (e2)) = (op (e0) (e2))) = ((op (op (e3) (e1)) (e2)) = (op (e0) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H14a. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H3e. % 177.46/177.71 cut (((op (e0) (e2)) = (op (e0) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H3f]. % 177.46/177.71 cut (((op (e0) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14b]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 cut (((e0) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Ha9]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Ha9. apply sym_equal. exact zenon_Ha7. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 apply zenon_H3f. apply refl_equal. % 177.46/177.71 apply zenon_H3f. apply refl_equal. % 177.46/177.71 apply (zenon_L130_); trivial. % 177.46/177.71 (* end of lemma zenon_L131_ *) % 177.46/177.71 assert (zenon_L132_ : (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> ((op (e3) (e1)) = (e1)) -> ((op (e1) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H14c zenon_H149 zenon_Hb7 zenon_H147. % 177.46/177.71 cut (((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) = ((op (e1) (e2)) = (op (e3) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H14c. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H149. % 177.46/177.71 cut (((op (e3) (op (e1) (e2))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H146]. % 177.46/177.71 cut (((op (op (e3) (e1)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14d]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ]. % 177.46/177.71 cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e3) (e1)) (e2)) = (op (e1) (e2)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_H14d. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H13e. % 177.46/177.71 cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f]. % 177.46/177.71 cut (((op (e1) (e2)) = (op (op (e3) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H14e]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_Hb8. apply sym_equal. exact zenon_Hb7. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 apply zenon_H13f. apply refl_equal. % 177.46/177.71 apply zenon_H13f. apply refl_equal. % 177.46/177.71 apply (zenon_L130_); trivial. % 177.46/177.71 (* end of lemma zenon_L132_ *) % 177.46/177.71 assert (zenon_L133_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H147 zenon_H149 zenon_H14c zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H80 zenon_H7b zenon_H72 zenon_H26 zenon_H3a zenon_Hf9 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.71 apply (zenon_L12_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.71 apply (zenon_L13_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.71 apply (zenon_L14_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.71 apply (zenon_L131_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.71 apply (zenon_L132_); trivial. % 177.46/177.71 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.71 apply (zenon_L103_); trivial. % 177.46/177.71 apply (zenon_L95_); trivial. % 177.46/177.71 (* end of lemma zenon_L133_ *) % 177.46/177.71 assert (zenon_L134_ : ((op (e1) (e3)) = (e2)) -> ((op (e3) (e3)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_Hed zenon_H6a. % 177.46/177.71 apply (zenon_notand_s _ _ ax14); [ zenon_intro zenon_H129 | zenon_intro zenon_H14f ]. % 177.46/177.71 apply zenon_H129. apply sym_equal. exact zenon_H6a. % 177.46/177.71 apply zenon_H14f. apply sym_equal. exact zenon_Hed. % 177.46/177.71 (* end of lemma zenon_L134_ *) % 177.46/177.71 assert (zenon_L135_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> ((op (e1) (e3)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H66 zenon_Hed. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.71 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.46/177.71 apply (zenon_L134_); trivial. % 177.46/177.71 (* end of lemma zenon_L135_ *) % 177.46/177.71 assert (zenon_L136_ : (~((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))) -> ((op (e2) (e2)) = (e2)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H150 zenon_H10f. % 177.46/177.71 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.71 cut (((e2) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H110]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H110. apply sym_equal. exact zenon_H10f. % 177.46/177.71 apply zenon_H45. apply refl_equal. % 177.46/177.71 (* end of lemma zenon_L136_ *) % 177.46/177.71 assert (zenon_L137_ : (~((op (e2) (op (e2) (e3))) = (op (e2) (e0)))) -> ((op (e2) (e3)) = (e0)) -> False). % 177.46/177.71 do 0 intro. intros zenon_H151 zenon_H121. % 177.46/177.71 cut (((op (e2) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H152]. % 177.46/177.71 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.71 congruence. % 177.46/177.71 apply zenon_H37. apply refl_equal. % 177.46/177.71 exact (zenon_H152 zenon_H121). % 177.46/177.71 (* end of lemma zenon_L137_ *) % 177.46/177.71 assert (zenon_L138_ : ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e2)) = (e2)) -> ((op (e2) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False). % 177.46/177.71 do 0 intro. intros zenon_H153 zenon_H10f zenon_H121 zenon_Hda. % 177.46/177.71 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hda. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H5b. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb]. % 177.46/177.71 congruence. % 177.46/177.71 cut (((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))). % 177.46/177.71 intro zenon_D_pnotp. % 177.46/177.71 apply zenon_Hdb. % 177.46/177.71 rewrite <- zenon_D_pnotp. % 177.46/177.71 exact zenon_H153. % 177.46/177.71 cut (((op (e2) (op (e2) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H151]. % 177.46/177.71 cut (((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H154]. % 177.46/177.71 congruence. % 177.46/177.71 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.71 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H154. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H150]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L136_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply (zenon_L137_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L138_ *) % 177.46/177.72 assert (zenon_L139_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H7c zenon_H153 zenon_H121 zenon_Hda. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.72 apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124. % 177.46/177.72 apply (zenon_L138_); trivial. % 177.46/177.72 (* end of lemma zenon_L139_ *) % 177.46/177.72 assert (zenon_L140_ : (~((op (e1) (op (e3) (e3))) = (op (e1) (e3)))) -> ((op (e3) (e3)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H155 zenon_H81. % 177.46/177.72 cut (((op (e3) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H156]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_H156 zenon_H81). % 177.46/177.72 (* end of lemma zenon_L140_ *) % 177.46/177.72 assert (zenon_L141_ : ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H157 zenon_Hed zenon_H81 zenon_H158. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e1) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H158. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H159]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) = ((op (e2) (e3)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H159. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H157. % 177.46/177.72 cut (((op (e1) (op (e3) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H155]. % 177.46/177.72 cut (((op (op (e1) (e3)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15a]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e1) (e3)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H15a. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (op (e1) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15b]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.72 cut (((e2) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H14f]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H14f. apply sym_equal. exact zenon_Hed. % 177.46/177.72 apply zenon_H45. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply (zenon_L140_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L141_ *) % 177.46/177.72 assert (zenon_L142_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H89 zenon_H157 zenon_Hed zenon_H158. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.72 apply (zenon_L141_); trivial. % 177.46/177.72 (* end of lemma zenon_L142_ *) % 177.46/177.72 assert (zenon_L143_ : (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e0)) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hda zenon_H121 zenon_H153 zenon_H157 zenon_Hed zenon_H158. % 177.46/177.72 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.72 apply (zenon_L135_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.72 apply (zenon_L108_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.72 apply (zenon_L139_); trivial. % 177.46/177.72 apply (zenon_L142_); trivial. % 177.46/177.72 (* end of lemma zenon_L143_ *) % 177.46/177.72 assert (zenon_L144_ : (~((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))) -> ((op (e1) (e1)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H15c zenon_Ha5. % 177.46/177.72 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.72 cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H15d. apply sym_equal. exact zenon_Ha5. % 177.46/177.72 apply zenon_H45. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L144_ *) % 177.46/177.72 assert (zenon_L145_ : (~((op (e1) (op (e1) (e3))) = (op (e1) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H15e zenon_Hed. % 177.46/177.72 cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_Hee zenon_Hed). % 177.46/177.72 (* end of lemma zenon_L145_ *) % 177.46/177.72 assert (zenon_L146_ : ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H15f zenon_Ha5 zenon_Hed zenon_H13a. % 177.46/177.72 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e2)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H13a. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H54. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H160]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e1) (e2)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H160. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H15f. % 177.46/177.72 cut (((op (e1) (op (e1) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H15e]. % 177.46/177.72 cut (((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H161]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H161. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H54. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15c]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L144_); trivial. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply (zenon_L145_); trivial. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L146_ *) % 177.46/177.72 assert (zenon_L147_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H76 zenon_H15f zenon_Hed zenon_H13a. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.72 apply (zenon_L146_); trivial. % 177.46/177.72 (* end of lemma zenon_L147_ *) % 177.46/177.72 assert (zenon_L148_ : (~((op (e2) (op (e2) (e3))) = (op (e2) (e1)))) -> ((op (e2) (e3)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H162 zenon_H127. % 177.46/177.72 cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H163]. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 exact (zenon_H163 zenon_H127). % 177.46/177.72 (* end of lemma zenon_L148_ *) % 177.46/177.72 assert (zenon_L149_ : ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e2)) = (e2)) -> ((op (e2) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H153 zenon_H10f zenon_H127 zenon_H126. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e1)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H126. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H164]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) = ((op (e2) (e3)) = (op (e2) (e1)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H164. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H153. % 177.46/177.72 cut (((op (e2) (op (e2) (e3))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H162]. % 177.46/177.72 cut (((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H154]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e2)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H154. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (op (e2) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H150]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L136_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply (zenon_L148_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L149_ *) % 177.46/177.72 assert (zenon_L150_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H7c zenon_H153 zenon_H127 zenon_H126. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.72 apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124. % 177.46/177.72 apply (zenon_L149_); trivial. % 177.46/177.72 (* end of lemma zenon_L150_ *) % 177.46/177.72 assert (zenon_L151_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H13a zenon_H15f zenon_H126 zenon_H127 zenon_H153 zenon_H157 zenon_Hed zenon_H158. % 177.46/177.72 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.72 apply (zenon_L114_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.72 apply (zenon_L147_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.72 apply (zenon_L150_); trivial. % 177.46/177.72 apply (zenon_L142_); trivial. % 177.46/177.72 (* end of lemma zenon_L151_ *) % 177.46/177.72 assert (zenon_L152_ : (~((op (e1) (op (e2) (e3))) = (op (e1) (e3)))) -> ((op (e2) (e3)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H165 zenon_H12d. % 177.46/177.72 cut (((op (e2) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H12e]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_H12e zenon_H12d). % 177.46/177.72 (* end of lemma zenon_L152_ *) % 177.46/177.72 assert (zenon_L153_ : ((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> ((op (e2) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H166 zenon_H167 zenon_H12d zenon_H51. % 177.46/177.72 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.72 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e1) (e3)) = (op (e3) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H51. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_Hcb. % 177.46/177.72 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.72 cut (((op (e3) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H168]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H168. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H166. % 177.46/177.72 cut (((op (e1) (op (e2) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H165]. % 177.46/177.72 cut (((op (op (e1) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H169]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.72 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e1) (e2)) (e3)) = (op (e3) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H169. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_Hcb. % 177.46/177.72 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.72 cut (((op (e3) (e3)) = (op (op (e1) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H16a]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.72 cut (((e3) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H16b]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H16b. apply sym_equal. exact zenon_H167. % 177.46/177.72 apply zenon_H45. apply refl_equal. % 177.46/177.72 apply zenon_Hcc. apply refl_equal. % 177.46/177.72 apply zenon_Hcc. apply refl_equal. % 177.46/177.72 apply (zenon_L152_); trivial. % 177.46/177.72 apply zenon_Hcc. apply refl_equal. % 177.46/177.72 apply zenon_Hcc. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L153_ *) % 177.46/177.72 assert (zenon_L154_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e1) (e3)) (e3)) = (op (e1) (op (e3) (e3)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((unit) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (op (e1) (e2)) (e3)) = (op (e1) (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H136 zenon_H158 zenon_Hed zenon_H157 zenon_H153 zenon_H126 zenon_H15f zenon_H13a zenon_H26 zenon_H10e zenon_Hda zenon_H166 zenon_H167 zenon_H51. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.46/177.72 apply (zenon_L143_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.46/177.72 apply (zenon_L151_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.46/177.72 apply (zenon_L117_); trivial. % 177.46/177.72 apply (zenon_L153_); trivial. % 177.46/177.72 (* end of lemma zenon_L154_ *) % 177.46/177.72 assert (zenon_L155_ : (~((op (e2) (op (e1) (e2))) = (op (e2) (e3)))) -> ((op (e1) (e2)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H16c zenon_H167. % 177.46/177.72 cut (((op (e1) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H16d]. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 exact (zenon_H16d zenon_H167). % 177.46/177.72 (* end of lemma zenon_L155_ *) % 177.46/177.72 assert (zenon_L156_ : (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e2)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H16e zenon_H16f zenon_Hd6 zenon_H167. % 177.46/177.72 cut (((op (op (e2) (e1)) (e2)) = (op (e2) (op (e1) (e2)))) = ((op (e2) (e2)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H16e. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H16f. % 177.46/177.72 cut (((op (e2) (op (e1) (e2))) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H16c]. % 177.46/177.72 cut (((op (op (e2) (e1)) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H170]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e2)) = (op (e2) (e2)))); [ zenon_intro zenon_H171 | zenon_intro zenon_H172 ]. % 177.46/177.72 cut (((op (e2) (e2)) = (op (e2) (e2))) = ((op (op (e2) (e1)) (e2)) = (op (e2) (e2)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H170. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H171. % 177.46/177.72 cut (((op (e2) (e2)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H172]. % 177.46/177.72 cut (((op (e2) (e2)) = (op (op (e2) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H173]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_Hd7. apply sym_equal. exact zenon_Hd6. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 apply zenon_H172. apply refl_equal. % 177.46/177.72 apply zenon_H172. apply refl_equal. % 177.46/177.72 apply (zenon_L155_); trivial. % 177.46/177.72 (* end of lemma zenon_L156_ *) % 177.46/177.72 assert (zenon_L157_ : (~((op (e1) (op (e1) (e3))) = (op (e1) (e0)))) -> ((op (e1) (e3)) = (e0)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H174 zenon_Hc7. % 177.46/177.72 cut (((op (e1) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_Hc8]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_Hc8 zenon_Hc7). % 177.46/177.72 (* end of lemma zenon_L157_ *) % 177.46/177.72 assert (zenon_L158_ : ((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H15f zenon_Ha5 zenon_Hc7 zenon_He4. % 177.46/177.72 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_He4. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H54. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H175]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e1) (e1)) (e3)) = (op (e1) (op (e1) (e3)))) = ((op (e1) (e3)) = (op (e1) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H175. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H15f. % 177.46/177.72 cut (((op (e1) (op (e1) (e3))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H174]. % 177.46/177.72 cut (((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H161]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e1)) (e3)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H161. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H54. % 177.46/177.72 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.72 cut (((op (e1) (e3)) = (op (op (e1) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H15c]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L144_); trivial. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply (zenon_L157_); trivial. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 apply zenon_H55. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L158_ *) % 177.46/177.72 assert (zenon_L159_ : (~((op (e1) (op (e1) (e2))) = (op (e1) (e3)))) -> ((op (e1) (e2)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H176 zenon_H167. % 177.46/177.72 cut (((op (e1) (e2)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H16d]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_H16d zenon_H167). % 177.46/177.72 (* end of lemma zenon_L159_ *) % 177.46/177.72 assert (zenon_L160_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2)))) -> ((op (e1) (e1)) = (e1)) -> ((op (e1) (e2)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H13a zenon_H177 zenon_Ha5 zenon_H167. % 177.46/177.72 cut (((op (op (e1) (e1)) (e2)) = (op (e1) (op (e1) (e2)))) = ((op (e1) (e2)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H13a. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H177. % 177.46/177.72 cut (((op (e1) (op (e1) (e2))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H176]. % 177.46/177.72 cut (((op (op (e1) (e1)) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H178]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ]. % 177.46/177.72 cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (op (e1) (e1)) (e2)) = (op (e1) (e2)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H178. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H13e. % 177.46/177.72 cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f]. % 177.46/177.72 cut (((op (e1) (e2)) = (op (op (e1) (e1)) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H179]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H15d. apply sym_equal. exact zenon_Ha5. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 apply zenon_H13f. apply refl_equal. % 177.46/177.72 apply zenon_H13f. apply refl_equal. % 177.46/177.72 apply (zenon_L159_); trivial. % 177.46/177.72 (* end of lemma zenon_L160_ *) % 177.46/177.72 assert (zenon_L161_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Ha8 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hc7 zenon_Hca. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.72 apply (zenon_L12_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.72 apply (zenon_L13_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.72 apply (zenon_L14_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_L37_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L44_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L50_); trivial. % 177.46/177.72 apply (zenon_L53_); trivial. % 177.46/177.72 (* end of lemma zenon_L161_ *) % 177.46/177.72 assert (zenon_L162_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_Ha8 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_Hc9 zenon_Hed zenon_Hae. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.72 apply (zenon_L12_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.72 apply (zenon_L13_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.72 apply (zenon_L14_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_L37_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L44_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L50_); trivial. % 177.46/177.72 apply (zenon_L67_); trivial. % 177.46/177.72 (* end of lemma zenon_L162_ *) % 177.46/177.72 assert (zenon_L163_ : (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e3) (e1)) = (e2)) -> ((op (e1) (e3)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H58 zenon_Hc9 zenon_Hb9 zenon_Hfe. % 177.46/177.72 cut (((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e3) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H58. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_Hc9. % 177.46/177.72 cut (((op (e3) (op (e1) (e3))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hfd]. % 177.46/177.72 cut (((op (op (e3) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H17a]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e3) (e1)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H17a. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (op (e3) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H17b]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.72 cut (((e2) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hba]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_Hba. apply sym_equal. exact zenon_Hb9. % 177.46/177.72 apply zenon_H45. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply (zenon_L81_); trivial. % 177.46/177.72 (* end of lemma zenon_L163_ *) % 177.46/177.72 assert (zenon_L164_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hd0 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_L37_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L82_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L163_); trivial. % 177.46/177.72 apply (zenon_L88_); trivial. % 177.46/177.72 (* end of lemma zenon_L164_ *) % 177.46/177.72 assert (zenon_L165_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e1) (unit)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H17c zenon_Hca zenon_He5 zenon_He4 zenon_Hae zenon_H71 zenon_H72 zenon_H7b zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_H4a zenon_H47 zenon_H49 zenon_Hcf zenon_Hd0 zenon_H51 zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.46/177.72 apply (zenon_L161_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.46/177.72 apply (zenon_L65_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.46/177.72 apply (zenon_L162_); trivial. % 177.46/177.72 apply (zenon_L164_); trivial. % 177.46/177.72 (* end of lemma zenon_L165_ *) % 177.46/177.72 assert (zenon_L166_ : (~((op (e2) (op (e1) (e0))) = (op (e2) (e0)))) -> ((op (e1) (e0)) = (e0)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H17f zenon_H11b. % 177.46/177.72 cut (((op (e1) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H11c]. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 exact (zenon_H11c zenon_H11b). % 177.46/177.72 (* end of lemma zenon_L166_ *) % 177.46/177.72 assert (zenon_L167_ : ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e2) (e1)) = (e3)) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H180 zenon_Hdd zenon_H11b zenon_H11d. % 177.46/177.72 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (e2) (e0)) = (op (e3) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H11d. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H74. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H181]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) = ((op (e3) (e0)) = (op (e2) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H181. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H180. % 177.46/177.72 cut (((op (e2) (op (e1) (e0))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H17f]. % 177.46/177.72 cut (((op (op (e2) (e1)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H182]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e2) (e1)) (e0)) = (op (e3) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H182. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H74. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H183]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.72 cut (((e3) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hde]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_Hde. apply sym_equal. exact zenon_Hdd. % 177.46/177.72 apply zenon_H23. apply refl_equal. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 apply (zenon_L166_); trivial. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L167_ *) % 177.46/177.72 assert (zenon_L168_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_Hca zenon_Hc7 zenon_Hc9 zenon_H71 zenon_H72 zenon_H7b zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H58 zenon_H4a zenon_H47 zenon_H51 zenon_H49 zenon_Hcf zenon_H8d zenon_Hf3 zenon_H126 zenon_H180 zenon_H11b zenon_H11d. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_L76_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L54_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L111_); trivial. % 177.46/177.72 apply (zenon_L167_); trivial. % 177.46/177.72 (* end of lemma zenon_L168_ *) % 177.46/177.72 assert (zenon_L169_ : (~((op (e2) (op (e1) (e3))) = (op (e2) (e2)))) -> ((op (e1) (e3)) = (e2)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H184 zenon_Hed. % 177.46/177.72 cut (((op (e1) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_Hee]. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 exact (zenon_Hee zenon_Hed). % 177.46/177.72 (* end of lemma zenon_L169_ *) % 177.46/177.72 assert (zenon_L170_ : ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e3)) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hd9 zenon_Hd6 zenon_Hed zenon_H16e. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e2)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H16e. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H185]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) = ((op (e2) (e3)) = (op (e2) (e2)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H185. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_Hd9. % 177.46/177.72 cut (((op (e2) (op (e1) (e3))) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H184]. % 177.46/177.72 cut (((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hdc]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e1)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_Hdc. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (op (e2) (e1)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hd5]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L55_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply (zenon_L169_); trivial. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 apply zenon_H5c. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L170_ *) % 177.46/177.72 assert (zenon_L171_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((op (e1) (e3)) = (e2)) -> ((op (op (e2) (e1)) (e3)) = (op (e2) (op (e1) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_H8d zenon_Hae zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_H9e zenon_Hd0 zenon_H16e zenon_Hed zenon_Hd9 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_L76_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L68_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L170_); trivial. % 177.46/177.72 apply (zenon_L63_); trivial. % 177.46/177.72 (* end of lemma zenon_L171_ *) % 177.46/177.72 assert (zenon_L172_ : (~((op (e1) (op (e0) (e0))) = (op (e1) (e3)))) -> ((op (e0) (e0)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H186 zenon_H8b. % 177.46/177.72 cut (((op (e0) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_He0]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_He0 zenon_H8b). % 177.46/177.72 (* end of lemma zenon_L172_ *) % 177.46/177.72 assert (zenon_L173_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e0)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_He4 zenon_H187 zenon_H188 zenon_H8b. % 177.46/177.72 cut (((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_He4. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H187. % 177.46/177.72 cut (((op (e1) (op (e0) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H186]. % 177.46/177.72 cut (((op (op (e1) (e0)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H189]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.72 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e0)) (e0)) = (op (e1) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H189. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_He9. % 177.46/177.72 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.72 cut (((op (e1) (e0)) = (op (op (e1) (e0)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18a]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.72 cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18b]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H18b. apply sym_equal. exact zenon_H188. % 177.46/177.72 apply zenon_H23. apply refl_equal. % 177.46/177.72 apply zenon_Hea. apply refl_equal. % 177.46/177.72 apply zenon_Hea. apply refl_equal. % 177.46/177.72 apply (zenon_L172_); trivial. % 177.46/177.72 (* end of lemma zenon_L173_ *) % 177.46/177.72 assert (zenon_L174_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H89 zenon_He4 zenon_H187 zenon_H188. % 177.46/177.72 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.72 apply (zenon_L173_); trivial. % 177.46/177.72 (* end of lemma zenon_L174_ *) % 177.46/177.72 assert (zenon_L175_ : (~((op (e3) (e0)) = (op (op (e3) (e1)) (e0)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H18c zenon_Hc4. % 177.46/177.72 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.72 cut (((e3) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc5]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_Hc5. apply sym_equal. exact zenon_Hc4. % 177.46/177.72 apply zenon_H23. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L175_ *) % 177.46/177.72 assert (zenon_L176_ : (~((op (e3) (op (e1) (e0))) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H18d zenon_H188. % 177.46/177.72 cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H18e]. % 177.46/177.72 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H45. apply refl_equal. % 177.46/177.72 exact (zenon_H18e zenon_H188). % 177.46/177.72 (* end of lemma zenon_L176_ *) % 177.46/177.72 assert (zenon_L177_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e3) (e1)) = (e3)) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H71 zenon_H11e zenon_Hc4 zenon_H188. % 177.46/177.72 cut (((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H71. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H11e. % 177.46/177.72 cut (((op (e3) (op (e1) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H18d]. % 177.46/177.72 cut (((op (op (e3) (e1)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18f]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e1)) (e0)) = (op (e3) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H18f. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H74. % 177.46/177.72 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.72 cut (((op (e3) (e0)) = (op (op (e3) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18c]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L175_); trivial. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 apply zenon_H75. apply refl_equal. % 177.46/177.72 apply (zenon_L176_); trivial. % 177.46/177.72 (* end of lemma zenon_L177_ *) % 177.46/177.72 assert (zenon_L178_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e2)) = (e0)) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e0)) -> ((op (e2) (e1)) = (e0)) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H63 zenon_H9e zenon_Hf9 zenon_H3a zenon_H26 zenon_H42 zenon_H40 zenon_He4 zenon_H187 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.72 apply (zenon_L12_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.72 apply (zenon_L13_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.72 apply (zenon_L14_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.72 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.72 apply (zenon_L73_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.72 apply (zenon_L75_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.72 apply (zenon_L38_); trivial. % 177.46/177.72 apply (zenon_L174_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.72 apply (zenon_L16_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.72 apply (zenon_L78_); trivial. % 177.46/177.72 apply (zenon_L32_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L82_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L50_); trivial. % 177.46/177.72 apply (zenon_L177_); trivial. % 177.46/177.72 (* end of lemma zenon_L178_ *) % 177.46/177.72 assert (zenon_L179_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H9e zenon_Hae zenon_H91 zenon_H92 zenon_H60 zenon_H80 zenon_Hb0 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.72 apply (zenon_L12_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.72 apply (zenon_L13_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.72 apply (zenon_L14_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_L43_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L82_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L50_); trivial. % 177.46/177.72 apply (zenon_L177_); trivial. % 177.46/177.72 (* end of lemma zenon_L179_ *) % 177.46/177.72 assert (zenon_L180_ : (~((op (e2) (e0)) = (op (op (e2) (e1)) (e0)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H190 zenon_Hd6. % 177.46/177.72 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.72 cut (((e2) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_Hd7. apply sym_equal. exact zenon_Hd6. % 177.46/177.72 apply zenon_H23. apply refl_equal. % 177.46/177.72 (* end of lemma zenon_L180_ *) % 177.46/177.72 assert (zenon_L181_ : (~((op (e2) (op (e1) (e0))) = (op (e2) (e1)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H191 zenon_H188. % 177.46/177.72 cut (((op (e1) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H18e]. % 177.46/177.72 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H37. apply refl_equal. % 177.46/177.72 exact (zenon_H18e zenon_H188). % 177.46/177.72 (* end of lemma zenon_L181_ *) % 177.46/177.72 assert (zenon_L182_ : (~((op (e2) (e0)) = (op (e2) (e1)))) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e2) (e1)) = (e2)) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hf4 zenon_H180 zenon_Hd6 zenon_H188. % 177.46/177.72 cut (((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) = ((op (e2) (e0)) = (op (e2) (e1)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_Hf4. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H180. % 177.46/177.72 cut (((op (e2) (op (e1) (e0))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H191]. % 177.46/177.72 cut (((op (op (e2) (e1)) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H192]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ]. % 177.46/177.72 cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (op (e2) (e1)) (e0)) = (op (e2) (e0)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H192. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H112. % 177.46/177.72 cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113]. % 177.46/177.72 cut (((op (e2) (e0)) = (op (op (e2) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H190]. % 177.46/177.72 congruence. % 177.46/177.72 apply (zenon_L180_); trivial. % 177.46/177.72 apply zenon_H113. apply refl_equal. % 177.46/177.72 apply zenon_H113. apply refl_equal. % 177.46/177.72 apply (zenon_L181_); trivial. % 177.46/177.72 (* end of lemma zenon_L182_ *) % 177.46/177.72 assert (zenon_L183_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_H114 zenon_H10d zenon_H10e zenon_H26 zenon_H3a zenon_Hf9 zenon_H40 zenon_He4 zenon_H187 zenon_H117 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ]. % 177.46/177.72 apply (zenon_L178_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ]. % 177.46/177.72 apply (zenon_L97_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ]. % 177.46/177.72 apply (zenon_L99_); trivial. % 177.46/177.72 apply (zenon_L100_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L179_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L182_); trivial. % 177.46/177.72 apply (zenon_L63_); trivial. % 177.46/177.72 (* end of lemma zenon_L183_ *) % 177.46/177.72 assert (zenon_L184_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e1)) -> ((op (op (e1) (e2)) (e2)) = (op (e1) (op (e2) (e2)))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> (~((op (e1) (e1)) = (op (e2) (e1)))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e0)) = (op (e1) (op (e0) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_H13c zenon_H13b zenon_H13a zenon_H10d zenon_H10e zenon_H26 zenon_H3a zenon_Hf9 zenon_H40 zenon_He4 zenon_H187 zenon_H117 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ]. % 177.46/177.72 apply (zenon_L178_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ]. % 177.46/177.72 apply (zenon_L97_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ]. % 177.46/177.72 apply (zenon_L99_); trivial. % 177.46/177.72 apply (zenon_L126_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L179_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L182_); trivial. % 177.46/177.72 apply (zenon_L63_); trivial. % 177.46/177.72 (* end of lemma zenon_L184_ *) % 177.46/177.72 assert (zenon_L185_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hd0 zenon_H147 zenon_H149 zenon_Hf9 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H6c zenon_H71 zenon_H11e zenon_H188. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.72 apply (zenon_L131_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.72 apply (zenon_L44_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.72 apply (zenon_L50_); trivial. % 177.46/177.72 apply (zenon_L177_); trivial. % 177.46/177.72 (* end of lemma zenon_L185_ *) % 177.46/177.72 assert (zenon_L186_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e2)) = (e2)) -> ((op (op (e3) (e1)) (e2)) = (op (e3) (op (e1) (e2)))) -> (~((op (e0) (e2)) = (op (e3) (e2)))) -> ((unit) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.72 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_Hd0 zenon_H147 zenon_H149 zenon_Hf9 zenon_H26 zenon_H31 zenon_Hb0 zenon_Hbe zenon_H82 zenon_H7b zenon_H72 zenon_H71 zenon_H11e zenon_H188. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.72 apply (zenon_L12_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.72 apply (zenon_L13_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.72 apply (zenon_L14_); trivial. % 177.46/177.72 apply (zenon_L185_); trivial. % 177.46/177.72 (* end of lemma zenon_L186_ *) % 177.46/177.72 assert (zenon_L187_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (e1) (e3)) = (e0)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e0)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e1)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_H8d zenon_Hc7 zenon_Hc9 zenon_H82 zenon_Hbe zenon_Hb0 zenon_H31 zenon_H26 zenon_Haf zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H188 zenon_H180 zenon_Hf4 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_L76_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L54_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L182_); trivial. % 177.46/177.72 apply (zenon_L63_); trivial. % 177.46/177.72 (* end of lemma zenon_L187_ *) % 177.46/177.72 assert (zenon_L188_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (e1) (e0)) = (e1)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e0) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e2)) = (op (e3) (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e1) (e1)) = (e3)) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_He1 zenon_H188 zenon_H11e zenon_H82 zenon_Hbe zenon_Hc9 zenon_Hfe zenon_Haf zenon_Hb0 zenon_H80 zenon_H92 zenon_H91 zenon_Hae zenon_H9e zenon_Hd0 zenon_H8d zenon_Hf3 zenon_H126 zenon_Hcf zenon_H49 zenon_H51 zenon_H47 zenon_H4a zenon_H58 zenon_H71 zenon_H7b zenon_Hca zenon_H72. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.46/177.72 apply (zenon_L76_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.46/177.72 apply (zenon_L179_); trivial. % 177.46/177.72 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.46/177.72 apply (zenon_L111_); trivial. % 177.46/177.72 apply (zenon_L63_); trivial. % 177.46/177.72 (* end of lemma zenon_L188_ *) % 177.46/177.72 assert (zenon_L189_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e3)) -> False). % 177.46/177.72 do 0 intro. intros zenon_H193 zenon_H47. % 177.46/177.72 cut (((op (e0) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H48]. % 177.46/177.72 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.72 congruence. % 177.46/177.72 apply zenon_H2e. apply refl_equal. % 177.46/177.72 exact (zenon_H48 zenon_H47). % 177.46/177.72 (* end of lemma zenon_L189_ *) % 177.46/177.72 assert (zenon_L190_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e2)) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.72 do 0 intro. intros zenon_H194 zenon_H195 zenon_H47 zenon_H158. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e1) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H158. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H159]. % 177.46/177.72 congruence. % 177.46/177.72 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e1) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H159. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H194. % 177.46/177.72 cut (((op (e1) (op (e0) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H193]. % 177.46/177.72 cut (((op (op (e1) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H196]. % 177.46/177.72 congruence. % 177.46/177.72 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e2) (e3)))). % 177.46/177.72 intro zenon_D_pnotp. % 177.46/177.72 apply zenon_H196. % 177.46/177.72 rewrite <- zenon_D_pnotp. % 177.46/177.72 exact zenon_H5b. % 177.46/177.72 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.73 cut (((op (e2) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H197]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 cut (((e2) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H198]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H198. apply sym_equal. exact zenon_H195. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply (zenon_L189_); trivial. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L190_ *) % 177.46/177.73 assert (zenon_L191_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e3)) -> ((op (e0) (e3)) = (e3)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H194 zenon_H199 zenon_H47 zenon_H51. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e1) (e3)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H51. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H168]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e3) (e3)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H168. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H194. % 177.46/177.73 cut (((op (e1) (op (e0) (e3))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H193]. % 177.46/177.73 cut (((op (op (e1) (e0)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H19a]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H19a. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H19b]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 cut (((e3) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H19c. apply sym_equal. exact zenon_H199. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply (zenon_L189_); trivial. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L191_ *) % 177.46/177.73 assert (zenon_L192_ : (~((op (e1) (e0)) = (op (unit) (e0)))) -> ((unit) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H19d zenon_H19e. % 177.46/177.73 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.73 cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H19f. apply sym_equal. exact zenon_H19e. % 177.46/177.73 apply zenon_H23. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L192_ *) % 177.46/177.73 assert (zenon_L193_ : (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_He4 zenon_H25 zenon_H19e zenon_Hc7. % 177.46/177.73 cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_He4. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H25. % 177.46/177.73 cut (((e0) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1a0]. % 177.46/177.73 cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a1. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_He9. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L192_); trivial. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_H1a0. apply sym_equal. exact zenon_Hc7. % 177.46/177.73 (* end of lemma zenon_L193_ *) % 177.46/177.73 assert (zenon_L194_ : (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1a2 zenon_H31 zenon_H19e zenon_He6. % 177.46/177.73 cut (((op (unit) (e1)) = (e1)) = ((op (e1) (e1)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a2. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H31. % 177.46/177.73 cut (((e1) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_He7]. % 177.46/177.73 cut (((op (unit) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1a3]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e1)) = (op (e1) (e1)))); [ zenon_intro zenon_H1a4 | zenon_intro zenon_H44 ]. % 177.46/177.73 cut (((op (e1) (e1)) = (op (e1) (e1))) = ((op (unit) (e1)) = (op (e1) (e1)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a3. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H1a4. % 177.46/177.73 cut (((op (e1) (e1)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H44]. % 177.46/177.73 cut (((op (e1) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1a5]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.73 cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H19f. apply sym_equal. exact zenon_H19e. % 177.46/177.73 apply zenon_H2e. apply refl_equal. % 177.46/177.73 apply zenon_H44. apply refl_equal. % 177.46/177.73 apply zenon_H44. apply refl_equal. % 177.46/177.73 apply zenon_He7. apply sym_equal. exact zenon_He6. % 177.46/177.73 (* end of lemma zenon_L194_ *) % 177.46/177.73 assert (zenon_L195_ : (~((op (e1) (e2)) = (op (unit) (e2)))) -> ((unit) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1a6 zenon_H19e. % 177.46/177.73 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.73 cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H19f. apply sym_equal. exact zenon_H19e. % 177.46/177.73 apply zenon_H37. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L195_ *) % 177.46/177.73 assert (zenon_L196_ : (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e2)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H13a zenon_H3a zenon_H19e zenon_Hed. % 177.46/177.73 cut (((op (unit) (e2)) = (e2)) = ((op (e1) (e2)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H13a. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H3a. % 177.46/177.73 cut (((e2) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H14f]. % 177.46/177.73 cut (((op (unit) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a7]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ]. % 177.46/177.73 cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (unit) (e2)) = (op (e1) (e2)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a7. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H13e. % 177.46/177.73 cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f]. % 177.46/177.73 cut (((op (e1) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a6]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L195_); trivial. % 177.46/177.73 apply zenon_H13f. apply refl_equal. % 177.46/177.73 apply zenon_H13f. apply refl_equal. % 177.46/177.73 apply zenon_H14f. apply sym_equal. exact zenon_Hed. % 177.46/177.73 (* end of lemma zenon_L196_ *) % 177.46/177.73 assert (zenon_L197_ : (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e3) (e0)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1a8 zenon_H25 zenon_H19e zenon_H4b. % 177.46/177.73 cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e3) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a8. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H25. % 177.46/177.73 cut (((e0) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H50]. % 177.46/177.73 cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a1. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_He9. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L192_); trivial. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_H50. apply sym_equal. exact zenon_H4b. % 177.46/177.73 (* end of lemma zenon_L197_ *) % 177.46/177.73 assert (zenon_L198_ : (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e1)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1a9 zenon_H25 zenon_H19e zenon_H41. % 177.46/177.73 cut (((op (unit) (e0)) = (e0)) = ((op (e1) (e0)) = (op (e1) (e1)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a9. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H25. % 177.46/177.73 cut (((e0) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hbb]. % 177.46/177.73 cut (((op (unit) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1a1]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (unit) (e0)) = (op (e1) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a1. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_He9. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19d]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L192_); trivial. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_Hbb. apply sym_equal. exact zenon_H41. % 177.46/177.73 (* end of lemma zenon_L198_ *) % 177.46/177.73 assert (zenon_L199_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H66 zenon_H1a9 zenon_H25 zenon_H19e. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.73 apply (zenon_L198_); trivial. % 177.46/177.73 (* end of lemma zenon_L199_ *) % 177.46/177.73 assert (zenon_L200_ : ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (e1) (e1)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1aa zenon_H19e zenon_H8d zenon_H1a2. % 177.46/177.73 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.73 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e1)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a2. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H54. % 177.46/177.73 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.73 cut (((op (e1) (e3)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ab]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((op (unit) (e3)) = (e3)) = ((op (e1) (e3)) = (op (e1) (e1)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1ab. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H1aa. % 177.46/177.73 cut (((e3) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hf8]. % 177.46/177.73 cut (((op (unit) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ac]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.73 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (unit) (e3)) = (op (e1) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1ac. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H54. % 177.46/177.73 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.73 cut (((op (e1) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ad]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H19f. apply sym_equal. exact zenon_H19e. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 apply zenon_H55. apply refl_equal. % 177.46/177.73 apply zenon_H55. apply refl_equal. % 177.46/177.73 apply zenon_Hf8. apply sym_equal. exact zenon_H8d. % 177.46/177.73 apply zenon_H55. apply refl_equal. % 177.46/177.73 apply zenon_H55. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L200_ *) % 177.46/177.73 assert (zenon_L201_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H89 zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.73 apply (zenon_L200_); trivial. % 177.46/177.73 (* end of lemma zenon_L201_ *) % 177.46/177.73 assert (zenon_L202_ : ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e0)) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H25 zenon_H1a9 zenon_Hb2 zenon_Ha7 zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.73 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.73 apply (zenon_L199_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.73 apply (zenon_L75_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.73 apply (zenon_L38_); trivial. % 177.46/177.73 apply (zenon_L201_); trivial. % 177.46/177.73 (* end of lemma zenon_L202_ *) % 177.46/177.73 assert (zenon_L203_ : (~((op (e3) (op (e2) (e0))) = (op (e3) (e0)))) -> ((op (e2) (e0)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1ae zenon_H1af. % 177.46/177.73 cut (((op (e2) (e0)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1b0]. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 exact (zenon_H1b0 zenon_H1af). % 177.46/177.73 (* end of lemma zenon_L203_ *) % 177.46/177.73 assert (zenon_L204_ : (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e3) (e2)) = (e1)) -> ((op (e2) (e0)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1a8 zenon_H1b1 zenon_H62 zenon_H1af. % 177.46/177.73 cut (((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) = ((op (e1) (e0)) = (op (e3) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a8. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H1b1. % 177.46/177.73 cut (((op (e3) (op (e2) (e0))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ae]. % 177.46/177.73 cut (((op (op (e3) (e2)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b2]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e3) (e2)) (e0)) = (op (e1) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1b2. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_He9. % 177.46/177.73 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.73 cut (((op (e1) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b3]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.73 cut (((e1) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H64]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H64. apply sym_equal. exact zenon_H62. % 177.46/177.73 apply zenon_H23. apply refl_equal. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply zenon_Hea. apply refl_equal. % 177.46/177.73 apply (zenon_L203_); trivial. % 177.46/177.73 (* end of lemma zenon_L204_ *) % 177.46/177.73 assert (zenon_L205_ : (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (e3) (e2)) = (e2)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H14c zenon_H3a zenon_H19e zenon_H93. % 177.46/177.73 cut (((op (unit) (e2)) = (e2)) = ((op (e1) (e2)) = (op (e3) (e2)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H14c. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H3a. % 177.46/177.73 cut (((e2) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H98]. % 177.46/177.73 cut (((op (unit) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a7]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e1) (e2)) = (op (e1) (e2)))); [ zenon_intro zenon_H13e | zenon_intro zenon_H13f ]. % 177.46/177.73 cut (((op (e1) (e2)) = (op (e1) (e2))) = ((op (unit) (e2)) = (op (e1) (e2)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1a7. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H13e. % 177.46/177.73 cut (((op (e1) (e2)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H13f]. % 177.46/177.73 cut (((op (e1) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1a6]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L195_); trivial. % 177.46/177.73 apply zenon_H13f. apply refl_equal. % 177.46/177.73 apply zenon_H13f. apply refl_equal. % 177.46/177.73 apply zenon_H98. apply sym_equal. exact zenon_H93. % 177.46/177.73 (* end of lemma zenon_L205_ *) % 177.46/177.73 assert (zenon_L206_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H19e zenon_H3a zenon_H14c zenon_H9e zenon_H63 zenon_H7b. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L93_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L16_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L32_); trivial. % 177.46/177.73 (* end of lemma zenon_L206_ *) % 177.46/177.73 assert (zenon_L207_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e0)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hd0 zenon_H1a8 zenon_H1b1 zenon_H1af zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H19e zenon_H3a zenon_H14c zenon_H9e zenon_H63 zenon_H7b. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L32_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L103_); trivial. % 177.46/177.73 apply (zenon_L206_); trivial. % 177.46/177.73 (* end of lemma zenon_L207_ *) % 177.46/177.73 assert (zenon_L208_ : (~((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1b4 zenon_H9a. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H9b. apply sym_equal. exact zenon_H9a. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L208_ *) % 177.46/177.73 assert (zenon_L209_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1b5 zenon_H121. % 177.46/177.73 cut (((op (e2) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H152]. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 exact (zenon_H152 zenon_H121). % 177.46/177.73 (* end of lemma zenon_L209_ *) % 177.46/177.73 assert (zenon_L210_ : ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H12f zenon_H9a zenon_H121 zenon_Hca. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e0)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_Hca. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hcd]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e3) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_Hcd. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H12f. % 177.46/177.73 cut (((op (e3) (op (e2) (e3))) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1b5]. % 177.46/177.73 cut (((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b6]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1b6. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b4]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L208_); trivial. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply (zenon_L209_); trivial. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L210_ *) % 177.46/177.73 assert (zenon_L211_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.73 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.73 apply (zenon_L199_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.73 apply (zenon_L108_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.73 apply (zenon_L89_); trivial. % 177.46/177.73 apply (zenon_L92_); trivial. % 177.46/177.73 (* end of lemma zenon_L211_ *) % 177.46/177.73 assert (zenon_L212_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H1a8 zenon_H1b1 zenon_H1af zenon_H1aa zenon_H1a2 zenon_Haf zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L210_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L103_); trivial. % 177.46/177.73 apply (zenon_L211_); trivial. % 177.46/177.73 (* end of lemma zenon_L212_ *) % 177.46/177.73 assert (zenon_L213_ : (~((op (e3) (op (e2) (e3))) = (op (e3) (e1)))) -> ((op (e2) (e3)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1b7 zenon_H127. % 177.46/177.73 cut (((op (e2) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H163]. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 exact (zenon_H163 zenon_H127). % 177.46/177.73 (* end of lemma zenon_L213_ *) % 177.46/177.73 assert (zenon_L214_ : ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H12f zenon_H9a zenon_H127 zenon_H10b. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (e3) (e1)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H10b. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b8]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) = ((op (e3) (e3)) = (op (e3) (e1)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1b8. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H12f. % 177.46/177.73 cut (((op (e3) (op (e2) (e3))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b7]. % 177.46/177.73 cut (((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b6]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e3) (e3)) = (op (e3) (e3)))); [ zenon_intro zenon_Hcb | zenon_intro zenon_Hcc ]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3))) = ((op (op (e3) (e2)) (e3)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1b6. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_Hcb. % 177.46/177.73 cut (((op (e3) (e3)) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_Hcc]. % 177.46/177.73 cut (((op (e3) (e3)) = (op (op (e3) (e2)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1b4]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L208_); trivial. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply (zenon_L213_); trivial. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 apply zenon_Hcc. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L214_ *) % 177.46/177.73 assert (zenon_L215_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e2)) = (e1)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_Ha2 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H12f zenon_H127 zenon_H10b. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L74_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L214_); trivial. % 177.46/177.73 (* end of lemma zenon_L215_ *) % 177.46/177.73 assert (zenon_L216_ : (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((unit) = (e1)) -> ((op (e2) (e3)) = (e2)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H126 zenon_H10e zenon_H19e zenon_H12a. % 177.46/177.73 cut (((op (e2) (unit)) = (e2)) = ((op (e2) (e1)) = (op (e2) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H126. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H10e. % 177.46/177.73 cut (((e2) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H12b]. % 177.46/177.73 cut (((op (e2) (unit)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1b9]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.73 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (e2) (unit)) = (op (e2) (e1)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1b9. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H95. % 177.46/177.73 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.73 cut (((op (e2) (e1)) = (op (e2) (unit)))); [idtac | apply NNPP; zenon_intro zenon_H1ba]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((e1) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H19f]. % 177.46/177.73 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H37. apply refl_equal. % 177.46/177.73 apply zenon_H19f. apply sym_equal. exact zenon_H19e. % 177.46/177.73 apply zenon_H96. apply refl_equal. % 177.46/177.73 apply zenon_H96. apply refl_equal. % 177.46/177.73 apply zenon_H12b. apply sym_equal. exact zenon_H12a. % 177.46/177.73 (* end of lemma zenon_L216_ *) % 177.46/177.73 assert (zenon_L217_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_H1a9 zenon_H25 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L42_); trivial. % 177.46/177.73 (* end of lemma zenon_L217_ *) % 177.46/177.73 assert (zenon_L218_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e3)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H12d zenon_H12f zenon_H58 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L93_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L119_); trivial. % 177.46/177.73 apply (zenon_L94_); trivial. % 177.46/177.73 (* end of lemma zenon_L218_ *) % 177.46/177.73 assert (zenon_L219_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e2) (e3)) = (e3)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H7b zenon_H14c zenon_H3a zenon_H19e zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_Haf zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H12d zenon_H12f zenon_H58 zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_L217_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L163_); trivial. % 177.46/177.73 apply (zenon_L218_); trivial. % 177.46/177.73 (* end of lemma zenon_L219_ *) % 177.46/177.73 assert (zenon_L220_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_Ha7 zenon_H1a9 zenon_H25 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_H12f zenon_H127 zenon_H10b. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L214_); trivial. % 177.46/177.73 (* end of lemma zenon_L220_ *) % 177.46/177.73 assert (zenon_L221_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L93_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L40_); trivial. % 177.46/177.73 (* end of lemma zenon_L221_ *) % 177.46/177.73 assert (zenon_L222_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e2) (e3)) = (e1)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hd0 zenon_H127 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_L220_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L163_); trivial. % 177.46/177.73 apply (zenon_L221_); trivial. % 177.46/177.73 (* end of lemma zenon_L222_ *) % 177.46/177.73 assert (zenon_L223_ : (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e2) (e2)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_Hca zenon_H10e zenon_H126 zenon_Hd0 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e zenon_H8e. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.46/177.73 apply (zenon_L212_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.46/177.73 apply (zenon_L222_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.46/177.73 apply (zenon_L216_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L204_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L119_); trivial. % 177.46/177.73 apply (zenon_L40_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L163_); trivial. % 177.46/177.73 apply (zenon_L221_); trivial. % 177.46/177.73 (* end of lemma zenon_L223_ *) % 177.46/177.73 assert (zenon_L224_ : (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e0)) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_Hca zenon_H10e zenon_H126 zenon_Hd0 zenon_H12f zenon_H25 zenon_H1a9 zenon_H1aa zenon_H1a2 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H1af zenon_H1b1 zenon_H1a8 zenon_H19e zenon_H3a zenon_H14c zenon_Hae zenon_H9e. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H117); [ zenon_intro zenon_H63 | zenon_intro zenon_H118 ]. % 177.46/177.73 apply (zenon_L207_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H118); [ zenon_intro zenon_Ha2 | zenon_intro zenon_H119 ]. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.46/177.73 apply (zenon_L212_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.46/177.73 apply (zenon_L215_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.46/177.73 apply (zenon_L216_); trivial. % 177.46/177.73 apply (zenon_L219_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H119); [ zenon_intro zenon_H10f | zenon_intro zenon_H8e ]. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.46/177.73 apply (zenon_L212_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.46/177.73 apply (zenon_L149_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.46/177.73 apply (zenon_L216_); trivial. % 177.46/177.73 apply (zenon_L219_); trivial. % 177.46/177.73 apply (zenon_L223_); trivial. % 177.46/177.73 (* end of lemma zenon_L224_ *) % 177.46/177.73 assert (zenon_L225_ : (~((op (e0) (e0)) = (op (e2) (e0)))) -> ((op (e0) (e0)) = (e1)) -> ((op (e2) (e0)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1bb zenon_H6f zenon_H1bc. % 177.46/177.73 cut (((op (e0) (e0)) = (e1)) = ((op (e0) (e0)) = (op (e2) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1bb. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H6f. % 177.46/177.73 cut (((e1) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1bd]. % 177.46/177.73 cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H2b. apply refl_equal. % 177.46/177.73 apply zenon_H1bd. apply sym_equal. exact zenon_H1bc. % 177.46/177.73 (* end of lemma zenon_L225_ *) % 177.46/177.73 assert (zenon_L226_ : (~((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))) -> ((op (e2) (e0)) = (e2)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1be zenon_H1bf. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 cut (((e2) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c0]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H1c0. apply sym_equal. exact zenon_H1bf. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L226_ *) % 177.46/177.73 assert (zenon_L227_ : (~((op (e2) (op (e0) (e3))) = (op (e2) (e0)))) -> ((op (e0) (e3)) = (e0)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1c1 zenon_H27. % 177.46/177.73 cut (((op (e0) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1c2]. % 177.46/177.73 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H37. apply refl_equal. % 177.46/177.73 exact (zenon_H1c2 zenon_H27). % 177.46/177.73 (* end of lemma zenon_L227_ *) % 177.46/177.73 assert (zenon_L228_ : ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e2) (e0)) = (e2)) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1c3 zenon_H1bf zenon_H27 zenon_Hda. % 177.46/177.73 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.73 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e0)) = (op (e2) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_Hda. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H5b. % 177.46/177.73 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.73 cut (((op (e2) (e3)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hdb]. % 177.46/177.73 congruence. % 177.46/177.73 cut (((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e2) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_Hdb. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H1c3. % 177.46/177.73 cut (((op (e2) (op (e0) (e3))) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c1]. % 177.46/177.73 cut (((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c4]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.73 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1c4. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H5b. % 177.46/177.73 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.73 cut (((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1be]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L226_); trivial. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply (zenon_L227_); trivial. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 apply zenon_H5c. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L228_ *) % 177.46/177.73 assert (zenon_L229_ : ((op (e2) (e0)) = (e3)) -> ((op (e0) (e0)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1c5 zenon_H6f. % 177.46/177.73 apply (zenon_notand_s _ _ ax23); [ zenon_intro zenon_H1c7 | zenon_intro zenon_H1c6 ]. % 177.46/177.73 apply zenon_H1c7. apply sym_equal. exact zenon_H6f. % 177.46/177.73 apply zenon_H1c6. apply sym_equal. exact zenon_H1c5. % 177.46/177.73 (* end of lemma zenon_L229_ *) % 177.46/177.73 assert (zenon_L230_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e2) (e0)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H76 zenon_H1c5. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.73 apply (zenon_L229_); trivial. % 177.46/177.73 (* end of lemma zenon_L230_ *) % 177.46/177.73 assert (zenon_L231_ : ((op (e3) (e2)) = (e1)) -> ((op (e2) (e0)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H62 zenon_H1c5 zenon_Ha7 zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.73 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.73 apply (zenon_L17_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.73 apply (zenon_L230_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.73 apply (zenon_L38_); trivial. % 177.46/177.73 apply (zenon_L201_); trivial. % 177.46/177.73 (* end of lemma zenon_L231_ *) % 177.46/177.73 assert (zenon_L232_ : (~((op (e3) (e0)) = (op (op (e3) (e2)) (e0)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1c8 zenon_H9a. % 177.46/177.73 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.73 cut (((e3) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H9b]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H9b. apply sym_equal. exact zenon_H9a. % 177.46/177.73 apply zenon_H23. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L232_ *) % 177.46/177.73 assert (zenon_L233_ : (~((op (e3) (op (e2) (e0))) = (op (e3) (e3)))) -> ((op (e2) (e0)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1c9 zenon_H1c5. % 177.46/177.73 cut (((op (e2) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1ca]. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 exact (zenon_H1ca zenon_H1c5). % 177.46/177.73 (* end of lemma zenon_L233_ *) % 177.46/177.73 assert (zenon_L234_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e3) (e2)) = (e3)) -> ((op (e2) (e0)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hca zenon_H1b1 zenon_H9a zenon_H1c5. % 177.46/177.73 cut (((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) = ((op (e3) (e0)) = (op (e3) (e3)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_Hca. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H1b1. % 177.46/177.73 cut (((op (e3) (op (e2) (e0))) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c9]. % 177.46/177.73 cut (((op (op (e3) (e2)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cb]. % 177.46/177.73 congruence. % 177.46/177.73 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.73 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e2)) (e0)) = (op (e3) (e0)))). % 177.46/177.73 intro zenon_D_pnotp. % 177.46/177.73 apply zenon_H1cb. % 177.46/177.73 rewrite <- zenon_D_pnotp. % 177.46/177.73 exact zenon_H74. % 177.46/177.73 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.73 cut (((op (e3) (e0)) = (op (op (e3) (e2)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1c8]. % 177.46/177.73 congruence. % 177.46/177.73 apply (zenon_L232_); trivial. % 177.46/177.73 apply zenon_H75. apply refl_equal. % 177.46/177.73 apply zenon_H75. apply refl_equal. % 177.46/177.73 apply (zenon_L233_); trivial. % 177.46/177.73 (* end of lemma zenon_L234_ *) % 177.46/177.73 assert (zenon_L235_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e1)) = (e0)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (e2) (e0)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_Ha7 zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_H1c5. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.73 apply (zenon_L202_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.73 apply (zenon_L231_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.73 apply (zenon_L205_); trivial. % 177.46/177.73 apply (zenon_L234_); trivial. % 177.46/177.73 (* end of lemma zenon_L235_ *) % 177.46/177.73 assert (zenon_L236_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H71 zenon_H1c5 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.73 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.73 apply (zenon_L86_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.73 apply (zenon_L230_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.73 apply (zenon_L89_); trivial. % 177.46/177.73 apply (zenon_L92_); trivial. % 177.46/177.73 (* end of lemma zenon_L236_ *) % 177.46/177.73 assert (zenon_L237_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e2) (e0)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H1c5 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.73 apply (zenon_L235_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.73 apply (zenon_L82_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.73 apply (zenon_L163_); trivial. % 177.46/177.73 apply (zenon_L236_); trivial. % 177.46/177.73 (* end of lemma zenon_L237_ *) % 177.46/177.73 assert (zenon_L238_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H6f zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.46/177.73 apply (zenon_L193_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.46/177.73 apply (zenon_L194_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.46/177.73 apply (zenon_L196_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H1cc); [ zenon_intro zenon_H1af | zenon_intro zenon_H1cd ]. % 177.46/177.73 apply (zenon_L224_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H1cd); [ zenon_intro zenon_H1bc | zenon_intro zenon_H1ce ]. % 177.46/177.73 apply (zenon_L225_); trivial. % 177.46/177.73 apply (zenon_or_s _ _ zenon_H1ce); [ zenon_intro zenon_H1bf | zenon_intro zenon_H1c5 ]. % 177.46/177.73 apply (zenon_L228_); trivial. % 177.46/177.73 apply (zenon_L237_); trivial. % 177.46/177.73 (* end of lemma zenon_L238_ *) % 177.46/177.73 assert (zenon_L239_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.73 do 0 intro. intros zenon_H76 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.73 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.73 apply (zenon_L238_); trivial. % 177.46/177.73 (* end of lemma zenon_L239_ *) % 177.46/177.73 assert (zenon_L240_ : (~((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))) -> ((op (e3) (e3)) = (e3)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1cf zenon_H81. % 177.46/177.73 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.73 cut (((e3) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H88]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H88. apply sym_equal. exact zenon_H81. % 177.46/177.73 apply zenon_H23. apply refl_equal. % 177.46/177.73 (* end of lemma zenon_L240_ *) % 177.46/177.73 assert (zenon_L241_ : (~((op (e3) (op (e3) (e0))) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H1d0 zenon_H52. % 177.46/177.73 cut (((op (e3) (e0)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1d1]. % 177.46/177.73 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.73 congruence. % 177.46/177.73 apply zenon_H45. apply refl_equal. % 177.46/177.73 exact (zenon_H1d1 zenon_H52). % 177.46/177.73 (* end of lemma zenon_L241_ *) % 177.46/177.73 assert (zenon_L242_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.73 do 0 intro. intros zenon_H71 zenon_H1d2 zenon_H81 zenon_H52. % 177.46/177.73 cut (((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) = ((op (e3) (e0)) = (op (e3) (e1)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H71. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H1d2. % 177.46/177.74 cut (((op (e3) (op (e3) (e0))) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1d0]. % 177.46/177.74 cut (((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d3]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.74 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1d3. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H74. % 177.46/177.74 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.74 cut (((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cf]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L240_); trivial. % 177.46/177.74 apply zenon_H75. apply refl_equal. % 177.46/177.74 apply zenon_H75. apply refl_equal. % 177.46/177.74 apply (zenon_L241_); trivial. % 177.46/177.74 (* end of lemma zenon_L242_ *) % 177.46/177.74 assert (zenon_L243_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H89 zenon_H71 zenon_H1d2 zenon_H52. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.74 apply (zenon_L242_); trivial. % 177.46/177.74 (* end of lemma zenon_L243_ *) % 177.46/177.74 assert (zenon_L244_ : ((op (e3) (e2)) = (e1)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H62 zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_Ha7 zenon_H71 zenon_H1d2 zenon_H52. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L17_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L239_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L38_); trivial. % 177.46/177.74 apply (zenon_L243_); trivial. % 177.46/177.74 (* end of lemma zenon_L244_ *) % 177.46/177.74 assert (zenon_L245_ : ((op (e3) (e0)) = (e1)) -> ((op (e0) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H52 zenon_H79. % 177.46/177.74 apply (zenon_notand_s _ _ ax27); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H57 ]. % 177.46/177.74 apply zenon_H1d4. apply sym_equal. exact zenon_H79. % 177.46/177.74 apply zenon_H57. apply sym_equal. exact zenon_H52. % 177.46/177.74 (* end of lemma zenon_L245_ *) % 177.46/177.74 assert (zenon_L246_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H7c zenon_H52. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.74 apply (zenon_L245_); trivial. % 177.46/177.74 (* end of lemma zenon_L246_ *) % 177.46/177.74 assert (zenon_L247_ : ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hc4 zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H71 zenon_H1d2 zenon_H52. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L86_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L239_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L246_); trivial. % 177.46/177.74 apply (zenon_L243_); trivial. % 177.46/177.74 (* end of lemma zenon_L247_ *) % 177.46/177.74 assert (zenon_L248_ : ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hfe zenon_H104 zenon_H10b zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H1a2 zenon_H1aa zenon_H19e zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H27 zenon_Hda zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H126 zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H71 zenon_H1d2 zenon_H52. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L202_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L244_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L205_); trivial. % 177.46/177.74 apply (zenon_L42_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L163_); trivial. % 177.46/177.74 apply (zenon_L247_); trivial. % 177.46/177.74 (* end of lemma zenon_L248_ *) % 177.46/177.74 assert (zenon_L249_ : ((op (e3) (e0)) = (e2)) -> ((op (e0) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H59 zenon_H6f. % 177.46/177.74 apply (zenon_notand_s _ _ ax21); [ zenon_intro zenon_H1c7 | zenon_intro zenon_H5e ]. % 177.46/177.74 apply zenon_H1c7. apply sym_equal. exact zenon_H6f. % 177.46/177.74 apply zenon_H5e. apply sym_equal. exact zenon_H59. % 177.46/177.74 (* end of lemma zenon_L249_ *) % 177.46/177.74 assert (zenon_L250_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H76 zenon_H59. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.74 apply (zenon_L249_); trivial. % 177.46/177.74 (* end of lemma zenon_L250_ *) % 177.46/177.74 assert (zenon_L251_ : (~((op (e3) (op (e3) (e0))) = (op (e3) (e2)))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1d5 zenon_H59. % 177.46/177.74 cut (((op (e3) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1d6]. % 177.46/177.74 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H45. apply refl_equal. % 177.46/177.74 exact (zenon_H1d6 zenon_H59). % 177.46/177.74 (* end of lemma zenon_L251_ *) % 177.46/177.74 assert (zenon_L252_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e3)) = (e3)) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H7b zenon_H1d2 zenon_H81 zenon_H59. % 177.46/177.74 cut (((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) = ((op (e3) (e0)) = (op (e3) (e2)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H7b. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H1d2. % 177.46/177.74 cut (((op (e3) (op (e3) (e0))) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1d5]. % 177.46/177.74 cut (((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d3]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.46/177.74 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (op (e3) (e3)) (e0)) = (op (e3) (e0)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1d3. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H74. % 177.46/177.74 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.46/177.74 cut (((op (e3) (e0)) = (op (op (e3) (e3)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1cf]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L240_); trivial. % 177.46/177.74 apply zenon_H75. apply refl_equal. % 177.46/177.74 apply zenon_H75. apply refl_equal. % 177.46/177.74 apply (zenon_L251_); trivial. % 177.46/177.74 (* end of lemma zenon_L252_ *) % 177.46/177.74 assert (zenon_L253_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H89 zenon_H7b zenon_H1d2 zenon_H59. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.74 apply (zenon_L252_); trivial. % 177.46/177.74 (* end of lemma zenon_L253_ *) % 177.46/177.74 assert (zenon_L254_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Ha7 zenon_H7b zenon_H1d2 zenon_H59. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L199_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L250_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L38_); trivial. % 177.46/177.74 apply (zenon_L253_); trivial. % 177.46/177.74 (* end of lemma zenon_L254_ *) % 177.46/177.74 assert (zenon_L255_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H71 zenon_H59 zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L86_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L250_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L89_); trivial. % 177.46/177.74 apply (zenon_L92_); trivial. % 177.46/177.74 (* end of lemma zenon_L255_ *) % 177.46/177.74 assert (zenon_L256_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hd0 zenon_H1d2 zenon_H7b zenon_H1a9 zenon_H25 zenon_H19e zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_H71 zenon_H59 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_L254_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L103_); trivial. % 177.46/177.74 apply (zenon_L255_); trivial. % 177.46/177.74 (* end of lemma zenon_L256_ *) % 177.46/177.74 assert (zenon_L257_ : ((op (e3) (e2)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H62 zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L17_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L21_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L24_); trivial. % 177.46/177.74 apply (zenon_L201_); trivial. % 177.46/177.74 (* end of lemma zenon_L257_ *) % 177.46/177.74 assert (zenon_L258_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H6c zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L202_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L257_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L205_); trivial. % 177.46/177.74 apply (zenon_L210_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L163_); trivial. % 177.46/177.74 apply (zenon_L211_); trivial. % 177.46/177.74 (* end of lemma zenon_L258_ *) % 177.46/177.74 assert (zenon_L259_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.74 apply (zenon_L197_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.74 apply (zenon_L248_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.74 apply (zenon_L256_); trivial. % 177.46/177.74 apply (zenon_L258_); trivial. % 177.46/177.74 (* end of lemma zenon_L259_ *) % 177.46/177.74 assert (zenon_L260_ : ((op (e2) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H127 zenon_H71 zenon_Ha7 zenon_Hca zenon_H72 zenon_H6c. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L114_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L21_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L38_); trivial. % 177.46/177.74 apply (zenon_L62_); trivial. % 177.46/177.74 (* end of lemma zenon_L260_ *) % 177.46/177.74 assert (zenon_L261_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.74 do 0 intro. intros zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L93_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L257_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L205_); trivial. % 177.46/177.74 apply (zenon_L94_); trivial. % 177.46/177.74 (* end of lemma zenon_L261_ *) % 177.46/177.74 assert (zenon_L262_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_L260_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L103_); trivial. % 177.46/177.74 apply (zenon_L261_); trivial. % 177.46/177.74 (* end of lemma zenon_L262_ *) % 177.46/177.74 assert (zenon_L263_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_Hae zenon_H1a8 zenon_H12f zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_H58 zenon_H25 zenon_H1a9 zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.74 apply (zenon_L197_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.74 apply (zenon_L248_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.74 apply (zenon_L256_); trivial. % 177.46/177.74 apply (zenon_L262_); trivial. % 177.46/177.74 (* end of lemma zenon_L263_ *) % 177.46/177.74 assert (zenon_L264_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((op (e3) (e0)) = (e3)) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H6c zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L202_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L257_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L119_); trivial. % 177.46/177.74 apply (zenon_L42_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L163_); trivial. % 177.46/177.74 apply (zenon_L261_); trivial. % 177.46/177.74 (* end of lemma zenon_L264_ *) % 177.46/177.74 assert (zenon_L265_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e0)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_Hcf zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H1a8 zenon_H126 zenon_H10e zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_Hda zenon_H27 zenon_H1c3 zenon_H1b1 zenon_Hca zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.74 apply (zenon_L197_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.74 apply (zenon_L248_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.74 apply (zenon_L256_); trivial. % 177.46/177.74 apply (zenon_L264_); trivial. % 177.46/177.74 (* end of lemma zenon_L265_ *) % 177.46/177.74 assert (zenon_L266_ : (~((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1d7 zenon_H188. % 177.46/177.74 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.74 cut (((e1) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H18b]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H18b. apply sym_equal. exact zenon_H188. % 177.46/177.74 apply zenon_H45. apply refl_equal. % 177.46/177.74 (* end of lemma zenon_L266_ *) % 177.46/177.74 assert (zenon_L267_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e0)))) -> ((op (e0) (e3)) = (e0)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1d8 zenon_H27. % 177.46/177.74 cut (((op (e0) (e3)) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H1c2]. % 177.46/177.74 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H2e. apply refl_equal. % 177.46/177.74 exact (zenon_H1c2 zenon_H27). % 177.46/177.74 (* end of lemma zenon_L267_ *) % 177.46/177.74 assert (zenon_L268_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H194 zenon_H188 zenon_H27 zenon_He4. % 177.46/177.74 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.74 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_He4. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H54. % 177.46/177.74 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.74 cut (((op (e1) (e3)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H175]. % 177.46/177.74 congruence. % 177.46/177.74 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e0)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H175. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H194. % 177.46/177.74 cut (((op (e1) (op (e0) (e3))) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1d8]. % 177.46/177.74 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.74 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1d9. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H54. % 177.46/177.74 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.74 cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L266_); trivial. % 177.46/177.74 apply zenon_H55. apply refl_equal. % 177.46/177.74 apply zenon_H55. apply refl_equal. % 177.46/177.74 apply (zenon_L267_); trivial. % 177.46/177.74 apply zenon_H55. apply refl_equal. % 177.46/177.74 apply zenon_H55. apply refl_equal. % 177.46/177.74 (* end of lemma zenon_L268_ *) % 177.46/177.74 assert (zenon_L269_ : (~((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))) -> ((op (e1) (e1)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1da zenon_Ha5. % 177.46/177.74 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.74 cut (((e1) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H15d]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H15d. apply sym_equal. exact zenon_Ha5. % 177.46/177.74 apply zenon_H23. apply refl_equal. % 177.46/177.74 (* end of lemma zenon_L269_ *) % 177.46/177.74 assert (zenon_L270_ : (~((op (e1) (op (e1) (e0))) = (op (e1) (e2)))) -> ((op (e1) (e0)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1db zenon_H195. % 177.46/177.74 cut (((op (e1) (e0)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H1dc]. % 177.46/177.74 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H2e. apply refl_equal. % 177.46/177.74 exact (zenon_H1dc zenon_H195). % 177.46/177.74 (* end of lemma zenon_L270_ *) % 177.46/177.74 assert (zenon_L271_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e1) (e1)) = (e2)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H17c zenon_H25 zenon_He4 zenon_H31 zenon_H1a2 zenon_H19e zenon_H3a zenon_H13a zenon_Hd0 zenon_H51 zenon_Hc9 zenon_H58 zenon_H82 zenon_H104 zenon_Ha8. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.46/177.74 apply (zenon_L193_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.46/177.74 apply (zenon_L194_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.46/177.74 apply (zenon_L196_); trivial. % 177.46/177.74 apply (zenon_L164_); trivial. % 177.46/177.74 (* end of lemma zenon_L271_ *) % 177.46/177.74 assert (zenon_L272_ : (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e1) (e0)) = (e2)) -> ((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) -> (~((op (e1) (e0)) = (op (e1) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1dd zenon_H1a9 zenon_H195 zenon_H1de zenon_H1df zenon_H104 zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Hd0 zenon_H13a zenon_H3a zenon_H31 zenon_He4 zenon_H25 zenon_H17c zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ]. % 177.46/177.74 apply (zenon_L198_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ]. % 177.46/177.74 cut (((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) = ((op (e1) (e0)) = (op (e1) (e2)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1df. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H1de. % 177.46/177.74 cut (((op (e1) (op (e1) (e0))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H1db]. % 177.46/177.74 cut (((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1e2]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.74 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1e2. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_He9. % 177.46/177.74 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.74 cut (((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1da]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L269_); trivial. % 177.46/177.74 apply zenon_Hea. apply refl_equal. % 177.46/177.74 apply zenon_Hea. apply refl_equal. % 177.46/177.74 apply (zenon_L270_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ]. % 177.46/177.74 apply (zenon_L271_); trivial. % 177.46/177.74 apply (zenon_L200_); trivial. % 177.46/177.74 (* end of lemma zenon_L272_ *) % 177.46/177.74 assert (zenon_L273_ : (~((op (e1) (op (e1) (e0))) = (op (e1) (e3)))) -> ((op (e1) (e0)) = (e3)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1e3 zenon_H199. % 177.46/177.74 cut (((op (e1) (e0)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H1e4]. % 177.46/177.74 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H2e. apply refl_equal. % 177.46/177.74 exact (zenon_H1e4 zenon_H199). % 177.46/177.74 (* end of lemma zenon_L273_ *) % 177.46/177.74 assert (zenon_L274_ : (((op (e1) (e1)) = (e0))\/(((op (e1) (e1)) = (e1))\/(((op (e1) (e1)) = (e2))\/((op (e1) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e1) (e0)) = (e3)) -> ((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1dd zenon_H1a9 zenon_H199 zenon_H1de zenon_H104 zenon_H82 zenon_H58 zenon_Hc9 zenon_H51 zenon_Hd0 zenon_H13a zenon_H3a zenon_H31 zenon_He4 zenon_H25 zenon_H17c zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ]. % 177.46/177.74 apply (zenon_L198_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ]. % 177.46/177.74 cut (((op (op (e1) (e1)) (e0)) = (op (e1) (op (e1) (e0)))) = ((op (e1) (e0)) = (op (e1) (e3)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_He4. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H1de. % 177.46/177.74 cut (((op (e1) (op (e1) (e0))) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e3]. % 177.46/177.74 cut (((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1e2]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e1) (e0)) = (op (e1) (e0)))); [ zenon_intro zenon_He9 | zenon_intro zenon_Hea ]. % 177.46/177.74 cut (((op (e1) (e0)) = (op (e1) (e0))) = ((op (op (e1) (e1)) (e0)) = (op (e1) (e0)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1e2. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_He9. % 177.46/177.74 cut (((op (e1) (e0)) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_Hea]. % 177.46/177.74 cut (((op (e1) (e0)) = (op (op (e1) (e1)) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1da]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L269_); trivial. % 177.46/177.74 apply zenon_Hea. apply refl_equal. % 177.46/177.74 apply zenon_Hea. apply refl_equal. % 177.46/177.74 apply (zenon_L273_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ]. % 177.46/177.74 apply (zenon_L271_); trivial. % 177.46/177.74 apply (zenon_L200_); trivial. % 177.46/177.74 (* end of lemma zenon_L274_ *) % 177.46/177.74 assert (zenon_L275_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e2)) = (e0)) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Hb2 zenon_Ha7 zenon_H71 zenon_H1d2 zenon_H52. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L199_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L75_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L38_); trivial. % 177.46/177.74 apply (zenon_L243_); trivial. % 177.46/177.74 (* end of lemma zenon_L275_ *) % 177.46/177.74 assert (zenon_L276_ : (~((op (e2) (op (e0) (e3))) = (op (e2) (e1)))) -> ((op (e0) (e3)) = (e1)) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1e5 zenon_H32. % 177.46/177.74 cut (((op (e0) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1e6]. % 177.46/177.74 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.46/177.74 congruence. % 177.46/177.74 apply zenon_H37. apply refl_equal. % 177.46/177.74 exact (zenon_H1e6 zenon_H32). % 177.46/177.74 (* end of lemma zenon_L276_ *) % 177.46/177.74 assert (zenon_L277_ : ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e2) (e0)) = (e2)) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1c3 zenon_H1bf zenon_H32 zenon_H126. % 177.46/177.74 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.74 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e1)) = (op (e2) (e3)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H126. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H5b. % 177.46/177.74 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.74 cut (((op (e2) (e3)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H164]. % 177.46/177.74 congruence. % 177.46/177.74 cut (((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) = ((op (e2) (e3)) = (op (e2) (e1)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H164. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H1c3. % 177.46/177.74 cut (((op (e2) (op (e0) (e3))) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e5]. % 177.46/177.74 cut (((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1c4]. % 177.46/177.74 congruence. % 177.46/177.74 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.74 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e2) (e0)) (e3)) = (op (e2) (e3)))). % 177.46/177.74 intro zenon_D_pnotp. % 177.46/177.74 apply zenon_H1c4. % 177.46/177.74 rewrite <- zenon_D_pnotp. % 177.46/177.74 exact zenon_H5b. % 177.46/177.74 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.74 cut (((op (e2) (e3)) = (op (op (e2) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1be]. % 177.46/177.74 congruence. % 177.46/177.74 apply (zenon_L226_); trivial. % 177.46/177.74 apply zenon_H5c. apply refl_equal. % 177.46/177.74 apply zenon_H5c. apply refl_equal. % 177.46/177.74 apply (zenon_L276_); trivial. % 177.46/177.74 apply zenon_H5c. apply refl_equal. % 177.46/177.74 apply zenon_H5c. apply refl_equal. % 177.46/177.74 (* end of lemma zenon_L277_ *) % 177.46/177.74 assert (zenon_L278_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (e0) (e0)) = (e1)) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H6f zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.46/177.74 apply (zenon_L193_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.46/177.74 apply (zenon_L194_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.46/177.74 apply (zenon_L196_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1cc); [ zenon_intro zenon_H1af | zenon_intro zenon_H1cd ]. % 177.46/177.74 apply (zenon_L224_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1cd); [ zenon_intro zenon_H1bc | zenon_intro zenon_H1ce ]. % 177.46/177.74 apply (zenon_L225_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H1ce); [ zenon_intro zenon_H1bf | zenon_intro zenon_H1c5 ]. % 177.46/177.74 apply (zenon_L277_); trivial. % 177.46/177.74 apply (zenon_L237_); trivial. % 177.46/177.74 (* end of lemma zenon_L278_ *) % 177.46/177.74 assert (zenon_L279_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e1)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H76 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H9e zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H14c zenon_H3a zenon_H19e zenon_H1aa zenon_H1a2 zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.74 apply (zenon_L278_); trivial. % 177.46/177.74 (* end of lemma zenon_L279_ *) % 177.46/177.74 assert (zenon_L280_ : ((op (e3) (e2)) = (e1)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (e2) (unit)) = (e2)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (e3) (e0)) = (e1)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H62 zenon_H104 zenon_H10b zenon_H82 zenon_H71 zenon_H58 zenon_Hc9 zenon_H51 zenon_Haf zenon_H1a9 zenon_H25 zenon_H3a zenon_H14c zenon_Hca zenon_H1b1 zenon_Hd0 zenon_H1c3 zenon_H32 zenon_H126 zenon_H1bb zenon_H117 zenon_H7b zenon_H153 zenon_H136 zenon_H11d zenon_H11e zenon_H11b zenon_H10e zenon_H12f zenon_H1a8 zenon_Hae zenon_H9e zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H52 zenon_H1aa zenon_H19e zenon_H1a2. % 177.46/177.74 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.74 apply (zenon_L17_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.74 apply (zenon_L279_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.74 apply (zenon_L246_); trivial. % 177.46/177.74 apply (zenon_L201_); trivial. % 177.46/177.74 (* end of lemma zenon_L280_ *) % 177.46/177.74 assert (zenon_L281_ : ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e3) (e1)) = (e0)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1d2 zenon_H1a2 zenon_H1aa zenon_H52 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H10b zenon_H104 zenon_H19e zenon_H3a zenon_H14c zenon_H7b zenon_H82 zenon_Ha7 zenon_Hae zenon_H9e. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L275_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L280_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L205_); trivial. % 177.46/177.74 apply (zenon_L42_); trivial. % 177.46/177.74 (* end of lemma zenon_L281_ *) % 177.46/177.74 assert (zenon_L282_ : ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e1) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> ((op (e3) (e0)) = (e1)) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (unit)) = (e2)) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.74 do 0 intro. intros zenon_H1d2 zenon_Hfe zenon_H1a2 zenon_H1aa zenon_H52 zenon_H17c zenon_He4 zenon_H31 zenon_H13a zenon_H1cc zenon_Hae zenon_H1a8 zenon_H12f zenon_H10e zenon_H11b zenon_H11e zenon_H11d zenon_H136 zenon_H153 zenon_H7b zenon_H117 zenon_H1bb zenon_H126 zenon_H32 zenon_H1c3 zenon_Hd0 zenon_H1b1 zenon_Hca zenon_H25 zenon_H1a9 zenon_Haf zenon_H51 zenon_Hc9 zenon_H58 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.74 apply (zenon_L281_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.74 apply (zenon_L82_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.74 apply (zenon_L163_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.46/177.74 apply (zenon_L93_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.46/177.74 apply (zenon_L280_); trivial. % 177.46/177.74 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.46/177.74 apply (zenon_L205_); trivial. % 177.46/177.74 apply (zenon_L94_); trivial. % 177.46/177.74 (* end of lemma zenon_L282_ *) % 177.46/177.74 assert (zenon_L283_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e2) (unit)) = (e2)) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H9e zenon_H1b1 zenon_H1c3 zenon_H32 zenon_H126 zenon_H1bb zenon_H117 zenon_H153 zenon_H136 zenon_H10e zenon_H1a8 zenon_Hae zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H11d zenon_H11e zenon_H11b zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L197_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L282_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L256_); trivial. % 177.46/177.75 apply (zenon_L258_); trivial. % 177.46/177.75 (* end of lemma zenon_L283_ *) % 177.46/177.75 assert (zenon_L284_ : ((op (e0) (e3)) = (e1)) -> ((op (e3) (e3)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H32 zenon_H124. % 177.46/177.75 apply (zenon_notand_s _ _ ax26); [ zenon_intro zenon_H1e7 | zenon_intro zenon_H33 ]. % 177.46/177.75 apply zenon_H1e7. apply sym_equal. exact zenon_H124. % 177.46/177.75 apply zenon_H33. apply sym_equal. exact zenon_H32. % 177.46/177.75 (* end of lemma zenon_L284_ *) % 177.46/177.75 assert (zenon_L285_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> ((op (e0) (e3)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H7c zenon_H32. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.46/177.75 apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124. % 177.46/177.75 apply (zenon_L284_); trivial. % 177.46/177.75 (* end of lemma zenon_L285_ *) % 177.46/177.75 assert (zenon_L286_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H71 zenon_Hc4 zenon_H104 zenon_H32 zenon_H7b zenon_H1d2 zenon_H59. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L86_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L250_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L285_); trivial. % 177.46/177.75 apply (zenon_L253_); trivial. % 177.46/177.75 (* end of lemma zenon_L286_ *) % 177.46/177.75 assert (zenon_L287_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e3) (e0)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hd0 zenon_H1a9 zenon_H25 zenon_H19e zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H104 zenon_H32 zenon_H7b zenon_H1d2 zenon_H59. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L254_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L82_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L163_); trivial. % 177.46/177.75 apply (zenon_L286_); trivial. % 177.46/177.75 (* end of lemma zenon_L287_ *) % 177.46/177.75 assert (zenon_L288_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> ((op (op (e3) (e2)) (e0)) = (op (e3) (op (e2) (e0)))) -> ((op (op (e2) (e0)) (e3)) = (op (e2) (op (e0) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e0) (e0)) = (op (e2) (e0)))) -> (((op (e2) (e2)) = (e0))\/(((op (e2) (e2)) = (e1))\/(((op (e2) (e2)) = (e2))\/((op (e2) (e2)) = (e3))))) -> ((op (op (e2) (e2)) (e3)) = (op (e2) (op (e2) (e3)))) -> (((op (e2) (e3)) = (e0))\/(((op (e2) (e3)) = (e1))\/(((op (e2) (e3)) = (e2))\/((op (e2) (e3)) = (e3))))) -> ((op (e2) (unit)) = (e2)) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (((op (e2) (e0)) = (e0))\/(((op (e2) (e0)) = (e1))\/(((op (e2) (e0)) = (e2))\/((op (e2) (e0)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H1b1 zenon_H1c3 zenon_H126 zenon_H1bb zenon_H117 zenon_H153 zenon_H136 zenon_H10e zenon_H12f zenon_H1a8 zenon_Hae zenon_H1cc zenon_H13a zenon_H31 zenon_He4 zenon_H17c zenon_H1d2 zenon_H32 zenon_H58 zenon_H25 zenon_H1a9 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L197_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L282_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L287_); trivial. % 177.46/177.75 apply (zenon_L262_); trivial. % 177.46/177.75 (* end of lemma zenon_L288_ *) % 177.46/177.75 assert (zenon_L289_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e1)))) -> ((op (e0) (e3)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1e8 zenon_H32. % 177.46/177.75 cut (((op (e0) (e3)) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H1e6]. % 177.46/177.75 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H2e. apply refl_equal. % 177.46/177.75 exact (zenon_H1e6 zenon_H32). % 177.46/177.75 (* end of lemma zenon_L289_ *) % 177.46/177.75 assert (zenon_L290_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H194 zenon_H188 zenon_H32 zenon_H1a2. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e1)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1a2. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1ab]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e1)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1ab. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H194. % 177.46/177.75 cut (((op (e1) (op (e0) (e3))) = (op (e1) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1e8]. % 177.46/177.75 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1d9. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7]. % 177.46/177.75 congruence. % 177.46/177.75 apply (zenon_L266_); trivial. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply (zenon_L289_); trivial. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L290_ *) % 177.46/177.75 assert (zenon_L291_ : ((op (e0) (e3)) = (e2)) -> ((op (e3) (e3)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H3b zenon_Ha6. % 177.46/177.75 apply (zenon_notand_s _ _ ax20); [ zenon_intro zenon_H123 | zenon_intro zenon_H3c ]. % 177.46/177.75 apply zenon_H123. apply sym_equal. exact zenon_Ha6. % 177.46/177.75 apply zenon_H3c. apply sym_equal. exact zenon_H3b. % 177.46/177.75 (* end of lemma zenon_L291_ *) % 177.46/177.75 assert (zenon_L292_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> ((op (e0) (e3)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H76 zenon_H3b. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.75 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.46/177.75 apply (zenon_L291_); trivial. % 177.46/177.75 (* end of lemma zenon_L292_ *) % 177.46/177.75 assert (zenon_L293_ : (~((op (e0) (op (e3) (e3))) = (op (e0) (e3)))) -> ((op (e3) (e3)) = (e3)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1e9 zenon_H81. % 177.46/177.75 cut (((op (e3) (e3)) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H156]. % 177.46/177.75 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H23. apply refl_equal. % 177.46/177.75 exact (zenon_H156 zenon_H81). % 177.46/177.75 (* end of lemma zenon_L293_ *) % 177.46/177.75 assert (zenon_L294_ : ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1ea zenon_H3b zenon_H81 zenon_H1eb. % 177.46/177.75 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e0) (e3)) = (op (e2) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1eb. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H5b. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ec]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) = ((op (e2) (e3)) = (op (e0) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1ec. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H1ea. % 177.46/177.75 cut (((op (e0) (op (e3) (e3))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e9]. % 177.46/177.75 cut (((op (op (e0) (e3)) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ed]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (op (e0) (e3)) (e3)) = (op (e2) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1ed. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H5b. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ee]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.75 cut (((e2) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H3c]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H3c. apply sym_equal. exact zenon_H3b. % 177.46/177.75 apply zenon_H45. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply (zenon_L293_); trivial. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L294_ *) % 177.46/177.75 assert (zenon_L295_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H89 zenon_H1ea zenon_H3b zenon_H1eb. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.75 apply (zenon_L294_); trivial. % 177.46/177.75 (* end of lemma zenon_L295_ *) % 177.46/177.75 assert (zenon_L296_ : ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e3) (e1)) = (e0)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H19e zenon_H25 zenon_H1a9 zenon_Ha7 zenon_H1ea zenon_H3b zenon_H1eb. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L199_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L292_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L38_); trivial. % 177.46/177.75 apply (zenon_L295_); trivial. % 177.46/177.75 (* end of lemma zenon_L296_ *) % 177.46/177.75 assert (zenon_L297_ : (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> ((op (e3) (e1)) = (e3)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H71 zenon_H3b zenon_H82 zenon_H10b zenon_H104 zenon_Hc4. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L86_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L292_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L89_); trivial. % 177.46/177.75 apply (zenon_L92_); trivial. % 177.46/177.75 (* end of lemma zenon_L297_ *) % 177.46/177.75 assert (zenon_L298_ : (((op (e1) (e3)) = (e0))\/(((op (e1) (e3)) = (e1))\/(((op (e1) (e3)) = (e2))\/((op (e1) (e3)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H17c zenon_He4 zenon_H31 zenon_H1a2 zenon_H3a zenon_H13a zenon_Hd0 zenon_H1eb zenon_H1ea zenon_H1a9 zenon_H25 zenon_H19e zenon_H51 zenon_Hc9 zenon_H58 zenon_H71 zenon_H3b zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.46/177.75 apply (zenon_L193_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.46/177.75 apply (zenon_L194_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.46/177.75 apply (zenon_L196_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L296_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L82_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L163_); trivial. % 177.46/177.75 apply (zenon_L297_); trivial. % 177.46/177.75 (* end of lemma zenon_L298_ *) % 177.46/177.75 assert (zenon_L299_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> ((unit) = (e1)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (e2) (e3)) = (e0)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hca zenon_H12f zenon_H14c zenon_H3a zenon_H71 zenon_H72 zenon_H7b zenon_H1aa zenon_H1a2 zenon_Haf zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H19e zenon_H25 zenon_H1a9 zenon_H121 zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L197_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L13_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L14_); trivial. % 177.46/177.75 apply (zenon_L258_); trivial. % 177.46/177.75 (* end of lemma zenon_L299_ *) % 177.46/177.75 assert (zenon_L300_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> ((op (op (e3) (e3)) (e0)) = (op (e3) (op (e3) (e0)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_H25 zenon_H1a9 zenon_H1d2 zenon_Hd0 zenon_Hca zenon_H127 zenon_Hfe zenon_Hc9 zenon_H51 zenon_H11b zenon_H11e zenon_H11d zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L197_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L13_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L256_); trivial. % 177.46/177.75 apply (zenon_L262_); trivial. % 177.46/177.75 (* end of lemma zenon_L300_ *) % 177.46/177.75 assert (zenon_L301_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e1) (e0)) = (op (e3) (e0)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e3)) = (op (e3) (op (e2) (e3)))) -> ((op (e2) (e3)) = (e3)) -> ((op (unit) (e0)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e1)))) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e1) (e1)) = (op (e1) (e3)))) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> ((unit) = (e1)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e1) (e2)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H1a8 zenon_H47 zenon_H4a zenon_Hd0 zenon_Hae zenon_H12f zenon_H12d zenon_H25 zenon_H1a9 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_Haf zenon_H1a2 zenon_H1aa zenon_H7b zenon_H72 zenon_H19e zenon_H3a zenon_H14c zenon_H71 zenon_H9e zenon_H82 zenon_H10b zenon_H104. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L197_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L13_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L14_); trivial. % 177.46/177.75 apply (zenon_L264_); trivial. % 177.46/177.75 (* end of lemma zenon_L301_ *) % 177.46/177.75 assert (zenon_L302_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (e3) (e0)) = (e3)) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hd0 zenon_H6c zenon_H72 zenon_Hca zenon_H127 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H11e zenon_H188. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L260_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L82_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L163_); trivial. % 177.46/177.75 apply (zenon_L177_); trivial. % 177.46/177.75 (* end of lemma zenon_L302_ *) % 177.46/177.75 assert (zenon_L303_ : (((op (e3) (e0)) = (e0))\/(((op (e3) (e0)) = (e1))\/(((op (e3) (e0)) = (e2))\/((op (e3) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e3) (e3)))) -> ((op (e0) (e3)) = (e3)) -> ((op (op (e3) (e0)) (e3)) = (op (e3) (op (e0) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> ((op (op (e3) (e0)) (e0)) = (op (e3) (op (e0) (e0)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (e2) (e3)) = (e1)) -> (~((op (e1) (e3)) = (op (e3) (e3)))) -> ((op (e1) (e3)) = (e3)) -> ((op (op (e3) (e1)) (e3)) = (op (e3) (op (e1) (e3)))) -> (~((op (e2) (e3)) = (op (e3) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hcf zenon_H49 zenon_H47 zenon_H4a zenon_Hd0 zenon_H72 zenon_Hca zenon_H127 zenon_H51 zenon_Hfe zenon_Hc9 zenon_H58 zenon_H71 zenon_H11e zenon_H188. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.46/177.75 apply (zenon_L12_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.46/177.75 apply (zenon_L13_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.46/177.75 apply (zenon_L14_); trivial. % 177.46/177.75 apply (zenon_L302_); trivial. % 177.46/177.75 (* end of lemma zenon_L303_ *) % 177.46/177.75 assert (zenon_L304_ : (~((op (e2) (e0)) = (op (unit) (e0)))) -> ((unit) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1ef zenon_H1f0. % 177.46/177.75 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.46/177.75 cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H1f1. apply sym_equal. exact zenon_H1f0. % 177.46/177.75 apply zenon_H23. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L304_ *) % 177.46/177.75 assert (zenon_L305_ : (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e0)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H10d zenon_H25 zenon_H1f0 zenon_H63. % 177.46/177.75 cut (((op (unit) (e0)) = (e0)) = ((op (e2) (e0)) = (op (e2) (e2)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H10d. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H25. % 177.46/177.75 cut (((e0) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H65]. % 177.46/177.75 cut (((op (unit) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1f2]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e2) (e0)) = (op (e2) (e0)))); [ zenon_intro zenon_H112 | zenon_intro zenon_H113 ]. % 177.46/177.75 cut (((op (e2) (e0)) = (op (e2) (e0))) = ((op (unit) (e0)) = (op (e2) (e0)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f2. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H112. % 177.46/177.75 cut (((op (e2) (e0)) = (op (e2) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H113]. % 177.46/177.75 cut (((op (e2) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H1ef]. % 177.46/177.75 congruence. % 177.46/177.75 apply (zenon_L304_); trivial. % 177.46/177.75 apply zenon_H113. apply refl_equal. % 177.46/177.75 apply zenon_H113. apply refl_equal. % 177.46/177.75 apply zenon_H65. apply sym_equal. exact zenon_H63. % 177.46/177.75 (* end of lemma zenon_L305_ *) % 177.46/177.75 assert (zenon_L306_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H66 zenon_H10d zenon_H25 zenon_H1f0. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.46/177.75 apply (zenon_L305_); trivial. % 177.46/177.75 (* end of lemma zenon_L306_ *) % 177.46/177.75 assert (zenon_L307_ : (~((op (e2) (e1)) = (op (unit) (e1)))) -> ((unit) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1f3 zenon_H1f0. % 177.46/177.75 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.75 cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H1f1. apply sym_equal. exact zenon_H1f0. % 177.46/177.75 apply zenon_H2e. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L307_ *) % 177.46/177.75 assert (zenon_L308_ : (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1f4 zenon_H31 zenon_H1f0 zenon_Ha2. % 177.46/177.75 cut (((op (unit) (e1)) = (e1)) = ((op (e2) (e1)) = (op (e2) (e2)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f4. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H31. % 177.46/177.75 cut (((e1) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hf7]. % 177.46/177.75 cut (((op (unit) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f5]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.75 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (unit) (e1)) = (op (e2) (e1)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f5. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H95. % 177.46/177.75 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.75 cut (((op (e2) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f3]. % 177.46/177.75 congruence. % 177.46/177.75 apply (zenon_L307_); trivial. % 177.46/177.75 apply zenon_H96. apply refl_equal. % 177.46/177.75 apply zenon_H96. apply refl_equal. % 177.46/177.75 apply zenon_Hf7. apply sym_equal. exact zenon_Ha2. % 177.46/177.75 (* end of lemma zenon_L308_ *) % 177.46/177.75 assert (zenon_L309_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H76 zenon_H1f4 zenon_H31 zenon_H1f0. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.46/177.75 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.46/177.75 apply (zenon_L308_); trivial. % 177.46/177.75 (* end of lemma zenon_L309_ *) % 177.46/177.75 assert (zenon_L310_ : ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> ((op (e2) (e2)) = (e3)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1aa zenon_H1f0 zenon_H8e zenon_H16e. % 177.46/177.75 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (e2) (e2)) = (op (e2) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H16e. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H5b. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H185]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((op (unit) (e3)) = (e3)) = ((op (e2) (e3)) = (op (e2) (e2)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H185. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H1aa. % 177.46/177.75 cut (((e3) = (op (e2) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H116]. % 177.46/177.75 cut (((op (unit) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1f6]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e2) (e3)) = (op (e2) (e3)))); [ zenon_intro zenon_H5b | zenon_intro zenon_H5c ]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3))) = ((op (unit) (e3)) = (op (e2) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f6. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H5b. % 177.46/177.75 cut (((op (e2) (e3)) = (op (e2) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H5c]. % 177.46/177.75 cut (((op (e2) (e3)) = (op (unit) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1f7]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.75 cut (((e2) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H1f1]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H1f1. apply sym_equal. exact zenon_H1f0. % 177.46/177.75 apply zenon_H45. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply zenon_H116. apply sym_equal. exact zenon_H8e. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 apply zenon_H5c. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L310_ *) % 177.46/177.75 assert (zenon_L311_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H89 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.75 apply (zenon_L310_); trivial. % 177.46/177.75 (* end of lemma zenon_L311_ *) % 177.46/177.75 assert (zenon_L312_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_Ha7 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L306_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L38_); trivial. % 177.46/177.75 apply (zenon_L311_); trivial. % 177.46/177.75 (* end of lemma zenon_L312_ *) % 177.46/177.75 assert (zenon_L313_ : (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> ((op (e3) (e1)) = (e1)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H91 zenon_H31 zenon_H1f0 zenon_Hb7. % 177.46/177.75 cut (((op (unit) (e1)) = (e1)) = ((op (e2) (e1)) = (op (e3) (e1)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H91. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H31. % 177.46/177.75 cut (((e1) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hb8]. % 177.46/177.75 cut (((op (unit) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f5]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e2) (e1)) = (op (e2) (e1)))); [ zenon_intro zenon_H95 | zenon_intro zenon_H96 ]. % 177.46/177.75 cut (((op (e2) (e1)) = (op (e2) (e1))) = ((op (unit) (e1)) = (op (e2) (e1)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f5. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H95. % 177.46/177.75 cut (((op (e2) (e1)) = (op (e2) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H96]. % 177.46/177.75 cut (((op (e2) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H1f3]. % 177.46/177.75 congruence. % 177.46/177.75 apply (zenon_L307_); trivial. % 177.46/177.75 apply zenon_H96. apply refl_equal. % 177.46/177.75 apply zenon_H96. apply refl_equal. % 177.46/177.75 apply zenon_Hb8. apply sym_equal. exact zenon_Hb7. % 177.46/177.75 (* end of lemma zenon_L313_ *) % 177.46/177.75 assert (zenon_L314_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_Hc4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L306_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L89_); trivial. % 177.46/177.75 apply (zenon_L311_); trivial. % 177.46/177.75 (* end of lemma zenon_L314_ *) % 177.46/177.75 assert (zenon_L315_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H11b zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L312_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L313_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L103_); trivial. % 177.46/177.75 apply (zenon_L314_); trivial. % 177.46/177.75 (* end of lemma zenon_L315_ *) % 177.46/177.75 assert (zenon_L316_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> ((op (e1) (e0)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1f8 zenon_H79 zenon_H195. % 177.46/177.75 cut (((op (e0) (e0)) = (e2)) = ((op (e0) (e0)) = (op (e1) (e0)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1f8. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H79. % 177.46/177.75 cut (((e2) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H198]. % 177.46/177.75 cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H2b. apply refl_equal. % 177.46/177.75 apply zenon_H198. apply sym_equal. exact zenon_H195. % 177.46/177.75 (* end of lemma zenon_L316_ *) % 177.46/177.75 assert (zenon_L317_ : ((op (e1) (e0)) = (e3)) -> ((op (e0) (e0)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H199 zenon_H79. % 177.46/177.75 apply (zenon_notand_s _ _ ax29); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H19c ]. % 177.46/177.75 apply zenon_H1d4. apply sym_equal. exact zenon_H79. % 177.46/177.75 apply zenon_H19c. apply sym_equal. exact zenon_H199. % 177.46/177.75 (* end of lemma zenon_L317_ *) % 177.46/177.75 assert (zenon_L318_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((unit) = (e2)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1f9 zenon_H16e zenon_H1f0 zenon_H1aa zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_He4 zenon_H27 zenon_H194 zenon_H1f8 zenon_H79. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.46/177.75 apply (zenon_L315_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.46/177.75 apply (zenon_L268_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.46/177.75 apply (zenon_L316_); trivial. % 177.46/177.75 apply (zenon_L317_); trivial. % 177.46/177.75 (* end of lemma zenon_L318_ *) % 177.46/177.75 assert (zenon_L319_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> ((unit) = (e2)) -> ((op (unit) (e3)) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e0)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H7c zenon_H1f9 zenon_H16e zenon_H1f0 zenon_H1aa zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_He4 zenon_H27 zenon_H194 zenon_H1f8. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.46/177.75 apply (zenon_L318_); trivial. % 177.46/177.75 (* end of lemma zenon_L319_ *) % 177.46/177.75 assert (zenon_L320_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e0) (e3)) = (e0)) -> (~((op (e1) (e0)) = (op (e1) (e3)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1f8 zenon_H194 zenon_H27 zenon_He4 zenon_Hd0 zenon_H91 zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1f9 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L306_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L319_); trivial. % 177.46/177.75 apply (zenon_L311_); trivial. % 177.46/177.75 (* end of lemma zenon_L320_ *) % 177.46/177.75 assert (zenon_L321_ : ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (e3) (e3)) = (e3)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H1ea zenon_H32 zenon_H81 zenon_H1fc. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e0) (e3)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1fc. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1fd]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) = ((op (e1) (e3)) = (op (e0) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1fd. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H1ea. % 177.46/177.75 cut (((op (e0) (op (e3) (e3))) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e9]. % 177.46/177.75 cut (((op (op (e0) (e3)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1fe]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e0) (e3)) (e3)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1fe. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (op (e0) (e3)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1ff]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((e3) = (e3))); [idtac | apply NNPP; zenon_intro zenon_H45]. % 177.46/177.75 cut (((e1) = (op (e0) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H33]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H33. apply sym_equal. exact zenon_H32. % 177.46/177.75 apply zenon_H45. apply refl_equal. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply (zenon_L293_); trivial. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 apply zenon_H55. apply refl_equal. % 177.46/177.75 (* end of lemma zenon_L321_ *) % 177.46/177.75 assert (zenon_L322_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H89 zenon_H1ea zenon_H32 zenon_H1fc. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8a). zenon_intro zenon_H8d. zenon_intro zenon_H8c. % 177.46/177.75 apply (zenon_and_s _ _ zenon_H8c). zenon_intro zenon_H8e. zenon_intro zenon_H81. % 177.46/177.75 apply (zenon_L321_); trivial. % 177.46/177.75 (* end of lemma zenon_L322_ *) % 177.46/177.75 assert (zenon_L323_ : ((op (e3) (e1)) = (e2)) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e1)) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hb9 zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H1ea zenon_H32 zenon_H1fc. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L46_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L285_); trivial. % 177.46/177.75 apply (zenon_L322_); trivial. % 177.46/177.75 (* end of lemma zenon_L323_ *) % 177.46/177.75 assert (zenon_L324_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (~((op (e0) (e3)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e1)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H1fc zenon_H32 zenon_H1ea zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L312_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L313_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L323_); trivial. % 177.46/177.75 apply (zenon_L314_); trivial. % 177.46/177.75 (* end of lemma zenon_L324_ *) % 177.46/177.75 assert (zenon_L325_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e0)) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_Ha7 zenon_H1ea zenon_H3b zenon_H1eb. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L306_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L38_); trivial. % 177.46/177.75 apply (zenon_L295_); trivial. % 177.46/177.75 (* end of lemma zenon_L325_ *) % 177.46/177.75 assert (zenon_L326_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e1)) = (e3)) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_Hc4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb. % 177.46/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.46/177.75 apply (zenon_L306_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.46/177.75 apply (zenon_L309_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.46/177.75 apply (zenon_L89_); trivial. % 177.46/177.75 apply (zenon_L295_); trivial. % 177.46/177.75 (* end of lemma zenon_L326_ *) % 177.46/177.75 assert (zenon_L327_ : (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (e1) (e0)) = (e0)) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_Hd0 zenon_H91 zenon_H11b zenon_H11e zenon_H11d zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.46/177.75 apply (zenon_L325_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.46/177.75 apply (zenon_L313_); trivial. % 177.46/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.46/177.75 apply (zenon_L103_); trivial. % 177.46/177.75 apply (zenon_L326_); trivial. % 177.46/177.75 (* end of lemma zenon_L327_ *) % 177.46/177.75 assert (zenon_L328_ : (~((op (e1) (op (e0) (e3))) = (op (e1) (e2)))) -> ((op (e0) (e3)) = (e2)) -> False). % 177.46/177.75 do 0 intro. intros zenon_H200 zenon_H3b. % 177.46/177.75 cut (((op (e0) (e3)) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H201]. % 177.46/177.75 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.46/177.75 congruence. % 177.46/177.75 apply zenon_H2e. apply refl_equal. % 177.46/177.75 exact (zenon_H201 zenon_H3b). % 177.46/177.75 (* end of lemma zenon_L328_ *) % 177.46/177.75 assert (zenon_L329_ : ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> ((op (e1) (e0)) = (e1)) -> ((op (e0) (e3)) = (e2)) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> False). % 177.46/177.75 do 0 intro. intros zenon_H194 zenon_H188 zenon_H3b zenon_H13a. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (e1) (e2)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H13a. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H160]. % 177.46/177.75 congruence. % 177.46/177.75 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) = ((op (e1) (e3)) = (op (e1) (e2)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H160. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H194. % 177.46/177.75 cut (((op (e1) (op (e0) (e3))) = (op (e1) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H200]. % 177.46/177.75 cut (((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d9]. % 177.46/177.75 congruence. % 177.46/177.75 elim (classic ((op (e1) (e3)) = (op (e1) (e3)))); [ zenon_intro zenon_H54 | zenon_intro zenon_H55 ]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3))) = ((op (op (e1) (e0)) (e3)) = (op (e1) (e3)))). % 177.46/177.75 intro zenon_D_pnotp. % 177.46/177.75 apply zenon_H1d9. % 177.46/177.75 rewrite <- zenon_D_pnotp. % 177.46/177.75 exact zenon_H54. % 177.46/177.75 cut (((op (e1) (e3)) = (op (e1) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H55]. % 177.46/177.75 cut (((op (e1) (e3)) = (op (op (e1) (e0)) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1d7]. % 177.56/177.75 congruence. % 177.56/177.75 apply (zenon_L266_); trivial. % 177.56/177.75 apply zenon_H55. apply refl_equal. % 177.56/177.75 apply zenon_H55. apply refl_equal. % 177.56/177.75 apply (zenon_L328_); trivial. % 177.56/177.75 apply zenon_H55. apply refl_equal. % 177.56/177.75 apply zenon_H55. apply refl_equal. % 177.56/177.75 (* end of lemma zenon_L329_ *) % 177.56/177.75 assert (zenon_L330_ : (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H1f9 zenon_H1eb zenon_H1ea zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H1f0 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H3b zenon_H194 zenon_H1f8 zenon_H79. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_L327_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_L329_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L316_); trivial. % 177.56/177.75 apply (zenon_L317_); trivial. % 177.56/177.75 (* end of lemma zenon_L330_ *) % 177.56/177.75 assert (zenon_L331_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e2)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (e0) (e3)) = (e2)) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> False). % 177.56/177.75 do 0 intro. intros zenon_H7c zenon_H1f9 zenon_H1eb zenon_H1ea zenon_H82 zenon_H104 zenon_H1f4 zenon_H31 zenon_H1f0 zenon_H10d zenon_H25 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H3b zenon_H194 zenon_H1f8. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.56/177.75 apply (zenon_L330_); trivial. % 177.56/177.75 (* end of lemma zenon_L331_ *) % 177.56/177.75 assert (zenon_L332_ : ((op (op (e3) (e3)) (e1)) = (op (e3) (op (e3) (e1)))) -> (((op (e1) (e0)) = (e0))\/(((op (e1) (e0)) = (e1))\/(((op (e1) (e0)) = (e2))\/((op (e1) (e0)) = (e3))))) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> ((op (op (e3) (e1)) (e0)) = (op (e3) (op (e1) (e0)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> (((op (e3) (e1)) = (e0))\/(((op (e3) (e1)) = (e1))\/(((op (e3) (e1)) = (e2))\/((op (e3) (e1)) = (e3))))) -> (~((op (e1) (e2)) = (op (e1) (e3)))) -> ((op (op (e1) (e0)) (e3)) = (op (e1) (op (e0) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((unit) = (e2)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (op (e3) (e1)) (e1)) = (op (e3) (op (e1) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (op (e0) (e3)) (e3)) = (op (e0) (op (e3) (e3)))) -> ((op (e0) (e3)) = (e2)) -> (~((op (e0) (e3)) = (op (e2) (e3)))) -> False). % 177.56/177.75 do 0 intro. intros zenon_Hbe zenon_H1f9 zenon_H11d zenon_H11e zenon_H91 zenon_Hd0 zenon_H13a zenon_H194 zenon_H1f8 zenon_H25 zenon_H10d zenon_H1f0 zenon_H31 zenon_H1f4 zenon_H104 zenon_H82 zenon_H1ea zenon_H3b zenon_H1eb. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd0); [ zenon_intro zenon_Ha7 | zenon_intro zenon_Hd3 ]. % 177.56/177.75 apply (zenon_L325_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd3); [ zenon_intro zenon_Hb7 | zenon_intro zenon_Hd4 ]. % 177.56/177.75 apply (zenon_L313_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd4); [ zenon_intro zenon_Hb9 | zenon_intro zenon_Hc4 ]. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L306_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L309_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L331_); trivial. % 177.56/177.75 apply (zenon_L49_); trivial. % 177.56/177.75 apply (zenon_L326_); trivial. % 177.56/177.75 (* end of lemma zenon_L332_ *) % 177.56/177.75 assert (zenon_L333_ : ((op (unit) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e2) (e2)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e2) (e1)) = (op (e2) (e2)))) -> ((op (e3) (e0)) = (e1)) -> ((op (unit) (e3)) = (e3)) -> ((unit) = (e2)) -> (~((op (e2) (e2)) = (op (e2) (e3)))) -> False). % 177.56/177.75 do 0 intro. intros zenon_H25 zenon_H10d zenon_H31 zenon_H1f4 zenon_H52 zenon_H1aa zenon_H1f0 zenon_H16e. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L306_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L309_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L246_); trivial. % 177.56/177.75 apply (zenon_L311_); trivial. % 177.56/177.75 (* end of lemma zenon_L333_ *) % 177.56/177.75 assert (zenon_L334_ : (~((op (e3) (e0)) = (op (unit) (e0)))) -> ((unit) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H202 zenon_H203. % 177.56/177.75 cut (((e0) = (e0))); [idtac | apply NNPP; zenon_intro zenon_H23]. % 177.56/177.75 cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204]. % 177.56/177.75 congruence. % 177.56/177.75 apply zenon_H204. apply sym_equal. exact zenon_H203. % 177.56/177.75 apply zenon_H23. apply refl_equal. % 177.56/177.75 (* end of lemma zenon_L334_ *) % 177.56/177.75 assert (zenon_L335_ : (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e0)) -> False). % 177.56/177.75 do 0 intro. intros zenon_Hca zenon_H25 zenon_H203 zenon_H6a. % 177.56/177.75 cut (((op (unit) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e3)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_Hca. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H25. % 177.56/177.75 cut (((e0) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H129]. % 177.56/177.75 cut (((op (unit) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H205]. % 177.56/177.75 congruence. % 177.56/177.75 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.56/177.75 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (unit) (e0)) = (op (e3) (e0)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H205. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H74. % 177.56/177.75 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.56/177.75 cut (((op (e3) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H202]. % 177.56/177.75 congruence. % 177.56/177.75 apply (zenon_L334_); trivial. % 177.56/177.75 apply zenon_H75. apply refl_equal. % 177.56/177.75 apply zenon_H75. apply refl_equal. % 177.56/177.75 apply zenon_H129. apply sym_equal. exact zenon_H6a. % 177.56/177.75 (* end of lemma zenon_L335_ *) % 177.56/177.75 assert (zenon_L336_ : (((op (e0) (e0)) = (e0))/\(((op (e1) (e1)) = (e0))/\(((op (e2) (e2)) = (e0))/\((op (e3) (e3)) = (e0))))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H66 zenon_Hca zenon_H25 zenon_H203. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H66). zenon_intro zenon_H68. zenon_intro zenon_H67. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H67). zenon_intro zenon_H41. zenon_intro zenon_H69. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H69). zenon_intro zenon_H63. zenon_intro zenon_H6a. % 177.56/177.75 apply (zenon_L335_); trivial. % 177.56/177.75 (* end of lemma zenon_L336_ *) % 177.56/177.75 assert (zenon_L337_ : (~((op (e3) (e1)) = (op (unit) (e1)))) -> ((unit) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H206 zenon_H203. % 177.56/177.75 cut (((e1) = (e1))); [idtac | apply NNPP; zenon_intro zenon_H2e]. % 177.56/177.75 cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204]. % 177.56/177.75 congruence. % 177.56/177.75 apply zenon_H204. apply sym_equal. exact zenon_H203. % 177.56/177.75 apply zenon_H2e. apply refl_equal. % 177.56/177.75 (* end of lemma zenon_L337_ *) % 177.56/177.75 assert (zenon_L338_ : (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e1)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H10b zenon_H31 zenon_H203 zenon_Ha6. % 177.56/177.75 cut (((op (unit) (e1)) = (e1)) = ((op (e3) (e1)) = (op (e3) (e3)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H10b. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H31. % 177.56/177.75 cut (((e1) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H123]. % 177.56/177.75 cut (((op (unit) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H207]. % 177.56/177.75 congruence. % 177.56/177.75 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.56/177.75 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (unit) (e1)) = (op (e3) (e1)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H207. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_Hc0. % 177.56/177.75 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.56/177.75 cut (((op (e3) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H206]. % 177.56/177.75 congruence. % 177.56/177.75 apply (zenon_L337_); trivial. % 177.56/177.75 apply zenon_Hc1. apply refl_equal. % 177.56/177.75 apply zenon_Hc1. apply refl_equal. % 177.56/177.75 apply zenon_H123. apply sym_equal. exact zenon_Ha6. % 177.56/177.75 (* end of lemma zenon_L338_ *) % 177.56/177.75 assert (zenon_L339_ : (((op (e0) (e0)) = (e1))/\(((op (e1) (e1)) = (e1))/\(((op (e2) (e2)) = (e1))/\((op (e3) (e3)) = (e1))))) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H76 zenon_H10b zenon_H31 zenon_H203. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H76). zenon_intro zenon_H6f. zenon_intro zenon_H77. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H77). zenon_intro zenon_Ha5. zenon_intro zenon_Ha4. % 177.56/177.75 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha2. zenon_intro zenon_Ha6. % 177.56/177.75 apply (zenon_L338_); trivial. % 177.56/177.75 (* end of lemma zenon_L339_ *) % 177.56/177.75 assert (zenon_L340_ : (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> ((op (e3) (e3)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_Hae zenon_H3a zenon_H203 zenon_H124. % 177.56/177.75 cut (((op (unit) (e2)) = (e2)) = ((op (e3) (e2)) = (op (e3) (e3)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_Hae. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H3a. % 177.56/177.75 cut (((e2) = (op (e3) (e3)))); [idtac | apply NNPP; zenon_intro zenon_H1e7]. % 177.56/177.75 cut (((op (unit) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H208]. % 177.56/177.75 congruence. % 177.56/177.75 elim (classic ((op (e3) (e2)) = (op (e3) (e2)))); [ zenon_intro zenon_H83 | zenon_intro zenon_H84 ]. % 177.56/177.75 cut (((op (e3) (e2)) = (op (e3) (e2))) = ((op (unit) (e2)) = (op (e3) (e2)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H208. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H83. % 177.56/177.75 cut (((op (e3) (e2)) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H84]. % 177.56/177.75 cut (((op (e3) (e2)) = (op (unit) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H209]. % 177.56/177.75 congruence. % 177.56/177.75 cut (((e2) = (e2))); [idtac | apply NNPP; zenon_intro zenon_H37]. % 177.56/177.75 cut (((e3) = (unit))); [idtac | apply NNPP; zenon_intro zenon_H204]. % 177.56/177.75 congruence. % 177.56/177.75 apply zenon_H204. apply sym_equal. exact zenon_H203. % 177.56/177.75 apply zenon_H37. apply refl_equal. % 177.56/177.75 apply zenon_H84. apply refl_equal. % 177.56/177.75 apply zenon_H84. apply refl_equal. % 177.56/177.75 apply zenon_H1e7. apply sym_equal. exact zenon_H124. % 177.56/177.75 (* end of lemma zenon_L340_ *) % 177.56/177.75 assert (zenon_L341_ : (((op (e0) (e0)) = (e2))/\(((op (e1) (e1)) = (e2))/\(((op (e2) (e2)) = (e2))/\((op (e3) (e3)) = (e2))))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H7c zenon_Hae zenon_H3a zenon_H203. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H7c). zenon_intro zenon_H79. zenon_intro zenon_H7d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H7d). zenon_intro zenon_Ha8. zenon_intro zenon_Hab. % 177.56/177.75 apply (zenon_and_s _ _ zenon_Hab). zenon_intro zenon_H10f. zenon_intro zenon_H124. % 177.56/177.75 apply (zenon_L340_); trivial. % 177.56/177.75 (* end of lemma zenon_L341_ *) % 177.56/177.75 assert (zenon_L342_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e2) (e1)) = (e0)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H42. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L336_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L77_); trivial. % 177.56/177.75 (* end of lemma zenon_L342_ *) % 177.56/177.75 assert (zenon_L343_ : (~((op (e3) (e0)) = (op (e3) (e2)))) -> ((op (unit) (e0)) = (e0)) -> ((unit) = (e3)) -> ((op (e3) (e2)) = (e0)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H7b zenon_H25 zenon_H203 zenon_Hb2. % 177.56/177.75 cut (((op (unit) (e0)) = (e0)) = ((op (e3) (e0)) = (op (e3) (e2)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H7b. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H25. % 177.56/177.75 cut (((e0) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_Hb5]. % 177.56/177.75 cut (((op (unit) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H205]. % 177.56/177.75 congruence. % 177.56/177.75 elim (classic ((op (e3) (e0)) = (op (e3) (e0)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 177.56/177.75 cut (((op (e3) (e0)) = (op (e3) (e0))) = ((op (unit) (e0)) = (op (e3) (e0)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H205. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H74. % 177.56/177.75 cut (((op (e3) (e0)) = (op (e3) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H75]. % 177.56/177.75 cut (((op (e3) (e0)) = (op (unit) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H202]. % 177.56/177.75 congruence. % 177.56/177.75 apply (zenon_L334_); trivial. % 177.56/177.75 apply zenon_H75. apply refl_equal. % 177.56/177.75 apply zenon_H75. apply refl_equal. % 177.56/177.75 apply zenon_Hb5. apply sym_equal. exact zenon_Hb2. % 177.56/177.75 (* end of lemma zenon_L343_ *) % 177.56/177.75 assert (zenon_L344_ : (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (unit) (e1)) = (e1)) -> ((unit) = (e3)) -> ((op (e3) (e2)) = (e1)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H82 zenon_H31 zenon_H203 zenon_H62. % 177.56/177.75 cut (((op (unit) (e1)) = (e1)) = ((op (e3) (e1)) = (op (e3) (e2)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H82. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H31. % 177.56/177.75 cut (((e1) = (op (e3) (e2)))); [idtac | apply NNPP; zenon_intro zenon_H64]. % 177.56/177.75 cut (((op (unit) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H207]. % 177.56/177.75 congruence. % 177.56/177.75 elim (classic ((op (e3) (e1)) = (op (e3) (e1)))); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hc1 ]. % 177.56/177.75 cut (((op (e3) (e1)) = (op (e3) (e1))) = ((op (unit) (e1)) = (op (e3) (e1)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H207. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_Hc0. % 177.56/177.75 cut (((op (e3) (e1)) = (op (e3) (e1)))); [idtac | apply NNPP; zenon_intro zenon_Hc1]. % 177.56/177.75 cut (((op (e3) (e1)) = (op (unit) (e1)))); [idtac | apply NNPP; zenon_intro zenon_H206]. % 177.56/177.75 congruence. % 177.56/177.75 apply (zenon_L337_); trivial. % 177.56/177.75 apply zenon_Hc1. apply refl_equal. % 177.56/177.75 apply zenon_Hc1. apply refl_equal. % 177.56/177.75 apply zenon_H64. apply sym_equal. exact zenon_H62. % 177.56/177.75 (* end of lemma zenon_L344_ *) % 177.56/177.75 assert (zenon_L345_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> ((op (e3) (e2)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H9e zenon_H9a. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L336_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L41_); trivial. % 177.56/177.75 (* end of lemma zenon_L345_ *) % 177.56/177.75 assert (zenon_L346_ : (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> ((op (e2) (e1)) = (e1)) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> False). % 177.56/177.75 do 0 intro. intros zenon_Haf zenon_H7b zenon_H82 zenon_H60 zenon_H92 zenon_H91 zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H9e. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Haf); [ zenon_intro zenon_Hb2 | zenon_intro zenon_Hb1 ]. % 177.56/177.75 apply (zenon_L343_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hb1); [ zenon_intro zenon_H62 | zenon_intro zenon_Hb6 ]. % 177.56/177.75 apply (zenon_L344_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hb6); [ zenon_intro zenon_H93 | zenon_intro zenon_H9a ]. % 177.56/177.75 apply (zenon_L29_); trivial. % 177.56/177.75 apply (zenon_L345_); trivial. % 177.56/177.75 (* end of lemma zenon_L346_ *) % 177.56/177.75 assert (zenon_L347_ : ((op (unit) (e0)) = (e0)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> ((op (e2) (e1)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H25 zenon_Hca zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H126 zenon_Hf3 zenon_Hd6. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L336_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L112_); trivial. % 177.56/177.75 (* end of lemma zenon_L347_ *) % 177.56/177.75 assert (zenon_L348_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (unit) (e2)) = (e2)) -> ((unit) = (e3)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (op (e2) (e1)) (e0)) = (op (e2) (op (e1) (e0)))) -> ((op (e1) (e0)) = (e0)) -> (~((op (e2) (e0)) = (op (e3) (e0)))) -> False). % 177.56/177.75 do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hae zenon_H3a zenon_H203 zenon_H10b zenon_H31 zenon_Hca zenon_H25 zenon_H180 zenon_H11b zenon_H11d. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L342_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L346_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L347_); trivial. % 177.56/177.75 apply (zenon_L167_); trivial. % 177.56/177.75 (* end of lemma zenon_L348_ *) % 177.56/177.75 assert (zenon_L349_ : ((op (e1) (e0)) = (e2)) -> ((op (e0) (e0)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H195 zenon_H8b. % 177.56/177.75 apply (zenon_notand_s _ _ ax35); [ zenon_intro zenon_H20a | zenon_intro zenon_H198 ]. % 177.56/177.75 apply zenon_H20a. apply sym_equal. exact zenon_H8b. % 177.56/177.75 apply zenon_H198. apply sym_equal. exact zenon_H195. % 177.56/177.75 (* end of lemma zenon_L349_ *) % 177.56/177.75 assert (zenon_L350_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> ((op (e1) (e0)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H89 zenon_H195. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.56/177.75 apply (zenon_L349_); trivial. % 177.56/177.75 (* end of lemma zenon_L350_ *) % 177.56/177.75 assert (zenon_L351_ : ((op (e2) (e1)) = (e3)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_Hdd zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H195. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L59_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L350_); trivial. % 177.56/177.75 (* end of lemma zenon_L351_ *) % 177.56/177.75 assert (zenon_L352_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> ((op (e1) (e0)) = (e2)) -> False). % 177.56/177.75 do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hca zenon_H25 zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H195. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L342_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L346_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L347_); trivial. % 177.56/177.75 apply (zenon_L351_); trivial. % 177.56/177.75 (* end of lemma zenon_L352_ *) % 177.56/177.75 assert (zenon_L353_ : (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e0) (e0)) = (e3)) -> ((op (e1) (e0)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H1f8 zenon_H8b zenon_H199. % 177.56/177.75 cut (((op (e0) (e0)) = (e3)) = ((op (e0) (e0)) = (op (e1) (e0)))). % 177.56/177.75 intro zenon_D_pnotp. % 177.56/177.75 apply zenon_H1f8. % 177.56/177.75 rewrite <- zenon_D_pnotp. % 177.56/177.75 exact zenon_H8b. % 177.56/177.75 cut (((e3) = (op (e1) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H19c]. % 177.56/177.75 cut (((op (e0) (e0)) = (op (e0) (e0)))); [idtac | apply NNPP; zenon_intro zenon_H2b]. % 177.56/177.75 congruence. % 177.56/177.75 apply zenon_H2b. apply refl_equal. % 177.56/177.75 apply zenon_H19c. apply sym_equal. exact zenon_H199. % 177.56/177.75 (* end of lemma zenon_L353_ *) % 177.56/177.75 assert (zenon_L354_ : (((op (e0) (e0)) = (e3))/\(((op (e1) (e1)) = (e3))/\(((op (e2) (e2)) = (e3))/\((op (e3) (e3)) = (e3))))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_H89 zenon_H1f8 zenon_H199. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H89). zenon_intro zenon_H8b. zenon_intro zenon_H8a. % 177.56/177.75 apply (zenon_L353_); trivial. % 177.56/177.75 (* end of lemma zenon_L354_ *) % 177.56/177.75 assert (zenon_L355_ : ((op (e2) (e1)) = (e3)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_Hdd zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H1f8 zenon_H199. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L59_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L354_); trivial. % 177.56/177.75 (* end of lemma zenon_L355_ *) % 177.56/177.75 assert (zenon_L356_ : (((op (e2) (e1)) = (e0))\/(((op (e2) (e1)) = (e1))\/(((op (e2) (e1)) = (e2))\/((op (e2) (e1)) = (e3))))) -> ((op (op (e3) (e2)) (e2)) = (op (e3) (op (e2) (e2)))) -> (~((op (e2) (e1)) = (op (e3) (e1)))) -> ((op (op (e3) (e2)) (e1)) = (op (e3) (op (e2) (e1)))) -> (~((op (e3) (e1)) = (op (e3) (e2)))) -> (~((op (e3) (e0)) = (op (e3) (e2)))) -> (((op (e3) (e2)) = (e0))\/(((op (e3) (e2)) = (e1))\/(((op (e3) (e2)) = (e2))\/((op (e3) (e2)) = (e3))))) -> ((op (op (e2) (e1)) (e1)) = (op (e2) (op (e1) (e1)))) -> (~((op (e2) (e1)) = (op (e2) (e3)))) -> (~((op (e3) (e0)) = (op (e3) (e3)))) -> ((op (unit) (e0)) = (e0)) -> ((op (unit) (e1)) = (e1)) -> (~((op (e3) (e1)) = (op (e3) (e3)))) -> ((unit) = (e3)) -> ((op (unit) (e2)) = (e2)) -> (~((op (e3) (e2)) = (op (e3) (e3)))) -> (~((op (e0) (e0)) = (op (e1) (e0)))) -> ((op (e1) (e0)) = (e3)) -> False). % 177.56/177.75 do 0 intro. intros zenon_He1 zenon_H9e zenon_H91 zenon_H92 zenon_H82 zenon_H7b zenon_Haf zenon_Hf3 zenon_H126 zenon_Hca zenon_H25 zenon_H31 zenon_H10b zenon_H203 zenon_H3a zenon_Hae zenon_H1f8 zenon_H199. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L342_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L346_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L347_); trivial. % 177.56/177.75 apply (zenon_L355_); trivial. % 177.56/177.75 (* end of lemma zenon_L356_ *) % 177.56/177.75 apply (zenon_and_s _ _ ax1). zenon_intro zenon_H20c. zenon_intro zenon_H20b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H20b). zenon_intro zenon_H20e. zenon_intro zenon_H20d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H20d). zenon_intro zenon_H210. zenon_intro zenon_H20f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H20f). zenon_intro zenon_H212. zenon_intro zenon_H211. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H211). zenon_intro zenon_H1f9. zenon_intro zenon_H213. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H213). zenon_intro zenon_H1dd. zenon_intro zenon_H214. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H214). zenon_intro zenon_H216. zenon_intro zenon_H215. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H215). zenon_intro zenon_H17c. zenon_intro zenon_H217. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H217). zenon_intro zenon_H1cc. zenon_intro zenon_H218. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H218). zenon_intro zenon_He1. zenon_intro zenon_H219. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H219). zenon_intro zenon_H117. zenon_intro zenon_H21a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H21a). zenon_intro zenon_H136. zenon_intro zenon_H21b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H21b). zenon_intro zenon_Hcf. zenon_intro zenon_H21c. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H21c). zenon_intro zenon_Hd0. zenon_intro zenon_H21d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H21d). zenon_intro zenon_Haf. zenon_intro zenon_H21e. % 177.56/177.75 apply (zenon_and_s _ _ ax2). zenon_intro zenon_H220. zenon_intro zenon_H21f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H21f). zenon_intro zenon_H222. zenon_intro zenon_H221. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H221). zenon_intro zenon_H224. zenon_intro zenon_H223. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H223). zenon_intro zenon_H226. zenon_intro zenon_H225. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H225). zenon_intro zenon_H228. zenon_intro zenon_H227. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H227). zenon_intro zenon_H22a. zenon_intro zenon_H229. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H229). zenon_intro zenon_H22c. zenon_intro zenon_H22b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H22b). zenon_intro zenon_H22e. zenon_intro zenon_H22d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H22d). zenon_intro zenon_H230. zenon_intro zenon_H22f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H22f). zenon_intro zenon_H232. zenon_intro zenon_H231. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H231). zenon_intro zenon_H234. zenon_intro zenon_H233. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H233). zenon_intro zenon_H236. zenon_intro zenon_H235. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H235). zenon_intro zenon_H238. zenon_intro zenon_H237. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H237). zenon_intro zenon_H23a. zenon_intro zenon_H239. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H239). zenon_intro zenon_H23c. zenon_intro zenon_H23b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H23b). zenon_intro zenon_H1ea. zenon_intro zenon_H23d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H23d). zenon_intro zenon_H187. zenon_intro zenon_H23e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H23e). zenon_intro zenon_H240. zenon_intro zenon_H23f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H23f). zenon_intro zenon_H242. zenon_intro zenon_H241. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H241). zenon_intro zenon_H194. zenon_intro zenon_H243. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H243). zenon_intro zenon_H1de. zenon_intro zenon_H244. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H244). zenon_intro zenon_H246. zenon_intro zenon_H245. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H245). zenon_intro zenon_H177. zenon_intro zenon_H247. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H247). zenon_intro zenon_H15f. zenon_intro zenon_H248. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H248). zenon_intro zenon_H24a. zenon_intro zenon_H249. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H249). zenon_intro zenon_H24c. zenon_intro zenon_H24b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H24b). zenon_intro zenon_H13b. zenon_intro zenon_H24d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H24d). zenon_intro zenon_H166. zenon_intro zenon_H24e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H24e). zenon_intro zenon_H250. zenon_intro zenon_H24f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H24f). zenon_intro zenon_H252. zenon_intro zenon_H251. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H251). zenon_intro zenon_H254. zenon_intro zenon_H253. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H253). zenon_intro zenon_H157. zenon_intro zenon_H255. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H255). zenon_intro zenon_H257. zenon_intro zenon_H256. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H256). zenon_intro zenon_H259. zenon_intro zenon_H258. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H258). zenon_intro zenon_H25b. zenon_intro zenon_H25a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H25a). zenon_intro zenon_H1c3. zenon_intro zenon_H25c. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H25c). zenon_intro zenon_H180. zenon_intro zenon_H25d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H25d). zenon_intro zenon_Hf3. zenon_intro zenon_H25e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H25e). zenon_intro zenon_H16f. zenon_intro zenon_H25f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H25f). zenon_intro zenon_Hd9. zenon_intro zenon_H260. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H260). zenon_intro zenon_H262. zenon_intro zenon_H261. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H261). zenon_intro zenon_H264. zenon_intro zenon_H263. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H263). zenon_intro zenon_H266. zenon_intro zenon_H265. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H265). zenon_intro zenon_H153. zenon_intro zenon_H267. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H267). zenon_intro zenon_H269. zenon_intro zenon_H268. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H268). zenon_intro zenon_H26b. zenon_intro zenon_H26a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H26a). zenon_intro zenon_H26d. zenon_intro zenon_H26c. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H26c). zenon_intro zenon_H26f. zenon_intro zenon_H26e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H26e). zenon_intro zenon_H72. zenon_intro zenon_H270. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H270). zenon_intro zenon_H272. zenon_intro zenon_H271. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H271). zenon_intro zenon_H274. zenon_intro zenon_H273. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H273). zenon_intro zenon_H4a. zenon_intro zenon_H275. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H275). zenon_intro zenon_H11e. zenon_intro zenon_H276. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H276). zenon_intro zenon_H104. zenon_intro zenon_H277. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H277). zenon_intro zenon_H149. zenon_intro zenon_H278. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H278). zenon_intro zenon_Hc9. zenon_intro zenon_H279. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H279). zenon_intro zenon_H1b1. zenon_intro zenon_H27a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27a). zenon_intro zenon_H92. zenon_intro zenon_H27b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27b). zenon_intro zenon_H9e. zenon_intro zenon_H27c. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27c). zenon_intro zenon_H12f. zenon_intro zenon_H27d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27d). zenon_intro zenon_H1d2. zenon_intro zenon_H27e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27e). zenon_intro zenon_Hbe. zenon_intro zenon_H27f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H27f). zenon_intro zenon_H80. zenon_intro zenon_H280. % 177.56/177.75 apply (zenon_and_s _ _ ax3). zenon_intro zenon_H25. zenon_intro zenon_H281. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H281). zenon_intro zenon_H283. zenon_intro zenon_H282. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H282). zenon_intro zenon_H31. zenon_intro zenon_H284. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H284). zenon_intro zenon_He5. zenon_intro zenon_H285. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H285). zenon_intro zenon_H3a. zenon_intro zenon_H286. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H286). zenon_intro zenon_H10e. zenon_intro zenon_H287. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H287). zenon_intro zenon_H1aa. zenon_intro zenon_H288. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H288). zenon_intro zenon_Hfb. zenon_intro zenon_H289. % 177.56/177.75 apply (zenon_and_s _ _ ax9). zenon_intro zenon_H1f8. zenon_intro zenon_H28a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H28a). zenon_intro zenon_H1bb. zenon_intro zenon_H28b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H28b). zenon_intro zenon_H28d. zenon_intro zenon_H28c. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H28c). zenon_intro zenon_H28f. zenon_intro zenon_H28e. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H28e). zenon_intro zenon_H1a8. zenon_intro zenon_H290. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H290). zenon_intro zenon_H11d. zenon_intro zenon_H291. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H291). zenon_intro zenon_H293. zenon_intro zenon_H292. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H292). zenon_intro zenon_H295. zenon_intro zenon_H294. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H294). zenon_intro zenon_Hb0. zenon_intro zenon_H296. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H296). zenon_intro zenon_H40. zenon_intro zenon_H297. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H297). zenon_intro zenon_H299. zenon_intro zenon_H298. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H298). zenon_intro zenon_H91. zenon_intro zenon_H29a. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H29a). zenon_intro zenon_H29c. zenon_intro zenon_H29b. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H29b). zenon_intro zenon_H29e. zenon_intro zenon_H29d. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H29d). zenon_intro zenon_Hf9. zenon_intro zenon_H29f. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H29f). zenon_intro zenon_H2a1. zenon_intro zenon_H2a0. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a0). zenon_intro zenon_H14c. zenon_intro zenon_H2a2. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a2). zenon_intro zenon_H2a4. zenon_intro zenon_H2a3. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a3). zenon_intro zenon_H1fc. zenon_intro zenon_H2a5. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a5). zenon_intro zenon_H1eb. zenon_intro zenon_H2a6. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a6). zenon_intro zenon_H49. zenon_intro zenon_H2a7. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a7). zenon_intro zenon_H158. zenon_intro zenon_H2a8. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a8). zenon_intro zenon_H51. zenon_intro zenon_H2a9. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2a9). zenon_intro zenon_H58. zenon_intro zenon_H2aa. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2aa). zenon_intro zenon_H2ac. zenon_intro zenon_H2ab. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2ab). zenon_intro zenon_H2ae. zenon_intro zenon_H2ad. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2ad). zenon_intro zenon_H24. zenon_intro zenon_H2af. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2af). zenon_intro zenon_H2b1. zenon_intro zenon_H2b0. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b0). zenon_intro zenon_H30. zenon_intro zenon_H2b2. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b2). zenon_intro zenon_H39. zenon_intro zenon_H2b3. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b3). zenon_intro zenon_H1a9. zenon_intro zenon_H2b4. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b4). zenon_intro zenon_H1df. zenon_intro zenon_H2b5. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b5). zenon_intro zenon_He4. zenon_intro zenon_H2b6. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b6). zenon_intro zenon_H2b8. zenon_intro zenon_H2b7. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b7). zenon_intro zenon_H1a2. zenon_intro zenon_H2b9. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2b9). zenon_intro zenon_H13a. zenon_intro zenon_H2ba. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2ba). zenon_intro zenon_Hf4. zenon_intro zenon_H2bb. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2bb). zenon_intro zenon_H10d. zenon_intro zenon_H2bc. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2bc). zenon_intro zenon_Hda. zenon_intro zenon_H2bd. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2bd). zenon_intro zenon_H1f4. zenon_intro zenon_H2be. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2be). zenon_intro zenon_H126. zenon_intro zenon_H2bf. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2bf). zenon_intro zenon_H16e. zenon_intro zenon_H2c0. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2c0). zenon_intro zenon_H71. zenon_intro zenon_H2c1. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2c1). zenon_intro zenon_H7b. zenon_intro zenon_H2c2. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2c2). zenon_intro zenon_Hca. zenon_intro zenon_H2c3. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2c3). zenon_intro zenon_H82. zenon_intro zenon_H2c4. % 177.56/177.75 apply (zenon_and_s _ _ zenon_H2c4). zenon_intro zenon_H10b. zenon_intro zenon_Hae. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H289); [ zenon_intro zenon_H26 | zenon_intro zenon_H2c5 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ]. % 177.56/177.75 apply (zenon_L2_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ]. % 177.56/177.75 apply (zenon_L5_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ]. % 177.56/177.75 apply (zenon_L8_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L72_); trivial. % 177.56/177.75 apply (zenon_L124_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L72_); trivial. % 177.56/177.75 apply (zenon_L129_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ]. % 177.56/177.75 apply (zenon_L133_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L154_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L9_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L105_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L156_); trivial. % 177.56/177.75 apply (zenon_L128_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L158_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L146_); trivial. % 177.56/177.75 apply (zenon_L124_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L158_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L146_); trivial. % 177.56/177.75 apply (zenon_L129_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ]. % 177.56/177.75 apply (zenon_L133_); trivial. % 177.56/177.75 apply (zenon_L160_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ]. % 177.56/177.75 apply (zenon_L165_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L168_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L171_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L76_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L105_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L111_); trivial. % 177.56/177.75 apply (zenon_L128_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1dd); [ zenon_intro zenon_H41 | zenon_intro zenon_H1e0 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L72_); trivial. % 177.56/177.75 apply (zenon_L183_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L72_); trivial. % 177.56/177.75 apply (zenon_L184_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ]. % 177.56/177.75 apply (zenon_L186_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L64_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L154_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He1); [ zenon_intro zenon_H42 | zenon_intro zenon_He2 ]. % 177.56/177.75 apply (zenon_L9_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He2); [ zenon_intro zenon_H60 | zenon_intro zenon_He3 ]. % 177.56/177.75 apply (zenon_L179_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_He3); [ zenon_intro zenon_Hd6 | zenon_intro zenon_Hdd ]. % 177.56/177.75 apply (zenon_L156_); trivial. % 177.56/177.75 apply (zenon_L58_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1e0); [ zenon_intro zenon_Ha5 | zenon_intro zenon_H1e1 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H216); [ zenon_intro zenon_H114 | zenon_intro zenon_H2c8 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L158_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L146_); trivial. % 177.56/177.75 apply (zenon_L183_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c8); [ zenon_intro zenon_H13c | zenon_intro zenon_H2c9 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L158_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L146_); trivial. % 177.56/177.75 apply (zenon_L184_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c9); [ zenon_intro zenon_H147 | zenon_intro zenon_H167 ]. % 177.56/177.75 apply (zenon_L186_); trivial. % 177.56/177.75 apply (zenon_L160_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1e1); [ zenon_intro zenon_Ha8 | zenon_intro zenon_H8d ]. % 177.56/177.75 apply (zenon_L165_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L187_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L65_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L171_); trivial. % 177.56/177.75 apply (zenon_L188_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L190_); trivial. % 177.56/177.75 apply (zenon_L191_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c5); [ zenon_intro zenon_H19e | zenon_intro zenon_H2ca ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L193_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L194_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L196_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.56/177.75 apply (zenon_L259_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.56/177.75 apply (zenon_L263_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.56/177.75 apply (zenon_L216_); trivial. % 177.56/177.75 apply (zenon_L265_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_L268_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L272_); trivial. % 177.56/177.75 apply (zenon_L274_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L193_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L194_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L196_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.56/177.75 apply (zenon_L283_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.56/177.75 apply (zenon_L288_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.56/177.75 apply (zenon_L216_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.56/177.75 apply (zenon_L197_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.56/177.75 apply (zenon_L282_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.56/177.75 apply (zenon_L287_); trivial. % 177.56/177.75 apply (zenon_L264_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_L290_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L272_); trivial. % 177.56/177.75 apply (zenon_L274_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ]. % 177.56/177.75 apply (zenon_L298_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L193_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L194_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L196_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.56/177.75 apply (zenon_L299_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.56/177.75 apply (zenon_L300_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.56/177.75 apply (zenon_L216_); trivial. % 177.56/177.75 apply (zenon_L301_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17c); [ zenon_intro zenon_Hc7 | zenon_intro zenon_H17d ]. % 177.56/177.75 apply (zenon_L193_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17d); [ zenon_intro zenon_He6 | zenon_intro zenon_H17e ]. % 177.56/177.75 apply (zenon_L194_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H17e); [ zenon_intro zenon_Hed | zenon_intro zenon_Hfe ]. % 177.56/177.75 apply (zenon_L196_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H136); [ zenon_intro zenon_H121 | zenon_intro zenon_H137 ]. % 177.56/177.75 apply (zenon_L299_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H137); [ zenon_intro zenon_H127 | zenon_intro zenon_H138 ]. % 177.56/177.75 apply (zenon_L303_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H138); [ zenon_intro zenon_H12a | zenon_intro zenon_H12d ]. % 177.56/177.75 apply (zenon_L216_); trivial. % 177.56/177.75 apply (zenon_L301_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L272_); trivial. % 177.56/177.75 apply (zenon_L191_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2ca); [ zenon_intro zenon_H1f0 | zenon_intro zenon_H203 ]. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H212); [ zenon_intro zenon_H27 | zenon_intro zenon_H2c6 ]. % 177.56/177.75 apply (zenon_L320_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c6); [ zenon_intro zenon_H32 | zenon_intro zenon_H2c7 ]. % 177.56/177.75 apply (zenon_L324_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H2c7); [ zenon_intro zenon_H3b | zenon_intro zenon_H47 ]. % 177.56/177.75 apply (zenon_L332_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hcf); [ zenon_intro zenon_H4b | zenon_intro zenon_Hd1 ]. % 177.56/177.75 apply (zenon_L12_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd1); [ zenon_intro zenon_H52 | zenon_intro zenon_Hd2 ]. % 177.56/177.75 apply (zenon_L333_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_Hd2); [ zenon_intro zenon_H59 | zenon_intro zenon_H6c ]. % 177.56/177.75 apply (zenon_L14_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L306_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L309_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L24_); trivial. % 177.56/177.75 apply (zenon_L311_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1f9); [ zenon_intro zenon_H11b | zenon_intro zenon_H1fa ]. % 177.56/177.75 apply (zenon_L348_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fa); [ zenon_intro zenon_H188 | zenon_intro zenon_H1fb ]. % 177.56/177.75 apply (zenon_or_s _ _ ax11); [ zenon_intro zenon_H66 | zenon_intro zenon_H8f ]. % 177.56/177.75 apply (zenon_L336_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H8f); [ zenon_intro zenon_H76 | zenon_intro zenon_H90 ]. % 177.56/177.75 apply (zenon_L339_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H90); [ zenon_intro zenon_H7c | zenon_intro zenon_H89 ]. % 177.56/177.75 apply (zenon_L341_); trivial. % 177.56/177.75 apply (zenon_L174_); trivial. % 177.56/177.75 apply (zenon_or_s _ _ zenon_H1fb); [ zenon_intro zenon_H195 | zenon_intro zenon_H199 ]. % 177.56/177.75 apply (zenon_L352_); trivial. % 177.56/177.75 apply (zenon_L356_); trivial. % 177.56/177.75 Qed. % 177.56/177.75 % SZS output end Proof % 177.56/177.75 (* END-PROOF *) % 177.56/177.75 nodes searched: 730012 % 177.56/177.75 max branch formulas: 1870 % 177.56/177.75 proof nodes created: 10561 % 177.56/177.75 formulas created: 2498270 % 177.56/177.75 %------------------------------------------------------------------------------