(* Imagen_de_la_interseccion.thy -- f[s \ t] \ f[s] \ f[t]. -- José A. Alonso Jiménez -- Sevilla, 15-junio-2021 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- -- Demostrar que -- f ` (s \ t) \ f ` s \ f ` t -- ------------------------------------------------------------------ *) theory Imagen_de_la_interseccion imports Main begin (* 1\ demostración *) lemma "f ` (s \ t) \ f ` s \ f ` t" proof (rule subsetI) fix y assume "y \ f ` (s \ t)" then have "y \ f ` s" proof (rule imageE) fix x assume "y = f x" assume "x \ s \ t" have "x \ s" using \x \ s \ t\ by (rule IntD1) then have "f x \ f ` s" by (rule imageI) with \y = f x\ show "y \ f ` s" by (rule ssubst) qed moreover note \y \ f ` (s \ t)\ then have "y \ f ` t" proof (rule imageE) fix x assume "y = f x" assume "x \ s \ t" have "x \ t" using \x \ s \ t\ by (rule IntD2) then have "f x \ f ` t" by (rule imageI) with \y = f x\ show "y \ f ` t" by (rule ssubst) qed ultimately show "y \ f ` s \ f ` t" by (rule IntI) qed (* 2\ demostración *) lemma "f ` (s \ t) \ f ` s \ f ` t" proof fix y assume "y \ f ` (s \ t)" then have "y \ f ` s" proof fix x assume "y = f x" assume "x \ s \ t" have "x \ s" using \x \ s \ t\ by simp then have "f x \ f ` s" by simp with \y = f x\ show "y \ f ` s" by simp qed moreover note \y \ f ` (s \ t)\ then have "y \ f ` t" proof fix x assume "y = f x" assume "x \ s \ t" have "x \ t" using \x \ s \ t\ by simp then have "f x \ f ` t" by simp with \y = f x\ show "y \ f ` t" by simp qed ultimately show "y \ f ` s \ f ` t" by simp qed (* 3\ demostración *) lemma "f ` (s \ t) \ f ` s \ f ` t" proof fix y assume "y \ f ` (s \ t)" then obtain x where hx : "y = f x \ x \ s \ t" by auto then have "y = f x" by simp have "x \ s" using hx by simp have "x \ t" using hx by simp have "y \ f ` s" using \y = f x\ \x \ s\ by simp moreover have "y \ f ` t" using \y = f x\ \x \ t\ by simp ultimately show "y \ f ` s \ f ` t" by simp qed (* 4\ demostración *) lemma "f ` (s \ t) \ f ` s \ f ` t" by (simp only: image_Int_subset) (* 5\ demostración *) lemma "f ` (s \ t) \ f ` s \ f ` t" by auto end