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

Commit aa67315

Browse files
committed
chore(order/filter/bases): generalize has_basis.restrict (#3645)
The old lemma is renamed to `filter.has_basis.restrict_subset`
1 parent c6f3399 commit aa67315

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/order/filter/bases.lean

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,20 +261,28 @@ lemma has_basis_self {l : filter α} {P : set α → Prop} :
261261
has_basis l (λ s, s ∈ l ∧ P s) id ↔ ∀ t, (t ∈ l ↔ ∃ r ∈ l, P r ∧ r ⊆ t) :=
262262
by simp only [has_basis_iff, exists_prop, id, and_assoc]
263263

264-
/-- If `{s i | p i}` is a basis of a filter `l` and `V ∈ l`, then `{s i | p i ∧ s i ⊆ V}`
265-
is a basis of `l`. -/
266-
lemma has_basis.restrict (h : l.has_basis p s) {V : set α} (hV : V ∈ l) :
267-
l.has_basis (λ i, p i ∧ s i ⊆ V) s :=
264+
/-- If `{s i | p i}` is a basis of a filter `l` and each `s i` includes `s j` such that
265+
`p j ∧ q j`, then `{s j | p j ∧ q j}` is a basis of `l`. -/
266+
lemma has_basis.restrict (h : l.has_basis p s) {q : ι → Prop}
267+
(hq : ∀ i, p i → ∃ j, p j ∧ q j ∧ s j ⊆ s i) :
268+
l.has_basis (λ i, p i ∧ q i) s :=
268269
begin
269270
refine ⟨λ t, ⟨λ ht, _, λ ⟨i, hpi, hti⟩, h.mem_iff.2 ⟨i, hpi.1, hti⟩⟩⟩,
270-
rcases h.mem_iff.1 (inter_mem_sets hV ht) with ⟨i, hpi, hti⟩,
271-
rw subset_inter_iff at hti,
272-
exact ⟨i, ⟨hpi, hti.1⟩, hti.2
271+
rcases h.mem_iff.1 ht with ⟨i, hpi, hti⟩,
272+
rcases hq i hpi with ⟨j, hpj, hqj, hji⟩,
273+
exact ⟨j, ⟨hpj, hqj⟩, subset.trans hji hti
273274
end
274275

276+
/-- If `{s i | p i}` is a basis of a filter `l` and `V ∈ l`, then `{s i | p i ∧ s i ⊆ V}`
277+
is a basis of `l`. -/
278+
lemma has_basis.restrict_subset (h : l.has_basis p s) {V : set α} (hV : V ∈ l) :
279+
l.has_basis (λ i, p i ∧ s i ⊆ V) s :=
280+
h.restrict $ λ i hi, (h.mem_iff.1 (inter_mem_sets hV (h.mem_of_mem hi))).imp $
281+
λ j hj, ⟨hj.fst, subset_inter_iff.1 hj.snd⟩
282+
275283
lemma has_basis.has_basis_self_subset {p : set α → Prop} (h : l.has_basis (λ s, s ∈ l ∧ p s) id)
276284
{V : set α} (hV : V ∈ l) : l.has_basis (λ s, s ∈ l ∧ p s ∧ s ⊆ V) id :=
277-
by simpa only [and_assoc] using h.restrict hV
285+
by simpa only [and_assoc] using h.restrict_subset hV
278286

279287
theorem has_basis.ge_iff (hl' : l'.has_basis p' s') : l ≤ l' ↔ ∀ i', p' i' → s' i' ∈ l :=
280288
⟨λ h i' hi', h $ hl'.mem_of_mem hi',

0 commit comments

Comments
 (0)