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

Commit b8faf13

Browse files
committed
feat(data/finset/basic): add finset.filter_eq_self (#12717)
and an epsilon of cleanup from flt-regular
1 parent d495afd commit b8faf13

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/data/finset/basic.lean

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,15 +1427,19 @@ ext $ assume a, by simp only [mem_filter, and_false]; refl
14271427

14281428
variables {p q}
14291429

1430+
lemma filter_eq_self (s : finset α) :
1431+
s.filter p = s ↔ ∀ x ∈ s, p x :=
1432+
by simp [finset.ext_iff]
1433+
14301434
/-- If all elements of a `finset` satisfy the predicate `p`, `s.filter p` is `s`. -/
14311435
@[simp] lemma filter_true_of_mem {s : finset α} (h : ∀ x ∈ s, p x) : s.filter p = s :=
1432-
ext $ λ x, ⟨λ h, (mem_filter.1 h).1, λ hx, mem_filter.2 ⟨hx, h x hx⟩⟩
1436+
(filter_eq_self s).mpr h
14331437

14341438
/-- If all elements of a `finset` fail to satisfy the predicate `p`, `s.filter p` is `∅`. -/
14351439
lemma filter_false_of_mem {s : finset α} (h : ∀ x ∈ s, ¬ p x) : s.filter p = ∅ :=
14361440
eq_empty_of_forall_not_mem (by simpa)
14371441

1438-
lemma filter_eq_empty_iff (s : finset α) (p : α → Prop) [decidable_pred p] :
1442+
lemma filter_eq_empty_iff (s : finset α) :
14391443
(s.filter p = ∅) ↔ ∀ x ∈ s, ¬ p x :=
14401444
begin
14411445
refine ⟨_, filter_false_of_mem⟩,
@@ -1457,7 +1461,7 @@ lemma filter_empty : filter p ∅ = ∅ := subset_empty.1 $ filter_subset _ _
14571461
lemma filter_subset_filter {s t : finset α} (h : s ⊆ t) : s.filter p ⊆ t.filter p :=
14581462
assume a ha, mem_filter.2 ⟨h (mem_filter.1 ha).1, (mem_filter.1 ha).2
14591463

1460-
lemma monotone_filter_left (p : α → Prop) [decidable_pred p] : monotone (filter p) :=
1464+
lemma monotone_filter_left : monotone (filter p) :=
14611465
λ _ _, filter_subset_filter p
14621466

14631467
lemma monotone_filter_right (s : finset α) ⦃p q : α → Prop

0 commit comments

Comments
 (0)