(* Suprayectiva_si_lo_es_la_composicion.thy -- Si g \ f es suprayectiva, entonces f es suprayectiva. -- José A. Alonso Jiménez -- Sevilla, 10-junio-2024 -- ------------------------------------------------------------------ *) (* --------------------------------------------------------------------- -- Sean f: X \ Y y g: Y \ Z. Demostrar que si g \ f es suprayectiva, -- entonces g es suprayectiva. -- ------------------------------------------------------------------- *) theory Suprayectiva_si_lo_es_la_composicion imports Main begin (* 1\ demostración *) lemma assumes "surj (g \ f)" shows "surj g" proof (unfold Fun.surj_def, rule) fix z have "\x. z = (g \ f) x" using assms by (rule surjD) then obtain x where "z = (g \ f) x" by (rule exE) then have "z = g (f x)" by (simp only: Fun.comp_apply) then show "\y. z = g y" by (rule exI) qed (* 2 demostración *) lemma assumes "surj (g \ f)" shows "surj g" using assms by auto end