src/HOL/List.thy
changeset 14338 a1add2de7601
parent 14328 fd063037fdf5
child 14339 ec575b7bde7a
equal deleted inserted replaced
14337:e13731554e50 14338:a1add2de7601
   486 lemma ex_map_conv:
   486 lemma ex_map_conv:
   487   "(EX xs. ys = map f xs) = (ALL y : set ys. EX x. y = f x)"
   487   "(EX xs. ys = map f xs) = (ALL y : set ys. EX x. y = f x)"
   488 by(induct ys, auto)
   488 by(induct ys, auto)
   489 
   489 
   490 lemma map_injective:
   490 lemma map_injective:
   491  "!!xs. map f xs = map f ys ==> (\<forall>x y. f x = f y --> x = y) ==> xs = ys"
   491  "!!xs. map f xs = map f ys ==> inj f ==> xs = ys"
   492 by (induct ys) auto
   492 by (induct ys) (auto dest!:injD)
   493 
   493 
   494 lemma inj_mapI: "inj f ==> inj (map f)"
   494 lemma inj_mapI: "inj f ==> inj (map f)"
   495 by (rules dest: map_injective injD intro: inj_onI)
   495 by (rules dest: map_injective injD intro: inj_onI)
   496 
   496 
   497 lemma inj_mapD: "inj (map f) ==> inj f"
   497 lemma inj_mapD: "inj (map f) ==> inj f"