Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit c170ce3

Browse files
committed
chore(data/finset): add coe_map, coe_image_subset_range, and coe_map_subset_range (#2530)
1 parent 40e97d3 commit c170ce3

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/data/finset.lean

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,13 @@ mem_map_of_inj f.2
11171117
theorem mem_map_of_mem (f : α ↪ β) {a} {s : finset α} : a ∈ s → f a ∈ s.map f :=
11181118
(mem_map' _).2
11191119

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+
11201127
theorem map_to_finset [decidable_eq α] [decidable_eq β] {s : multiset α} :
11211128
s.to_finset.map f = (s.map f).to_finset :=
11221129
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
11971204
mem_image.2 ⟨_, h, rfl⟩
11981205

11991206
@[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
12011208

12021209
lemma nonempty.image (h : s.nonempty) (f : α → β) : (s.image f).nonempty :=
12031210
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
12191226

12201227
theorem image_mono (f : α → β) : monotone (finset.image f) := λ _ _, image_subset_image
12211228

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+
12221233
theorem image_filter {p : β → Prop} [decidable_pred p] :
12231234
(s.image f).filter p = (s.filter (p ∘ f)).image f :=
12241235
ext.2 $ λ b, by simp only [mem_filter, mem_image, exists_prop]; exact

0 commit comments

Comments
 (0)