@@ -79,9 +79,6 @@ we do *not* require. This gives `Filter X` better formal properties, in particul
7979
8080assert_not_exists OrderedSemiring
8181
82- set_option autoImplicit true
83-
84-
8582open Function Set Order
8683open scoped Classical
8784
@@ -1333,10 +1330,11 @@ theorem Eventually.exists {p : α → Prop} {f : Filter α} [NeBot f] (hp : ∀
13331330 hp.frequently.exists
13341331#align filter.eventually.exists Filter.Eventually.exists
13351332
1336- lemma frequently_iff_neBot {p : α → Prop } : (∃ᶠ x in l, p x) ↔ NeBot (l ⊓ 𝓟 {x | p x}) := by
1333+ lemma frequently_iff_neBot {l : Filter α} {p : α → Prop } :
1334+ (∃ᶠ x in l, p x) ↔ NeBot (l ⊓ 𝓟 {x | p x}) := by
13371335 rw [neBot_iff, Ne, inf_principal_eq_bot]; rfl
13381336
1339- lemma frequently_mem_iff_neBot {s : Set α} : (∃ᶠ x in l, x ∈ s) ↔ NeBot (l ⊓ 𝓟 s) :=
1337+ lemma frequently_mem_iff_neBot {l : Filter α} { s : Set α} : (∃ᶠ x in l, x ∈ s) ↔ NeBot (l ⊓ 𝓟 s) :=
13401338 frequently_iff_neBot
13411339
13421340theorem frequently_iff_forall_eventually_exists_and {p : α → Prop } {f : Filter α} :
@@ -1539,7 +1537,8 @@ theorem EventuallyEq.trans {l : Filter α} {f g h : α → β} (H₁ : f =ᶠ[l]
15391537 H₂.rw (fun x y => f x = y) H₁
15401538#align filter.eventually_eq.trans Filter.EventuallyEq.trans
15411539
1542- instance : Trans ((· =ᶠ[l] ·) : (α → β) → (α → β) → Prop ) (· =ᶠ[l] ·) (· =ᶠ[l] ·) where
1540+ instance {l : Filter α} :
1541+ Trans ((· =ᶠ[l] ·) : (α → β) → (α → β) → Prop ) (· =ᶠ[l] ·) (· =ᶠ[l] ·) where
15431542 trans := EventuallyEq.trans
15441543
15451544theorem EventuallyEq.prod_mk {l} {f f' : α → β} (hf : f =ᶠ[l] f') {g g' : α → γ} (hg : g =ᶠ[l] g') :
@@ -1734,6 +1733,8 @@ instance : Trans ((· ≤ᶠ[l] ·) : (α → β) → (α → β) → Prop) (·
17341733
17351734end Preorder
17361735
1736+ variable {l : Filter α}
1737+
17371738theorem EventuallyLE.antisymm [PartialOrder β] {l : Filter α} {f g : α → β} (h₁ : f ≤ᶠ[l] g)
17381739 (h₂ : g ≤ᶠ[l] f) : f =ᶠ[l] g :=
17391740 h₂.mp <| h₁.mono fun _ => le_antisymm
@@ -2139,7 +2140,7 @@ theorem map_pure (f : α → β) (a : α) : map f (pure a) = pure (f a) :=
21392140 rfl
21402141#align filter.map_pure Filter.map_pure
21412142
2142- theorem pure_le_principal (a : α) : pure a ≤ 𝓟 s ↔ a ∈ s := by
2143+ theorem pure_le_principal {s : Set α} (a : α) : pure a ≤ 𝓟 s ↔ a ∈ s := by
21432144 simp
21442145
21452146@[simp] theorem join_pure (f : Filter α) : join (pure f) = f := rfl
@@ -2367,11 +2368,13 @@ theorem comap_mono : Monotone (comap m) :=
23672368#align filter.comap_mono Filter.comap_mono
23682369
23692370/-- Temporary lemma that we can tag with `gcongr` -/
2370- @[gcongr] theorem _root_.GCongr.Filter.map_le_map (h : F ≤ G) : map m F ≤ map m G := map_mono h
2371+ @[gcongr] theorem _root_.GCongr.Filter.map_le_map {F G : Filter α} (h : F ≤ G) :
2372+ map m F ≤ map m G := map_mono h
23712373
23722374/-- Temporary lemma that we can tag with `gcongr` -/
23732375@[gcongr]
2374- theorem _root_.GCongr.Filter.comap_le_comap (h : F ≤ G) : comap m F ≤ comap m G := comap_mono h
2376+ theorem _root_.GCongr.Filter.comap_le_comap {F G : Filter β} (h : F ≤ G) :
2377+ comap m F ≤ comap m G := comap_mono h
23752378
23762379@[simp] theorem map_bot : map m ⊥ = ⊥ := (gc_map_comap m).l_bot
23772380#align filter.map_bot Filter.map_bot
@@ -3317,25 +3320,27 @@ theorem Set.MapsTo.tendsto {α β} {s : Set α} {t : Set β} {f : α → β} (h
33173320 Filter.tendsto_principal_principal.2 h
33183321#align set.maps_to.tendsto Set.MapsTo.tendsto
33193322
3320- theorem Filter.EventuallyEq.comp_tendsto {f' : α → β} (H : f =ᶠ[l] f') {g : γ → α} {lc : Filter γ}
3321- (hg : Tendsto g lc l) : f ∘ g =ᶠ[lc] f' ∘ g :=
3323+ theorem Filter.EventuallyEq.comp_tendsto {α β γ : Type *} {l : Filter α} {f : α → β} {f' : α → β}
3324+ (H : f =ᶠ[l] f') {g : γ → α} {lc : Filter γ} (hg : Tendsto g lc l) :
3325+ f ∘ g =ᶠ[lc] f' ∘ g :=
33223326 hg.eventually H
33233327#align filter.eventually_eq.comp_tendsto Filter.EventuallyEq.comp_tendsto
33243328
3329+ variable {α β : Type *} {F : Filter α} {G : Filter β}
3330+
33253331theorem Filter.map_mapsTo_Iic_iff_tendsto {m : α → β} :
33263332 MapsTo (map m) (Iic F) (Iic G) ↔ Tendsto m F G :=
33273333 ⟨fun hm ↦ hm right_mem_Iic, fun hm _ ↦ hm.mono_left⟩
33283334
33293335alias ⟨_, Filter.Tendsto.map_mapsTo_Iic⟩ := Filter.map_mapsTo_Iic_iff_tendsto
33303336
3331- theorem Filter.map_mapsTo_Iic_iff_mapsTo {m : α → β} :
3337+ theorem Filter.map_mapsTo_Iic_iff_mapsTo {s : Set α} {t : Set β} { m : α → β} :
33323338 MapsTo (map m) (Iic <| 𝓟 s) (Iic <| 𝓟 t) ↔ MapsTo m s t := by
33333339 rw [map_mapsTo_Iic_iff_tendsto, tendsto_principal_principal, MapsTo]
33343340
33353341alias ⟨_, Set.MapsTo.filter_map_Iic⟩ := Filter.map_mapsTo_Iic_iff_mapsTo
33363342
33373343-- TODO(Anatole): unify with the global case
3338-
33393344theorem Filter.map_surjOn_Iic_iff_le_map {m : α → β} :
33403345 SurjOn (map m) (Iic F) (Iic G) ↔ G ≤ map m F := by
33413346 refine ⟨fun hm ↦ ?_, fun hm ↦ ?_⟩
@@ -3345,13 +3350,13 @@ theorem Filter.map_surjOn_Iic_iff_le_map {m : α → β} :
33453350 fun H (hHG : H ≤ G) ↦ by simpa [Filter.push_pull] using hHG.trans hm
33463351 exact this.surjOn fun H _ ↦ mem_Iic.mpr inf_le_left
33473352
3348- theorem Filter.map_surjOn_Iic_iff_surjOn {m : α → β} :
3353+ theorem Filter.map_surjOn_Iic_iff_surjOn {s : Set α} {t : Set β} { m : α → β} :
33493354 SurjOn (map m) (Iic <| 𝓟 s) (Iic <| 𝓟 t) ↔ SurjOn m s t := by
33503355 rw [map_surjOn_Iic_iff_le_map, map_principal, principal_mono, SurjOn]
33513356
33523357alias ⟨_, Set.SurjOn.filter_map_Iic⟩ := Filter.map_surjOn_Iic_iff_surjOn
33533358
3354- theorem Filter.filter_injOn_Iic_iff_injOn {m : α → β} :
3359+ theorem Filter.filter_injOn_Iic_iff_injOn {s : Set α} { m : α → β} :
33553360 InjOn (map m) (Iic <| 𝓟 s) ↔ InjOn m s := by
33563361 refine ⟨fun hm x hx y hy hxy ↦ ?_, fun hm F hF G hG ↦ ?_⟩
33573362 · rwa [← pure_injective.eq_iff, ← map_pure, ← map_pure, hm.eq_iff, pure_injective.eq_iff]
0 commit comments