(* Inyectiva_si_lo_es_la_composicion.thy -- Si g \ f es inyectiva, entonces f es inyectiva. -- José A. Alonso Jiménez -- Sevilla, 7-junio-2024 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- -- Sean f: X \ Y y g: Y \ Z. Demostrar que si g \ f es inyectiva, -- entonces f es inyectiva. -- ------------------------------------------------------------------- *) theory Inyectiva_si_lo_es_la_composicion imports Main begin (* 1\ demostración *) lemma assumes "inj (g \ f)" shows "inj f" proof (rule injI) fix x y assume "f x = f y" show "x = y" proof - have "g (f x) = g (f y)" using \f x = f y\ by simp then have "(g \ f) x = (g \ f) y" by simp with assms show "x = y" by (rule injD) qed qed (* 2\ demostración *) lemma assumes "inj (g \ f)" shows "inj f" proof (rule injI) fix x y assume "f x = f y" then show "x = y" using assms injD by fastforce qed (* 3\ demostración *) lemma assumes "inj (g \ f)" shows "inj f" using assms by (rule inj_on_imageI2) (* Nota: Al calcular el cursor en shows sale una sugerencia indicando que se puede demostrar con la regla inj_on_imageI2. *) end