%------------------------------------------------------------------------------ % File : Zenon---0.7.1 % Problem : SYN550+1 : TPTP v8.1.0. Released v2.2.0. % Transfm : none % Format : tptp:raw % Command : run_zenon %s %d % Computer : n005.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 21 13:54:16 EDT 2022 % Result : Theorem 0.85s 1.02s % Output : Proof 0.85s % Verified : % SZS Type : - % Comments : %------------------------------------------------------------------------------ %----WARNING: Could not form TPTP format derivation %------------------------------------------------------------------------------ %----ORIGINAL SYSTEM OUTPUT % 0.03/0.12 % Problem : SYN550+1 : TPTP v8.1.0. Released v2.2.0. % 0.03/0.12 % Command : run_zenon %s %d % 0.12/0.33 % Computer : n005.cluster.edu % 0.12/0.33 % Model : x86_64 x86_64 % 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz % 0.12/0.33 % Memory : 8042.1875MB % 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64 % 0.12/0.33 % CPULimit : 300 % 0.12/0.33 % WCLimit : 600 % 0.12/0.33 % DateTime : Tue Jul 12 03:55:36 EDT 2022 % 0.12/0.33 % CPUTime : % 0.85/1.02 (* PROOF-FOUND *) % 0.85/1.02 % SZS status Theorem % 0.85/1.02 (* BEGIN-PROOF *) % 0.85/1.02 % SZS output start Proof % 0.85/1.02 Theorem prove_this : ((exists X : zenon_U, ((reachable (initial_world) X)/\(forall Y : zenon_U, ((reachable X Y)->(p Y)))))<->(exists X : zenon_U, ((reachable (initial_world) X)/\(forall Y : zenon_U, ((reachable X Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W)))))))))). % 0.85/1.02 Proof. % 0.85/1.02 assert (zenon_L1_ : forall (zenon_TZ_h : zenon_U) (zenon_TZ_i : zenon_U) (zenon_TX_j : zenon_U), (reachable zenon_TX_j zenon_TZ_i) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_j zenon_TZ_h)) -> (reachable zenon_TZ_i zenon_TZ_h) -> False). % 0.85/1.02 do 3 intro. intros zenon_H3 zenon_H4 zenon_H5 zenon_H6. % 0.85/1.02 elim (classic ((~(zenon_TX_j = zenon_TZ_i))/\(~(reachable zenon_TX_j zenon_TZ_i)))); [ zenon_intro zenon_Ha | zenon_intro zenon_Hb ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Ha). zenon_intro zenon_Hd. zenon_intro zenon_Hc. % 0.85/1.02 exact (zenon_Hc zenon_H3). % 0.85/1.02 cut ((reachable zenon_TZ_i zenon_TZ_h) = (reachable zenon_TX_j zenon_TZ_h)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H5. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H6. % 0.85/1.02 cut ((zenon_TZ_h = zenon_TZ_h)); [idtac | apply NNPP; zenon_intro zenon_He]. % 0.85/1.02 cut ((zenon_TZ_i = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_Hf]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Hb); [ zenon_intro zenon_H11 | zenon_intro zenon_H10 ]. % 0.85/1.02 apply zenon_H11. zenon_intro zenon_H12. % 0.85/1.02 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_i = zenon_TX_j)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hf. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H13. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TZ_i)); [idtac | apply NNPP; zenon_intro zenon_Hd]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Hd zenon_H12). % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H10. zenon_intro zenon_H3. % 0.85/1.02 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.02 generalize (zenon_H15 zenon_TZ_i). zenon_intro zenon_H16. % 0.85/1.02 generalize (zenon_H16 zenon_TZ_h). zenon_intro zenon_H17. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H17); [ zenon_intro zenon_Hc | zenon_intro zenon_H18 ]. % 0.85/1.02 exact (zenon_Hc zenon_H3). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H18); [ zenon_intro zenon_H1a | zenon_intro zenon_H19 ]. % 0.85/1.02 exact (zenon_H1a zenon_H6). % 0.85/1.02 exact (zenon_H5 zenon_H19). % 0.85/1.02 apply zenon_He. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L1_ *) % 0.85/1.02 assert (zenon_L2_ : forall (zenon_TZ_bd : zenon_U) (zenon_TZ_h : zenon_U) (zenon_TZ_i : zenon_U) (zenon_TX_j : zenon_U), (reachable zenon_TX_j zenon_TZ_i) -> (reachable zenon_TZ_i zenon_TZ_h) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_j zenon_TZ_bd)) -> (reachable zenon_TZ_h zenon_TZ_bd) -> False). % 0.85/1.02 do 4 intro. intros zenon_H3 zenon_H6 zenon_H4 zenon_H1b zenon_H1c. % 0.85/1.02 elim (classic ((~(zenon_TX_j = zenon_TZ_h))/\(~(reachable zenon_TX_j zenon_TZ_h)))); [ zenon_intro zenon_H1e | zenon_intro zenon_H1f ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H1e). zenon_intro zenon_H20. zenon_intro zenon_H5. % 0.85/1.02 apply (zenon_L1_ zenon_TZ_h zenon_TZ_i zenon_TX_j); trivial. % 0.85/1.02 cut ((reachable zenon_TZ_h zenon_TZ_bd) = (reachable zenon_TX_j zenon_TZ_bd)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H1b. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H1c. % 0.85/1.02 cut ((zenon_TZ_bd = zenon_TZ_bd)); [idtac | apply NNPP; zenon_intro zenon_H21]. % 0.85/1.02 cut ((zenon_TZ_h = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H22]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H1f); [ zenon_intro zenon_H24 | zenon_intro zenon_H23 ]. % 0.85/1.02 apply zenon_H24. zenon_intro zenon_H25. % 0.85/1.02 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_h = zenon_TX_j)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H22. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H13. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TZ_h)); [idtac | apply NNPP; zenon_intro zenon_H20]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H20 zenon_H25). % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H23. zenon_intro zenon_H19. % 0.85/1.02 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.02 generalize (zenon_H15 zenon_TZ_h). zenon_intro zenon_H26. % 0.85/1.02 generalize (zenon_H26 zenon_TZ_bd). zenon_intro zenon_H27. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H27); [ zenon_intro zenon_H5 | zenon_intro zenon_H28 ]. % 0.85/1.02 exact (zenon_H5 zenon_H19). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H28); [ zenon_intro zenon_H2a | zenon_intro zenon_H29 ]. % 0.85/1.02 exact (zenon_H2a zenon_H1c). % 0.85/1.02 exact (zenon_H1b zenon_H29). % 0.85/1.02 apply zenon_H21. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L2_ *) % 0.85/1.02 assert (zenon_L3_ : forall (zenon_TZ_bt : zenon_U) (zenon_TZ_bd : zenon_U) (zenon_TX_j : zenon_U) (zenon_TZ_h : zenon_U) (zenon_TZ_i : zenon_U), (reachable zenon_TZ_i zenon_TZ_h) -> (reachable zenon_TX_j zenon_TZ_i) -> (reachable zenon_TZ_h zenon_TZ_bd) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_j zenon_TZ_bt)) -> (reachable zenon_TZ_bd zenon_TZ_bt) -> False). % 0.85/1.02 do 5 intro. intros zenon_H6 zenon_H3 zenon_H1c zenon_H4 zenon_H2b zenon_H2c. % 0.85/1.02 elim (classic ((~(zenon_TX_j = zenon_TZ_bd))/\(~(reachable zenon_TX_j zenon_TZ_bd)))); [ zenon_intro zenon_H2e | zenon_intro zenon_H2f ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H2e). zenon_intro zenon_H30. zenon_intro zenon_H1b. % 0.85/1.02 apply (zenon_L2_ zenon_TZ_bd zenon_TZ_h zenon_TZ_i zenon_TX_j); trivial. % 0.85/1.02 cut ((reachable zenon_TZ_bd zenon_TZ_bt) = (reachable zenon_TX_j zenon_TZ_bt)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H2b. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H2c. % 0.85/1.02 cut ((zenon_TZ_bt = zenon_TZ_bt)); [idtac | apply NNPP; zenon_intro zenon_H31]. % 0.85/1.02 cut ((zenon_TZ_bd = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H32]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H2f); [ zenon_intro zenon_H34 | zenon_intro zenon_H33 ]. % 0.85/1.02 apply zenon_H34. zenon_intro zenon_H35. % 0.85/1.02 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_bd = zenon_TX_j)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H32. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H13. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TZ_bd)); [idtac | apply NNPP; zenon_intro zenon_H30]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H30 zenon_H35). % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H33. zenon_intro zenon_H29. % 0.85/1.02 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.02 generalize (zenon_H15 zenon_TZ_bd). zenon_intro zenon_H36. % 0.85/1.02 generalize (zenon_H36 zenon_TZ_bt). zenon_intro zenon_H37. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H37); [ zenon_intro zenon_H1b | zenon_intro zenon_H38 ]. % 0.85/1.02 exact (zenon_H1b zenon_H29). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H38); [ zenon_intro zenon_H3a | zenon_intro zenon_H39 ]. % 0.85/1.02 exact (zenon_H3a zenon_H2c). % 0.85/1.02 exact (zenon_H2b zenon_H39). % 0.85/1.02 apply zenon_H31. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L3_ *) % 0.85/1.02 assert (zenon_L4_ : forall (zenon_TZ_cj : zenon_U) (zenon_TZ_bt : zenon_U) (zenon_TZ_i : zenon_U) (zenon_TX_j : zenon_U) (zenon_TZ_bd : zenon_U) (zenon_TZ_h : zenon_U), (reachable zenon_TZ_h zenon_TZ_bd) -> (reachable zenon_TX_j zenon_TZ_i) -> (reachable zenon_TZ_i zenon_TZ_h) -> (reachable zenon_TZ_bd zenon_TZ_bt) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_j zenon_TZ_cj)) -> (reachable zenon_TZ_bt zenon_TZ_cj) -> False). % 0.85/1.02 do 6 intro. intros zenon_H1c zenon_H3 zenon_H6 zenon_H2c zenon_H4 zenon_H3b zenon_H3c. % 0.85/1.02 elim (classic ((~(zenon_TX_j = zenon_TZ_bt))/\(~(reachable zenon_TX_j zenon_TZ_bt)))); [ zenon_intro zenon_H3e | zenon_intro zenon_H3f ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H3e). zenon_intro zenon_H40. zenon_intro zenon_H2b. % 0.85/1.02 apply (zenon_L3_ zenon_TZ_bt zenon_TZ_bd zenon_TX_j zenon_TZ_h zenon_TZ_i); trivial. % 0.85/1.02 cut ((reachable zenon_TZ_bt zenon_TZ_cj) = (reachable zenon_TX_j zenon_TZ_cj)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H3b. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H3c. % 0.85/1.02 cut ((zenon_TZ_cj = zenon_TZ_cj)); [idtac | apply NNPP; zenon_intro zenon_H41]. % 0.85/1.02 cut ((zenon_TZ_bt = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H42]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H3f); [ zenon_intro zenon_H44 | zenon_intro zenon_H43 ]. % 0.85/1.02 apply zenon_H44. zenon_intro zenon_H45. % 0.85/1.02 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_bt = zenon_TX_j)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H42. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H13. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TZ_bt)); [idtac | apply NNPP; zenon_intro zenon_H40]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H40 zenon_H45). % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H43. zenon_intro zenon_H39. % 0.85/1.02 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.02 generalize (zenon_H15 zenon_TZ_bt). zenon_intro zenon_H46. % 0.85/1.02 generalize (zenon_H46 zenon_TZ_cj). zenon_intro zenon_H47. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H47); [ zenon_intro zenon_H2b | zenon_intro zenon_H48 ]. % 0.85/1.02 exact (zenon_H2b zenon_H39). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H48); [ zenon_intro zenon_H4a | zenon_intro zenon_H49 ]. % 0.85/1.02 exact (zenon_H4a zenon_H3c). % 0.85/1.02 exact (zenon_H3b zenon_H49). % 0.85/1.02 apply zenon_H41. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L4_ *) % 0.85/1.02 assert (zenon_L5_ : forall (zenon_TZ_cz : zenon_U) (zenon_TZ_cj : zenon_U) (zenon_TX_j : zenon_U) (zenon_TZ_h : zenon_U) (zenon_TZ_i : zenon_U) (zenon_TZ_bt : zenon_U) (zenon_TZ_bd : zenon_U), (reachable zenon_TZ_bd zenon_TZ_bt) -> (reachable zenon_TZ_i zenon_TZ_h) -> (reachable zenon_TX_j zenon_TZ_i) -> (reachable zenon_TZ_h zenon_TZ_bd) -> (reachable zenon_TZ_bt zenon_TZ_cj) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_j zenon_TZ_cz)) -> (reachable zenon_TZ_cj zenon_TZ_cz) -> False). % 0.85/1.02 do 7 intro. intros zenon_H2c zenon_H6 zenon_H3 zenon_H1c zenon_H3c zenon_H4 zenon_H4b zenon_H4c. % 0.85/1.02 elim (classic ((~(zenon_TX_j = zenon_TZ_cj))/\(~(reachable zenon_TX_j zenon_TZ_cj)))); [ zenon_intro zenon_H4e | zenon_intro zenon_H4f ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H4e). zenon_intro zenon_H50. zenon_intro zenon_H3b. % 0.85/1.02 apply (zenon_L4_ zenon_TZ_cj zenon_TZ_bt zenon_TZ_i zenon_TX_j zenon_TZ_bd zenon_TZ_h); trivial. % 0.85/1.02 cut ((reachable zenon_TZ_cj zenon_TZ_cz) = (reachable zenon_TX_j zenon_TZ_cz)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H4b. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H4c. % 0.85/1.02 cut ((zenon_TZ_cz = zenon_TZ_cz)); [idtac | apply NNPP; zenon_intro zenon_H51]. % 0.85/1.02 cut ((zenon_TZ_cj = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H52]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H4f); [ zenon_intro zenon_H54 | zenon_intro zenon_H53 ]. % 0.85/1.02 apply zenon_H54. zenon_intro zenon_H55. % 0.85/1.02 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_cj = zenon_TX_j)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H52. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H13. % 0.85/1.02 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.02 cut ((zenon_TX_j = zenon_TZ_cj)); [idtac | apply NNPP; zenon_intro zenon_H50]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H50 zenon_H55). % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H14. apply refl_equal. % 0.85/1.02 apply zenon_H53. zenon_intro zenon_H49. % 0.85/1.02 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.02 generalize (zenon_H15 zenon_TZ_cj). zenon_intro zenon_H56. % 0.85/1.02 generalize (zenon_H56 zenon_TZ_cz). zenon_intro zenon_H57. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H57); [ zenon_intro zenon_H3b | zenon_intro zenon_H58 ]. % 0.85/1.02 exact (zenon_H3b zenon_H49). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H58); [ zenon_intro zenon_H5a | zenon_intro zenon_H59 ]. % 0.85/1.02 exact (zenon_H5a zenon_H4c). % 0.85/1.02 exact (zenon_H4b zenon_H59). % 0.85/1.02 apply zenon_H51. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L5_ *) % 0.85/1.02 assert (zenon_L6_ : forall (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U), (reachable (initial_world) zenon_TX_dr) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_dq)) -> (reachable zenon_TX_dr zenon_TY_dq) -> False). % 0.85/1.02 do 2 intro. intros zenon_H5b zenon_H4 zenon_H5c zenon_H5d. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TX_dr))/\(~(reachable (initial_world) zenon_TX_dr)))); [ zenon_intro zenon_H60 | zenon_intro zenon_H61 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H60). zenon_intro zenon_H63. zenon_intro zenon_H62. % 0.85/1.02 exact (zenon_H62 zenon_H5b). % 0.85/1.02 cut ((reachable zenon_TX_dr zenon_TY_dq) = (reachable (initial_world) zenon_TY_dq)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H5c. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H5d. % 0.85/1.02 cut ((zenon_TY_dq = zenon_TY_dq)); [idtac | apply NNPP; zenon_intro zenon_H64]. % 0.85/1.02 cut ((zenon_TX_dr = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H65]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H61); [ zenon_intro zenon_H67 | zenon_intro zenon_H66 ]. % 0.85/1.02 apply zenon_H67. zenon_intro zenon_H68. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TX_dr = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H65. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H63]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H63 zenon_H68). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H66. zenon_intro zenon_H5b. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TX_dr). zenon_intro zenon_H6c. % 0.85/1.02 generalize (zenon_H6c zenon_TY_dq). zenon_intro zenon_H6d. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H6d); [ zenon_intro zenon_H62 | zenon_intro zenon_H6e ]. % 0.85/1.02 exact (zenon_H62 zenon_H5b). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H6e); [ zenon_intro zenon_H70 | zenon_intro zenon_H6f ]. % 0.85/1.02 exact (zenon_H70 zenon_H5d). % 0.85/1.02 exact (zenon_H5c zenon_H6f). % 0.85/1.02 apply zenon_H64. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L6_ *) % 0.85/1.02 assert (zenon_L7_ : forall (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U), (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_el)) -> (reachable zenon_TY_dq zenon_TY_el) -> False). % 0.85/1.02 do 3 intro. intros zenon_H5b zenon_H5d zenon_H4 zenon_H71 zenon_H72. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_dq))/\(~(reachable (initial_world) zenon_TY_dq)))); [ zenon_intro zenon_H74 | zenon_intro zenon_H75 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H74). zenon_intro zenon_H76. zenon_intro zenon_H5c. % 0.85/1.02 apply (zenon_L6_ zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.02 cut ((reachable zenon_TY_dq zenon_TY_el) = (reachable (initial_world) zenon_TY_el)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H71. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H72. % 0.85/1.02 cut ((zenon_TY_el = zenon_TY_el)); [idtac | apply NNPP; zenon_intro zenon_H77]. % 0.85/1.02 cut ((zenon_TY_dq = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H78]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H75); [ zenon_intro zenon_H7a | zenon_intro zenon_H79 ]. % 0.85/1.02 apply zenon_H7a. zenon_intro zenon_H7b. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_dq = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H78. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_dq)); [idtac | apply NNPP; zenon_intro zenon_H76]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H76 zenon_H7b). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H79. zenon_intro zenon_H6f. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_dq). zenon_intro zenon_H7c. % 0.85/1.02 generalize (zenon_H7c zenon_TY_el). zenon_intro zenon_H7d. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H7d); [ zenon_intro zenon_H5c | zenon_intro zenon_H7e ]. % 0.85/1.02 exact (zenon_H5c zenon_H6f). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H7e); [ zenon_intro zenon_H80 | zenon_intro zenon_H7f ]. % 0.85/1.02 exact (zenon_H80 zenon_H72). % 0.85/1.02 exact (zenon_H71 zenon_H7f). % 0.85/1.02 apply zenon_H77. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L7_ *) % 0.85/1.02 assert (zenon_L8_ : forall (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U), (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_fb)) -> (reachable zenon_TY_el zenon_TY_fb) -> False). % 0.85/1.02 do 4 intro. intros zenon_H5d zenon_H5b zenon_H72 zenon_H4 zenon_H81 zenon_H82. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_el))/\(~(reachable (initial_world) zenon_TY_el)))); [ zenon_intro zenon_H84 | zenon_intro zenon_H85 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H84). zenon_intro zenon_H86. zenon_intro zenon_H71. % 0.85/1.02 apply (zenon_L7_ zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.02 cut ((reachable zenon_TY_el zenon_TY_fb) = (reachable (initial_world) zenon_TY_fb)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H81. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H82. % 0.85/1.02 cut ((zenon_TY_fb = zenon_TY_fb)); [idtac | apply NNPP; zenon_intro zenon_H87]. % 0.85/1.02 cut ((zenon_TY_el = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H88]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H85); [ zenon_intro zenon_H8a | zenon_intro zenon_H89 ]. % 0.85/1.02 apply zenon_H8a. zenon_intro zenon_H8b. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_el = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H88. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_el)); [idtac | apply NNPP; zenon_intro zenon_H86]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H86 zenon_H8b). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H89. zenon_intro zenon_H7f. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_el). zenon_intro zenon_H8c. % 0.85/1.02 generalize (zenon_H8c zenon_TY_fb). zenon_intro zenon_H8d. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H8d); [ zenon_intro zenon_H71 | zenon_intro zenon_H8e ]. % 0.85/1.02 exact (zenon_H71 zenon_H7f). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H8e); [ zenon_intro zenon_H90 | zenon_intro zenon_H8f ]. % 0.85/1.02 exact (zenon_H90 zenon_H82). % 0.85/1.02 exact (zenon_H81 zenon_H8f). % 0.85/1.02 apply zenon_H87. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L8_ *) % 0.85/1.02 assert (zenon_L9_ : forall (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U), (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_fr)) -> (reachable zenon_TY_fb zenon_TY_fr) -> False). % 0.85/1.02 do 5 intro. intros zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_H4 zenon_H91 zenon_H92. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_fb))/\(~(reachable (initial_world) zenon_TY_fb)))); [ zenon_intro zenon_H94 | zenon_intro zenon_H95 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H94). zenon_intro zenon_H96. zenon_intro zenon_H81. % 0.85/1.02 apply (zenon_L8_ zenon_TY_fb zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.02 cut ((reachable zenon_TY_fb zenon_TY_fr) = (reachable (initial_world) zenon_TY_fr)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H91. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H92. % 0.85/1.02 cut ((zenon_TY_fr = zenon_TY_fr)); [idtac | apply NNPP; zenon_intro zenon_H97]. % 0.85/1.02 cut ((zenon_TY_fb = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H98]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H95); [ zenon_intro zenon_H9a | zenon_intro zenon_H99 ]. % 0.85/1.02 apply zenon_H9a. zenon_intro zenon_H9b. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_fb = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H98. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_fb)); [idtac | apply NNPP; zenon_intro zenon_H96]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H96 zenon_H9b). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H99. zenon_intro zenon_H8f. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_fb). zenon_intro zenon_H9c. % 0.85/1.02 generalize (zenon_H9c zenon_TY_fr). zenon_intro zenon_H9d. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H9d); [ zenon_intro zenon_H81 | zenon_intro zenon_H9e ]. % 0.85/1.02 exact (zenon_H81 zenon_H8f). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H9e); [ zenon_intro zenon_Ha0 | zenon_intro zenon_H9f ]. % 0.85/1.02 exact (zenon_Ha0 zenon_H92). % 0.85/1.02 exact (zenon_H91 zenon_H9f). % 0.85/1.02 apply zenon_H97. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L9_ *) % 0.85/1.02 assert (zenon_L10_ : forall (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U), (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_gh)) -> (reachable zenon_TY_fr zenon_TY_gh) -> False). % 0.85/1.02 do 6 intro. intros zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_H4 zenon_Ha1 zenon_Ha2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_fr))/\(~(reachable (initial_world) zenon_TY_fr)))); [ zenon_intro zenon_Ha4 | zenon_intro zenon_Ha5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Ha4). zenon_intro zenon_Ha6. zenon_intro zenon_H91. % 0.85/1.02 apply (zenon_L9_ zenon_TY_fr zenon_TY_fb zenon_TX_dr zenon_TY_el zenon_TY_dq); trivial. % 0.85/1.02 cut ((reachable zenon_TY_fr zenon_TY_gh) = (reachable (initial_world) zenon_TY_gh)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Ha1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_Ha2. % 0.85/1.02 cut ((zenon_TY_gh = zenon_TY_gh)); [idtac | apply NNPP; zenon_intro zenon_Ha7]. % 0.85/1.02 cut ((zenon_TY_fr = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_Ha8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Ha5); [ zenon_intro zenon_Haa | zenon_intro zenon_Ha9 ]. % 0.85/1.02 apply zenon_Haa. zenon_intro zenon_Hab. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_fr = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Ha8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_fr)); [idtac | apply NNPP; zenon_intro zenon_Ha6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Ha6 zenon_Hab). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_Ha9. zenon_intro zenon_H9f. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_fr). zenon_intro zenon_Hac. % 0.85/1.02 generalize (zenon_Hac zenon_TY_gh). zenon_intro zenon_Had. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Had); [ zenon_intro zenon_H91 | zenon_intro zenon_Hae ]. % 0.85/1.02 exact (zenon_H91 zenon_H9f). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hae); [ zenon_intro zenon_Hb0 | zenon_intro zenon_Haf ]. % 0.85/1.02 exact (zenon_Hb0 zenon_Ha2). % 0.85/1.02 exact (zenon_Ha1 zenon_Haf). % 0.85/1.02 apply zenon_Ha7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L10_ *) % 0.85/1.02 assert (zenon_L11_ : forall (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U), (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_gx)) -> (reachable zenon_TY_gh zenon_TY_gx) -> False). % 0.85/1.02 do 7 intro. intros zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_H4 zenon_Hb1 zenon_Hb2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_gh))/\(~(reachable (initial_world) zenon_TY_gh)))); [ zenon_intro zenon_Hb4 | zenon_intro zenon_Hb5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Hb4). zenon_intro zenon_Hb6. zenon_intro zenon_Ha1. % 0.85/1.02 apply (zenon_L10_ zenon_TY_gh zenon_TY_fr zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el); trivial. % 0.85/1.02 cut ((reachable zenon_TY_gh zenon_TY_gx) = (reachable (initial_world) zenon_TY_gx)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hb1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_Hb2. % 0.85/1.02 cut ((zenon_TY_gx = zenon_TY_gx)); [idtac | apply NNPP; zenon_intro zenon_Hb7]. % 0.85/1.02 cut ((zenon_TY_gh = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_Hb8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Hb5); [ zenon_intro zenon_Hba | zenon_intro zenon_Hb9 ]. % 0.85/1.02 apply zenon_Hba. zenon_intro zenon_Hbb. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_gh = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hb8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_gh)); [idtac | apply NNPP; zenon_intro zenon_Hb6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Hb6 zenon_Hbb). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_Hb9. zenon_intro zenon_Haf. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_gh). zenon_intro zenon_Hbc. % 0.85/1.02 generalize (zenon_Hbc zenon_TY_gx). zenon_intro zenon_Hbd. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hbd); [ zenon_intro zenon_Ha1 | zenon_intro zenon_Hbe ]. % 0.85/1.02 exact (zenon_Ha1 zenon_Haf). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hbe); [ zenon_intro zenon_Hc0 | zenon_intro zenon_Hbf ]. % 0.85/1.02 exact (zenon_Hc0 zenon_Hb2). % 0.85/1.02 exact (zenon_Hb1 zenon_Hbf). % 0.85/1.02 apply zenon_Hb7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L11_ *) % 0.85/1.02 assert (zenon_L12_ : forall (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U), (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_hn)) -> (reachable zenon_TY_gx zenon_TY_hn) -> False). % 0.85/1.02 do 8 intro. intros zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_H4 zenon_Hc1 zenon_Hc2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_gx))/\(~(reachable (initial_world) zenon_TY_gx)))); [ zenon_intro zenon_Hc4 | zenon_intro zenon_Hc5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Hc4). zenon_intro zenon_Hc6. zenon_intro zenon_Hb1. % 0.85/1.02 apply (zenon_L11_ zenon_TY_gx zenon_TY_gh zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb); trivial. % 0.85/1.02 cut ((reachable zenon_TY_gx zenon_TY_hn) = (reachable (initial_world) zenon_TY_hn)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hc1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_Hc2. % 0.85/1.02 cut ((zenon_TY_hn = zenon_TY_hn)); [idtac | apply NNPP; zenon_intro zenon_Hc7]. % 0.85/1.02 cut ((zenon_TY_gx = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_Hc8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Hc5); [ zenon_intro zenon_Hca | zenon_intro zenon_Hc9 ]. % 0.85/1.02 apply zenon_Hca. zenon_intro zenon_Hcb. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_gx = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hc8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_gx)); [idtac | apply NNPP; zenon_intro zenon_Hc6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Hc6 zenon_Hcb). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_Hc9. zenon_intro zenon_Hbf. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_gx). zenon_intro zenon_Hcc. % 0.85/1.02 generalize (zenon_Hcc zenon_TY_hn). zenon_intro zenon_Hcd. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hcd); [ zenon_intro zenon_Hb1 | zenon_intro zenon_Hce ]. % 0.85/1.02 exact (zenon_Hb1 zenon_Hbf). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hce); [ zenon_intro zenon_Hd0 | zenon_intro zenon_Hcf ]. % 0.85/1.02 exact (zenon_Hd0 zenon_Hc2). % 0.85/1.02 exact (zenon_Hc1 zenon_Hcf). % 0.85/1.02 apply zenon_Hc7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L12_ *) % 0.85/1.02 assert (zenon_L13_ : forall (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U), (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_id)) -> (reachable zenon_TY_hn zenon_TY_id) -> False). % 0.85/1.02 do 9 intro. intros zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_H4 zenon_Hd1 zenon_Hd2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_hn))/\(~(reachable (initial_world) zenon_TY_hn)))); [ zenon_intro zenon_Hd4 | zenon_intro zenon_Hd5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Hd4). zenon_intro zenon_Hd6. zenon_intro zenon_Hc1. % 0.85/1.02 apply (zenon_L12_ zenon_TY_hn zenon_TY_gx zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr); trivial. % 0.85/1.02 cut ((reachable zenon_TY_hn zenon_TY_id) = (reachable (initial_world) zenon_TY_id)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hd1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_Hd2. % 0.85/1.02 cut ((zenon_TY_id = zenon_TY_id)); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 0.85/1.02 cut ((zenon_TY_hn = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_Hd8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Hd5); [ zenon_intro zenon_Hda | zenon_intro zenon_Hd9 ]. % 0.85/1.02 apply zenon_Hda. zenon_intro zenon_Hdb. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_hn = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hd8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_hn)); [idtac | apply NNPP; zenon_intro zenon_Hd6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Hd6 zenon_Hdb). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_Hd9. zenon_intro zenon_Hcf. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_hn). zenon_intro zenon_Hdc. % 0.85/1.02 generalize (zenon_Hdc zenon_TY_id). zenon_intro zenon_Hdd. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hdd); [ zenon_intro zenon_Hc1 | zenon_intro zenon_Hde ]. % 0.85/1.02 exact (zenon_Hc1 zenon_Hcf). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hde); [ zenon_intro zenon_He0 | zenon_intro zenon_Hdf ]. % 0.85/1.02 exact (zenon_He0 zenon_Hd2). % 0.85/1.02 exact (zenon_Hd1 zenon_Hdf). % 0.85/1.02 apply zenon_Hd7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L13_ *) % 0.85/1.02 assert (zenon_L14_ : forall (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U), (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_it)) -> (reachable zenon_TY_id zenon_TY_it) -> False). % 0.85/1.02 do 10 intro. intros zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_H4 zenon_He1 zenon_He2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_id))/\(~(reachable (initial_world) zenon_TY_id)))); [ zenon_intro zenon_He4 | zenon_intro zenon_He5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_He4). zenon_intro zenon_He6. zenon_intro zenon_Hd1. % 0.85/1.02 apply (zenon_L13_ zenon_TY_id zenon_TY_hn zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh); trivial. % 0.85/1.02 cut ((reachable zenon_TY_id zenon_TY_it) = (reachable (initial_world) zenon_TY_it)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_He1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_He2. % 0.85/1.02 cut ((zenon_TY_it = zenon_TY_it)); [idtac | apply NNPP; zenon_intro zenon_He7]. % 0.85/1.02 cut ((zenon_TY_id = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_He8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_He5); [ zenon_intro zenon_Hea | zenon_intro zenon_He9 ]. % 0.85/1.02 apply zenon_Hea. zenon_intro zenon_Heb. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_id = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_He8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_id)); [idtac | apply NNPP; zenon_intro zenon_He6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_He6 zenon_Heb). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_He9. zenon_intro zenon_Hdf. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_id). zenon_intro zenon_Hec. % 0.85/1.02 generalize (zenon_Hec zenon_TY_it). zenon_intro zenon_Hed. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hed); [ zenon_intro zenon_Hd1 | zenon_intro zenon_Hee ]. % 0.85/1.02 exact (zenon_Hd1 zenon_Hdf). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hee); [ zenon_intro zenon_Hf0 | zenon_intro zenon_Hef ]. % 0.85/1.02 exact (zenon_Hf0 zenon_He2). % 0.85/1.02 exact (zenon_He1 zenon_Hef). % 0.85/1.02 apply zenon_He7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L14_ *) % 0.85/1.02 assert (zenon_L15_ : forall (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U), (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_jj)) -> (reachable zenon_TY_it zenon_TY_jj) -> False). % 0.85/1.02 do 11 intro. intros zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H4 zenon_Hf1 zenon_Hf2. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_it))/\(~(reachable (initial_world) zenon_TY_it)))); [ zenon_intro zenon_Hf4 | zenon_intro zenon_Hf5 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_Hf4). zenon_intro zenon_Hf6. zenon_intro zenon_He1. % 0.85/1.02 apply (zenon_L14_ zenon_TY_it zenon_TY_id zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx); trivial. % 0.85/1.02 cut ((reachable zenon_TY_it zenon_TY_jj) = (reachable (initial_world) zenon_TY_jj)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hf1. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_Hf2. % 0.85/1.02 cut ((zenon_TY_jj = zenon_TY_jj)); [idtac | apply NNPP; zenon_intro zenon_Hf7]. % 0.85/1.02 cut ((zenon_TY_it = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_Hf8]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_Hf5); [ zenon_intro zenon_Hfa | zenon_intro zenon_Hf9 ]. % 0.85/1.02 apply zenon_Hfa. zenon_intro zenon_Hfb. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_it = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_Hf8. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_it)); [idtac | apply NNPP; zenon_intro zenon_Hf6]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_Hf6 zenon_Hfb). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_Hf9. zenon_intro zenon_Hef. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_it). zenon_intro zenon_Hfc. % 0.85/1.02 generalize (zenon_Hfc zenon_TY_jj). zenon_intro zenon_Hfd. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hfd); [ zenon_intro zenon_He1 | zenon_intro zenon_Hfe ]. % 0.85/1.02 exact (zenon_He1 zenon_Hef). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_Hfe); [ zenon_intro zenon_H100 | zenon_intro zenon_Hff ]. % 0.85/1.02 exact (zenon_H100 zenon_Hf2). % 0.85/1.02 exact (zenon_Hf1 zenon_Hff). % 0.85/1.02 apply zenon_Hf7. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L15_ *) % 0.85/1.02 assert (zenon_L16_ : forall (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U), (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_jz)) -> (reachable zenon_TY_jj zenon_TY_jz) -> False). % 0.85/1.02 do 12 intro. intros zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H4 zenon_H101 zenon_H102. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_jj))/\(~(reachable (initial_world) zenon_TY_jj)))); [ zenon_intro zenon_H104 | zenon_intro zenon_H105 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H104). zenon_intro zenon_H106. zenon_intro zenon_Hf1. % 0.85/1.02 apply (zenon_L15_ zenon_TY_jj zenon_TY_it zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn); trivial. % 0.85/1.02 cut ((reachable zenon_TY_jj zenon_TY_jz) = (reachable (initial_world) zenon_TY_jz)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H101. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H102. % 0.85/1.02 cut ((zenon_TY_jz = zenon_TY_jz)); [idtac | apply NNPP; zenon_intro zenon_H107]. % 0.85/1.02 cut ((zenon_TY_jj = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H108]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H105); [ zenon_intro zenon_H10a | zenon_intro zenon_H109 ]. % 0.85/1.02 apply zenon_H10a. zenon_intro zenon_H10b. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_jj = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H108. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_jj)); [idtac | apply NNPP; zenon_intro zenon_H106]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H106 zenon_H10b). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H109. zenon_intro zenon_Hff. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_jj). zenon_intro zenon_H10c. % 0.85/1.02 generalize (zenon_H10c zenon_TY_jz). zenon_intro zenon_H10d. % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H10d); [ zenon_intro zenon_Hf1 | zenon_intro zenon_H10e ]. % 0.85/1.02 exact (zenon_Hf1 zenon_Hff). % 0.85/1.02 apply (zenon_imply_s _ _ zenon_H10e); [ zenon_intro zenon_H110 | zenon_intro zenon_H10f ]. % 0.85/1.02 exact (zenon_H110 zenon_H102). % 0.85/1.02 exact (zenon_H101 zenon_H10f). % 0.85/1.02 apply zenon_H107. apply refl_equal. % 0.85/1.02 (* end of lemma zenon_L16_ *) % 0.85/1.02 assert (zenon_L17_ : forall (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U), (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_kp)) -> (reachable zenon_TY_jz zenon_TY_kp) -> False). % 0.85/1.02 do 13 intro. intros zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H4 zenon_H111 zenon_H112. % 0.85/1.02 elim (classic ((~((initial_world) = zenon_TY_jz))/\(~(reachable (initial_world) zenon_TY_jz)))); [ zenon_intro zenon_H114 | zenon_intro zenon_H115 ]. % 0.85/1.02 apply (zenon_and_s _ _ zenon_H114). zenon_intro zenon_H116. zenon_intro zenon_H101. % 0.85/1.02 apply (zenon_L16_ zenon_TY_jz zenon_TY_jj zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id); trivial. % 0.85/1.02 cut ((reachable zenon_TY_jz zenon_TY_kp) = (reachable (initial_world) zenon_TY_kp)). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H111. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H112. % 0.85/1.02 cut ((zenon_TY_kp = zenon_TY_kp)); [idtac | apply NNPP; zenon_intro zenon_H117]. % 0.85/1.02 cut ((zenon_TY_jz = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H118]. % 0.85/1.02 congruence. % 0.85/1.02 apply (zenon_notand_s _ _ zenon_H115); [ zenon_intro zenon_H11a | zenon_intro zenon_H119 ]. % 0.85/1.02 apply zenon_H11a. zenon_intro zenon_H11b. % 0.85/1.02 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.02 cut (((initial_world) = (initial_world)) = (zenon_TY_jz = (initial_world))). % 0.85/1.02 intro zenon_D_pnotp. % 0.85/1.02 apply zenon_H118. % 0.85/1.02 rewrite <- zenon_D_pnotp. % 0.85/1.02 exact zenon_H69. % 0.85/1.02 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.02 cut (((initial_world) = zenon_TY_jz)); [idtac | apply NNPP; zenon_intro zenon_H116]. % 0.85/1.02 congruence. % 0.85/1.02 exact (zenon_H116 zenon_H11b). % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H6a. apply refl_equal. % 0.85/1.02 apply zenon_H119. zenon_intro zenon_H10f. % 0.85/1.02 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.02 generalize (zenon_H6b zenon_TY_jz). zenon_intro zenon_H11c. % 0.85/1.03 generalize (zenon_H11c zenon_TY_kp). zenon_intro zenon_H11d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H11d); [ zenon_intro zenon_H101 | zenon_intro zenon_H11e ]. % 0.85/1.03 exact (zenon_H101 zenon_H10f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H11e); [ zenon_intro zenon_H120 | zenon_intro zenon_H11f ]. % 0.85/1.03 exact (zenon_H120 zenon_H112). % 0.85/1.03 exact (zenon_H111 zenon_H11f). % 0.85/1.03 apply zenon_H117. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L17_ *) % 0.85/1.03 assert (zenon_L18_ : forall (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U), (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_lf)) -> (reachable zenon_TY_kp zenon_TY_lf) -> False). % 0.85/1.03 do 14 intro. intros zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H4 zenon_H121 zenon_H122. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_kp))/\(~(reachable (initial_world) zenon_TY_kp)))); [ zenon_intro zenon_H124 | zenon_intro zenon_H125 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H124). zenon_intro zenon_H126. zenon_intro zenon_H111. % 0.85/1.03 apply (zenon_L17_ zenon_TY_kp zenon_TY_jz zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it); trivial. % 0.85/1.03 cut ((reachable zenon_TY_kp zenon_TY_lf) = (reachable (initial_world) zenon_TY_lf)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H121. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H122. % 0.85/1.03 cut ((zenon_TY_lf = zenon_TY_lf)); [idtac | apply NNPP; zenon_intro zenon_H127]. % 0.85/1.03 cut ((zenon_TY_kp = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H128]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H125); [ zenon_intro zenon_H12a | zenon_intro zenon_H129 ]. % 0.85/1.03 apply zenon_H12a. zenon_intro zenon_H12b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_kp = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H128. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_kp)); [idtac | apply NNPP; zenon_intro zenon_H126]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H126 zenon_H12b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H129. zenon_intro zenon_H11f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_kp). zenon_intro zenon_H12c. % 0.85/1.03 generalize (zenon_H12c zenon_TY_lf). zenon_intro zenon_H12d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H12d); [ zenon_intro zenon_H111 | zenon_intro zenon_H12e ]. % 0.85/1.03 exact (zenon_H111 zenon_H11f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H12e); [ zenon_intro zenon_H130 | zenon_intro zenon_H12f ]. % 0.85/1.03 exact (zenon_H130 zenon_H122). % 0.85/1.03 exact (zenon_H121 zenon_H12f). % 0.85/1.03 apply zenon_H127. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L18_ *) % 0.85/1.03 assert (zenon_L19_ : forall (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U), (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_lv)) -> (reachable zenon_TY_lf zenon_TY_lv) -> False). % 0.85/1.03 do 15 intro. intros zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H4 zenon_H131 zenon_H132. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_lf))/\(~(reachable (initial_world) zenon_TY_lf)))); [ zenon_intro zenon_H134 | zenon_intro zenon_H135 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H134). zenon_intro zenon_H136. zenon_intro zenon_H121. % 0.85/1.03 apply (zenon_L18_ zenon_TY_lf zenon_TY_kp zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj); trivial. % 0.85/1.03 cut ((reachable zenon_TY_lf zenon_TY_lv) = (reachable (initial_world) zenon_TY_lv)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H131. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H132. % 0.85/1.03 cut ((zenon_TY_lv = zenon_TY_lv)); [idtac | apply NNPP; zenon_intro zenon_H137]. % 0.85/1.03 cut ((zenon_TY_lf = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H138]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H135); [ zenon_intro zenon_H13a | zenon_intro zenon_H139 ]. % 0.85/1.03 apply zenon_H13a. zenon_intro zenon_H13b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_lf = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H138. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_lf)); [idtac | apply NNPP; zenon_intro zenon_H136]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H136 zenon_H13b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H139. zenon_intro zenon_H12f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_lf). zenon_intro zenon_H13c. % 0.85/1.03 generalize (zenon_H13c zenon_TY_lv). zenon_intro zenon_H13d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H13d); [ zenon_intro zenon_H121 | zenon_intro zenon_H13e ]. % 0.85/1.03 exact (zenon_H121 zenon_H12f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H13e); [ zenon_intro zenon_H140 | zenon_intro zenon_H13f ]. % 0.85/1.03 exact (zenon_H140 zenon_H132). % 0.85/1.03 exact (zenon_H131 zenon_H13f). % 0.85/1.03 apply zenon_H137. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L19_ *) % 0.85/1.03 assert (zenon_L20_ : forall (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U), (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_ml)) -> (reachable zenon_TY_lv zenon_TY_ml) -> False). % 0.85/1.03 do 16 intro. intros zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H4 zenon_H141 zenon_H142. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_lv))/\(~(reachable (initial_world) zenon_TY_lv)))); [ zenon_intro zenon_H144 | zenon_intro zenon_H145 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H144). zenon_intro zenon_H146. zenon_intro zenon_H131. % 0.85/1.03 apply (zenon_L19_ zenon_TY_lv zenon_TY_lf zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz); trivial. % 0.85/1.03 cut ((reachable zenon_TY_lv zenon_TY_ml) = (reachable (initial_world) zenon_TY_ml)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H141. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H142. % 0.85/1.03 cut ((zenon_TY_ml = zenon_TY_ml)); [idtac | apply NNPP; zenon_intro zenon_H147]. % 0.85/1.03 cut ((zenon_TY_lv = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H148]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H145); [ zenon_intro zenon_H14a | zenon_intro zenon_H149 ]. % 0.85/1.03 apply zenon_H14a. zenon_intro zenon_H14b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_lv = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H148. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_lv)); [idtac | apply NNPP; zenon_intro zenon_H146]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H146 zenon_H14b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H149. zenon_intro zenon_H13f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_lv). zenon_intro zenon_H14c. % 0.85/1.03 generalize (zenon_H14c zenon_TY_ml). zenon_intro zenon_H14d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H14d); [ zenon_intro zenon_H131 | zenon_intro zenon_H14e ]. % 0.85/1.03 exact (zenon_H131 zenon_H13f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H14e); [ zenon_intro zenon_H150 | zenon_intro zenon_H14f ]. % 0.85/1.03 exact (zenon_H150 zenon_H142). % 0.85/1.03 exact (zenon_H141 zenon_H14f). % 0.85/1.03 apply zenon_H147. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L20_ *) % 0.85/1.03 assert (zenon_L21_ : forall (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U), (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_nb)) -> (reachable zenon_TY_ml zenon_TY_nb) -> False). % 0.85/1.03 do 17 intro. intros zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H4 zenon_H151 zenon_H152. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_ml))/\(~(reachable (initial_world) zenon_TY_ml)))); [ zenon_intro zenon_H154 | zenon_intro zenon_H155 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H154). zenon_intro zenon_H156. zenon_intro zenon_H141. % 0.85/1.03 apply (zenon_L20_ zenon_TY_ml zenon_TY_lv zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp); trivial. % 0.85/1.03 cut ((reachable zenon_TY_ml zenon_TY_nb) = (reachable (initial_world) zenon_TY_nb)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H151. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H152. % 0.85/1.03 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.03 cut ((zenon_TY_ml = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H158]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H155); [ zenon_intro zenon_H15a | zenon_intro zenon_H159 ]. % 0.85/1.03 apply zenon_H15a. zenon_intro zenon_H15b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_ml = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H158. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_ml)); [idtac | apply NNPP; zenon_intro zenon_H156]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H156 zenon_H15b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H159. zenon_intro zenon_H14f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_ml). zenon_intro zenon_H15c. % 0.85/1.03 generalize (zenon_H15c zenon_TY_nb). zenon_intro zenon_H15d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H15d); [ zenon_intro zenon_H141 | zenon_intro zenon_H15e ]. % 0.85/1.03 exact (zenon_H141 zenon_H14f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H15e); [ zenon_intro zenon_H160 | zenon_intro zenon_H15f ]. % 0.85/1.03 exact (zenon_H160 zenon_H152). % 0.85/1.03 exact (zenon_H151 zenon_H15f). % 0.85/1.03 apply zenon_H157. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L21_ *) % 0.85/1.03 assert (zenon_L22_ : forall (zenon_TY_nr : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U), (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_ml zenon_TY_nb) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_nr)) -> (reachable zenon_TY_nb zenon_TY_nr) -> False). % 0.85/1.03 do 18 intro. intros zenon_H142 zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H152 zenon_H4 zenon_H161 zenon_H162. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_nb))/\(~(reachable (initial_world) zenon_TY_nb)))); [ zenon_intro zenon_H164 | zenon_intro zenon_H165 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H164). zenon_intro zenon_H166. zenon_intro zenon_H151. % 0.85/1.03 apply (zenon_L21_ zenon_TY_nb zenon_TY_ml zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf); trivial. % 0.85/1.03 cut ((reachable zenon_TY_nb zenon_TY_nr) = (reachable (initial_world) zenon_TY_nr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H161. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H162. % 0.85/1.03 cut ((zenon_TY_nr = zenon_TY_nr)); [idtac | apply NNPP; zenon_intro zenon_H167]. % 0.85/1.03 cut ((zenon_TY_nb = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H168]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H165); [ zenon_intro zenon_H16a | zenon_intro zenon_H169 ]. % 0.85/1.03 apply zenon_H16a. zenon_intro zenon_H16b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_nb = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H168. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H166]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H166 zenon_H16b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H169. zenon_intro zenon_H15f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_nb). zenon_intro zenon_H16c. % 0.85/1.03 generalize (zenon_H16c zenon_TY_nr). zenon_intro zenon_H16d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H16d); [ zenon_intro zenon_H151 | zenon_intro zenon_H16e ]. % 0.85/1.03 exact (zenon_H151 zenon_H15f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H16e); [ zenon_intro zenon_H170 | zenon_intro zenon_H16f ]. % 0.85/1.03 exact (zenon_H170 zenon_H162). % 0.85/1.03 exact (zenon_H161 zenon_H16f). % 0.85/1.03 apply zenon_H167. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L22_ *) % 0.85/1.03 assert (zenon_L23_ : forall (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U), (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_oh)) -> (reachable zenon_TY_nr zenon_TY_oh) -> False). % 0.85/1.03 do 19 intro. intros zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H4 zenon_H171 zenon_H172. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_nr))/\(~(reachable (initial_world) zenon_TY_nr)))); [ zenon_intro zenon_H174 | zenon_intro zenon_H175 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H174). zenon_intro zenon_H176. zenon_intro zenon_H161. % 0.85/1.03 apply (zenon_L22_ zenon_TY_nr zenon_TY_nb zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv); trivial. % 0.85/1.03 cut ((reachable zenon_TY_nr zenon_TY_oh) = (reachable (initial_world) zenon_TY_oh)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H171. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H172. % 0.85/1.03 cut ((zenon_TY_oh = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H177]. % 0.85/1.03 cut ((zenon_TY_nr = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H178]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H175); [ zenon_intro zenon_H17a | zenon_intro zenon_H179 ]. % 0.85/1.03 apply zenon_H17a. zenon_intro zenon_H17b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_nr = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H178. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_nr)); [idtac | apply NNPP; zenon_intro zenon_H176]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H176 zenon_H17b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H179. zenon_intro zenon_H16f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_nr). zenon_intro zenon_H17c. % 0.85/1.03 generalize (zenon_H17c zenon_TY_oh). zenon_intro zenon_H17d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H17d); [ zenon_intro zenon_H161 | zenon_intro zenon_H17e ]. % 0.85/1.03 exact (zenon_H161 zenon_H16f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H17e); [ zenon_intro zenon_H180 | zenon_intro zenon_H17f ]. % 0.85/1.03 exact (zenon_H180 zenon_H172). % 0.85/1.03 exact (zenon_H171 zenon_H17f). % 0.85/1.03 apply zenon_H177. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L23_ *) % 0.85/1.03 assert (zenon_L24_ : forall (zenon_TY_ox : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TY_nb : zenon_U), (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_nr zenon_TY_oh) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_ox)) -> (reachable zenon_TY_oh zenon_TY_ox) -> False). % 0.85/1.03 do 20 intro. intros zenon_H162 zenon_H142 zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H5b zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H152 zenon_H172 zenon_H4 zenon_H181 zenon_H182. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_oh))/\(~(reachable (initial_world) zenon_TY_oh)))); [ zenon_intro zenon_H184 | zenon_intro zenon_H185 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H184). zenon_intro zenon_H186. zenon_intro zenon_H171. % 0.85/1.03 apply (zenon_L23_ zenon_TY_oh zenon_TY_nr zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml); trivial. % 0.85/1.03 cut ((reachable zenon_TY_oh zenon_TY_ox) = (reachable (initial_world) zenon_TY_ox)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H181. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H182. % 0.85/1.03 cut ((zenon_TY_ox = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H187]. % 0.85/1.03 cut ((zenon_TY_oh = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H188]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H185); [ zenon_intro zenon_H18a | zenon_intro zenon_H189 ]. % 0.85/1.03 apply zenon_H18a. zenon_intro zenon_H18b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_oh = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H188. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H186]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H186 zenon_H18b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H189. zenon_intro zenon_H17f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_oh). zenon_intro zenon_H18c. % 0.85/1.03 generalize (zenon_H18c zenon_TY_ox). zenon_intro zenon_H18d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H18d); [ zenon_intro zenon_H171 | zenon_intro zenon_H18e ]. % 0.85/1.03 exact (zenon_H171 zenon_H17f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H18e); [ zenon_intro zenon_H190 | zenon_intro zenon_H18f ]. % 0.85/1.03 exact (zenon_H190 zenon_H182). % 0.85/1.03 exact (zenon_H181 zenon_H18f). % 0.85/1.03 apply zenon_H187. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L24_ *) % 0.85/1.03 assert (zenon_L25_ : forall (zenon_TY_pn : zenon_U) (zenon_TY_ox : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U), (reachable zenon_TY_nr zenon_TY_oh) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable (initial_world) zenon_TX_dr) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_oh zenon_TY_ox) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable (initial_world) zenon_TY_pn)) -> (reachable zenon_TY_ox zenon_TY_pn) -> False). % 0.85/1.03 do 21 intro. intros zenon_H172 zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5b zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H182 zenon_H4 zenon_H191 zenon_H192. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TY_ox))/\(~(reachable (initial_world) zenon_TY_ox)))); [ zenon_intro zenon_H194 | zenon_intro zenon_H195 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H194). zenon_intro zenon_H196. zenon_intro zenon_H181. % 0.85/1.03 apply (zenon_L24_ zenon_TY_ox zenon_TY_oh zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv zenon_TY_nr zenon_TY_nb); trivial. % 0.85/1.03 cut ((reachable zenon_TY_ox zenon_TY_pn) = (reachable (initial_world) zenon_TY_pn)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H191. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H192. % 0.85/1.03 cut ((zenon_TY_pn = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H197]. % 0.85/1.03 cut ((zenon_TY_ox = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H198]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H195); [ zenon_intro zenon_H19a | zenon_intro zenon_H199 ]. % 0.85/1.03 apply zenon_H19a. zenon_intro zenon_H19b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TY_ox = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H198. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H196]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H196 zenon_H19b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H199. zenon_intro zenon_H18f. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TY_ox). zenon_intro zenon_H19c. % 0.85/1.03 generalize (zenon_H19c zenon_TY_pn). zenon_intro zenon_H19d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H19d); [ zenon_intro zenon_H181 | zenon_intro zenon_H19e ]. % 0.85/1.03 exact (zenon_H181 zenon_H18f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H19e); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H19f ]. % 0.85/1.03 exact (zenon_H1a0 zenon_H192). % 0.85/1.03 exact (zenon_H191 zenon_H19f). % 0.85/1.03 apply zenon_H197. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L25_ *) % 0.85/1.03 assert (zenon_L26_ : forall (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U), (reachable zenon_TX_dr zenon_TY_dq) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_el)) -> (reachable zenon_TY_dq zenon_TY_el) -> False). % 0.85/1.03 do 3 intro. intros zenon_H5d zenon_H4 zenon_H1a1 zenon_H72. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_dq))/\(~(reachable zenon_TX_dr zenon_TY_dq)))); [ zenon_intro zenon_H1a2 | zenon_intro zenon_H1a3 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1a2). zenon_intro zenon_H1a4. zenon_intro zenon_H70. % 0.85/1.03 exact (zenon_H70 zenon_H5d). % 0.85/1.03 cut ((reachable zenon_TY_dq zenon_TY_el) = (reachable zenon_TX_dr zenon_TY_el)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1a1. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H72. % 0.85/1.03 cut ((zenon_TY_el = zenon_TY_el)); [idtac | apply NNPP; zenon_intro zenon_H77]. % 0.85/1.03 cut ((zenon_TY_dq = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1a5]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1a3); [ zenon_intro zenon_H1a7 | zenon_intro zenon_H1a6 ]. % 0.85/1.03 apply zenon_H1a7. zenon_intro zenon_H1a8. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_dq = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1a5. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_dq)); [idtac | apply NNPP; zenon_intro zenon_H1a4]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1a4 zenon_H1a8). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1a6. zenon_intro zenon_H5d. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_dq). zenon_intro zenon_H1ac. % 0.85/1.03 generalize (zenon_H1ac zenon_TY_el). zenon_intro zenon_H1ad. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1ad); [ zenon_intro zenon_H70 | zenon_intro zenon_H1ae ]. % 0.85/1.03 exact (zenon_H70 zenon_H5d). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1ae); [ zenon_intro zenon_H80 | zenon_intro zenon_H1af ]. % 0.85/1.03 exact (zenon_H80 zenon_H72). % 0.85/1.03 exact (zenon_H1a1 zenon_H1af). % 0.85/1.03 apply zenon_H77. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L26_ *) % 0.85/1.03 assert (zenon_L27_ : forall (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U), (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_fb)) -> (reachable zenon_TY_el zenon_TY_fb) -> False). % 0.85/1.03 do 4 intro. intros zenon_H5d zenon_H72 zenon_H4 zenon_H1b0 zenon_H82. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_el))/\(~(reachable zenon_TX_dr zenon_TY_el)))); [ zenon_intro zenon_H1b1 | zenon_intro zenon_H1b2 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1b1). zenon_intro zenon_H1b3. zenon_intro zenon_H1a1. % 0.85/1.03 apply (zenon_L26_ zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.03 cut ((reachable zenon_TY_el zenon_TY_fb) = (reachable zenon_TX_dr zenon_TY_fb)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1b0. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H82. % 0.85/1.03 cut ((zenon_TY_fb = zenon_TY_fb)); [idtac | apply NNPP; zenon_intro zenon_H87]. % 0.85/1.03 cut ((zenon_TY_el = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1b4]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1b2); [ zenon_intro zenon_H1b6 | zenon_intro zenon_H1b5 ]. % 0.85/1.03 apply zenon_H1b6. zenon_intro zenon_H1b7. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_el = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1b4. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_el)); [idtac | apply NNPP; zenon_intro zenon_H1b3]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1b3 zenon_H1b7). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1b5. zenon_intro zenon_H1af. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_el). zenon_intro zenon_H1b8. % 0.85/1.03 generalize (zenon_H1b8 zenon_TY_fb). zenon_intro zenon_H1b9. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1b9); [ zenon_intro zenon_H1a1 | zenon_intro zenon_H1ba ]. % 0.85/1.03 exact (zenon_H1a1 zenon_H1af). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1ba); [ zenon_intro zenon_H90 | zenon_intro zenon_H1bb ]. % 0.85/1.03 exact (zenon_H90 zenon_H82). % 0.85/1.03 exact (zenon_H1b0 zenon_H1bb). % 0.85/1.03 apply zenon_H87. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L27_ *) % 0.85/1.03 assert (zenon_L28_ : forall (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U), (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_fr)) -> (reachable zenon_TY_fb zenon_TY_fr) -> False). % 0.85/1.03 do 5 intro. intros zenon_H72 zenon_H5d zenon_H82 zenon_H4 zenon_H1bc zenon_H92. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_fb))/\(~(reachable zenon_TX_dr zenon_TY_fb)))); [ zenon_intro zenon_H1bd | zenon_intro zenon_H1be ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1bd). zenon_intro zenon_H1bf. zenon_intro zenon_H1b0. % 0.85/1.03 apply (zenon_L27_ zenon_TY_fb zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.03 cut ((reachable zenon_TY_fb zenon_TY_fr) = (reachable zenon_TX_dr zenon_TY_fr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1bc. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H92. % 0.85/1.03 cut ((zenon_TY_fr = zenon_TY_fr)); [idtac | apply NNPP; zenon_intro zenon_H97]. % 0.85/1.03 cut ((zenon_TY_fb = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1c0]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1be); [ zenon_intro zenon_H1c2 | zenon_intro zenon_H1c1 ]. % 0.85/1.03 apply zenon_H1c2. zenon_intro zenon_H1c3. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_fb = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1c0. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_fb)); [idtac | apply NNPP; zenon_intro zenon_H1bf]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1bf zenon_H1c3). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1c1. zenon_intro zenon_H1bb. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_fb). zenon_intro zenon_H1c4. % 0.85/1.03 generalize (zenon_H1c4 zenon_TY_fr). zenon_intro zenon_H1c5. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1c5); [ zenon_intro zenon_H1b0 | zenon_intro zenon_H1c6 ]. % 0.85/1.03 exact (zenon_H1b0 zenon_H1bb). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1c6); [ zenon_intro zenon_Ha0 | zenon_intro zenon_H1c7 ]. % 0.85/1.03 exact (zenon_Ha0 zenon_H92). % 0.85/1.03 exact (zenon_H1bc zenon_H1c7). % 0.85/1.03 apply zenon_H97. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L28_ *) % 0.85/1.03 assert (zenon_L29_ : forall (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U), (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_gh)) -> (reachable zenon_TY_fr zenon_TY_gh) -> False). % 0.85/1.03 do 6 intro. intros zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_H4 zenon_H1c8 zenon_Ha2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_fr))/\(~(reachable zenon_TX_dr zenon_TY_fr)))); [ zenon_intro zenon_H1c9 | zenon_intro zenon_H1ca ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1c9). zenon_intro zenon_H1cb. zenon_intro zenon_H1bc. % 0.85/1.03 apply (zenon_L28_ zenon_TY_fr zenon_TY_fb zenon_TX_dr zenon_TY_el zenon_TY_dq); trivial. % 0.85/1.03 cut ((reachable zenon_TY_fr zenon_TY_gh) = (reachable zenon_TX_dr zenon_TY_gh)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1c8. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_Ha2. % 0.85/1.03 cut ((zenon_TY_gh = zenon_TY_gh)); [idtac | apply NNPP; zenon_intro zenon_Ha7]. % 0.85/1.03 cut ((zenon_TY_fr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1cc]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1ca); [ zenon_intro zenon_H1ce | zenon_intro zenon_H1cd ]. % 0.85/1.03 apply zenon_H1ce. zenon_intro zenon_H1cf. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_fr = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1cc. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_fr)); [idtac | apply NNPP; zenon_intro zenon_H1cb]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1cb zenon_H1cf). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1cd. zenon_intro zenon_H1c7. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_fr). zenon_intro zenon_H1d0. % 0.85/1.03 generalize (zenon_H1d0 zenon_TY_gh). zenon_intro zenon_H1d1. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1d1); [ zenon_intro zenon_H1bc | zenon_intro zenon_H1d2 ]. % 0.85/1.03 exact (zenon_H1bc zenon_H1c7). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1d2); [ zenon_intro zenon_Hb0 | zenon_intro zenon_H1d3 ]. % 0.85/1.03 exact (zenon_Hb0 zenon_Ha2). % 0.85/1.03 exact (zenon_H1c8 zenon_H1d3). % 0.85/1.03 apply zenon_Ha7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L29_ *) % 0.85/1.03 assert (zenon_L30_ : forall (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U), (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_gx)) -> (reachable zenon_TY_gh zenon_TY_gx) -> False). % 0.85/1.03 do 7 intro. intros zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_H4 zenon_H1d4 zenon_Hb2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_gh))/\(~(reachable zenon_TX_dr zenon_TY_gh)))); [ zenon_intro zenon_H1d5 | zenon_intro zenon_H1d6 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1d5). zenon_intro zenon_H1d7. zenon_intro zenon_H1c8. % 0.85/1.03 apply (zenon_L29_ zenon_TY_gh zenon_TY_fr zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el); trivial. % 0.85/1.03 cut ((reachable zenon_TY_gh zenon_TY_gx) = (reachable zenon_TX_dr zenon_TY_gx)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1d4. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_Hb2. % 0.85/1.03 cut ((zenon_TY_gx = zenon_TY_gx)); [idtac | apply NNPP; zenon_intro zenon_Hb7]. % 0.85/1.03 cut ((zenon_TY_gh = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1d8]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1d6); [ zenon_intro zenon_H1da | zenon_intro zenon_H1d9 ]. % 0.85/1.03 apply zenon_H1da. zenon_intro zenon_H1db. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_gh = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1d8. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_gh)); [idtac | apply NNPP; zenon_intro zenon_H1d7]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1d7 zenon_H1db). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1d9. zenon_intro zenon_H1d3. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_gh). zenon_intro zenon_H1dc. % 0.85/1.03 generalize (zenon_H1dc zenon_TY_gx). zenon_intro zenon_H1dd. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1dd); [ zenon_intro zenon_H1c8 | zenon_intro zenon_H1de ]. % 0.85/1.03 exact (zenon_H1c8 zenon_H1d3). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1de); [ zenon_intro zenon_Hc0 | zenon_intro zenon_H1df ]. % 0.85/1.03 exact (zenon_Hc0 zenon_Hb2). % 0.85/1.03 exact (zenon_H1d4 zenon_H1df). % 0.85/1.03 apply zenon_Hb7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L30_ *) % 0.85/1.03 assert (zenon_L31_ : forall (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U), (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_hn)) -> (reachable zenon_TY_gx zenon_TY_hn) -> False). % 0.85/1.03 do 8 intro. intros zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_H4 zenon_H1e0 zenon_Hc2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_gx))/\(~(reachable zenon_TX_dr zenon_TY_gx)))); [ zenon_intro zenon_H1e1 | zenon_intro zenon_H1e2 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1e1). zenon_intro zenon_H1e3. zenon_intro zenon_H1d4. % 0.85/1.03 apply (zenon_L30_ zenon_TY_gx zenon_TY_gh zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb); trivial. % 0.85/1.03 cut ((reachable zenon_TY_gx zenon_TY_hn) = (reachable zenon_TX_dr zenon_TY_hn)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1e0. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_Hc2. % 0.85/1.03 cut ((zenon_TY_hn = zenon_TY_hn)); [idtac | apply NNPP; zenon_intro zenon_Hc7]. % 0.85/1.03 cut ((zenon_TY_gx = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1e4]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1e2); [ zenon_intro zenon_H1e6 | zenon_intro zenon_H1e5 ]. % 0.85/1.03 apply zenon_H1e6. zenon_intro zenon_H1e7. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_gx = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1e4. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_gx)); [idtac | apply NNPP; zenon_intro zenon_H1e3]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1e3 zenon_H1e7). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1e5. zenon_intro zenon_H1df. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_gx). zenon_intro zenon_H1e8. % 0.85/1.03 generalize (zenon_H1e8 zenon_TY_hn). zenon_intro zenon_H1e9. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1e9); [ zenon_intro zenon_H1d4 | zenon_intro zenon_H1ea ]. % 0.85/1.03 exact (zenon_H1d4 zenon_H1df). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1ea); [ zenon_intro zenon_Hd0 | zenon_intro zenon_H1eb ]. % 0.85/1.03 exact (zenon_Hd0 zenon_Hc2). % 0.85/1.03 exact (zenon_H1e0 zenon_H1eb). % 0.85/1.03 apply zenon_Hc7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L31_ *) % 0.85/1.03 assert (zenon_L32_ : forall (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U), (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_id)) -> (reachable zenon_TY_hn zenon_TY_id) -> False). % 0.85/1.03 do 9 intro. intros zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_H4 zenon_H1ec zenon_Hd2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_hn))/\(~(reachable zenon_TX_dr zenon_TY_hn)))); [ zenon_intro zenon_H1ed | zenon_intro zenon_H1ee ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1ed). zenon_intro zenon_H1ef. zenon_intro zenon_H1e0. % 0.85/1.03 apply (zenon_L31_ zenon_TY_hn zenon_TY_gx zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr); trivial. % 0.85/1.03 cut ((reachable zenon_TY_hn zenon_TY_id) = (reachable zenon_TX_dr zenon_TY_id)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1ec. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_Hd2. % 0.85/1.03 cut ((zenon_TY_id = zenon_TY_id)); [idtac | apply NNPP; zenon_intro zenon_Hd7]. % 0.85/1.03 cut ((zenon_TY_hn = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1f0]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1ee); [ zenon_intro zenon_H1f2 | zenon_intro zenon_H1f1 ]. % 0.85/1.03 apply zenon_H1f2. zenon_intro zenon_H1f3. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_hn = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1f0. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_hn)); [idtac | apply NNPP; zenon_intro zenon_H1ef]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1ef zenon_H1f3). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1f1. zenon_intro zenon_H1eb. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_hn). zenon_intro zenon_H1f4. % 0.85/1.03 generalize (zenon_H1f4 zenon_TY_id). zenon_intro zenon_H1f5. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1f5); [ zenon_intro zenon_H1e0 | zenon_intro zenon_H1f6 ]. % 0.85/1.03 exact (zenon_H1e0 zenon_H1eb). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H1f6); [ zenon_intro zenon_He0 | zenon_intro zenon_H1f7 ]. % 0.85/1.03 exact (zenon_He0 zenon_Hd2). % 0.85/1.03 exact (zenon_H1ec zenon_H1f7). % 0.85/1.03 apply zenon_Hd7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L32_ *) % 0.85/1.03 assert (zenon_L33_ : forall (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U), (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_it)) -> (reachable zenon_TY_id zenon_TY_it) -> False). % 0.85/1.03 do 10 intro. intros zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_H4 zenon_H1f8 zenon_He2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_id))/\(~(reachable zenon_TX_dr zenon_TY_id)))); [ zenon_intro zenon_H1f9 | zenon_intro zenon_H1fa ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H1f9). zenon_intro zenon_H1fb. zenon_intro zenon_H1ec. % 0.85/1.03 apply (zenon_L32_ zenon_TY_id zenon_TY_hn zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh); trivial. % 0.85/1.03 cut ((reachable zenon_TY_id zenon_TY_it) = (reachable zenon_TX_dr zenon_TY_it)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1f8. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_He2. % 0.85/1.03 cut ((zenon_TY_it = zenon_TY_it)); [idtac | apply NNPP; zenon_intro zenon_He7]. % 0.85/1.03 cut ((zenon_TY_id = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1fc]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H1fa); [ zenon_intro zenon_H1fe | zenon_intro zenon_H1fd ]. % 0.85/1.03 apply zenon_H1fe. zenon_intro zenon_H1ff. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_id = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H1fc. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_id)); [idtac | apply NNPP; zenon_intro zenon_H1fb]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H1fb zenon_H1ff). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1fd. zenon_intro zenon_H1f7. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_id). zenon_intro zenon_H200. % 0.85/1.03 generalize (zenon_H200 zenon_TY_it). zenon_intro zenon_H201. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H201); [ zenon_intro zenon_H1ec | zenon_intro zenon_H202 ]. % 0.85/1.03 exact (zenon_H1ec zenon_H1f7). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H202); [ zenon_intro zenon_Hf0 | zenon_intro zenon_H203 ]. % 0.85/1.03 exact (zenon_Hf0 zenon_He2). % 0.85/1.03 exact (zenon_H1f8 zenon_H203). % 0.85/1.03 apply zenon_He7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L33_ *) % 0.85/1.03 assert (zenon_L34_ : forall (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U), (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_jj)) -> (reachable zenon_TY_it zenon_TY_jj) -> False). % 0.85/1.03 do 11 intro. intros zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H4 zenon_H204 zenon_Hf2. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_it))/\(~(reachable zenon_TX_dr zenon_TY_it)))); [ zenon_intro zenon_H205 | zenon_intro zenon_H206 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H205). zenon_intro zenon_H207. zenon_intro zenon_H1f8. % 0.85/1.03 apply (zenon_L33_ zenon_TY_it zenon_TY_id zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx); trivial. % 0.85/1.03 cut ((reachable zenon_TY_it zenon_TY_jj) = (reachable zenon_TX_dr zenon_TY_jj)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H204. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_Hf2. % 0.85/1.03 cut ((zenon_TY_jj = zenon_TY_jj)); [idtac | apply NNPP; zenon_intro zenon_Hf7]. % 0.85/1.03 cut ((zenon_TY_it = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H208]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H206); [ zenon_intro zenon_H20a | zenon_intro zenon_H209 ]. % 0.85/1.03 apply zenon_H20a. zenon_intro zenon_H20b. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_it = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H208. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_it)); [idtac | apply NNPP; zenon_intro zenon_H207]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H207 zenon_H20b). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H209. zenon_intro zenon_H203. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_it). zenon_intro zenon_H20c. % 0.85/1.03 generalize (zenon_H20c zenon_TY_jj). zenon_intro zenon_H20d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H20d); [ zenon_intro zenon_H1f8 | zenon_intro zenon_H20e ]. % 0.85/1.03 exact (zenon_H1f8 zenon_H203). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H20e); [ zenon_intro zenon_H100 | zenon_intro zenon_H20f ]. % 0.85/1.03 exact (zenon_H100 zenon_Hf2). % 0.85/1.03 exact (zenon_H204 zenon_H20f). % 0.85/1.03 apply zenon_Hf7. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L34_ *) % 0.85/1.03 assert (zenon_L35_ : forall (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U), (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_jz)) -> (reachable zenon_TY_jj zenon_TY_jz) -> False). % 0.85/1.03 do 12 intro. intros zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H4 zenon_H210 zenon_H102. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_jj))/\(~(reachable zenon_TX_dr zenon_TY_jj)))); [ zenon_intro zenon_H211 | zenon_intro zenon_H212 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H211). zenon_intro zenon_H213. zenon_intro zenon_H204. % 0.85/1.03 apply (zenon_L34_ zenon_TY_jj zenon_TY_it zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn); trivial. % 0.85/1.03 cut ((reachable zenon_TY_jj zenon_TY_jz) = (reachable zenon_TX_dr zenon_TY_jz)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H210. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H102. % 0.85/1.03 cut ((zenon_TY_jz = zenon_TY_jz)); [idtac | apply NNPP; zenon_intro zenon_H107]. % 0.85/1.03 cut ((zenon_TY_jj = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H214]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H212); [ zenon_intro zenon_H216 | zenon_intro zenon_H215 ]. % 0.85/1.03 apply zenon_H216. zenon_intro zenon_H217. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_jj = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H214. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_jj)); [idtac | apply NNPP; zenon_intro zenon_H213]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H213 zenon_H217). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H215. zenon_intro zenon_H20f. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_jj). zenon_intro zenon_H218. % 0.85/1.03 generalize (zenon_H218 zenon_TY_jz). zenon_intro zenon_H219. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H219); [ zenon_intro zenon_H204 | zenon_intro zenon_H21a ]. % 0.85/1.03 exact (zenon_H204 zenon_H20f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H21a); [ zenon_intro zenon_H110 | zenon_intro zenon_H21b ]. % 0.85/1.03 exact (zenon_H110 zenon_H102). % 0.85/1.03 exact (zenon_H210 zenon_H21b). % 0.85/1.03 apply zenon_H107. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L35_ *) % 0.85/1.03 assert (zenon_L36_ : forall (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U), (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_kp)) -> (reachable zenon_TY_jz zenon_TY_kp) -> False). % 0.85/1.03 do 13 intro. intros zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H4 zenon_H21c zenon_H112. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_jz))/\(~(reachable zenon_TX_dr zenon_TY_jz)))); [ zenon_intro zenon_H21d | zenon_intro zenon_H21e ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H21d). zenon_intro zenon_H21f. zenon_intro zenon_H210. % 0.85/1.03 apply (zenon_L35_ zenon_TY_jz zenon_TY_jj zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id); trivial. % 0.85/1.03 cut ((reachable zenon_TY_jz zenon_TY_kp) = (reachable zenon_TX_dr zenon_TY_kp)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H21c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H112. % 0.85/1.03 cut ((zenon_TY_kp = zenon_TY_kp)); [idtac | apply NNPP; zenon_intro zenon_H117]. % 0.85/1.03 cut ((zenon_TY_jz = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H220]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H21e); [ zenon_intro zenon_H222 | zenon_intro zenon_H221 ]. % 0.85/1.03 apply zenon_H222. zenon_intro zenon_H223. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_jz = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H220. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_jz)); [idtac | apply NNPP; zenon_intro zenon_H21f]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H21f zenon_H223). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H221. zenon_intro zenon_H21b. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_jz). zenon_intro zenon_H224. % 0.85/1.03 generalize (zenon_H224 zenon_TY_kp). zenon_intro zenon_H225. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H225); [ zenon_intro zenon_H210 | zenon_intro zenon_H226 ]. % 0.85/1.03 exact (zenon_H210 zenon_H21b). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H226); [ zenon_intro zenon_H120 | zenon_intro zenon_H227 ]. % 0.85/1.03 exact (zenon_H120 zenon_H112). % 0.85/1.03 exact (zenon_H21c zenon_H227). % 0.85/1.03 apply zenon_H117. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L36_ *) % 0.85/1.03 assert (zenon_L37_ : forall (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U), (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_lf)) -> (reachable zenon_TY_kp zenon_TY_lf) -> False). % 0.85/1.03 do 14 intro. intros zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H4 zenon_H228 zenon_H122. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_kp))/\(~(reachable zenon_TX_dr zenon_TY_kp)))); [ zenon_intro zenon_H229 | zenon_intro zenon_H22a ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H229). zenon_intro zenon_H22b. zenon_intro zenon_H21c. % 0.85/1.03 apply (zenon_L36_ zenon_TY_kp zenon_TY_jz zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it); trivial. % 0.85/1.03 cut ((reachable zenon_TY_kp zenon_TY_lf) = (reachable zenon_TX_dr zenon_TY_lf)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H228. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H122. % 0.85/1.03 cut ((zenon_TY_lf = zenon_TY_lf)); [idtac | apply NNPP; zenon_intro zenon_H127]. % 0.85/1.03 cut ((zenon_TY_kp = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H22c]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H22a); [ zenon_intro zenon_H22e | zenon_intro zenon_H22d ]. % 0.85/1.03 apply zenon_H22e. zenon_intro zenon_H22f. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_kp = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H22c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_kp)); [idtac | apply NNPP; zenon_intro zenon_H22b]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H22b zenon_H22f). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H22d. zenon_intro zenon_H227. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_kp). zenon_intro zenon_H230. % 0.85/1.03 generalize (zenon_H230 zenon_TY_lf). zenon_intro zenon_H231. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H231); [ zenon_intro zenon_H21c | zenon_intro zenon_H232 ]. % 0.85/1.03 exact (zenon_H21c zenon_H227). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H232); [ zenon_intro zenon_H130 | zenon_intro zenon_H233 ]. % 0.85/1.03 exact (zenon_H130 zenon_H122). % 0.85/1.03 exact (zenon_H228 zenon_H233). % 0.85/1.03 apply zenon_H127. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L37_ *) % 0.85/1.03 assert (zenon_L38_ : forall (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U), (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_lv)) -> (reachable zenon_TY_lf zenon_TY_lv) -> False). % 0.85/1.03 do 15 intro. intros zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H4 zenon_H234 zenon_H132. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_lf))/\(~(reachable zenon_TX_dr zenon_TY_lf)))); [ zenon_intro zenon_H235 | zenon_intro zenon_H236 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H235). zenon_intro zenon_H237. zenon_intro zenon_H228. % 0.85/1.03 apply (zenon_L37_ zenon_TY_lf zenon_TY_kp zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj); trivial. % 0.85/1.03 cut ((reachable zenon_TY_lf zenon_TY_lv) = (reachable zenon_TX_dr zenon_TY_lv)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H234. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H132. % 0.85/1.03 cut ((zenon_TY_lv = zenon_TY_lv)); [idtac | apply NNPP; zenon_intro zenon_H137]. % 0.85/1.03 cut ((zenon_TY_lf = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H238]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H236); [ zenon_intro zenon_H23a | zenon_intro zenon_H239 ]. % 0.85/1.03 apply zenon_H23a. zenon_intro zenon_H23b. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_lf = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H238. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_lf)); [idtac | apply NNPP; zenon_intro zenon_H237]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H237 zenon_H23b). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H239. zenon_intro zenon_H233. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_lf). zenon_intro zenon_H23c. % 0.85/1.03 generalize (zenon_H23c zenon_TY_lv). zenon_intro zenon_H23d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H23d); [ zenon_intro zenon_H228 | zenon_intro zenon_H23e ]. % 0.85/1.03 exact (zenon_H228 zenon_H233). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H23e); [ zenon_intro zenon_H140 | zenon_intro zenon_H23f ]. % 0.85/1.03 exact (zenon_H140 zenon_H132). % 0.85/1.03 exact (zenon_H234 zenon_H23f). % 0.85/1.03 apply zenon_H137. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L38_ *) % 0.85/1.03 assert (zenon_L39_ : forall (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U), (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_ml)) -> (reachable zenon_TY_lv zenon_TY_ml) -> False). % 0.85/1.03 do 16 intro. intros zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H4 zenon_H240 zenon_H142. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_lv))/\(~(reachable zenon_TX_dr zenon_TY_lv)))); [ zenon_intro zenon_H241 | zenon_intro zenon_H242 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H241). zenon_intro zenon_H243. zenon_intro zenon_H234. % 0.85/1.03 apply (zenon_L38_ zenon_TY_lv zenon_TY_lf zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz); trivial. % 0.85/1.03 cut ((reachable zenon_TY_lv zenon_TY_ml) = (reachable zenon_TX_dr zenon_TY_ml)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H240. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H142. % 0.85/1.03 cut ((zenon_TY_ml = zenon_TY_ml)); [idtac | apply NNPP; zenon_intro zenon_H147]. % 0.85/1.03 cut ((zenon_TY_lv = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H244]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H242); [ zenon_intro zenon_H246 | zenon_intro zenon_H245 ]. % 0.85/1.03 apply zenon_H246. zenon_intro zenon_H247. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_lv = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H244. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_lv)); [idtac | apply NNPP; zenon_intro zenon_H243]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H243 zenon_H247). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H245. zenon_intro zenon_H23f. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_lv). zenon_intro zenon_H248. % 0.85/1.03 generalize (zenon_H248 zenon_TY_ml). zenon_intro zenon_H249. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H249); [ zenon_intro zenon_H234 | zenon_intro zenon_H24a ]. % 0.85/1.03 exact (zenon_H234 zenon_H23f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H24a); [ zenon_intro zenon_H150 | zenon_intro zenon_H24b ]. % 0.85/1.03 exact (zenon_H150 zenon_H142). % 0.85/1.03 exact (zenon_H240 zenon_H24b). % 0.85/1.03 apply zenon_H147. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L39_ *) % 0.85/1.03 assert (zenon_L40_ : forall (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U), (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_nb)) -> (reachable zenon_TY_ml zenon_TY_nb) -> False). % 0.85/1.03 do 17 intro. intros zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H4 zenon_H24c zenon_H152. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_ml))/\(~(reachable zenon_TX_dr zenon_TY_ml)))); [ zenon_intro zenon_H24d | zenon_intro zenon_H24e ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H24d). zenon_intro zenon_H24f. zenon_intro zenon_H240. % 0.85/1.03 apply (zenon_L39_ zenon_TY_ml zenon_TY_lv zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp); trivial. % 0.85/1.03 cut ((reachable zenon_TY_ml zenon_TY_nb) = (reachable zenon_TX_dr zenon_TY_nb)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H24c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H152. % 0.85/1.03 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.03 cut ((zenon_TY_ml = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H250]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H24e); [ zenon_intro zenon_H252 | zenon_intro zenon_H251 ]. % 0.85/1.03 apply zenon_H252. zenon_intro zenon_H253. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_ml = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H250. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_ml)); [idtac | apply NNPP; zenon_intro zenon_H24f]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H24f zenon_H253). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H251. zenon_intro zenon_H24b. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_ml). zenon_intro zenon_H254. % 0.85/1.03 generalize (zenon_H254 zenon_TY_nb). zenon_intro zenon_H255. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H255); [ zenon_intro zenon_H240 | zenon_intro zenon_H256 ]. % 0.85/1.03 exact (zenon_H240 zenon_H24b). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H256); [ zenon_intro zenon_H160 | zenon_intro zenon_H257 ]. % 0.85/1.03 exact (zenon_H160 zenon_H152). % 0.85/1.03 exact (zenon_H24c zenon_H257). % 0.85/1.03 apply zenon_H157. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L40_ *) % 0.85/1.03 assert (zenon_L41_ : forall (zenon_TY_nr : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U), (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_ml zenon_TY_nb) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_nr)) -> (reachable zenon_TY_nb zenon_TY_nr) -> False). % 0.85/1.03 do 18 intro. intros zenon_H142 zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H152 zenon_H4 zenon_H258 zenon_H162. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_nb))/\(~(reachable zenon_TX_dr zenon_TY_nb)))); [ zenon_intro zenon_H259 | zenon_intro zenon_H25a ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H259). zenon_intro zenon_H25b. zenon_intro zenon_H24c. % 0.85/1.03 apply (zenon_L40_ zenon_TY_nb zenon_TY_ml zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf); trivial. % 0.85/1.03 cut ((reachable zenon_TY_nb zenon_TY_nr) = (reachable zenon_TX_dr zenon_TY_nr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H258. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H162. % 0.85/1.03 cut ((zenon_TY_nr = zenon_TY_nr)); [idtac | apply NNPP; zenon_intro zenon_H167]. % 0.85/1.03 cut ((zenon_TY_nb = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H25c]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H25a); [ zenon_intro zenon_H25e | zenon_intro zenon_H25d ]. % 0.85/1.03 apply zenon_H25e. zenon_intro zenon_H25f. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_nb = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H25c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H25b]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H25b zenon_H25f). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H25d. zenon_intro zenon_H257. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_nb). zenon_intro zenon_H260. % 0.85/1.03 generalize (zenon_H260 zenon_TY_nr). zenon_intro zenon_H261. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H261); [ zenon_intro zenon_H24c | zenon_intro zenon_H262 ]. % 0.85/1.03 exact (zenon_H24c zenon_H257). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H262); [ zenon_intro zenon_H170 | zenon_intro zenon_H263 ]. % 0.85/1.03 exact (zenon_H170 zenon_H162). % 0.85/1.03 exact (zenon_H258 zenon_H263). % 0.85/1.03 apply zenon_H167. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L41_ *) % 0.85/1.03 assert (zenon_L42_ : forall (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U), (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_oh)) -> (reachable zenon_TY_nr zenon_TY_oh) -> False). % 0.85/1.03 do 19 intro. intros zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H4 zenon_H264 zenon_H172. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_nr))/\(~(reachable zenon_TX_dr zenon_TY_nr)))); [ zenon_intro zenon_H265 | zenon_intro zenon_H266 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H265). zenon_intro zenon_H267. zenon_intro zenon_H258. % 0.85/1.03 apply (zenon_L41_ zenon_TY_nr zenon_TY_nb zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv); trivial. % 0.85/1.03 cut ((reachable zenon_TY_nr zenon_TY_oh) = (reachable zenon_TX_dr zenon_TY_oh)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H264. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H172. % 0.85/1.03 cut ((zenon_TY_oh = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H177]. % 0.85/1.03 cut ((zenon_TY_nr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H268]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H266); [ zenon_intro zenon_H26a | zenon_intro zenon_H269 ]. % 0.85/1.03 apply zenon_H26a. zenon_intro zenon_H26b. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_nr = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H268. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_nr)); [idtac | apply NNPP; zenon_intro zenon_H267]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H267 zenon_H26b). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H269. zenon_intro zenon_H263. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_nr). zenon_intro zenon_H26c. % 0.85/1.03 generalize (zenon_H26c zenon_TY_oh). zenon_intro zenon_H26d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H26d); [ zenon_intro zenon_H258 | zenon_intro zenon_H26e ]. % 0.85/1.03 exact (zenon_H258 zenon_H263). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H26e); [ zenon_intro zenon_H180 | zenon_intro zenon_H26f ]. % 0.85/1.03 exact (zenon_H180 zenon_H172). % 0.85/1.03 exact (zenon_H264 zenon_H26f). % 0.85/1.03 apply zenon_H177. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L42_ *) % 0.85/1.03 assert (zenon_L43_ : forall (zenon_TY_ox : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TY_nb : zenon_U), (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_nr zenon_TY_oh) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_ox)) -> (reachable zenon_TY_oh zenon_TY_ox) -> False). % 0.85/1.03 do 20 intro. intros zenon_H162 zenon_H142 zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H152 zenon_H172 zenon_H4 zenon_H270 zenon_H182. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_oh))/\(~(reachable zenon_TX_dr zenon_TY_oh)))); [ zenon_intro zenon_H271 | zenon_intro zenon_H272 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H271). zenon_intro zenon_H273. zenon_intro zenon_H264. % 0.85/1.03 apply (zenon_L42_ zenon_TY_oh zenon_TY_nr zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml); trivial. % 0.85/1.03 cut ((reachable zenon_TY_oh zenon_TY_ox) = (reachable zenon_TX_dr zenon_TY_ox)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H270. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H182. % 0.85/1.03 cut ((zenon_TY_ox = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H187]. % 0.85/1.03 cut ((zenon_TY_oh = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H274]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H272); [ zenon_intro zenon_H276 | zenon_intro zenon_H275 ]. % 0.85/1.03 apply zenon_H276. zenon_intro zenon_H277. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_oh = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H274. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H273]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H273 zenon_H277). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H275. zenon_intro zenon_H26f. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_oh). zenon_intro zenon_H278. % 0.85/1.03 generalize (zenon_H278 zenon_TY_ox). zenon_intro zenon_H279. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H279); [ zenon_intro zenon_H264 | zenon_intro zenon_H27a ]. % 0.85/1.03 exact (zenon_H264 zenon_H26f). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H27a); [ zenon_intro zenon_H190 | zenon_intro zenon_H27b ]. % 0.85/1.03 exact (zenon_H190 zenon_H182). % 0.85/1.03 exact (zenon_H270 zenon_H27b). % 0.85/1.03 apply zenon_H187. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L43_ *) % 0.85/1.03 assert (zenon_L44_ : forall (zenon_TY_pn : zenon_U) (zenon_TY_ox : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U), (reachable zenon_TY_nr zenon_TY_oh) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_oh zenon_TY_ox) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_pn)) -> (reachable zenon_TY_ox zenon_TY_pn) -> False). % 0.85/1.03 do 21 intro. intros zenon_H172 zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H182 zenon_H4 zenon_H27c zenon_H192. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_ox))/\(~(reachable zenon_TX_dr zenon_TY_ox)))); [ zenon_intro zenon_H27d | zenon_intro zenon_H27e ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H27d). zenon_intro zenon_H27f. zenon_intro zenon_H270. % 0.85/1.03 apply (zenon_L43_ zenon_TY_ox zenon_TY_oh zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv zenon_TY_nr zenon_TY_nb); trivial. % 0.85/1.03 cut ((reachable zenon_TY_ox zenon_TY_pn) = (reachable zenon_TX_dr zenon_TY_pn)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H27c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H192. % 0.85/1.03 cut ((zenon_TY_pn = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H197]. % 0.85/1.03 cut ((zenon_TY_ox = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H280]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H27e); [ zenon_intro zenon_H282 | zenon_intro zenon_H281 ]. % 0.85/1.03 apply zenon_H282. zenon_intro zenon_H283. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_ox = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H280. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H27f]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H27f zenon_H283). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H281. zenon_intro zenon_H27b. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_ox). zenon_intro zenon_H284. % 0.85/1.03 generalize (zenon_H284 zenon_TY_pn). zenon_intro zenon_H285. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H285); [ zenon_intro zenon_H270 | zenon_intro zenon_H286 ]. % 0.85/1.03 exact (zenon_H270 zenon_H27b). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H286); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H287 ]. % 0.85/1.03 exact (zenon_H1a0 zenon_H192). % 0.85/1.03 exact (zenon_H27c zenon_H287). % 0.85/1.03 apply zenon_H197. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L44_ *) % 0.85/1.03 assert (zenon_L45_ : forall (zenon_TY_za : zenon_U) (zenon_TY_pn : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ox : zenon_U) (zenon_TY_oh : zenon_U), (reachable zenon_TY_oh zenon_TY_ox) -> (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_nr zenon_TY_oh) -> (reachable zenon_TY_ox zenon_TY_pn) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_za)) -> (reachable zenon_TY_pn zenon_TY_za) -> False). % 0.85/1.03 do 22 intro. intros zenon_H182 zenon_H162 zenon_H142 zenon_H122 zenon_H102 zenon_He2 zenon_Hc2 zenon_Ha2 zenon_H82 zenon_H5d zenon_H72 zenon_H92 zenon_Hb2 zenon_Hd2 zenon_Hf2 zenon_H112 zenon_H132 zenon_H152 zenon_H172 zenon_H192 zenon_H4 zenon_H288 zenon_H289. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_pn))/\(~(reachable zenon_TX_dr zenon_TY_pn)))); [ zenon_intro zenon_H28b | zenon_intro zenon_H28c ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H28b). zenon_intro zenon_H28d. zenon_intro zenon_H27c. % 0.85/1.03 apply (zenon_L44_ zenon_TY_pn zenon_TY_ox zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml zenon_TY_oh zenon_TY_nr); trivial. % 0.85/1.03 cut ((reachable zenon_TY_pn zenon_TY_za) = (reachable zenon_TX_dr zenon_TY_za)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H288. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H289. % 0.85/1.03 cut ((zenon_TY_za = zenon_TY_za)); [idtac | apply NNPP; zenon_intro zenon_H28e]. % 0.85/1.03 cut ((zenon_TY_pn = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H28f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H28c); [ zenon_intro zenon_H291 | zenon_intro zenon_H290 ]. % 0.85/1.03 apply zenon_H291. zenon_intro zenon_H292. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_pn = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H28f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H28d]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H28d zenon_H292). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H290. zenon_intro zenon_H287. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_pn). zenon_intro zenon_H293. % 0.85/1.03 generalize (zenon_H293 zenon_TY_za). zenon_intro zenon_H294. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H294); [ zenon_intro zenon_H27c | zenon_intro zenon_H295 ]. % 0.85/1.03 exact (zenon_H27c zenon_H287). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H295); [ zenon_intro zenon_H297 | zenon_intro zenon_H296 ]. % 0.85/1.03 exact (zenon_H297 zenon_H289). % 0.85/1.03 exact (zenon_H288 zenon_H296). % 0.85/1.03 apply zenon_H28e. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L45_ *) % 0.85/1.03 assert (zenon_L46_ : forall (zenon_TY_zq : zenon_U) (zenon_TY_za : zenon_U) (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TY_pn : zenon_U) (zenon_TY_ox : zenon_U), (reachable zenon_TY_ox zenon_TY_pn) -> (reachable zenon_TY_nr zenon_TY_oh) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_oh zenon_TY_ox) -> (reachable zenon_TY_pn zenon_TY_za) -> (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(reachable zenon_TX_dr zenon_TY_zq)) -> (reachable zenon_TY_za zenon_TY_zq) -> False). % 0.85/1.03 do 23 intro. intros zenon_H192 zenon_H172 zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H182 zenon_H289 zenon_H4 zenon_H298 zenon_H299. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_za))/\(~(reachable zenon_TX_dr zenon_TY_za)))); [ zenon_intro zenon_H29b | zenon_intro zenon_H29c ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H29b). zenon_intro zenon_H29d. zenon_intro zenon_H288. % 0.85/1.03 apply (zenon_L45_ zenon_TY_za zenon_TY_pn zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv zenon_TY_nr zenon_TY_nb zenon_TY_ox zenon_TY_oh); trivial. % 0.85/1.03 cut ((reachable zenon_TY_za zenon_TY_zq) = (reachable zenon_TX_dr zenon_TY_zq)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H298. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H299. % 0.85/1.03 cut ((zenon_TY_zq = zenon_TY_zq)); [idtac | apply NNPP; zenon_intro zenon_H29e]. % 0.85/1.03 cut ((zenon_TY_za = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H29f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H29c); [ zenon_intro zenon_H2a1 | zenon_intro zenon_H2a0 ]. % 0.85/1.03 apply zenon_H2a1. zenon_intro zenon_H2a2. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_za = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H29f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_za)); [idtac | apply NNPP; zenon_intro zenon_H29d]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H29d zenon_H2a2). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H2a0. zenon_intro zenon_H296. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_za). zenon_intro zenon_H2a3. % 0.85/1.03 generalize (zenon_H2a3 zenon_TY_zq). zenon_intro zenon_H2a4. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2a4); [ zenon_intro zenon_H288 | zenon_intro zenon_H2a5 ]. % 0.85/1.03 exact (zenon_H288 zenon_H296). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2a5); [ zenon_intro zenon_H2a7 | zenon_intro zenon_H2a6 ]. % 0.85/1.03 exact (zenon_H2a7 zenon_H299). % 0.85/1.03 exact (zenon_H298 zenon_H2a6). % 0.85/1.03 apply zenon_H29e. apply refl_equal. % 0.85/1.03 (* end of lemma zenon_L46_ *) % 0.85/1.03 assert (zenon_L47_ : forall (zenon_TX_dr : zenon_U) (zenon_TY_el : zenon_U) (zenon_TY_dq : zenon_U) (zenon_TY_fr : zenon_U) (zenon_TY_fb : zenon_U) (zenon_TY_gx : zenon_U) (zenon_TY_gh : zenon_U) (zenon_TY_id : zenon_U) (zenon_TY_hn : zenon_U) (zenon_TY_jj : zenon_U) (zenon_TY_it : zenon_U) (zenon_TY_kp : zenon_U) (zenon_TY_jz : zenon_U) (zenon_TY_lv : zenon_U) (zenon_TY_lf : zenon_U) (zenon_TY_nb : zenon_U) (zenon_TY_ml : zenon_U) (zenon_TY_oh : zenon_U) (zenon_TY_nr : zenon_U) (zenon_TY_pn : zenon_U) (zenon_TY_ox : zenon_U) (zenon_TY_za : zenon_U) (zenon_TY_zq : zenon_U), (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z)))))) -> (~(forall W : zenon_U, ((reachable zenon_TY_zq W)->(p W)))) -> (reachable zenon_TY_za zenon_TY_zq) -> (reachable zenon_TY_ox zenon_TY_pn) -> (reachable zenon_TY_nr zenon_TY_oh) -> (reachable zenon_TY_ml zenon_TY_nb) -> (reachable zenon_TY_lf zenon_TY_lv) -> (reachable zenon_TY_jz zenon_TY_kp) -> (reachable zenon_TY_it zenon_TY_jj) -> (reachable zenon_TY_hn zenon_TY_id) -> (reachable zenon_TY_gh zenon_TY_gx) -> (reachable zenon_TY_fb zenon_TY_fr) -> (reachable zenon_TY_dq zenon_TY_el) -> (reachable zenon_TX_dr zenon_TY_dq) -> (reachable zenon_TY_el zenon_TY_fb) -> (reachable zenon_TY_fr zenon_TY_gh) -> (reachable zenon_TY_gx zenon_TY_hn) -> (reachable zenon_TY_id zenon_TY_it) -> (reachable zenon_TY_jj zenon_TY_jz) -> (reachable zenon_TY_kp zenon_TY_lf) -> (reachable zenon_TY_lv zenon_TY_ml) -> (reachable zenon_TY_nb zenon_TY_nr) -> (reachable zenon_TY_oh zenon_TY_ox) -> (reachable zenon_TY_pn zenon_TY_za) -> (forall Y : zenon_U, ((reachable zenon_TX_dr Y)->(p Y))) -> False). % 0.85/1.03 do 23 intro. intros zenon_H4 zenon_H2a8 zenon_H299 zenon_H192 zenon_H172 zenon_H152 zenon_H132 zenon_H112 zenon_Hf2 zenon_Hd2 zenon_Hb2 zenon_H92 zenon_H72 zenon_H5d zenon_H82 zenon_Ha2 zenon_Hc2 zenon_He2 zenon_H102 zenon_H122 zenon_H142 zenon_H162 zenon_H182 zenon_H289 zenon_H2a9. % 0.85/1.03 apply (zenon_notallex_s (fun W : zenon_U => ((reachable zenon_TY_zq W)->(p W))) zenon_H2a8); [ zenon_intro zenon_H2aa; idtac ]. % 0.85/1.03 elim zenon_H2aa. zenon_intro zenon_TW_bah. zenon_intro zenon_H2ac. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H2ac). zenon_intro zenon_H2ae. zenon_intro zenon_H2ad. % 0.85/1.03 generalize (zenon_H2a9 zenon_TW_bah). zenon_intro zenon_H2af. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2af); [ zenon_intro zenon_H2b1 | zenon_intro zenon_H2b0 ]. % 0.85/1.03 elim (classic ((~(zenon_TX_dr = zenon_TY_zq))/\(~(reachable zenon_TX_dr zenon_TY_zq)))); [ zenon_intro zenon_H2b2 | zenon_intro zenon_H2b3 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2b2). zenon_intro zenon_H2b4. zenon_intro zenon_H298. % 0.85/1.03 apply (zenon_L46_ zenon_TY_zq zenon_TY_za zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml zenon_TY_oh zenon_TY_nr zenon_TY_pn zenon_TY_ox); trivial. % 0.85/1.03 cut ((reachable zenon_TY_zq zenon_TW_bah) = (reachable zenon_TX_dr zenon_TW_bah)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H2b1. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H2ae. % 0.85/1.03 cut ((zenon_TW_bah = zenon_TW_bah)); [idtac | apply NNPP; zenon_intro zenon_H2b5]. % 0.85/1.03 cut ((zenon_TY_zq = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H2b6]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H2b3); [ zenon_intro zenon_H2b8 | zenon_intro zenon_H2b7 ]. % 0.85/1.03 apply zenon_H2b8. zenon_intro zenon_H2b9. % 0.85/1.03 elim (classic (zenon_TX_dr = zenon_TX_dr)); [ zenon_intro zenon_H1a9 | zenon_intro zenon_H1aa ]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr) = (zenon_TY_zq = zenon_TX_dr)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H2b6. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1a9. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TX_dr)); [idtac | apply NNPP; zenon_intro zenon_H1aa]. % 0.85/1.03 cut ((zenon_TX_dr = zenon_TY_zq)); [idtac | apply NNPP; zenon_intro zenon_H2b4]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H2b4 zenon_H2b9). % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H1aa. apply refl_equal. % 0.85/1.03 apply zenon_H2b7. zenon_intro zenon_H2a6. % 0.85/1.03 generalize (zenon_H4 zenon_TX_dr). zenon_intro zenon_H1ab. % 0.85/1.03 generalize (zenon_H1ab zenon_TY_zq). zenon_intro zenon_H2ba. % 0.85/1.03 generalize (zenon_H2ba zenon_TW_bah). zenon_intro zenon_H2bb. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2bb); [ zenon_intro zenon_H298 | zenon_intro zenon_H2bc ]. % 0.85/1.03 exact (zenon_H298 zenon_H2a6). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2bc); [ zenon_intro zenon_H2be | zenon_intro zenon_H2bd ]. % 0.85/1.03 exact (zenon_H2be zenon_H2ae). % 0.85/1.03 exact (zenon_H2b1 zenon_H2bd). % 0.85/1.03 apply zenon_H2b5. apply refl_equal. % 0.85/1.03 exact (zenon_H2ad zenon_H2b0). % 0.85/1.03 (* end of lemma zenon_L47_ *) % 0.85/1.03 apply NNPP. intro zenon_G. % 0.85/1.03 elim (classic (forall x : zenon_U, (forall y : zenon_U, (forall z : zenon_U, ((reachable x y)->((reachable y z)->(reachable x z))))))); [ zenon_intro zenon_H4 | zenon_intro zenon_H2bf ]. % 0.85/1.03 apply (zenon_notequiv_s _ _ zenon_G); [ zenon_intro zenon_H2c3; zenon_intro zenon_H2c2 | zenon_intro zenon_H2c1; zenon_intro zenon_H2c0 ]. % 0.85/1.03 elim zenon_H2c2. zenon_intro zenon_TX_j. zenon_intro zenon_H2c4. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2c4). zenon_intro zenon_H2c6. zenon_intro zenon_H2c5. % 0.85/1.03 generalize (zenon_H2c5 zenon_TX_j). zenon_intro zenon_H2c7. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2c7); [ zenon_intro zenon_H2c9 | zenon_intro zenon_H2c8 ]. % 0.85/1.03 generalize (reflexivity_of_reachable zenon_TX_j). zenon_intro zenon_H2ca. % 0.85/1.03 exact (zenon_H2c9 zenon_H2ca). % 0.85/1.03 elim zenon_H2c8. zenon_intro zenon_TZ_i. zenon_intro zenon_H2cb. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2cb). zenon_intro zenon_H3. zenon_intro zenon_H2cc. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_i). zenon_intro zenon_H2cd. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2cd); [ zenon_intro zenon_Hc | zenon_intro zenon_H2ce ]. % 0.85/1.03 exact (zenon_Hc zenon_H3). % 0.85/1.03 elim zenon_H2ce. zenon_intro zenon_TZ_h. zenon_intro zenon_H2cf. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2cf). zenon_intro zenon_H6. zenon_intro zenon_H2d0. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_h). zenon_intro zenon_H2d1. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2d1); [ zenon_intro zenon_H5 | zenon_intro zenon_H2d2 ]. % 0.85/1.03 apply (zenon_L1_ zenon_TZ_h zenon_TZ_i zenon_TX_j); trivial. % 0.85/1.03 elim zenon_H2d2. zenon_intro zenon_TZ_bd. zenon_intro zenon_H2d3. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2d3). zenon_intro zenon_H1c. zenon_intro zenon_H2d4. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_bd). zenon_intro zenon_H2d5. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2d5); [ zenon_intro zenon_H1b | zenon_intro zenon_H2d6 ]. % 0.85/1.03 apply (zenon_L2_ zenon_TZ_bd zenon_TZ_h zenon_TZ_i zenon_TX_j); trivial. % 0.85/1.03 elim zenon_H2d6. zenon_intro zenon_TZ_bt. zenon_intro zenon_H2d7. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2d7). zenon_intro zenon_H2c. zenon_intro zenon_H2d8. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_bt). zenon_intro zenon_H2d9. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2d9); [ zenon_intro zenon_H2b | zenon_intro zenon_H2da ]. % 0.85/1.03 apply (zenon_L3_ zenon_TZ_bt zenon_TZ_bd zenon_TX_j zenon_TZ_h zenon_TZ_i); trivial. % 0.85/1.03 elim zenon_H2da. zenon_intro zenon_TZ_cj. zenon_intro zenon_H2db. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2db). zenon_intro zenon_H3c. zenon_intro zenon_H2dc. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_cj). zenon_intro zenon_H2dd. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2dd); [ zenon_intro zenon_H3b | zenon_intro zenon_H2de ]. % 0.85/1.03 apply (zenon_L4_ zenon_TZ_cj zenon_TZ_bt zenon_TZ_i zenon_TX_j zenon_TZ_bd zenon_TZ_h); trivial. % 0.85/1.03 elim zenon_H2de. zenon_intro zenon_TZ_cz. zenon_intro zenon_H2df. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2df). zenon_intro zenon_H4c. zenon_intro zenon_H2e0. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_cz). zenon_intro zenon_H2e1. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2e1); [ zenon_intro zenon_H4b | zenon_intro zenon_H2e2 ]. % 0.85/1.03 apply (zenon_L5_ zenon_TZ_cz zenon_TZ_cj zenon_TX_j zenon_TZ_h zenon_TZ_i zenon_TZ_bt zenon_TZ_bd); trivial. % 0.85/1.03 elim zenon_H2e2. zenon_intro zenon_TZ_bcl. zenon_intro zenon_H2e4. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2e4). zenon_intro zenon_H2e6. zenon_intro zenon_H2e5. % 0.85/1.03 generalize (zenon_H2c5 zenon_TZ_bcl). zenon_intro zenon_H2e7. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2e7); [ zenon_intro zenon_H2e9 | zenon_intro zenon_H2e8 ]. % 0.85/1.03 elim (classic ((~(zenon_TX_j = zenon_TZ_cz))/\(~(reachable zenon_TX_j zenon_TZ_cz)))); [ zenon_intro zenon_H2ea | zenon_intro zenon_H2eb ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2ea). zenon_intro zenon_H2ec. zenon_intro zenon_H4b. % 0.85/1.03 apply (zenon_L5_ zenon_TZ_cz zenon_TZ_cj zenon_TX_j zenon_TZ_h zenon_TZ_i zenon_TZ_bt zenon_TZ_bd); trivial. % 0.85/1.03 cut ((reachable zenon_TZ_cz zenon_TZ_bcl) = (reachable zenon_TX_j zenon_TZ_bcl)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H2e9. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H2e6. % 0.85/1.03 cut ((zenon_TZ_bcl = zenon_TZ_bcl)); [idtac | apply NNPP; zenon_intro zenon_H2ed]. % 0.85/1.03 cut ((zenon_TZ_cz = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H2ee]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H2eb); [ zenon_intro zenon_H2f0 | zenon_intro zenon_H2ef ]. % 0.85/1.03 apply zenon_H2f0. zenon_intro zenon_H2f1. % 0.85/1.03 elim (classic (zenon_TX_j = zenon_TX_j)); [ zenon_intro zenon_H13 | zenon_intro zenon_H14 ]. % 0.85/1.03 cut ((zenon_TX_j = zenon_TX_j) = (zenon_TZ_cz = zenon_TX_j)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H2ee. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H13. % 0.85/1.03 cut ((zenon_TX_j = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H14]. % 0.85/1.03 cut ((zenon_TX_j = zenon_TZ_cz)); [idtac | apply NNPP; zenon_intro zenon_H2ec]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H2ec zenon_H2f1). % 0.85/1.03 apply zenon_H14. apply refl_equal. % 0.85/1.03 apply zenon_H14. apply refl_equal. % 0.85/1.03 apply zenon_H2ef. zenon_intro zenon_H59. % 0.85/1.03 generalize (zenon_H4 zenon_TX_j). zenon_intro zenon_H15. % 0.85/1.03 generalize (zenon_H15 zenon_TZ_cz). zenon_intro zenon_H2f2. % 0.85/1.03 generalize (zenon_H2f2 zenon_TZ_bcl). zenon_intro zenon_H2f3. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2f3); [ zenon_intro zenon_H4b | zenon_intro zenon_H2f4 ]. % 0.85/1.03 exact (zenon_H4b zenon_H59). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H2f4); [ zenon_intro zenon_H2f6 | zenon_intro zenon_H2f5 ]. % 0.85/1.03 exact (zenon_H2f6 zenon_H2e6). % 0.85/1.03 exact (zenon_H2e9 zenon_H2f5). % 0.85/1.03 apply zenon_H2ed. apply refl_equal. % 0.85/1.03 elim zenon_H2e8. zenon_intro zenon_TZ_bdf. zenon_intro zenon_H2f8. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2f8). zenon_intro zenon_H2fa. zenon_intro zenon_H2f9. % 0.85/1.03 apply zenon_H2c3. exists zenon_TZ_bdf. apply NNPP. zenon_intro zenon_H2fb. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H2fb); [ zenon_intro zenon_H2fd | zenon_intro zenon_H2fc ]. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_bcl))/\(~(reachable (initial_world) zenon_TZ_bcl)))); [ zenon_intro zenon_H2fe | zenon_intro zenon_H2ff ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H2fe). zenon_intro zenon_H301. zenon_intro zenon_H300. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_cz))/\(~(reachable (initial_world) zenon_TZ_cz)))); [ zenon_intro zenon_H302 | zenon_intro zenon_H303 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H302). zenon_intro zenon_H305. zenon_intro zenon_H304. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_cj))/\(~(reachable (initial_world) zenon_TZ_cj)))); [ zenon_intro zenon_H306 | zenon_intro zenon_H307 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H306). zenon_intro zenon_H309. zenon_intro zenon_H308. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_bt))/\(~(reachable (initial_world) zenon_TZ_bt)))); [ zenon_intro zenon_H30a | zenon_intro zenon_H30b ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H30a). zenon_intro zenon_H30d. zenon_intro zenon_H30c. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_bd))/\(~(reachable (initial_world) zenon_TZ_bd)))); [ zenon_intro zenon_H30e | zenon_intro zenon_H30f ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H30e). zenon_intro zenon_H311. zenon_intro zenon_H310. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_h))/\(~(reachable (initial_world) zenon_TZ_h)))); [ zenon_intro zenon_H312 | zenon_intro zenon_H313 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H312). zenon_intro zenon_H315. zenon_intro zenon_H314. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TZ_i))/\(~(reachable (initial_world) zenon_TZ_i)))); [ zenon_intro zenon_H316 | zenon_intro zenon_H317 ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H316). zenon_intro zenon_H319. zenon_intro zenon_H318. % 0.85/1.03 elim (classic ((~((initial_world) = zenon_TX_j))/\(~(reachable (initial_world) zenon_TX_j)))); [ zenon_intro zenon_H31a | zenon_intro zenon_H31b ]. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H31a). zenon_intro zenon_H31d. zenon_intro zenon_H31c. % 0.85/1.03 exact (zenon_H31c zenon_H2c6). % 0.85/1.03 cut ((reachable zenon_TX_j zenon_TZ_i) = (reachable (initial_world) zenon_TZ_i)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H318. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H3. % 0.85/1.03 cut ((zenon_TZ_i = zenon_TZ_i)); [idtac | apply NNPP; zenon_intro zenon_H31e]. % 0.85/1.03 cut ((zenon_TX_j = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H31f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H31b); [ zenon_intro zenon_H321 | zenon_intro zenon_H320 ]. % 0.85/1.03 apply zenon_H321. zenon_intro zenon_H322. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TX_j = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H31f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TX_j)); [idtac | apply NNPP; zenon_intro zenon_H31d]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H31d zenon_H322). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H320. zenon_intro zenon_H2c6. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TX_j). zenon_intro zenon_H323. % 0.85/1.03 generalize (zenon_H323 zenon_TZ_i). zenon_intro zenon_H324. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H324); [ zenon_intro zenon_H31c | zenon_intro zenon_H325 ]. % 0.85/1.03 exact (zenon_H31c zenon_H2c6). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H325); [ zenon_intro zenon_Hc | zenon_intro zenon_H326 ]. % 0.85/1.03 exact (zenon_Hc zenon_H3). % 0.85/1.03 exact (zenon_H318 zenon_H326). % 0.85/1.03 apply zenon_H31e. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_i zenon_TZ_h) = (reachable (initial_world) zenon_TZ_h)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H314. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H6. % 0.85/1.03 cut ((zenon_TZ_h = zenon_TZ_h)); [idtac | apply NNPP; zenon_intro zenon_He]. % 0.85/1.03 cut ((zenon_TZ_i = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H327]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H317); [ zenon_intro zenon_H329 | zenon_intro zenon_H328 ]. % 0.85/1.03 apply zenon_H329. zenon_intro zenon_H32a. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_i = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H327. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_i)); [idtac | apply NNPP; zenon_intro zenon_H319]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H319 zenon_H32a). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H328. zenon_intro zenon_H326. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_i). zenon_intro zenon_H32b. % 0.85/1.03 generalize (zenon_H32b zenon_TZ_h). zenon_intro zenon_H32c. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H32c); [ zenon_intro zenon_H318 | zenon_intro zenon_H32d ]. % 0.85/1.03 exact (zenon_H318 zenon_H326). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H32d); [ zenon_intro zenon_H1a | zenon_intro zenon_H32e ]. % 0.85/1.03 exact (zenon_H1a zenon_H6). % 0.85/1.03 exact (zenon_H314 zenon_H32e). % 0.85/1.03 apply zenon_He. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_h zenon_TZ_bd) = (reachable (initial_world) zenon_TZ_bd)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H310. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H1c. % 0.85/1.03 cut ((zenon_TZ_bd = zenon_TZ_bd)); [idtac | apply NNPP; zenon_intro zenon_H21]. % 0.85/1.03 cut ((zenon_TZ_h = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H32f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H313); [ zenon_intro zenon_H331 | zenon_intro zenon_H330 ]. % 0.85/1.03 apply zenon_H331. zenon_intro zenon_H332. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_h = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H32f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_h)); [idtac | apply NNPP; zenon_intro zenon_H315]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H315 zenon_H332). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H330. zenon_intro zenon_H32e. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_h). zenon_intro zenon_H333. % 0.85/1.03 generalize (zenon_H333 zenon_TZ_bd). zenon_intro zenon_H334. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H334); [ zenon_intro zenon_H314 | zenon_intro zenon_H335 ]. % 0.85/1.03 exact (zenon_H314 zenon_H32e). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H335); [ zenon_intro zenon_H2a | zenon_intro zenon_H336 ]. % 0.85/1.03 exact (zenon_H2a zenon_H1c). % 0.85/1.03 exact (zenon_H310 zenon_H336). % 0.85/1.03 apply zenon_H21. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_bd zenon_TZ_bt) = (reachable (initial_world) zenon_TZ_bt)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H30c. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H2c. % 0.85/1.03 cut ((zenon_TZ_bt = zenon_TZ_bt)); [idtac | apply NNPP; zenon_intro zenon_H31]. % 0.85/1.03 cut ((zenon_TZ_bd = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H337]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H30f); [ zenon_intro zenon_H339 | zenon_intro zenon_H338 ]. % 0.85/1.03 apply zenon_H339. zenon_intro zenon_H33a. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_bd = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H337. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_bd)); [idtac | apply NNPP; zenon_intro zenon_H311]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H311 zenon_H33a). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H338. zenon_intro zenon_H336. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_bd). zenon_intro zenon_H33b. % 0.85/1.03 generalize (zenon_H33b zenon_TZ_bt). zenon_intro zenon_H33c. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H33c); [ zenon_intro zenon_H310 | zenon_intro zenon_H33d ]. % 0.85/1.03 exact (zenon_H310 zenon_H336). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H33d); [ zenon_intro zenon_H3a | zenon_intro zenon_H33e ]. % 0.85/1.03 exact (zenon_H3a zenon_H2c). % 0.85/1.03 exact (zenon_H30c zenon_H33e). % 0.85/1.03 apply zenon_H31. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_bt zenon_TZ_cj) = (reachable (initial_world) zenon_TZ_cj)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H308. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H3c. % 0.85/1.03 cut ((zenon_TZ_cj = zenon_TZ_cj)); [idtac | apply NNPP; zenon_intro zenon_H41]. % 0.85/1.03 cut ((zenon_TZ_bt = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H33f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H30b); [ zenon_intro zenon_H341 | zenon_intro zenon_H340 ]. % 0.85/1.03 apply zenon_H341. zenon_intro zenon_H342. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_bt = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H33f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_bt)); [idtac | apply NNPP; zenon_intro zenon_H30d]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H30d zenon_H342). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H340. zenon_intro zenon_H33e. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_bt). zenon_intro zenon_H343. % 0.85/1.03 generalize (zenon_H343 zenon_TZ_cj). zenon_intro zenon_H344. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H344); [ zenon_intro zenon_H30c | zenon_intro zenon_H345 ]. % 0.85/1.03 exact (zenon_H30c zenon_H33e). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H345); [ zenon_intro zenon_H4a | zenon_intro zenon_H346 ]. % 0.85/1.03 exact (zenon_H4a zenon_H3c). % 0.85/1.03 exact (zenon_H308 zenon_H346). % 0.85/1.03 apply zenon_H41. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_cj zenon_TZ_cz) = (reachable (initial_world) zenon_TZ_cz)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H304. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H4c. % 0.85/1.03 cut ((zenon_TZ_cz = zenon_TZ_cz)); [idtac | apply NNPP; zenon_intro zenon_H51]. % 0.85/1.03 cut ((zenon_TZ_cj = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H347]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H307); [ zenon_intro zenon_H349 | zenon_intro zenon_H348 ]. % 0.85/1.03 apply zenon_H349. zenon_intro zenon_H34a. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_cj = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H347. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_cj)); [idtac | apply NNPP; zenon_intro zenon_H309]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H309 zenon_H34a). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H348. zenon_intro zenon_H346. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_cj). zenon_intro zenon_H34b. % 0.85/1.03 generalize (zenon_H34b zenon_TZ_cz). zenon_intro zenon_H34c. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H34c); [ zenon_intro zenon_H308 | zenon_intro zenon_H34d ]. % 0.85/1.03 exact (zenon_H308 zenon_H346). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H34d); [ zenon_intro zenon_H5a | zenon_intro zenon_H34e ]. % 0.85/1.03 exact (zenon_H5a zenon_H4c). % 0.85/1.03 exact (zenon_H304 zenon_H34e). % 0.85/1.03 apply zenon_H51. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_cz zenon_TZ_bcl) = (reachable (initial_world) zenon_TZ_bcl)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H300. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H2e6. % 0.85/1.03 cut ((zenon_TZ_bcl = zenon_TZ_bcl)); [idtac | apply NNPP; zenon_intro zenon_H2ed]. % 0.85/1.03 cut ((zenon_TZ_cz = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H34f]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H303); [ zenon_intro zenon_H351 | zenon_intro zenon_H350 ]. % 0.85/1.03 apply zenon_H351. zenon_intro zenon_H352. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_cz = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H34f. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_cz)); [idtac | apply NNPP; zenon_intro zenon_H305]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H305 zenon_H352). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H350. zenon_intro zenon_H34e. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_cz). zenon_intro zenon_H353. % 0.85/1.03 generalize (zenon_H353 zenon_TZ_bcl). zenon_intro zenon_H354. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H354); [ zenon_intro zenon_H304 | zenon_intro zenon_H355 ]. % 0.85/1.03 exact (zenon_H304 zenon_H34e). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H355); [ zenon_intro zenon_H2f6 | zenon_intro zenon_H356 ]. % 0.85/1.03 exact (zenon_H2f6 zenon_H2e6). % 0.85/1.03 exact (zenon_H300 zenon_H356). % 0.85/1.03 apply zenon_H2ed. apply refl_equal. % 0.85/1.03 cut ((reachable zenon_TZ_bcl zenon_TZ_bdf) = (reachable (initial_world) zenon_TZ_bdf)). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H2fd. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H2fa. % 0.85/1.03 cut ((zenon_TZ_bdf = zenon_TZ_bdf)); [idtac | apply NNPP; zenon_intro zenon_H357]. % 0.85/1.03 cut ((zenon_TZ_bcl = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H358]. % 0.85/1.03 congruence. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H2ff); [ zenon_intro zenon_H35a | zenon_intro zenon_H359 ]. % 0.85/1.03 apply zenon_H35a. zenon_intro zenon_H35b. % 0.85/1.03 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.03 cut (((initial_world) = (initial_world)) = (zenon_TZ_bcl = (initial_world))). % 0.85/1.03 intro zenon_D_pnotp. % 0.85/1.03 apply zenon_H358. % 0.85/1.03 rewrite <- zenon_D_pnotp. % 0.85/1.03 exact zenon_H69. % 0.85/1.03 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.03 cut (((initial_world) = zenon_TZ_bcl)); [idtac | apply NNPP; zenon_intro zenon_H301]. % 0.85/1.03 congruence. % 0.85/1.03 exact (zenon_H301 zenon_H35b). % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H6a. apply refl_equal. % 0.85/1.03 apply zenon_H359. zenon_intro zenon_H356. % 0.85/1.03 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.03 generalize (zenon_H6b zenon_TZ_bcl). zenon_intro zenon_H35c. % 0.85/1.03 generalize (zenon_H35c zenon_TZ_bdf). zenon_intro zenon_H35d. % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H35d); [ zenon_intro zenon_H300 | zenon_intro zenon_H35e ]. % 0.85/1.03 exact (zenon_H300 zenon_H356). % 0.85/1.03 apply (zenon_imply_s _ _ zenon_H35e); [ zenon_intro zenon_H360 | zenon_intro zenon_H35f ]. % 0.85/1.03 exact (zenon_H360 zenon_H2fa). % 0.85/1.03 exact (zenon_H2fd zenon_H35f). % 0.85/1.03 apply zenon_H357. apply refl_equal. % 0.85/1.03 exact (zenon_H2fc zenon_H2f9). % 0.85/1.03 elim zenon_H2c1. zenon_intro zenon_TX_dr. zenon_intro zenon_H361. % 0.85/1.03 apply (zenon_and_s _ _ zenon_H361). zenon_intro zenon_H5b. zenon_intro zenon_H2a9. % 0.85/1.03 apply zenon_H2c0. exists zenon_TX_dr. apply NNPP. zenon_intro zenon_H362. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H362); [ zenon_intro zenon_H62 | zenon_intro zenon_H363 ]. % 0.85/1.03 exact (zenon_H62 zenon_H5b). % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TX_dr Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H363); [ zenon_intro zenon_H364; idtac ]. % 0.85/1.03 elim zenon_H364. zenon_intro zenon_TY_dq. zenon_intro zenon_H365. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H365). zenon_intro zenon_H5d. zenon_intro zenon_H366. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_dq. apply NNPP. zenon_intro zenon_H367. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H367); [ zenon_intro zenon_H5c | zenon_intro zenon_H368 ]. % 0.85/1.03 apply (zenon_L6_ zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_dq Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H368); [ zenon_intro zenon_H369; idtac ]. % 0.85/1.03 elim zenon_H369. zenon_intro zenon_TY_el. zenon_intro zenon_H36a. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H36a). zenon_intro zenon_H72. zenon_intro zenon_H36b. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_el. apply NNPP. zenon_intro zenon_H36c. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H36c); [ zenon_intro zenon_H71 | zenon_intro zenon_H36d ]. % 0.85/1.03 apply (zenon_L7_ zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_el Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H36d); [ zenon_intro zenon_H36e; idtac ]. % 0.85/1.03 elim zenon_H36e. zenon_intro zenon_TY_fb. zenon_intro zenon_H36f. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H36f). zenon_intro zenon_H82. zenon_intro zenon_H370. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_fb. apply NNPP. zenon_intro zenon_H371. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H371); [ zenon_intro zenon_H81 | zenon_intro zenon_H372 ]. % 0.85/1.03 apply (zenon_L8_ zenon_TY_fb zenon_TY_el zenon_TY_dq zenon_TX_dr); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_fb Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H372); [ zenon_intro zenon_H373; idtac ]. % 0.85/1.03 elim zenon_H373. zenon_intro zenon_TY_fr. zenon_intro zenon_H374. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H374). zenon_intro zenon_H92. zenon_intro zenon_H375. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_fr. apply NNPP. zenon_intro zenon_H376. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H376); [ zenon_intro zenon_H91 | zenon_intro zenon_H377 ]. % 0.85/1.03 apply (zenon_L9_ zenon_TY_fr zenon_TY_fb zenon_TX_dr zenon_TY_el zenon_TY_dq); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_fr Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H377); [ zenon_intro zenon_H378; idtac ]. % 0.85/1.03 elim zenon_H378. zenon_intro zenon_TY_gh. zenon_intro zenon_H379. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H379). zenon_intro zenon_Ha2. zenon_intro zenon_H37a. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_gh. apply NNPP. zenon_intro zenon_H37b. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H37b); [ zenon_intro zenon_Ha1 | zenon_intro zenon_H37c ]. % 0.85/1.03 apply (zenon_L10_ zenon_TY_gh zenon_TY_fr zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_gh Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H37c); [ zenon_intro zenon_H37d; idtac ]. % 0.85/1.03 elim zenon_H37d. zenon_intro zenon_TY_gx. zenon_intro zenon_H37e. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H37e). zenon_intro zenon_Hb2. zenon_intro zenon_H37f. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_gx. apply NNPP. zenon_intro zenon_H380. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H380); [ zenon_intro zenon_Hb1 | zenon_intro zenon_H381 ]. % 0.85/1.03 apply (zenon_L11_ zenon_TY_gx zenon_TY_gh zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_gx Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H381); [ zenon_intro zenon_H382; idtac ]. % 0.85/1.03 elim zenon_H382. zenon_intro zenon_TY_hn. zenon_intro zenon_H383. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H383). zenon_intro zenon_Hc2. zenon_intro zenon_H384. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_hn. apply NNPP. zenon_intro zenon_H385. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H385); [ zenon_intro zenon_Hc1 | zenon_intro zenon_H386 ]. % 0.85/1.03 apply (zenon_L12_ zenon_TY_hn zenon_TY_gx zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_hn Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H386); [ zenon_intro zenon_H387; idtac ]. % 0.85/1.03 elim zenon_H387. zenon_intro zenon_TY_id. zenon_intro zenon_H388. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H388). zenon_intro zenon_Hd2. zenon_intro zenon_H389. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_id. apply NNPP. zenon_intro zenon_H38a. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H38a); [ zenon_intro zenon_Hd1 | zenon_intro zenon_H38b ]. % 0.85/1.03 apply (zenon_L13_ zenon_TY_id zenon_TY_hn zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_id Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H38b); [ zenon_intro zenon_H38c; idtac ]. % 0.85/1.03 elim zenon_H38c. zenon_intro zenon_TY_it. zenon_intro zenon_H38d. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H38d). zenon_intro zenon_He2. zenon_intro zenon_H38e. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_it. apply NNPP. zenon_intro zenon_H38f. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H38f); [ zenon_intro zenon_He1 | zenon_intro zenon_H390 ]. % 0.85/1.03 apply (zenon_L14_ zenon_TY_it zenon_TY_id zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_it Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H390); [ zenon_intro zenon_H391; idtac ]. % 0.85/1.03 elim zenon_H391. zenon_intro zenon_TY_jj. zenon_intro zenon_H392. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H392). zenon_intro zenon_Hf2. zenon_intro zenon_H393. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_jj. apply NNPP. zenon_intro zenon_H394. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H394); [ zenon_intro zenon_Hf1 | zenon_intro zenon_H395 ]. % 0.85/1.03 apply (zenon_L15_ zenon_TY_jj zenon_TY_it zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_jj Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H395); [ zenon_intro zenon_H396; idtac ]. % 0.85/1.03 elim zenon_H396. zenon_intro zenon_TY_jz. zenon_intro zenon_H397. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H397). zenon_intro zenon_H102. zenon_intro zenon_H398. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_jz. apply NNPP. zenon_intro zenon_H399. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H399); [ zenon_intro zenon_H101 | zenon_intro zenon_H39a ]. % 0.85/1.03 apply (zenon_L16_ zenon_TY_jz zenon_TY_jj zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_jz Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H39a); [ zenon_intro zenon_H39b; idtac ]. % 0.85/1.03 elim zenon_H39b. zenon_intro zenon_TY_kp. zenon_intro zenon_H39c. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H39c). zenon_intro zenon_H112. zenon_intro zenon_H39d. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_kp. apply NNPP. zenon_intro zenon_H39e. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H39e); [ zenon_intro zenon_H111 | zenon_intro zenon_H39f ]. % 0.85/1.03 apply (zenon_L17_ zenon_TY_kp zenon_TY_jz zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_kp Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H39f); [ zenon_intro zenon_H3a0; idtac ]. % 0.85/1.03 elim zenon_H3a0. zenon_intro zenon_TY_lf. zenon_intro zenon_H3a1. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3a1). zenon_intro zenon_H122. zenon_intro zenon_H3a2. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_lf. apply NNPP. zenon_intro zenon_H3a3. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3a3); [ zenon_intro zenon_H121 | zenon_intro zenon_H3a4 ]. % 0.85/1.03 apply (zenon_L18_ zenon_TY_lf zenon_TY_kp zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_lf Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3a4); [ zenon_intro zenon_H3a5; idtac ]. % 0.85/1.03 elim zenon_H3a5. zenon_intro zenon_TY_lv. zenon_intro zenon_H3a6. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3a6). zenon_intro zenon_H132. zenon_intro zenon_H3a7. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_lv. apply NNPP. zenon_intro zenon_H3a8. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3a8); [ zenon_intro zenon_H131 | zenon_intro zenon_H3a9 ]. % 0.85/1.03 apply (zenon_L19_ zenon_TY_lv zenon_TY_lf zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_lv Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3a9); [ zenon_intro zenon_H3aa; idtac ]. % 0.85/1.03 elim zenon_H3aa. zenon_intro zenon_TY_ml. zenon_intro zenon_H3ab. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3ab). zenon_intro zenon_H142. zenon_intro zenon_H3ac. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_ml. apply NNPP. zenon_intro zenon_H3ad. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3ad); [ zenon_intro zenon_H141 | zenon_intro zenon_H3ae ]. % 0.85/1.03 apply (zenon_L20_ zenon_TY_ml zenon_TY_lv zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_ml Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3ae); [ zenon_intro zenon_H3af; idtac ]. % 0.85/1.03 elim zenon_H3af. zenon_intro zenon_TY_nb. zenon_intro zenon_H3b0. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3b0). zenon_intro zenon_H152. zenon_intro zenon_H3b1. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_nb. apply NNPP. zenon_intro zenon_H3b2. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3b2); [ zenon_intro zenon_H151 | zenon_intro zenon_H3b3 ]. % 0.85/1.03 apply (zenon_L21_ zenon_TY_nb zenon_TY_ml zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_nb Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3b3); [ zenon_intro zenon_H3b4; idtac ]. % 0.85/1.03 elim zenon_H3b4. zenon_intro zenon_TY_nr. zenon_intro zenon_H3b5. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3b5). zenon_intro zenon_H162. zenon_intro zenon_H3b6. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_nr. apply NNPP. zenon_intro zenon_H3b7. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3b7); [ zenon_intro zenon_H161 | zenon_intro zenon_H3b8 ]. % 0.85/1.03 apply (zenon_L22_ zenon_TY_nr zenon_TY_nb zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_nr Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3b8); [ zenon_intro zenon_H3b9; idtac ]. % 0.85/1.03 elim zenon_H3b9. zenon_intro zenon_TY_oh. zenon_intro zenon_H3ba. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3ba). zenon_intro zenon_H172. zenon_intro zenon_H3bb. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_oh. apply NNPP. zenon_intro zenon_H3bc. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3bc); [ zenon_intro zenon_H171 | zenon_intro zenon_H3bd ]. % 0.85/1.03 apply (zenon_L23_ zenon_TY_oh zenon_TY_nr zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml); trivial. % 0.85/1.03 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_oh Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3bd); [ zenon_intro zenon_H3be; idtac ]. % 0.85/1.03 elim zenon_H3be. zenon_intro zenon_TY_ox. zenon_intro zenon_H3bf. % 0.85/1.03 apply (zenon_notimply_s _ _ zenon_H3bf). zenon_intro zenon_H182. zenon_intro zenon_H3c0. % 0.85/1.03 apply zenon_H2c0. exists zenon_TY_ox. apply NNPP. zenon_intro zenon_H3c1. % 0.85/1.03 apply (zenon_notand_s _ _ zenon_H3c1); [ zenon_intro zenon_H181 | zenon_intro zenon_H3c2 ]. % 0.85/1.03 apply (zenon_L24_ zenon_TY_ox zenon_TY_oh zenon_TY_dq zenon_TX_dr zenon_TY_fb zenon_TY_el zenon_TY_gh zenon_TY_fr zenon_TY_hn zenon_TY_gx zenon_TY_it zenon_TY_id zenon_TY_jz zenon_TY_jj zenon_TY_lf zenon_TY_kp zenon_TY_ml zenon_TY_lv zenon_TY_nr zenon_TY_nb); trivial. % 0.85/1.04 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_ox Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3c2); [ zenon_intro zenon_H3c3; idtac ]. % 0.85/1.04 elim zenon_H3c3. zenon_intro zenon_TY_pn. zenon_intro zenon_H3c4. % 0.85/1.04 apply (zenon_notimply_s _ _ zenon_H3c4). zenon_intro zenon_H192. zenon_intro zenon_H3c5. % 0.85/1.04 apply zenon_H2c0. exists zenon_TY_pn. apply NNPP. zenon_intro zenon_H3c6. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3c6); [ zenon_intro zenon_H191 | zenon_intro zenon_H3c7 ]. % 0.85/1.04 apply (zenon_L25_ zenon_TY_pn zenon_TY_ox zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml zenon_TY_oh zenon_TY_nr); trivial. % 0.85/1.04 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_pn Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3c7); [ zenon_intro zenon_H3c8; idtac ]. % 0.85/1.04 elim zenon_H3c8. zenon_intro zenon_TY_za. zenon_intro zenon_H3c9. % 0.85/1.04 apply (zenon_notimply_s _ _ zenon_H3c9). zenon_intro zenon_H289. zenon_intro zenon_H3ca. % 0.85/1.04 apply zenon_H2c0. exists zenon_TY_za. apply NNPP. zenon_intro zenon_H3cb. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3cb); [ zenon_intro zenon_H3cd | zenon_intro zenon_H3cc ]. % 0.85/1.04 elim (classic ((~((initial_world) = zenon_TY_pn))/\(~(reachable (initial_world) zenon_TY_pn)))); [ zenon_intro zenon_H3ce | zenon_intro zenon_H3cf ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3ce). zenon_intro zenon_H3d0. zenon_intro zenon_H191. % 0.85/1.04 apply (zenon_L25_ zenon_TY_pn zenon_TY_ox zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml zenon_TY_oh zenon_TY_nr); trivial. % 0.85/1.04 cut ((reachable zenon_TY_pn zenon_TY_za) = (reachable (initial_world) zenon_TY_za)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3cd. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H289. % 0.85/1.04 cut ((zenon_TY_za = zenon_TY_za)); [idtac | apply NNPP; zenon_intro zenon_H28e]. % 0.85/1.04 cut ((zenon_TY_pn = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H3d1]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3cf); [ zenon_intro zenon_H3d3 | zenon_intro zenon_H3d2 ]. % 0.85/1.04 apply zenon_H3d3. zenon_intro zenon_H3d4. % 0.85/1.04 elim (classic ((initial_world) = (initial_world))); [ zenon_intro zenon_H69 | zenon_intro zenon_H6a ]. % 0.85/1.04 cut (((initial_world) = (initial_world)) = (zenon_TY_pn = (initial_world))). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3d1. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H69. % 0.85/1.04 cut (((initial_world) = (initial_world))); [idtac | apply NNPP; zenon_intro zenon_H6a]. % 0.85/1.04 cut (((initial_world) = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H3d0]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3d0 zenon_H3d4). % 0.85/1.04 apply zenon_H6a. apply refl_equal. % 0.85/1.04 apply zenon_H6a. apply refl_equal. % 0.85/1.04 apply zenon_H3d2. zenon_intro zenon_H19f. % 0.85/1.04 generalize (zenon_H4 (initial_world)). zenon_intro zenon_H6b. % 0.85/1.04 generalize (zenon_H6b zenon_TY_pn). zenon_intro zenon_H3d5. % 0.85/1.04 generalize (zenon_H3d5 zenon_TY_za). zenon_intro zenon_H3d6. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H3d6); [ zenon_intro zenon_H191 | zenon_intro zenon_H3d7 ]. % 0.85/1.04 exact (zenon_H191 zenon_H19f). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H3d7); [ zenon_intro zenon_H297 | zenon_intro zenon_H3d8 ]. % 0.85/1.04 exact (zenon_H297 zenon_H289). % 0.85/1.04 exact (zenon_H3cd zenon_H3d8). % 0.85/1.04 apply zenon_H28e. apply refl_equal. % 0.85/1.04 apply (zenon_notallex_s (fun Y : zenon_U => ((reachable zenon_TY_za Y)->(exists Z : zenon_U, ((reachable Y Z)/\(forall W : zenon_U, ((reachable Z W)->(p W))))))) zenon_H3cc); [ zenon_intro zenon_H3d9; idtac ]. % 0.85/1.04 elim zenon_H3d9. zenon_intro zenon_TY_zq. zenon_intro zenon_H3da. % 0.85/1.04 apply (zenon_notimply_s _ _ zenon_H3da). zenon_intro zenon_H299. zenon_intro zenon_H3db. % 0.85/1.04 apply zenon_H3b1. exists zenon_TY_zq. apply NNPP. zenon_intro zenon_H3dc. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3dc); [ zenon_intro zenon_H3dd | zenon_intro zenon_H2a8 ]. % 0.85/1.04 elim (classic ((~(zenon_TY_nb = zenon_TY_za))/\(~(reachable zenon_TY_nb zenon_TY_za)))); [ zenon_intro zenon_H3de | zenon_intro zenon_H3df ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3de). zenon_intro zenon_H3e1. zenon_intro zenon_H3e0. % 0.85/1.04 elim (classic ((~(zenon_TY_nb = zenon_TY_pn))/\(~(reachable zenon_TY_nb zenon_TY_pn)))); [ zenon_intro zenon_H3e2 | zenon_intro zenon_H3e3 ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3e2). zenon_intro zenon_H3e5. zenon_intro zenon_H3e4. % 0.85/1.04 elim (classic ((~(zenon_TY_nb = zenon_TY_ox))/\(~(reachable zenon_TY_nb zenon_TY_ox)))); [ zenon_intro zenon_H3e6 | zenon_intro zenon_H3e7 ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3e6). zenon_intro zenon_H3e9. zenon_intro zenon_H3e8. % 0.85/1.04 elim (classic ((~(zenon_TY_nb = zenon_TY_oh))/\(~(reachable zenon_TY_nb zenon_TY_oh)))); [ zenon_intro zenon_H3ea | zenon_intro zenon_H3eb ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3ea). zenon_intro zenon_H3ed. zenon_intro zenon_H3ec. % 0.85/1.04 elim (classic ((~(zenon_TY_nb = zenon_TY_nr))/\(~(reachable zenon_TY_nb zenon_TY_nr)))); [ zenon_intro zenon_H3ee | zenon_intro zenon_H3ef ]. % 0.85/1.04 apply (zenon_and_s _ _ zenon_H3ee). zenon_intro zenon_H3f0. zenon_intro zenon_H170. % 0.85/1.04 exact (zenon_H170 zenon_H162). % 0.85/1.04 cut ((reachable zenon_TY_nr zenon_TY_oh) = (reachable zenon_TY_nb zenon_TY_oh)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3ec. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H172. % 0.85/1.04 cut ((zenon_TY_oh = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H177]. % 0.85/1.04 cut ((zenon_TY_nr = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H3f1]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3ef); [ zenon_intro zenon_H3f3 | zenon_intro zenon_H3f2 ]. % 0.85/1.04 apply zenon_H3f3. zenon_intro zenon_H3f4. % 0.85/1.04 elim (classic (zenon_TY_nb = zenon_TY_nb)); [ zenon_intro zenon_H3f5 | zenon_intro zenon_H157 ]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb) = (zenon_TY_nr = zenon_TY_nb)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3f1. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H3f5. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nr)); [idtac | apply NNPP; zenon_intro zenon_H3f0]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3f0 zenon_H3f4). % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H3f2. zenon_intro zenon_H162. % 0.85/1.04 generalize (zenon_H4 zenon_TY_nb). zenon_intro zenon_H3f6. % 0.85/1.04 generalize (zenon_H3f6 zenon_TY_nr). zenon_intro zenon_H3f7. % 0.85/1.04 generalize (zenon_H3f7 zenon_TY_oh). zenon_intro zenon_H3f8. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H3f8); [ zenon_intro zenon_H170 | zenon_intro zenon_H3f9 ]. % 0.85/1.04 exact (zenon_H170 zenon_H162). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H3f9); [ zenon_intro zenon_H180 | zenon_intro zenon_H3fa ]. % 0.85/1.04 exact (zenon_H180 zenon_H172). % 0.85/1.04 exact (zenon_H3ec zenon_H3fa). % 0.85/1.04 apply zenon_H177. apply refl_equal. % 0.85/1.04 cut ((reachable zenon_TY_oh zenon_TY_ox) = (reachable zenon_TY_nb zenon_TY_ox)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3e8. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H182. % 0.85/1.04 cut ((zenon_TY_ox = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H187]. % 0.85/1.04 cut ((zenon_TY_oh = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H3fb]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3eb); [ zenon_intro zenon_H3fd | zenon_intro zenon_H3fc ]. % 0.85/1.04 apply zenon_H3fd. zenon_intro zenon_H3fe. % 0.85/1.04 elim (classic (zenon_TY_nb = zenon_TY_nb)); [ zenon_intro zenon_H3f5 | zenon_intro zenon_H157 ]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb) = (zenon_TY_oh = zenon_TY_nb)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3fb. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H3f5. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_oh)); [idtac | apply NNPP; zenon_intro zenon_H3ed]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3ed zenon_H3fe). % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H3fc. zenon_intro zenon_H3fa. % 0.85/1.04 generalize (zenon_H4 zenon_TY_nb). zenon_intro zenon_H3f6. % 0.85/1.04 generalize (zenon_H3f6 zenon_TY_oh). zenon_intro zenon_H3ff. % 0.85/1.04 generalize (zenon_H3ff zenon_TY_ox). zenon_intro zenon_H400. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H400); [ zenon_intro zenon_H3ec | zenon_intro zenon_H401 ]. % 0.85/1.04 exact (zenon_H3ec zenon_H3fa). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H401); [ zenon_intro zenon_H190 | zenon_intro zenon_H402 ]. % 0.85/1.04 exact (zenon_H190 zenon_H182). % 0.85/1.04 exact (zenon_H3e8 zenon_H402). % 0.85/1.04 apply zenon_H187. apply refl_equal. % 0.85/1.04 cut ((reachable zenon_TY_ox zenon_TY_pn) = (reachable zenon_TY_nb zenon_TY_pn)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3e4. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H192. % 0.85/1.04 cut ((zenon_TY_pn = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H197]. % 0.85/1.04 cut ((zenon_TY_ox = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H403]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3e7); [ zenon_intro zenon_H405 | zenon_intro zenon_H404 ]. % 0.85/1.04 apply zenon_H405. zenon_intro zenon_H406. % 0.85/1.04 elim (classic (zenon_TY_nb = zenon_TY_nb)); [ zenon_intro zenon_H3f5 | zenon_intro zenon_H157 ]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb) = (zenon_TY_ox = zenon_TY_nb)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H403. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H3f5. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_ox)); [idtac | apply NNPP; zenon_intro zenon_H3e9]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3e9 zenon_H406). % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H404. zenon_intro zenon_H402. % 0.85/1.04 generalize (zenon_H4 zenon_TY_nb). zenon_intro zenon_H3f6. % 0.85/1.04 generalize (zenon_H3f6 zenon_TY_ox). zenon_intro zenon_H407. % 0.85/1.04 generalize (zenon_H407 zenon_TY_pn). zenon_intro zenon_H408. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H408); [ zenon_intro zenon_H3e8 | zenon_intro zenon_H409 ]. % 0.85/1.04 exact (zenon_H3e8 zenon_H402). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H409); [ zenon_intro zenon_H1a0 | zenon_intro zenon_H40a ]. % 0.85/1.04 exact (zenon_H1a0 zenon_H192). % 0.85/1.04 exact (zenon_H3e4 zenon_H40a). % 0.85/1.04 apply zenon_H197. apply refl_equal. % 0.85/1.04 cut ((reachable zenon_TY_pn zenon_TY_za) = (reachable zenon_TY_nb zenon_TY_za)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3e0. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H289. % 0.85/1.04 cut ((zenon_TY_za = zenon_TY_za)); [idtac | apply NNPP; zenon_intro zenon_H28e]. % 0.85/1.04 cut ((zenon_TY_pn = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H40b]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3e3); [ zenon_intro zenon_H40d | zenon_intro zenon_H40c ]. % 0.85/1.04 apply zenon_H40d. zenon_intro zenon_H40e. % 0.85/1.04 elim (classic (zenon_TY_nb = zenon_TY_nb)); [ zenon_intro zenon_H3f5 | zenon_intro zenon_H157 ]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb) = (zenon_TY_pn = zenon_TY_nb)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H40b. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H3f5. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_pn)); [idtac | apply NNPP; zenon_intro zenon_H3e5]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3e5 zenon_H40e). % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H40c. zenon_intro zenon_H40a. % 0.85/1.04 generalize (zenon_H4 zenon_TY_nb). zenon_intro zenon_H3f6. % 0.85/1.04 generalize (zenon_H3f6 zenon_TY_pn). zenon_intro zenon_H40f. % 0.85/1.04 generalize (zenon_H40f zenon_TY_za). zenon_intro zenon_H410. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H410); [ zenon_intro zenon_H3e4 | zenon_intro zenon_H411 ]. % 0.85/1.04 exact (zenon_H3e4 zenon_H40a). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H411); [ zenon_intro zenon_H297 | zenon_intro zenon_H412 ]. % 0.85/1.04 exact (zenon_H297 zenon_H289). % 0.85/1.04 exact (zenon_H3e0 zenon_H412). % 0.85/1.04 apply zenon_H28e. apply refl_equal. % 0.85/1.04 cut ((reachable zenon_TY_za zenon_TY_zq) = (reachable zenon_TY_nb zenon_TY_zq)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H3dd. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H299. % 0.85/1.04 cut ((zenon_TY_zq = zenon_TY_zq)); [idtac | apply NNPP; zenon_intro zenon_H29e]. % 0.85/1.04 cut ((zenon_TY_za = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H413]. % 0.85/1.04 congruence. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H3df); [ zenon_intro zenon_H415 | zenon_intro zenon_H414 ]. % 0.85/1.04 apply zenon_H415. zenon_intro zenon_H416. % 0.85/1.04 elim (classic (zenon_TY_nb = zenon_TY_nb)); [ zenon_intro zenon_H3f5 | zenon_intro zenon_H157 ]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb) = (zenon_TY_za = zenon_TY_nb)). % 0.85/1.04 intro zenon_D_pnotp. % 0.85/1.04 apply zenon_H413. % 0.85/1.04 rewrite <- zenon_D_pnotp. % 0.85/1.04 exact zenon_H3f5. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_nb)); [idtac | apply NNPP; zenon_intro zenon_H157]. % 0.85/1.04 cut ((zenon_TY_nb = zenon_TY_za)); [idtac | apply NNPP; zenon_intro zenon_H3e1]. % 0.85/1.04 congruence. % 0.85/1.04 exact (zenon_H3e1 zenon_H416). % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H157. apply refl_equal. % 0.85/1.04 apply zenon_H414. zenon_intro zenon_H412. % 0.85/1.04 generalize (zenon_H4 zenon_TY_nb). zenon_intro zenon_H3f6. % 0.85/1.04 generalize (zenon_H3f6 zenon_TY_za). zenon_intro zenon_H417. % 0.85/1.04 generalize (zenon_H417 zenon_TY_zq). zenon_intro zenon_H418. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H418); [ zenon_intro zenon_H3e0 | zenon_intro zenon_H419 ]. % 0.85/1.04 exact (zenon_H3e0 zenon_H412). % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H419); [ zenon_intro zenon_H2a7 | zenon_intro zenon_H41a ]. % 0.85/1.04 exact (zenon_H2a7 zenon_H299). % 0.85/1.04 exact (zenon_H3dd zenon_H41a). % 0.85/1.04 apply zenon_H29e. apply refl_equal. % 0.85/1.04 apply (zenon_L47_ zenon_TX_dr zenon_TY_el zenon_TY_dq zenon_TY_fr zenon_TY_fb zenon_TY_gx zenon_TY_gh zenon_TY_id zenon_TY_hn zenon_TY_jj zenon_TY_it zenon_TY_kp zenon_TY_jz zenon_TY_lv zenon_TY_lf zenon_TY_nb zenon_TY_ml zenon_TY_oh zenon_TY_nr zenon_TY_pn zenon_TY_ox zenon_TY_za zenon_TY_zq); trivial. % 0.85/1.04 apply zenon_H2bf. zenon_intro zenon_Tx_bol. apply NNPP. zenon_intro zenon_H41c. % 0.85/1.04 apply zenon_H41c. zenon_intro zenon_Ty_bon. apply NNPP. zenon_intro zenon_H41e. % 0.85/1.04 apply zenon_H41e. zenon_intro zenon_Tz_bop. apply NNPP. zenon_intro zenon_H420. % 0.85/1.04 apply (zenon_notimply_s _ _ zenon_H420). zenon_intro zenon_H422. zenon_intro zenon_H421. % 0.85/1.04 apply (zenon_notimply_s _ _ zenon_H421). zenon_intro zenon_H424. zenon_intro zenon_H423. % 0.85/1.04 generalize (transitivity_of_reachable zenon_Tx_bol). zenon_intro zenon_H425. % 0.85/1.04 generalize (zenon_H425 zenon_Ty_bon). zenon_intro zenon_H426. % 0.85/1.04 generalize (zenon_H426 zenon_Tz_bop). zenon_intro zenon_H427. % 0.85/1.04 apply (zenon_imply_s _ _ zenon_H427); [ zenon_intro zenon_H429 | zenon_intro zenon_H428 ]. % 0.85/1.04 apply (zenon_notand_s _ _ zenon_H429); [ zenon_intro zenon_H42b | zenon_intro zenon_H42a ]. % 0.85/1.04 exact (zenon_H42b zenon_H422). % 0.85/1.04 exact (zenon_H42a zenon_H424). % 0.85/1.04 exact (zenon_H423 zenon_H428). % 0.85/1.04 Qed. % 0.85/1.04 % SZS output end Proof % 0.85/1.04 (* END-PROOF *) % 0.85/1.04 nodes searched: 17738 % 0.85/1.04 max branch formulas: 2182 % 0.85/1.04 proof nodes created: 985 % 0.85/1.04 formulas created: 57604 % 0.85/1.04 %------------------------------------------------------------------------------