@@ -1117,6 +1117,13 @@ mem_map_of_inj f.2
1117
1117
theorem mem_map_of_mem (f : α ↪ β) {a} {s : finset α} : a ∈ s → f a ∈ s.map f :=
1118
1118
(mem_map' _).2
1119
1119
1120
+ @[simp] theorem coe_map (f : α ↪ β) (s : finset α) : (↑(s.map f) : set β) = f '' ↑s :=
1121
+ set.ext $ λ x, mem_map.trans set.mem_image_iff_bex.symm
1122
+
1123
+ theorem coe_map_subset_range (f : α ↪ β) (s : finset α) : (↑(s.map f) : set β) ⊆ set.range f :=
1124
+ calc ↑(s.map f) = f '' ↑s : coe_map f s
1125
+ ... ⊆ set.range f : set.image_subset_range f ↑s
1126
+
1120
1127
theorem map_to_finset [decidable_eq α] [decidable_eq β] {s : multiset α} :
1121
1128
s.to_finset.map f = (s.map f).to_finset :=
1122
1129
ext.2 $ λ _, by simp only [mem_map, multiset.mem_map, exists_prop, multiset.mem_to_finset]
@@ -1197,7 +1204,7 @@ theorem mem_image_of_mem (f : α → β) {a} {s : finset α} (h : a ∈ s) : f a
1197
1204
mem_image.2 ⟨_, h, rfl⟩
1198
1205
1199
1206
@[simp] lemma coe_image {f : α → β} : ↑(s.image f) = f '' ↑s :=
1200
- set.ext $ λ _, mem_image.trans $ by simp only [exists_prop]; refl
1207
+ set.ext $ λ _, mem_image.trans set.mem_image_iff_bex.symm
1201
1208
1202
1209
lemma nonempty.image (h : s.nonempty) (f : α → β) : (s.image f).nonempty :=
1203
1210
let ⟨a, ha⟩ := h in ⟨f a, mem_image_of_mem f ha⟩
@@ -1219,6 +1226,10 @@ by simp only [subset_def, image_val, subset_erase_dup', erase_dup_subset', multi
1219
1226
1220
1227
theorem image_mono (f : α → β) : monotone (finset.image f) := λ _ _, image_subset_image
1221
1228
1229
+ theorem coe_image_subset_range : ↑(s.image f) ⊆ set.range f :=
1230
+ calc ↑(s.image f) = f '' ↑s : coe_image
1231
+ ... ⊆ set.range f : set.image_subset_range f ↑s
1232
+
1222
1233
theorem image_filter {p : β → Prop } [decidable_pred p] :
1223
1234
(s.image f).filter p = (s.filter (p ∘ f)).image f :=
1224
1235
ext.2 $ λ b, by simp only [mem_filter, mem_image, exists_prop]; exact
0 commit comments