(* Imagen_inversa_de_la_union.thy -- f⁻¹[A ∪ B] = f⁻¹[A] ∪ f⁻¹[B]. -- José A. Alonso Jiménez -- Sevilla, 14-junio-2021 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- -- Demostrar que -- f -` (u \ v) = f -` u \ f -` v -- ------------------------------------------------------------------ *) theory Imagen_inversa_de_la_union imports Main begin (* 1\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" proof (rule equalityI) show "f -` (u \ v) \ f -` u \ f -` v" proof (rule subsetI) fix x assume "x \ f -` (u \ v)" then have "f x \ u \ v" by (rule vimageD) then show "x \ f -` u \ f -` v" proof (rule UnE) assume "f x \ u" then have "x \ f -` u" by (rule vimageI2) then show "x \ f -` u \ f -` v" by (rule UnI1) next assume "f x \ v" then have "x \ f -` v" by (rule vimageI2) then show "x \ f -` u \ f -` v" by (rule UnI2) qed qed next show "f -` u \ f -` v \ f -` (u \ v)" proof (rule subsetI) fix x assume "x \ f -` u \ f -` v" then show "x \ f -` (u \ v)" proof (rule UnE) assume "x \ f -` u" then have "f x \ u" by (rule vimageD) then have "f x \ u \ v" by (rule UnI1) then show "x \ f -` (u \ v)" by (rule vimageI2) next assume "x \ f -` v" then have "f x \ v" by (rule vimageD) then have "f x \ u \ v" by (rule UnI2) then show "x \ f -` (u \ v)" by (rule vimageI2) qed qed qed (* 2\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" proof show "f -` (u \ v) \ f -` u \ f -` v" proof fix x assume "x \ f -` (u \ v)" then have "f x \ u \ v" by simp then show "x \ f -` u \ f -` v" proof assume "f x \ u" then have "x \ f -` u" by simp then show "x \ f -` u \ f -` v" by simp next assume "f x \ v" then have "x \ f -` v" by simp then show "x \ f -` u \ f -` v" by simp qed qed next show "f -` u \ f -` v \ f -` (u \ v)" proof fix x assume "x \ f -` u \ f -` v" then show "x \ f -` (u \ v)" proof assume "x \ f -` u" then have "f x \ u" by simp then have "f x \ u \ v" by simp then show "x \ f -` (u \ v)" by simp next assume "x \ f -` v" then have "f x \ v" by simp then have "f x \ u \ v" by simp then show "x \ f -` (u \ v)" by simp qed qed qed (* 3\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" by (simp only: vimage_Un) (* 4\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" by auto end