(* Imagen_inversa_de_la_interseccion.thy -- f⁻¹[u ∩ v] = f⁻¹[u] ∩ f⁻¹[v] -- José A. Alonso Jiménez -- Sevilla, 5-junio-2021 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- En Isabelle/HOL, la imagen inversa de un conjunto s (de elementos de tipo \) por la función f (de tipo \ \ \) es el conjunto `f -` s` de elementos x (de tipo \) tales que `f x \ s`. Demostrar que f ⁻¹' (u \ v) = f ⁻¹' u \ f ⁻¹' v ------------------------------------------------------------------- *) theory Imagen_inversa_de_la_interseccion 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 h : "f x \ u \ v" by (simp only: vimage_eq) have "x \ f -` u" proof - have "f x \ u" using h by (rule IntD1) then show "x \ f -` u" by (rule vimageI2) qed moreover have "x \ f -` v" proof - have "f x \ v" using h by (rule IntD2) then show "x \ f -` v" by (rule vimageI2) qed ultimately show "x \ f -` u \ f -` v" by (rule IntI) qed next show "f -` u \ f -` v \ f -` (u \ v)" proof (rule subsetI) fix x assume h2 : "x \ f -` u \ f -` v" have "f x \ u" proof - have "x \ f -` u" using h2 by (rule IntD1) then show "f x \ u" by (rule vimageD) qed moreover have "f x \ v" proof - have "x \ f -` v" using h2 by (rule IntD2) then show "f x \ v" by (rule vimageD) qed ultimately have "f x \ u \ v" by (rule IntI) then show "x \ f -` (u \ v)" by (rule vimageI2) 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 h : "f x \ u \ v" by simp have "x \ f -` u" proof - have "f x \ u" using h by simp then show "x \ f -` u" by simp qed moreover have "x \ f -` v" proof - have "f x \ v" using h by simp then show "x \ f -` v" by simp qed ultimately show "x \ f -` u \ f -` v" by simp qed next show "f -` u \ f -` v \ f -` (u \ v)" proof fix x assume h2 : "x \ f -` u \ f -` v" have "f x \ u" proof - have "x \ f -` u" using h2 by simp then show "f x \ u" by simp qed moreover have "f x \ v" proof - have "x \ f -` v" using h2 by simp then show "f x \ v" by simp qed ultimately have "f x \ u \ v" by simp then show "x \ f -` (u \ v)" by simp qed qed (* 3\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" proof show "f -` (u \ v) \ f -` u \ f -` v" proof fix x assume h1 : "x \ f -` (u \ v)" have "x \ f -` u" using h1 by simp moreover have "x \ f -` v" using h1 by simp ultimately show "x \ f -` u \ f -` v" by simp qed next show "f -` u \ f -` v \ f -` (u \ v)" proof fix x assume h2 : "x \ f -` u \ f -` v" have "f x \ u" using h2 by simp moreover have "f x \ v" using h2 by simp ultimately have "f x \ u \ v" by simp then show "x \ f -` (u \ v)" by simp qed qed (* 4\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" by (simp only: vimage_Int) (* 5\ demostración *) lemma "f -` (u \ v) = f -` u \ f -` v" by auto end