(* El_conjunto_de_las_clases_de_equivalencia_es_una_particion.thy -- El conjunto de las clases de equivalencia es una partición. -- José A. Alonso Jiménez -- Sevilla, 3-julio-2024 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- -- Demostrar que si R es una relación de equivalencia en X, entonces las -- clases de equivalencia de R es una partición de X. -- ------------------------------------------------------------------ *) theory El_conjunto_de_las_clases_de_equivalencia_es_una_particion imports Main begin definition clase :: "('a \ 'a \ bool) \ 'a \ 'a set" where "clase R x = {y. R x y}" definition particion :: "('a set) set \ bool" where "particion P \ (\x. (\B\P. x \ B \ (\C\P. x \ C \ B = C))) \ {} \ P" lemma fixes R :: "'a \ 'a \ bool" assumes "equivp R" shows "particion (\x. {clase R x})" (is "particion ?P") proof (unfold particion_def; intro conjI) show "(\x. \B\?P. x \ B \ (\C\?P. x \ C \ B = C))" proof (intro allI) fix x have "clase R x \ ?P" by auto moreover have "x \ clase R x" using assms clase_def equivp_def by (metis CollectI) moreover have "\C\?P. x \ C \ clase R x = C" proof fix C assume "C \ ?P" then obtain y where "C = clase R y" by auto show "x \ C \ clase R x = C" proof assume "x \ C" then have "R y x" using \C = clase R y\ assms clase_def by (metis CollectD) then show "clase R x = C" using assms \C = clase R y\ clase_def equivp_def by metis qed qed ultimately show "\B\?P. x \ B \ (\C\?P. x \ C \ B = C)" by blast qed next show "{} \ ?P" proof assume "{} \ ?P" then obtain x where "{} = clase R x" by auto moreover have "x \ clase R x" using assms clase_def equivp_def by (metis CollectI) ultimately show False by simp qed qed end