topology.uniform_space.uniform_convergence
⟷
Mathlib.Topology.UniformSpace.UniformConvergence
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -972,7 +972,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_TFAE /-
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
@@ -996,7 +996,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -265,7 +265,7 @@ theorem TendstoUniformlyOn.congr {F' : ι → α → β} (hf : TendstoUniformlyO
rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at hf ⊢
refine' hf.congr _
rw [eventually_iff] at hff' ⊢
- simp only [Set.EqOn] at hff'
+ simp only [Set.EqOn] at hff'
simp only [mem_prod_principal, hff', mem_set_of_eq]
#align tendsto_uniformly_on.congr TendstoUniformlyOn.congr
-/
@@ -354,7 +354,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
(p.Prod q) (p'.Prod q') :=
by
intro u hu
- rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
+ rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
obtain ⟨v, hv, w, hw, hvw⟩ := hu
apply (tendsto_swap4_prod.eventually ((h v hv).prod_mk (h' w hw))).mono
simp only [Prod_map, and_imp, Prod.forall]
@@ -474,7 +474,7 @@ theorem Filter.Tendsto.tendstoUniformlyOnFilter_const {g : ι → β} {b : β} (
TendstoUniformlyOnFilter (fun n : ι => fun a : α => g n) (fun a : α => b) p p' :=
by
rw [tendstoUniformlyOnFilter_iff_tendsto]
- rw [Uniform.tendsto_nhds_right] at hg
+ rw [Uniform.tendsto_nhds_right] at hg
exact
(hg.comp (tendsto_fst.comp ((@tendsto_id ι p).Prod_map (@tendsto_id α p')))).congr fun x => by
simp
@@ -604,7 +604,7 @@ theorem UniformCauchySeqOnFilter.tendstoUniformlyOnFilter_of_tendsto [NeBot p]
-- Complete the proof
intro x n hx hm'
refine' Set.mem_of_mem_of_subset (mem_comp_rel.mpr _) htmem
- rw [Uniform.tendsto_nhds_right] at hm'
+ rw [Uniform.tendsto_nhds_right] at hm'
have := hx.and (hm' ht)
obtain ⟨m, hm⟩ := this.exists
exact ⟨F m x, ⟨hm.2, htsymm hm.1⟩⟩
@@ -689,10 +689,10 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
UniformCauchySeqOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (p.Prod p') (s ×ˢ s') :=
by
intro u hu
- rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
+ rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
obtain ⟨v, hv, w, hw, hvw⟩ := hu
simp_rw [mem_prod, Prod_map, and_imp, Prod.forall]
- rw [← Set.image_subset_iff] at hvw
+ rw [← Set.image_subset_iff] at hvw
apply (tendsto_swap4_prod.eventually ((h v hv).prod_mk (h' w hw))).mono
intro x hx a b ha hb
refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
@@ -740,9 +740,9 @@ theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCounta
by
rw [tendstoUniformlyOn_iff_tendsto, tendsto_iff_seq_tendsto]
intro u hu
- rw [tendsto_prod_iff'] at hu
+ rw [tendsto_prod_iff'] at hu
specialize h (fun n => (u n).fst) hu.1
- rw [tendstoUniformlyOn_iff_tendsto] at h
+ rw [tendstoUniformlyOn_iff_tendsto] at h
have :
(fun q : ι × α => (f q.snd, F q.fst q.snd)) ∘ u =
(fun q : ℕ × α => (f q.snd, F ((fun n : ℕ => (u n).fst) q.fst) q.snd)) ∘ fun n =>
@@ -876,7 +876,7 @@ theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen
rintro v hv x ⟨_, ⟨i, rfl⟩, hi : x ∈ S i⟩
obtain ⟨t, ht, ht'⟩ := h i v hv x hi
refine' ⟨t, _, ht'⟩
- rw [(hS _).nhdsWithin_eq hi] at ht
+ rw [(hS _).nhdsWithin_eq hi] at ht
exact mem_nhdsWithin_of_mem_nhds ht
#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
-/
@@ -927,10 +927,10 @@ theorem tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace [CompactSpa
choose U hU using h V hV
obtain ⟨t, ht⟩ := is_compact_univ.elim_nhds_subcover' (fun k hk => U k) fun k hk => (hU k).1
replace hU := fun x : t => (hU x).2
- rw [← eventually_all] at hU
+ rw [← eventually_all] at hU
refine' hU.mono fun i hi x => _
specialize ht (mem_univ x)
- simp only [exists_prop, mem_Union, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
+ simp only [exists_prop, mem_Union, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
obtain ⟨y, ⟨hy₁, hy₂⟩, hy₃⟩ := ht
exact hi ⟨⟨y, hy₁⟩, hy₂⟩ x hy₃
#align tendsto_locally_uniformly_iff_tendsto_uniformly_of_compact_space tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace
@@ -945,7 +945,7 @@ theorem tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact (hs : IsComp
refine' ⟨fun h => _, TendstoUniformlyOn.tendstoLocallyUniformlyOn⟩
rwa [tendstoLocallyUniformlyOn_iff_tendstoLocallyUniformly_comp_coe,
tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace, ←
- tendstoUniformlyOn_iff_tendstoUniformly_comp_coe] at h
+ tendstoUniformlyOn_iff_tendstoUniformly_comp_coe] at h
#align tendsto_locally_uniformly_on_iff_tendsto_uniformly_on_of_compact tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact
-/
@@ -967,7 +967,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
(g : γ → α) (cg : Continuous g) : TendstoLocallyUniformly (fun n => F n ∘ g) (f ∘ g) p :=
by
rw [← tendstoLocallyUniformlyOn_univ] at h ⊢
- rw [continuous_iff_continuousOn_univ] at cg
+ rw [continuous_iff_continuousOn_univ] at cg
exact h.comp _ (maps_to_univ _ _) cg
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
@@ -1237,8 +1237,8 @@ theorem tendsto_comp_of_locally_uniform_limit (h : ContinuousAt f x) (hg : Tends
(hunif : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∀ᶠ n in p, ∀ y ∈ t, (f y, F n y) ∈ u) :
Tendsto (fun n => F n (g n)) p (𝓝 (f x)) :=
by
- rw [← continuousWithinAt_univ] at h
- rw [← nhdsWithin_univ] at hunif hg
+ rw [← continuousWithinAt_univ] at h
+ rw [← nhdsWithin_univ] at hunif hg
exact tendsto_comp_of_locally_uniform_limit_within h hg hunif
#align tendsto_comp_of_locally_uniform_limit tendsto_comp_of_locally_uniform_limit
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-/
-import Mathbin.Topology.Separation
-import Mathbin.Topology.UniformSpace.Basic
-import Mathbin.Topology.UniformSpace.Cauchy
+import Topology.Separation
+import Topology.UniformSpace.Basic
+import Topology.UniformSpace.Cauchy
#align_import topology.uniform_space.uniform_convergence from "leanprover-community/mathlib"@"0a0ec35061ed9960bf0e7ffb0335f44447b58977"
@@ -972,7 +972,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_TFAE /-
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
@@ -996,7 +996,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -127,8 +127,8 @@ theorem tendstoUniformlyOn_iff_tendstoUniformlyOnFilter :
#align tendsto_uniformly_on_iff_tendsto_uniformly_on_filter tendstoUniformlyOn_iff_tendstoUniformlyOnFilter
-/
-alias tendstoUniformlyOn_iff_tendstoUniformlyOnFilter ↔ TendstoUniformlyOn.tendstoUniformlyOnFilter
- TendstoUniformlyOnFilter.tendstoUniformlyOn
+alias ⟨TendstoUniformlyOn.tendstoUniformlyOnFilter, TendstoUniformlyOnFilter.tendstoUniformlyOn⟩ :=
+ tendstoUniformlyOn_iff_tendstoUniformlyOnFilter
#align tendsto_uniformly_on.tendsto_uniformly_on_filter TendstoUniformlyOn.tendstoUniformlyOnFilter
#align tendsto_uniformly_on_filter.tendsto_uniformly_on TendstoUniformlyOnFilter.tendstoUniformlyOn
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module topology.uniform_space.uniform_convergence
-! leanprover-community/mathlib commit 0a0ec35061ed9960bf0e7ffb0335f44447b58977
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Separation
import Mathbin.Topology.UniformSpace.Basic
import Mathbin.Topology.UniformSpace.Cauchy
+#align_import topology.uniform_space.uniform_convergence from "leanprover-community/mathlib"@"0a0ec35061ed9960bf0e7ffb0335f44447b58977"
+
/-!
# Uniform convergence
@@ -975,7 +972,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_TFAE /-
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
@@ -999,7 +996,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -155,6 +155,7 @@ def TendstoUniformly (F : ι → α → β) (f : α → β) (p : Filter ι) :=
#align tendsto_uniformly TendstoUniformly
-/
+#print tendstoUniformly_iff_tendstoUniformlyOnFilter /-
theorem tendstoUniformly_iff_tendstoUniformlyOnFilter :
TendstoUniformly F f p ↔ TendstoUniformlyOnFilter F f p ⊤ :=
by
@@ -163,10 +164,13 @@ theorem tendstoUniformly_iff_tendstoUniformlyOnFilter :
simp_rw [← principal_univ, eventually_prod_principal_iff]
simp
#align tendsto_uniformly_iff_tendsto_uniformly_on_filter tendstoUniformly_iff_tendstoUniformlyOnFilter
+-/
+#print TendstoUniformly.tendstoUniformlyOnFilter /-
theorem TendstoUniformly.tendstoUniformlyOnFilter (h : TendstoUniformly F f p) :
TendstoUniformlyOnFilter F f p ⊤ := by rwa [← tendstoUniformly_iff_tendstoUniformlyOnFilter]
#align tendsto_uniformly.tendsto_uniformly_on_filter TendstoUniformly.tendstoUniformlyOnFilter
+-/
#print tendstoUniformlyOn_iff_tendstoUniformly_comp_coe /-
theorem tendstoUniformlyOn_iff_tendstoUniformly_comp_coe :
@@ -178,6 +182,7 @@ theorem tendstoUniformlyOn_iff_tendstoUniformly_comp_coe :
#align tendsto_uniformly_on_iff_tendsto_uniformly_comp_coe tendstoUniformlyOn_iff_tendstoUniformly_comp_coe
-/
+#print tendstoUniformly_iff_tendsto /-
/-- A sequence of functions `Fₙ` converges uniformly to a limiting function `f` w.r.t.
filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ᶠ ⊤` to the uniformity.
In other words: one knows nothing about the behavior of `x` in this limit.
@@ -186,7 +191,9 @@ theorem tendstoUniformly_iff_tendsto {F : ι → α → β} {f : α → β} {p :
TendstoUniformly F f p ↔ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ᶠ ⊤) (𝓤 β) := by
simp [tendstoUniformly_iff_tendstoUniformlyOnFilter, tendstoUniformlyOnFilter_iff_tendsto]
#align tendsto_uniformly_iff_tendsto tendstoUniformly_iff_tendsto
+-/
+#print TendstoUniformlyOnFilter.tendsto_at /-
/-- Uniform converence implies pointwise convergence. -/
theorem TendstoUniformlyOnFilter.tendsto_at (h : TendstoUniformlyOnFilter F f p p')
(hx : 𝓟 {x} ≤ p') : Tendsto (fun n => F n x) p <| 𝓝 (f x) :=
@@ -196,6 +203,7 @@ theorem TendstoUniformlyOnFilter.tendsto_at (h : TendstoUniformlyOnFilter F f p
intro i h
simpa using h.filter_mono hx
#align tendsto_uniformly_on_filter.tendsto_at TendstoUniformlyOnFilter.tendsto_at
+-/
#print TendstoUniformlyOn.tendsto_at /-
/-- Uniform converence implies pointwise convergence. -/
@@ -220,15 +228,19 @@ theorem tendstoUniformlyOn_univ : TendstoUniformlyOn F f p univ ↔ TendstoUnifo
#align tendsto_uniformly_on_univ tendstoUniformlyOn_univ
-/
+#print TendstoUniformlyOnFilter.mono_left /-
theorem TendstoUniformlyOnFilter.mono_left {p'' : Filter ι} (h : TendstoUniformlyOnFilter F f p p')
(hp : p'' ≤ p) : TendstoUniformlyOnFilter F f p'' p' := fun u hu =>
(h u hu).filter_mono (p'.prod_mono_left hp)
#align tendsto_uniformly_on_filter.mono_left TendstoUniformlyOnFilter.mono_left
+-/
+#print TendstoUniformlyOnFilter.mono_right /-
theorem TendstoUniformlyOnFilter.mono_right {p'' : Filter α} (h : TendstoUniformlyOnFilter F f p p')
(hp : p'' ≤ p') : TendstoUniformlyOnFilter F f p p'' := fun u hu =>
(h u hu).filter_mono (p.prod_mono_right hp)
#align tendsto_uniformly_on_filter.mono_right TendstoUniformlyOnFilter.mono_right
+-/
#print TendstoUniformlyOn.mono /-
theorem TendstoUniformlyOn.mono {s' : Set α} (h : TendstoUniformlyOn F f p s) (h' : s' ⊆ s) :
@@ -337,6 +349,7 @@ theorem UniformContinuous.comp_tendstoUniformly [UniformSpace γ] {g : β → γ
#align uniform_continuous.comp_tendsto_uniformly UniformContinuous.comp_tendstoUniformly
-/
+#print TendstoUniformlyOnFilter.prod_map /-
theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {q : Filter ι'} {q' : Filter α'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q q') :
@@ -355,8 +368,10 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
mem_of_mem_of_subset (set.mem_prod.mpr ⟨hxv, hxw⟩) hvw
exact hout
#align tendsto_uniformly_on_filter.prod_map TendstoUniformlyOnFilter.prod_map
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print TendstoUniformlyOn.prod_map /-
theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} {s' : Set α'} (h : TendstoUniformlyOn F f p s)
(h' : TendstoUniformlyOn F' f' p' s') :
@@ -366,7 +381,9 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h' ⊢
simpa only [prod_principal_principal] using h.prod_map h'
#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_map
+-/
+#print TendstoUniformly.prod_map /-
theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p.Prod p') :=
@@ -374,7 +391,9 @@ theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F'
rw [← tendstoUniformlyOn_univ, ← univ_prod_univ] at *
exact h.prod_map h'
#align tendsto_uniformly.prod_map TendstoUniformly.prod_map
+-/
+#print TendstoUniformlyOnFilter.prod /-
theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
{f' : α → β'} {q : Filter ι'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q p') :
@@ -382,20 +401,25 @@ theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F'
(p.Prod q) p' :=
fun u hu => ((h.Prod_map h') u hu).diag_of_prod_right
#align tendsto_uniformly_on_filter.prod TendstoUniformlyOnFilter.prod
+-/
+#print TendstoUniformlyOn.prod /-
theorem TendstoUniformlyOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformlyOn F f p s) (h' : TendstoUniformlyOn F' f' p' s) :
TendstoUniformlyOn (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
(p.Prod p') s :=
(congr_arg _ s.inter_self).mp ((h.Prod_map h').comp fun a => (a, a))
#align tendsto_uniformly_on.prod TendstoUniformlyOn.prod
+-/
+#print TendstoUniformly.prod /-
theorem TendstoUniformly.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
(p.Prod p') :=
(h.Prod_map h').comp fun a => (a, a)
#align tendsto_uniformly.prod TendstoUniformly.prod
+-/
#print tendsto_prod_filter_iff /-
/-- Uniform convergence on a filter `p'` to a constant function is equivalent to convergence in
@@ -419,6 +443,7 @@ theorem tendsto_prod_principal_iff {c : β} :
#align tendsto_prod_principal_iff tendsto_prod_principal_iff
-/
+#print tendsto_prod_top_iff /-
/-- Uniform convergence to a constant function is equivalent to convergence in `p ×ᶠ ⊤`. -/
theorem tendsto_prod_top_iff {c : β} :
Tendsto (↿F) (p ×ᶠ ⊤) (𝓝 c) ↔ TendstoUniformly F (fun _ => c) p :=
@@ -426,6 +451,7 @@ theorem tendsto_prod_top_iff {c : β} :
rw [tendstoUniformly_iff_tendstoUniformlyOnFilter]
exact tendsto_prod_filter_iff
#align tendsto_prod_top_iff tendsto_prod_top_iff
+-/
#print tendstoUniformlyOn_empty /-
/-- Uniform convergence on the empty set is vacuously true -/
@@ -468,6 +494,7 @@ theorem Filter.Tendsto.tendstoUniformlyOn_const {g : ι → β} {b : β} (hg : T
-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print UniformContinuousOn.tendstoUniformly /-
theorem UniformContinuousOn.tendstoUniformly [UniformSpace α] [UniformSpace γ] {x : α} {U : Set α}
(hU : U ∈ 𝓝 x) {F : α → β → γ} (hF : UniformContinuousOn (↿F) (U ×ˢ (univ : Set β))) :
TendstoUniformly F (F x) (𝓝 x) :=
@@ -488,6 +515,7 @@ theorem UniformContinuousOn.tendstoUniformly [UniformSpace α] [UniformSpace γ]
apply mem_of_superset (prod_mem_prod hU (mem_top.mpr rfl)) fun q h => _
simp [h.1, mem_of_mem_nhds hU]
#align uniform_continuous_on.tendsto_uniformly UniformContinuousOn.tendstoUniformly
+-/
#print UniformContinuous₂.tendstoUniformly /-
theorem UniformContinuous₂.tendstoUniformly [UniformSpace α] [UniformSpace γ] {f : α → β → γ}
@@ -595,6 +623,7 @@ theorem UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto [NeBot p] (hF : Uniform
#align uniform_cauchy_seq_on.tendsto_uniformly_on_of_tendsto UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto
-/
+#print UniformCauchySeqOnFilter.mono_left /-
theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchySeqOnFilter F p p')
(hp : p'' ≤ p) : UniformCauchySeqOnFilter F p'' p' :=
by
@@ -602,7 +631,9 @@ theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchy
have := (hf u hu).filter_mono (p'.prod_mono_left (Filter.prod_mono hp hp))
exact this.mono (by simp)
#align uniform_cauchy_seq_on_filter.mono_left UniformCauchySeqOnFilter.mono_left
+-/
+#print UniformCauchySeqOnFilter.mono_right /-
theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauchySeqOnFilter F p p')
(hp : p'' ≤ p') : UniformCauchySeqOnFilter F p p'' :=
by
@@ -610,6 +641,7 @@ theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauch
have := (hf u hu).filter_mono ((p ×ᶠ p).prod_mono_right hp)
exact this.mono (by simp)
#align uniform_cauchy_seq_on_filter.mono_right UniformCauchySeqOnFilter.mono_right
+-/
#print UniformCauchySeqOn.mono /-
theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (hss' : s' ⊆ s) :
@@ -620,6 +652,7 @@ theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (h
#align uniform_cauchy_seq_on.mono UniformCauchySeqOn.mono
-/
+#print UniformCauchySeqOnFilter.comp /-
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilter F p p')
(g : γ → α) : UniformCauchySeqOnFilter (fun n => F n ∘ g) p (p'.comap g) :=
@@ -630,7 +663,9 @@ theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilt
refine' ⟨pa, hpa, pb ∘ g, _, fun x hx y hy => hpapb hx hy⟩
exact eventually_comap.mpr (hpb.mono fun x hx y hy => by simp only [hx, hy, Function.comp_apply])
#align uniform_cauchy_seq_on_filter.comp UniformCauchySeqOnFilter.comp
+-/
+#print UniformCauchySeqOn.comp /-
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s) :=
@@ -638,6 +673,7 @@ theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g
rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
simpa only [UniformCauchySeqOn, comap_principal] using hf.comp g
#align uniform_cauchy_seq_on.comp UniformCauchySeqOn.comp
+-/
#print UniformContinuous.comp_uniformCauchySeqOn /-
/-- Composing on the left by a uniformly continuous function preserves
@@ -649,6 +685,7 @@ theorem UniformContinuous.comp_uniformCauchySeqOn [UniformSpace γ] {g : β →
-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print UniformCauchySeqOn.prod_map /-
theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{p' : Filter ι'} {s' : Set α'} (h : UniformCauchySeqOn F p s)
(h' : UniformCauchySeqOn F' p' s') :
@@ -663,13 +700,17 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
intro x hx a b ha hb
refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
#align uniform_cauchy_seq_on.prod_map UniformCauchySeqOn.prod_map
+-/
+#print UniformCauchySeqOn.prod /-
theorem UniformCauchySeqOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
{p' : Filter ι'} (h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p' s) :
UniformCauchySeqOn (fun (i : ι × ι') a => (F i.fst a, F' i.snd a)) (p ×ᶠ p') s :=
(congr_arg _ s.inter_self).mp ((h.Prod_map h').comp fun a => (a, a))
#align uniform_cauchy_seq_on.prod UniformCauchySeqOn.prod
+-/
+#print UniformCauchySeqOn.prod' /-
theorem UniformCauchySeqOn.prod' {β' : Type _} [UniformSpace β'] {F' : ι → α → β'}
(h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p s) :
UniformCauchySeqOn (fun (i : ι) a => (F i a, F' i a)) p s :=
@@ -678,6 +719,7 @@ theorem UniformCauchySeqOn.prod' {β' : Type _} [UniformSpace β'] {F' : ι →
have hh : tendsto (fun x : ι => (x, x)) p (p ×ᶠ p) := tendsto_diag
exact (hh.prod_map hh).Eventually ((h.prod h') u hu)
#align uniform_cauchy_seq_on.prod' UniformCauchySeqOn.prod'
+-/
#print UniformCauchySeqOn.cauchy_map /-
/-- If a sequence of functions is uniformly Cauchy on a set, then the values at each point form
@@ -830,6 +872,7 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
-/
+#print tendstoLocallyUniformlyOn_iUnion /-
theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) : TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
by
@@ -839,6 +882,7 @@ theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen
rw [(hS _).nhdsWithin_eq hi] at ht
exact mem_nhdsWithin_of_mem_nhds ht
#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
+-/
#print tendstoLocallyUniformlyOn_biUnion /-
theorem tendstoLocallyUniformlyOn_biUnion {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
@@ -855,11 +899,13 @@ theorem tendstoLocallyUniformlyOn_sUnion (S : Set (Set α)) (hS : ∀ s ∈ S, I
#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_sUnion
-/
+#print TendstoLocallyUniformlyOn.union /-
theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s₁) (hs₂ : IsOpen s₂)
(h₁ : TendstoLocallyUniformlyOn F f p s₁) (h₂ : TendstoLocallyUniformlyOn F f p s₂) :
TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) := by rw [← sUnion_pair];
refine' tendstoLocallyUniformlyOn_sUnion _ _ _ <;> simp [*]
#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.union
+-/
#print tendstoLocallyUniformlyOn_univ /-
theorem tendstoLocallyUniformlyOn_univ :
@@ -930,6 +976,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
-/
/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+#print tendstoLocallyUniformlyOn_TFAE /-
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
TFAE
@@ -950,6 +997,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
exact ⟨v, hv1, hv2 u hu⟩
tfae_finish
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
+-/
/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
@@ -1031,6 +1079,7 @@ the statements are derived from a statement about locally uniform approximation
a point, called `continuous_within_at_of_locally_uniform_approx_of_continuous_within_at`. -/
+#print continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt /-
/-- A function which can be locally uniformly approximated by functions which are continuous
within a set at a point is continuous within this set at this point. -/
theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (hx : x ∈ s)
@@ -1052,7 +1101,9 @@ theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (hx :
u₂₁ (prod_mk_mem_compRel (refl_mem_uniformity h₂) (hsymm (A.self_of_nhds_within hx)))
exact C.mono fun y hy => u₁₀ (prod_mk_mem_compRel hy this)
#align continuous_within_at_of_locally_uniform_approx_of_continuous_within_at continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt
+-/
+#print continuousAt_of_locally_uniform_approx_of_continuousAt /-
/-- A function which can be locally uniformly approximated by functions which are continuous at
a point is continuous at this point. -/
theorem continuousAt_of_locally_uniform_approx_of_continuousAt
@@ -1062,7 +1113,9 @@ theorem continuousAt_of_locally_uniform_approx_of_continuousAt
apply continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (mem_univ _) _
simpa only [exists_prop, nhdsWithin_univ, continuousWithinAt_univ] using L
#align continuous_at_of_locally_uniform_approx_of_continuous_at continuousAt_of_locally_uniform_approx_of_continuousAt
+-/
+#print continuousOn_of_locally_uniform_approx_of_continuousWithinAt /-
/-- A function which can be locally uniformly approximated by functions which are continuous
on a set is continuous on this set. -/
theorem continuousOn_of_locally_uniform_approx_of_continuousWithinAt
@@ -1071,6 +1124,7 @@ theorem continuousOn_of_locally_uniform_approx_of_continuousWithinAt
ContinuousOn f s := fun x hx =>
continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt hx (L x hx)
#align continuous_on_of_locally_uniform_approx_of_continuous_within_at continuousOn_of_locally_uniform_approx_of_continuousWithinAt
+-/
#print continuousOn_of_uniform_approx_of_continuousOn /-
/-- A function which can be uniformly approximated by functions which are continuous on a set
@@ -1082,6 +1136,7 @@ theorem continuousOn_of_uniform_approx_of_continuousOn
#align continuous_on_of_uniform_approx_of_continuous_on continuousOn_of_uniform_approx_of_continuousOn
-/
+#print continuous_of_locally_uniform_approx_of_continuousAt /-
/-- A function which can be locally uniformly approximated by continuous functions is continuous. -/
theorem continuous_of_locally_uniform_approx_of_continuousAt
(L : ∀ x : α, ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u) :
@@ -1089,6 +1144,7 @@ theorem continuous_of_locally_uniform_approx_of_continuousAt
continuous_iff_continuousAt.2 fun x =>
continuousAt_of_locally_uniform_approx_of_continuousAt (L x)
#align continuous_of_locally_uniform_approx_of_continuous_at continuous_of_locally_uniform_approx_of_continuousAt
+-/
#print continuous_of_uniform_approx_of_continuous /-
/-- A function which can be uniformly approximated by continuous functions is continuous. -/
@@ -1156,6 +1212,7 @@ this paragraph, we prove variations around this statement.
-/
+#print tendsto_comp_of_locally_uniform_limit_within /-
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` within a set `s` to a function `f`
which is continuous at `x` within `s `, and `gₙ` tends to `x` within `s`, then `Fₙ (gₙ)` tends
to `f x`. -/
@@ -1174,7 +1231,9 @@ theorem tendsto_comp_of_locally_uniform_limit_within (h : ContinuousWithinAt f s
rcases hy with ⟨⟨H1, H2⟩, H3⟩
exact u₁₀ (prod_mk_mem_compRel H3 (H1 _ H2))
#align tendsto_comp_of_locally_uniform_limit_within tendsto_comp_of_locally_uniform_limit_within
+-/
+#print tendsto_comp_of_locally_uniform_limit /-
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` to a function `f` which is
continuous at `x`, and `gₙ` tends to `x`, then `Fₙ (gₙ)` tends to `f x`. -/
theorem tendsto_comp_of_locally_uniform_limit (h : ContinuousAt f x) (hg : Tendsto g p (𝓝 x))
@@ -1185,6 +1244,7 @@ theorem tendsto_comp_of_locally_uniform_limit (h : ContinuousAt f x) (hg : Tends
rw [← nhdsWithin_univ] at hunif hg
exact tendsto_comp_of_locally_uniform_limit_within h hg hunif
#align tendsto_comp_of_locally_uniform_limit tendsto_comp_of_locally_uniform_limit
+-/
#print TendstoLocallyUniformlyOn.tendsto_comp /-
/-- If `Fₙ` tends locally uniformly to `f` on a set `s`, and `gₙ` tends to `x` within `s`, then
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -929,7 +929,7 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
TFAE
@@ -951,7 +951,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
tfae_finish
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -130,8 +130,8 @@ theorem tendstoUniformlyOn_iff_tendstoUniformlyOnFilter :
#align tendsto_uniformly_on_iff_tendsto_uniformly_on_filter tendstoUniformlyOn_iff_tendstoUniformlyOnFilter
-/
-alias tendstoUniformlyOn_iff_tendstoUniformlyOnFilter ↔
- TendstoUniformlyOn.tendstoUniformlyOnFilter TendstoUniformlyOnFilter.tendstoUniformlyOn
+alias tendstoUniformlyOn_iff_tendstoUniformlyOnFilter ↔ TendstoUniformlyOn.tendstoUniformlyOnFilter
+ TendstoUniformlyOnFilter.tendstoUniformlyOn
#align tendsto_uniformly_on.tendsto_uniformly_on_filter TendstoUniformlyOn.tendstoUniformlyOnFilter
#align tendsto_uniformly_on_filter.tendsto_uniformly_on TendstoUniformlyOnFilter.tendstoUniformlyOn
@@ -264,7 +264,7 @@ theorem TendstoUniformlyOn.congr {F' : ι → α → β} (hf : TendstoUniformlyO
#print TendstoUniformlyOn.congr_right /-
theorem TendstoUniformlyOn.congr_right {g : α → β} (hf : TendstoUniformlyOn F f p s)
(hfg : EqOn f g s) : TendstoUniformlyOn F g p s := fun u hu => by
- filter_upwards [hf u hu]with i hi a ha using hfg ha ▸ hi a ha
+ filter_upwards [hf u hu] with i hi a ha using hfg ha ▸ hi a ha
#align tendsto_uniformly_on.congr_right TendstoUniformlyOn.congr_right
-/
@@ -351,7 +351,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
intro n n' x hxv hxw
have hout :
((f x.fst, F n x.fst), (f' x.snd, F' n' x.snd)) ∈
- { x : (β × β) × β' × β' | ((x.fst.fst, x.snd.fst), x.fst.snd, x.snd.snd) ∈ u } :=
+ {x : (β × β) × β' × β' | ((x.fst.fst, x.snd.fst), x.fst.snd, x.snd.snd) ∈ u} :=
mem_of_mem_of_subset (set.mem_prod.mpr ⟨hxv, hxw⟩) hvw
exact hout
#align tendsto_uniformly_on_filter.prod_map TendstoUniformlyOnFilter.prod_map
@@ -688,7 +688,7 @@ theorem UniformCauchySeqOn.cauchy_map [hp : NeBot p] (hf : UniformCauchySeqOn F
simp only [cauchy_map_iff, hp, true_and_iff]
intro u hu
rw [mem_map]
- filter_upwards [hf u hu]with p hp using hp x hx
+ filter_upwards [hf u hu] with p hp using hp x hx
#align uniform_cauchy_seq_on.cauchy_map UniformCauchySeqOn.cauchy_map
-/
@@ -804,7 +804,7 @@ theorem tendstoLocallyUniformly_iff_forall_tendsto :
· rintro ⟨n, hn, hp⟩
exact ⟨_, hp, n, hn, fun i hi a ha => hi a ha⟩
· rintro ⟨I, hI, n, hn, hu⟩
- exact ⟨n, hn, by filter_upwards [hI]using hu⟩
+ exact ⟨n, hn, by filter_upwards [hI] using hu⟩
#align tendsto_locally_uniformly_iff_forall_tendsto tendstoLocallyUniformly_iff_forall_tendsto
-/
@@ -914,7 +914,7 @@ theorem TendstoLocallyUniformlyOn.comp [TopologicalSpace γ] {t : Set γ}
intro u hu x hx
rcases h u hu (g x) (hg hx) with ⟨a, ha, H⟩
have : g ⁻¹' a ∈ 𝓝[t] x :=
- (cg x hx).preimage_mem_nhds_within' (nhdsWithin_mono (g x) hg.image_subset ha)
+ (cg x hx).preimage_mem_nhdsWithin' (nhdsWithin_mono (g x) hg.image_subset ha)
exact ⟨g ⁻¹' a, this, H.mono fun n hn y hy => hn _ hy⟩
#align tendsto_locally_uniformly_on.comp TendstoLocallyUniformlyOn.comp
-/
@@ -1006,7 +1006,7 @@ theorem TendstoLocallyUniformlyOn.congr {G : ι → α → β} (hf : TendstoLoca
rintro u hu x hx
obtain ⟨t, ht, h⟩ := hf u hu x hx
refine' ⟨s ∩ t, inter_mem self_mem_nhdsWithin ht, _⟩
- filter_upwards [h]with i hi y hy using hg i hy.1 ▸ hi y hy.2
+ filter_upwards [h] with i hi y hy using hg i hy.1 ▸ hi y hy.2
#align tendsto_locally_uniformly_on.congr TendstoLocallyUniformlyOn.congr
-/
@@ -1017,7 +1017,7 @@ theorem TendstoLocallyUniformlyOn.congr_right {g : α → β} (hf : TendstoLocal
rintro u hu x hx
obtain ⟨t, ht, h⟩ := hf u hu x hx
refine' ⟨s ∩ t, inter_mem self_mem_nhdsWithin ht, _⟩
- filter_upwards [h]with i hi y hy using hg hy.1 ▸ hi y hy.2
+ filter_upwards [h] with i hi y hy using hg hy.1 ▸ hi y hy.2
#align tendsto_locally_uniformly_on.congr_right TendstoLocallyUniformlyOn.congr_right
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -253,10 +253,10 @@ theorem TendstoUniformlyOnFilter.congr {F' : ι → α → β} (hf : TendstoUnif
theorem TendstoUniformlyOn.congr {F' : ι → α → β} (hf : TendstoUniformlyOn F f p s)
(hff' : ∀ᶠ n in p, Set.EqOn (F n) (F' n) s) : TendstoUniformlyOn F' f p s :=
by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at hf⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at hf ⊢
refine' hf.congr _
- rw [eventually_iff] at hff'⊢
- simp only [Set.EqOn] at hff'
+ rw [eventually_iff] at hff' ⊢
+ simp only [Set.EqOn] at hff'
simp only [mem_prod_principal, hff', mem_set_of_eq]
#align tendsto_uniformly_on.congr TendstoUniformlyOn.congr
-/
@@ -296,7 +296,7 @@ theorem TendstoUniformlyOnFilter.comp (h : TendstoUniformlyOnFilter F f p p') (g
theorem TendstoUniformlyOn.comp (h : TendstoUniformlyOn F f p s) (g : γ → α) :
TendstoUniformlyOn (fun n => F n ∘ g) (f ∘ g) p (g ⁻¹' s) :=
by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h ⊢
simpa [TendstoUniformlyOn, comap_principal] using TendstoUniformlyOnFilter.comp h g
#align tendsto_uniformly_on.comp TendstoUniformlyOn.comp
-/
@@ -306,7 +306,7 @@ theorem TendstoUniformlyOn.comp (h : TendstoUniformlyOn F f p s) (g : γ → α)
theorem TendstoUniformly.comp (h : TendstoUniformly F f p) (g : γ → α) :
TendstoUniformly (fun n => F n ∘ g) (f ∘ g) p :=
by
- rw [tendstoUniformly_iff_tendstoUniformlyOnFilter] at h⊢
+ rw [tendstoUniformly_iff_tendstoUniformlyOnFilter] at h ⊢
simpa [principal_univ, comap_principal] using h.comp g
#align tendsto_uniformly.comp TendstoUniformly.comp
-/
@@ -344,7 +344,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
(p.Prod q) (p'.Prod q') :=
by
intro u hu
- rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
+ rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
obtain ⟨v, hv, w, hw, hvw⟩ := hu
apply (tendsto_swap4_prod.eventually ((h v hv).prod_mk (h' w hw))).mono
simp only [Prod_map, and_imp, Prod.forall]
@@ -363,7 +363,7 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
TendstoUniformlyOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p.Prod p')
(s ×ˢ s') :=
by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h'⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h' ⊢
simpa only [prod_principal_principal] using h.prod_map h'
#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_map
@@ -451,7 +451,7 @@ theorem Filter.Tendsto.tendstoUniformlyOnFilter_const {g : ι → β} {b : β} (
TendstoUniformlyOnFilter (fun n : ι => fun a : α => g n) (fun a : α => b) p p' :=
by
rw [tendstoUniformlyOnFilter_iff_tendsto]
- rw [Uniform.tendsto_nhds_right] at hg
+ rw [Uniform.tendsto_nhds_right] at hg
exact
(hg.comp (tendsto_fst.comp ((@tendsto_id ι p).Prod_map (@tendsto_id α p')))).congr fun x => by
simp
@@ -579,7 +579,7 @@ theorem UniformCauchySeqOnFilter.tendstoUniformlyOnFilter_of_tendsto [NeBot p]
-- Complete the proof
intro x n hx hm'
refine' Set.mem_of_mem_of_subset (mem_comp_rel.mpr _) htmem
- rw [Uniform.tendsto_nhds_right] at hm'
+ rw [Uniform.tendsto_nhds_right] at hm'
have := hx.and (hm' ht)
obtain ⟨m, hm⟩ := this.exists
exact ⟨F m x, ⟨hm.2, htsymm hm.1⟩⟩
@@ -615,7 +615,7 @@ theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauch
theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (hss' : s' ⊆ s) :
UniformCauchySeqOn F p s' :=
by
- rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf⊢
+ rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
exact hf.mono_right (le_principal_iff.mpr <| mem_principal.mpr hss')
#align uniform_cauchy_seq_on.mono UniformCauchySeqOn.mono
-/
@@ -635,7 +635,7 @@ theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilt
theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s) :=
by
- rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf⊢
+ rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
simpa only [UniformCauchySeqOn, comap_principal] using hf.comp g
#align uniform_cauchy_seq_on.comp UniformCauchySeqOn.comp
@@ -655,10 +655,10 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
UniformCauchySeqOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (p.Prod p') (s ×ˢ s') :=
by
intro u hu
- rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
+ rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
obtain ⟨v, hv, w, hw, hvw⟩ := hu
simp_rw [mem_prod, Prod_map, and_imp, Prod.forall]
- rw [← Set.image_subset_iff] at hvw
+ rw [← Set.image_subset_iff] at hvw
apply (tendsto_swap4_prod.eventually ((h v hv).prod_mk (h' w hw))).mono
intro x hx a b ha hb
refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
@@ -701,9 +701,9 @@ theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCounta
by
rw [tendstoUniformlyOn_iff_tendsto, tendsto_iff_seq_tendsto]
intro u hu
- rw [tendsto_prod_iff'] at hu
+ rw [tendsto_prod_iff'] at hu
specialize h (fun n => (u n).fst) hu.1
- rw [tendstoUniformlyOn_iff_tendsto] at h
+ rw [tendstoUniformlyOn_iff_tendsto] at h
have :
(fun q : ι × α => (f q.snd, F q.fst q.snd)) ∘ u =
(fun q : ℕ × α => (f q.snd, F ((fun n : ℕ => (u n).fst) q.fst) q.snd)) ∘ fun n =>
@@ -720,7 +720,7 @@ theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCounta
theorem TendstoUniformlyOn.seq_tendstoUniformlyOn {l : Filter ι} (h : TendstoUniformlyOn F f l s)
(u : ℕ → ι) (hu : Tendsto u atTop l) : TendstoUniformlyOn (fun n => F (u n)) f atTop s :=
by
- rw [tendstoUniformlyOn_iff_tendsto] at h⊢
+ rw [tendstoUniformlyOn_iff_tendsto] at h ⊢
have :
(fun q : ℕ × α => (f q.snd, F (u q.fst) q.snd)) =
(fun q : ι × α => (f q.snd, F q.fst q.snd)) ∘ fun p : ℕ × α => (u p.fst, p.snd) :=
@@ -836,7 +836,7 @@ theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen
rintro v hv x ⟨_, ⟨i, rfl⟩, hi : x ∈ S i⟩
obtain ⟨t, ht, ht'⟩ := h i v hv x hi
refine' ⟨t, _, ht'⟩
- rw [(hS _).nhdsWithin_eq hi] at ht
+ rw [(hS _).nhdsWithin_eq hi] at ht
exact mem_nhdsWithin_of_mem_nhds ht
#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
@@ -884,10 +884,10 @@ theorem tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace [CompactSpa
choose U hU using h V hV
obtain ⟨t, ht⟩ := is_compact_univ.elim_nhds_subcover' (fun k hk => U k) fun k hk => (hU k).1
replace hU := fun x : t => (hU x).2
- rw [← eventually_all] at hU
+ rw [← eventually_all] at hU
refine' hU.mono fun i hi x => _
specialize ht (mem_univ x)
- simp only [exists_prop, mem_Union, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
+ simp only [exists_prop, mem_Union, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
obtain ⟨y, ⟨hy₁, hy₂⟩, hy₃⟩ := ht
exact hi ⟨⟨y, hy₁⟩, hy₂⟩ x hy₃
#align tendsto_locally_uniformly_iff_tendsto_uniformly_of_compact_space tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace
@@ -902,7 +902,7 @@ theorem tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact (hs : IsComp
refine' ⟨fun h => _, TendstoUniformlyOn.tendstoLocallyUniformlyOn⟩
rwa [tendstoLocallyUniformlyOn_iff_tendstoLocallyUniformly_comp_coe,
tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace, ←
- tendstoUniformlyOn_iff_tendstoUniformly_comp_coe] at h
+ tendstoUniformlyOn_iff_tendstoUniformly_comp_coe] at h
#align tendsto_locally_uniformly_on_iff_tendsto_uniformly_on_of_compact tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact
-/
@@ -923,8 +923,8 @@ theorem TendstoLocallyUniformlyOn.comp [TopologicalSpace γ] {t : Set γ}
theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUniformly F f p)
(g : γ → α) (cg : Continuous g) : TendstoLocallyUniformly (fun n => F n ∘ g) (f ∘ g) p :=
by
- rw [← tendstoLocallyUniformlyOn_univ] at h⊢
- rw [continuous_iff_continuousOn_univ] at cg
+ rw [← tendstoLocallyUniformlyOn_univ] at h ⊢
+ rw [continuous_iff_continuousOn_univ] at cg
exact h.comp _ (maps_to_univ _ _) cg
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
@@ -1038,10 +1038,10 @@ theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (hx :
ContinuousWithinAt f s x :=
by
apply Uniform.continuousWithinAt_iff'_left.2 fun u₀ hu₀ => _
- obtain ⟨u₁, h₁, u₁₀⟩ : ∃ (u : Set (β × β))(H : u ∈ 𝓤 β), compRel u u ⊆ u₀ :=
+ obtain ⟨u₁, h₁, u₁₀⟩ : ∃ (u : Set (β × β)) (H : u ∈ 𝓤 β), compRel u u ⊆ u₀ :=
comp_mem_uniformity_sets hu₀
obtain ⟨u₂, h₂, hsymm, u₂₁⟩ :
- ∃ (u : Set (β × β))(H : u ∈ 𝓤 β), (∀ {a b}, (a, b) ∈ u → (b, a) ∈ u) ∧ compRel u u ⊆ u₁ :=
+ ∃ (u : Set (β × β)) (H : u ∈ 𝓤 β), (∀ {a b}, (a, b) ∈ u → (b, a) ∈ u) ∧ compRel u u ⊆ u₁ :=
comp_symm_of_uniformity h₁
rcases L u₂ h₂ with ⟨t, tx, F, hFc, hF⟩
have A : ∀ᶠ y in 𝓝[s] x, (f y, F y) ∈ u₂ := eventually.mono tx hF
@@ -1165,7 +1165,7 @@ theorem tendsto_comp_of_locally_uniform_limit_within (h : ContinuousWithinAt f s
Tendsto (fun n => F n (g n)) p (𝓝 (f x)) :=
by
apply Uniform.tendsto_nhds_right.2 fun u₀ hu₀ => _
- obtain ⟨u₁, h₁, u₁₀⟩ : ∃ (u : Set (β × β))(H : u ∈ 𝓤 β), compRel u u ⊆ u₀ :=
+ obtain ⟨u₁, h₁, u₁₀⟩ : ∃ (u : Set (β × β)) (H : u ∈ 𝓤 β), compRel u u ⊆ u₀ :=
comp_mem_uniformity_sets hu₀
rcases hunif u₁ h₁ with ⟨s, sx, hs⟩
have A : ∀ᶠ n in p, g n ∈ s := hg sx
@@ -1181,8 +1181,8 @@ theorem tendsto_comp_of_locally_uniform_limit (h : ContinuousAt f x) (hg : Tends
(hunif : ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∀ᶠ n in p, ∀ y ∈ t, (f y, F n y) ∈ u) :
Tendsto (fun n => F n (g n)) p (𝓝 (f x)) :=
by
- rw [← continuousWithinAt_univ] at h
- rw [← nhdsWithin_univ] at hunif hg
+ rw [← continuousWithinAt_univ] at h
+ rw [← nhdsWithin_univ] at hunif hg
exact tendsto_comp_of_locally_uniform_limit_within h hg hunif
#align tendsto_comp_of_locally_uniform_limit tendsto_comp_of_locally_uniform_limit
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -70,7 +70,7 @@ Uniform limit, uniform convergence, tends uniformly to
noncomputable section
-open Topology Classical uniformity Filter
+open scoped Topology Classical uniformity Filter
open Set Filter
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -155,12 +155,6 @@ def TendstoUniformly (F : ι → α → β) (f : α → β) (p : Filter ι) :=
#align tendsto_uniformly TendstoUniformly
-/
-/- warning: tendsto_uniformly_iff_tendsto_uniformly_on_filter -> tendstoUniformly_iff_tendstoUniformlyOnFilter is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, Iff (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, Iff (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_iff_tendsto_uniformly_on_filter tendstoUniformly_iff_tendstoUniformlyOnFilterₓ'. -/
theorem tendstoUniformly_iff_tendstoUniformlyOnFilter :
TendstoUniformly F f p ↔ TendstoUniformlyOnFilter F f p ⊤ :=
by
@@ -170,12 +164,6 @@ theorem tendstoUniformly_iff_tendstoUniformlyOnFilter :
simp
#align tendsto_uniformly_iff_tendsto_uniformly_on_filter tendstoUniformly_iff_tendstoUniformlyOnFilter
-/- warning: tendsto_uniformly.tendsto_uniformly_on_filter -> TendstoUniformly.tendstoUniformlyOnFilter is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α)))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.tendsto_uniformly_on_filter TendstoUniformly.tendstoUniformlyOnFilterₓ'. -/
theorem TendstoUniformly.tendstoUniformlyOnFilter (h : TendstoUniformly F f p) :
TendstoUniformlyOnFilter F f p ⊤ := by rwa [← tendstoUniformly_iff_tendstoUniformlyOnFilter]
#align tendsto_uniformly.tendsto_uniformly_on_filter TendstoUniformly.tendstoUniformlyOnFilter
@@ -190,12 +178,6 @@ theorem tendstoUniformlyOn_iff_tendstoUniformly_comp_coe :
#align tendsto_uniformly_on_iff_tendsto_uniformly_comp_coe tendstoUniformlyOn_iff_tendstoUniformly_comp_coe
-/
-/- warning: tendsto_uniformly_iff_tendsto -> tendstoUniformly_iff_tendsto is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, Iff (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) (Filter.Tendsto.{max u3 u1, u2} (Prod.{u3, u1} ι α) (Prod.{u2, u2} β β) (fun (q : Prod.{u3, u1} ι α) => Prod.mk.{u2, u2} β β (f (Prod.snd.{u3, u1} ι α q)) (F (Prod.fst.{u3, u1} ι α q) (Prod.snd.{u3, u1} ι α q))) (Filter.prod.{u3, u1} ι α p (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α))) (uniformity.{u2} β _inst_1))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι}, Iff (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) (Filter.Tendsto.{max u1 u3, u2} (Prod.{u3, u1} ι α) (Prod.{u2, u2} β β) (fun (q : Prod.{u3, u1} ι α) => Prod.mk.{u2, u2} β β (f (Prod.snd.{u3, u1} ι α q)) (F (Prod.fst.{u3, u1} ι α q) (Prod.snd.{u3, u1} ι α q))) (Filter.prod.{u3, u1} ι α p (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α))) (uniformity.{u2} β _inst_1))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_iff_tendsto tendstoUniformly_iff_tendstoₓ'. -/
/-- A sequence of functions `Fₙ` converges uniformly to a limiting function `f` w.r.t.
filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ᶠ ⊤` to the uniformity.
In other words: one knows nothing about the behavior of `x` in this limit.
@@ -205,12 +187,6 @@ theorem tendstoUniformly_iff_tendsto {F : ι → α → β} {f : α → β} {p :
simp [tendstoUniformly_iff_tendstoUniformlyOnFilter, tendstoUniformlyOnFilter_iff_tendsto]
#align tendsto_uniformly_iff_tendsto tendstoUniformly_iff_tendsto
-/- warning: tendsto_uniformly_on_filter.tendsto_at -> TendstoUniformlyOnFilter.tendsto_at is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {p' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (Filter.principal.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)) p') -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n x) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {p' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (Filter.principal.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) x)) p') -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n x) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.tendsto_at TendstoUniformlyOnFilter.tendsto_atₓ'. -/
/-- Uniform converence implies pointwise convergence. -/
theorem TendstoUniformlyOnFilter.tendsto_at (h : TendstoUniformlyOnFilter F f p p')
(hx : 𝓟 {x} ≤ p') : Tendsto (fun n => F n x) p <| 𝓝 (f x) :=
@@ -244,23 +220,11 @@ theorem tendstoUniformlyOn_univ : TendstoUniformlyOn F f p univ ↔ TendstoUnifo
#align tendsto_uniformly_on_univ tendstoUniformlyOn_univ
-/
-/- warning: tendsto_uniformly_on_filter.mono_left -> TendstoUniformlyOnFilter.mono_left is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toHasLe.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p'' p')
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.instPartialOrderFilter.{u3} ι))) p'' p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p'' p')
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mono_left TendstoUniformlyOnFilter.mono_leftₓ'. -/
theorem TendstoUniformlyOnFilter.mono_left {p'' : Filter ι} (h : TendstoUniformlyOnFilter F f p p')
(hp : p'' ≤ p) : TendstoUniformlyOnFilter F f p'' p' := fun u hu =>
(h u hu).filter_mono (p'.prod_mono_left hp)
#align tendsto_uniformly_on_filter.mono_left TendstoUniformlyOnFilter.mono_left
-/- warning: tendsto_uniformly_on_filter.mono_right -> TendstoUniformlyOnFilter.mono_right is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p'')
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) p'' p') -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p'')
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mono_right TendstoUniformlyOnFilter.mono_rightₓ'. -/
theorem TendstoUniformlyOnFilter.mono_right {p'' : Filter α} (h : TendstoUniformlyOnFilter F f p p')
(hp : p'' ≤ p') : TendstoUniformlyOnFilter F f p p'' := fun u hu =>
(h u hu).filter_mono (p.prod_mono_right hp)
@@ -373,12 +337,6 @@ theorem UniformContinuous.comp_tendstoUniformly [UniformSpace γ] {g : β → γ
#align uniform_continuous.comp_tendsto_uniformly UniformContinuous.comp_tendstoUniformly
-/
-/- warning: tendsto_uniformly_on_filter.prod_map -> TendstoUniformlyOnFilter.prod_map is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {ι' : Type.{u4}} {α' : Type.{u5}} {β' : Type.{u6}} [_inst_2 : UniformSpace.{u6} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {q : Filter.{u4} ι'} {q' : Filter.{u5} α'}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (TendstoUniformlyOnFilter.{u5, u6, u4} α' β' ι' _inst_2 F' f' q q') -> (TendstoUniformlyOnFilter.{max u1 u5, max u2 u6, max u3 u4} (Prod.{u1, u5} α α') (Prod.{u2, u6} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u6} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') => Prod.map.{u1, u2, u5, u6} α β α' β' (F (Prod.fst.{u3, u4} ι ι' i)) (F' (Prod.snd.{u3, u4} ι ι' i))) (Prod.map.{u1, u2, u5, u6} α β α' β' f f') (Filter.prod.{u3, u4} ι ι' p q) (Filter.prod.{u1, u5} α α' p' q'))
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u5}} {ι : Type.{u6}} [_inst_1 : UniformSpace.{u5} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u6} ι} {p' : Filter.{u4} α} {ι' : Type.{u3}} {α' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {q : Filter.{u3} ι'} {q' : Filter.{u2} α'}, (TendstoUniformlyOnFilter.{u4, u5, u6} α β ι _inst_1 F f p p') -> (TendstoUniformlyOnFilter.{u2, u1, u3} α' β' ι' _inst_2 F' f' q q') -> (TendstoUniformlyOnFilter.{max u2 u4, max u1 u5, max u6 u3} (Prod.{u4, u2} α α') (Prod.{u5, u1} β β') (Prod.{u6, u3} ι ι') (instUniformSpaceProd.{u5, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u6, u3} ι ι') => Prod.map.{u4, u5, u2, u1} α β α' β' (F (Prod.fst.{u6, u3} ι ι' i)) (F' (Prod.snd.{u6, u3} ι ι' i))) (Prod.map.{u4, u5, u2, u1} α β α' β' f f') (Filter.prod.{u6, u3} ι ι' p q) (Filter.prod.{u4, u2} α α' p' q'))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.prod_map TendstoUniformlyOnFilter.prod_mapₓ'. -/
theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {q : Filter ι'} {q' : Filter α'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q q') :
@@ -398,12 +356,6 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
exact hout
#align tendsto_uniformly_on_filter.prod_map TendstoUniformlyOnFilter.prod_map
-/- warning: tendsto_uniformly_on.prod_map -> TendstoUniformlyOn.prod_map is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {ι' : Type.{u4}} {α' : Type.{u5}} {β' : Type.{u6}} [_inst_2 : UniformSpace.{u6} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {p' : Filter.{u4} ι'} {s' : Set.{u5} α'}, (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 F f p s) -> (TendstoUniformlyOn.{u5, u6, u4} α' β' ι' _inst_2 F' f' p' s') -> (TendstoUniformlyOn.{max u1 u5, max u2 u6, max u3 u4} (Prod.{u1, u5} α α') (Prod.{u2, u6} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u6} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') => Prod.map.{u1, u2, u5, u6} α β α' β' (F (Prod.fst.{u3, u4} ι ι' i)) (F' (Prod.snd.{u3, u4} ι ι' i))) (Prod.map.{u1, u2, u5, u6} α β α' β' f f') (Filter.prod.{u3, u4} ι ι' p p') (Set.prod.{u1, u5} α α' s s'))
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u5}} {ι : Type.{u6}} [_inst_1 : UniformSpace.{u5} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u4} α} {p : Filter.{u6} ι} {ι' : Type.{u3}} {α' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {p' : Filter.{u3} ι'} {s' : Set.{u2} α'}, (TendstoUniformlyOn.{u4, u5, u6} α β ι _inst_1 F f p s) -> (TendstoUniformlyOn.{u2, u1, u3} α' β' ι' _inst_2 F' f' p' s') -> (TendstoUniformlyOn.{max u2 u4, max u1 u5, max u6 u3} (Prod.{u4, u2} α α') (Prod.{u5, u1} β β') (Prod.{u6, u3} ι ι') (instUniformSpaceProd.{u5, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u6, u3} ι ι') => Prod.map.{u4, u5, u2, u1} α β α' β' (F (Prod.fst.{u6, u3} ι ι' i)) (F' (Prod.snd.{u6, u3} ι ι' i))) (Prod.map.{u4, u5, u2, u1} α β α' β' f f') (Filter.prod.{u6, u3} ι ι' p p') (Set.prod.{u4, u2} α α' s s'))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_mapₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} {s' : Set α'} (h : TendstoUniformlyOn F f p s)
@@ -415,12 +367,6 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
simpa only [prod_principal_principal] using h.prod_map h'
#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_map
-/- warning: tendsto_uniformly.prod_map -> TendstoUniformly.prod_map is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {ι' : Type.{u4}} {α' : Type.{u5}} {β' : Type.{u6}} [_inst_2 : UniformSpace.{u6} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {p' : Filter.{u4} ι'}, (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) -> (TendstoUniformly.{u5, u6, u4} α' β' ι' _inst_2 F' f' p') -> (TendstoUniformly.{max u1 u5, max u2 u6, max u3 u4} (Prod.{u1, u5} α α') (Prod.{u2, u6} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u6} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') => Prod.map.{u1, u2, u5, u6} α β α' β' (F (Prod.fst.{u3, u4} ι ι' i)) (F' (Prod.snd.{u3, u4} ι ι' i))) (Prod.map.{u1, u2, u5, u6} α β α' β' f f') (Filter.prod.{u3, u4} ι ι' p p'))
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u5}} {ι : Type.{u6}} [_inst_1 : UniformSpace.{u5} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u6} ι} {ι' : Type.{u3}} {α' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α' -> β'} {f' : α' -> β'} {p' : Filter.{u3} ι'}, (TendstoUniformly.{u4, u5, u6} α β ι _inst_1 F f p) -> (TendstoUniformly.{u2, u1, u3} α' β' ι' _inst_2 F' f' p') -> (TendstoUniformly.{max u2 u4, max u1 u5, max u6 u3} (Prod.{u4, u2} α α') (Prod.{u5, u1} β β') (Prod.{u6, u3} ι ι') (instUniformSpaceProd.{u5, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u6, u3} ι ι') => Prod.map.{u4, u5, u2, u1} α β α' β' (F (Prod.fst.{u6, u3} ι ι' i)) (F' (Prod.snd.{u6, u3} ι ι' i))) (Prod.map.{u4, u5, u2, u1} α β α' β' f f') (Filter.prod.{u6, u3} ι ι' p p'))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.prod_map TendstoUniformly.prod_mapₓ'. -/
theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p.Prod p') :=
@@ -429,12 +375,6 @@ theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F'
exact h.prod_map h'
#align tendsto_uniformly.prod_map TendstoUniformly.prod_map
-/- warning: tendsto_uniformly_on_filter.prod -> TendstoUniformlyOnFilter.prod is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {ι' : Type.{u4}} {β' : Type.{u5}} [_inst_2 : UniformSpace.{u5} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {q : Filter.{u4} ι'}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (TendstoUniformlyOnFilter.{u1, u5, u4} α β' ι' _inst_2 F' f' q p') -> (TendstoUniformlyOnFilter.{u1, max u2 u5, max u3 u4} α (Prod.{u2, u5} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u5} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') (a : α) => Prod.mk.{u2, u5} β β' (F (Prod.fst.{u3, u4} ι ι' i) a) (F' (Prod.snd.{u3, u4} ι ι' i) a)) (fun (a : α) => Prod.mk.{u2, u5} β β' (f a) (f' a)) (Filter.prod.{u3, u4} ι ι' p q) p')
-but is expected to have type
- forall {α : Type.{u3}} {β : Type.{u4}} {ι : Type.{u5}} [_inst_1 : UniformSpace.{u4} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u5} ι} {p' : Filter.{u3} α} {ι' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {q : Filter.{u2} ι'}, (TendstoUniformlyOnFilter.{u3, u4, u5} α β ι _inst_1 F f p p') -> (TendstoUniformlyOnFilter.{u3, u1, u2} α β' ι' _inst_2 F' f' q p') -> (TendstoUniformlyOnFilter.{u3, max u1 u4, max u5 u2} α (Prod.{u4, u1} β β') (Prod.{u5, u2} ι ι') (instUniformSpaceProd.{u4, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u5, u2} ι ι') (a : α) => Prod.mk.{u4, u1} β β' (F (Prod.fst.{u5, u2} ι ι' i) a) (F' (Prod.snd.{u5, u2} ι ι' i) a)) (fun (a : α) => Prod.mk.{u4, u1} β β' (f a) (f' a)) (Filter.prod.{u5, u2} ι ι' p q) p')
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.prod TendstoUniformlyOnFilter.prodₓ'. -/
theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
{f' : α → β'} {q : Filter ι'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q p') :
@@ -443,12 +383,6 @@ theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F'
fun u hu => ((h.Prod_map h') u hu).diag_of_prod_right
#align tendsto_uniformly_on_filter.prod TendstoUniformlyOnFilter.prod
-/- warning: tendsto_uniformly_on.prod -> TendstoUniformlyOn.prod is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {ι' : Type.{u4}} {β' : Type.{u5}} [_inst_2 : UniformSpace.{u5} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {p' : Filter.{u4} ι'}, (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 F f p s) -> (TendstoUniformlyOn.{u1, u5, u4} α β' ι' _inst_2 F' f' p' s) -> (TendstoUniformlyOn.{u1, max u2 u5, max u3 u4} α (Prod.{u2, u5} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u5} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') (a : α) => Prod.mk.{u2, u5} β β' (F (Prod.fst.{u3, u4} ι ι' i) a) (F' (Prod.snd.{u3, u4} ι ι' i) a)) (fun (a : α) => Prod.mk.{u2, u5} β β' (f a) (f' a)) (Filter.prod.{u3, u4} ι ι' p p') s)
-but is expected to have type
- forall {α : Type.{u3}} {β : Type.{u4}} {ι : Type.{u5}} [_inst_1 : UniformSpace.{u4} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u3} α} {p : Filter.{u5} ι} {ι' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {p' : Filter.{u2} ι'}, (TendstoUniformlyOn.{u3, u4, u5} α β ι _inst_1 F f p s) -> (TendstoUniformlyOn.{u3, u1, u2} α β' ι' _inst_2 F' f' p' s) -> (TendstoUniformlyOn.{u3, max u1 u4, max u5 u2} α (Prod.{u4, u1} β β') (Prod.{u5, u2} ι ι') (instUniformSpaceProd.{u4, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u5, u2} ι ι') (a : α) => Prod.mk.{u4, u1} β β' (F (Prod.fst.{u5, u2} ι ι' i) a) (F' (Prod.snd.{u5, u2} ι ι' i) a)) (fun (a : α) => Prod.mk.{u4, u1} β β' (f a) (f' a)) (Filter.prod.{u5, u2} ι ι' p p') s)
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on.prod TendstoUniformlyOn.prodₓ'. -/
theorem TendstoUniformlyOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformlyOn F f p s) (h' : TendstoUniformlyOn F' f' p' s) :
TendstoUniformlyOn (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
@@ -456,12 +390,6 @@ theorem TendstoUniformlyOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι'
(congr_arg _ s.inter_self).mp ((h.Prod_map h').comp fun a => (a, a))
#align tendsto_uniformly_on.prod TendstoUniformlyOn.prod
-/- warning: tendsto_uniformly.prod -> TendstoUniformly.prod is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {ι' : Type.{u4}} {β' : Type.{u5}} [_inst_2 : UniformSpace.{u5} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {p' : Filter.{u4} ι'}, (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F f p) -> (TendstoUniformly.{u1, u5, u4} α β' ι' _inst_2 F' f' p') -> (TendstoUniformly.{u1, max u2 u5, max u3 u4} α (Prod.{u2, u5} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u5} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') (a : α) => Prod.mk.{u2, u5} β β' (F (Prod.fst.{u3, u4} ι ι' i) a) (F' (Prod.snd.{u3, u4} ι ι' i) a)) (fun (a : α) => Prod.mk.{u2, u5} β β' (f a) (f' a)) (Filter.prod.{u3, u4} ι ι' p p'))
-but is expected to have type
- forall {α : Type.{u3}} {β : Type.{u4}} {ι : Type.{u5}} [_inst_1 : UniformSpace.{u4} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u5} ι} {ι' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α -> β'} {f' : α -> β'} {p' : Filter.{u2} ι'}, (TendstoUniformly.{u3, u4, u5} α β ι _inst_1 F f p) -> (TendstoUniformly.{u3, u1, u2} α β' ι' _inst_2 F' f' p') -> (TendstoUniformly.{u3, max u1 u4, max u5 u2} α (Prod.{u4, u1} β β') (Prod.{u5, u2} ι ι') (instUniformSpaceProd.{u4, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u5, u2} ι ι') (a : α) => Prod.mk.{u4, u1} β β' (F (Prod.fst.{u5, u2} ι ι' i) a) (F' (Prod.snd.{u5, u2} ι ι' i) a)) (fun (a : α) => Prod.mk.{u4, u1} β β' (f a) (f' a)) (Filter.prod.{u5, u2} ι ι' p p'))
-Case conversion may be inaccurate. Consider using '#align tendsto_uniformly.prod TendstoUniformly.prodₓ'. -/
theorem TendstoUniformly.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
@@ -491,12 +419,6 @@ theorem tendsto_prod_principal_iff {c : β} :
#align tendsto_prod_principal_iff tendsto_prod_principal_iff
-/
-/- warning: tendsto_prod_top_iff -> tendsto_prod_top_iff is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {c : β}, Iff (Filter.Tendsto.{max u3 u1, u2} (Prod.{u3, u1} ι α) β (Function.HasUncurry.uncurry.{max u3 u1 u2, max u3 u1, u2} (ι -> α -> β) (Prod.{u3, u1} ι α) β (Function.hasUncurryInduction.{u3, max u1 u2, u1, u2} ι (α -> β) α β (Function.hasUncurryBase.{u1, u2} α β)) F) (Filter.prod.{u3, u1} ι α p (Top.top.{u1} (Filter.{u1} α) (Filter.hasTop.{u1} α))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) c)) (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F (fun (_x : α) => c) p)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {c : β}, Iff (Filter.Tendsto.{max u1 u3, u2} (Prod.{u3, u1} ι α) β (Function.HasUncurry.uncurry.{max (max u1 u2) u3, max u1 u3, u2} (ι -> α -> β) (Prod.{u3, u1} ι α) β (Function.hasUncurryInduction.{u3, max u1 u2, u1, u2} ι (α -> β) α β (Function.hasUncurryBase.{u1, u2} α β)) F) (Filter.prod.{u3, u1} ι α p (Top.top.{u1} (Filter.{u1} α) (Filter.instTopFilter.{u1} α))) (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) c)) (TendstoUniformly.{u1, u2, u3} α β ι _inst_1 F (fun (_x : α) => c) p)
-Case conversion may be inaccurate. Consider using '#align tendsto_prod_top_iff tendsto_prod_top_iffₓ'. -/
/-- Uniform convergence to a constant function is equivalent to convergence in `p ×ᶠ ⊤`. -/
theorem tendsto_prod_top_iff {c : β} :
Tendsto (↿F) (p ×ᶠ ⊤) (𝓝 c) ↔ TendstoUniformly F (fun _ => c) p :=
@@ -545,12 +467,6 @@ theorem Filter.Tendsto.tendstoUniformlyOn_const {g : ι → β} {b : β} (hg : T
#align filter.tendsto.tendsto_uniformly_on_const Filter.Tendsto.tendstoUniformlyOn_const
-/
-/- warning: uniform_continuous_on.tendsto_uniformly -> UniformContinuousOn.tendstoUniformly is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformSpace.{u3} γ] {x : α} {U : Set.{u1} α}, (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) x)) -> (forall {F : α -> β -> γ}, (UniformContinuousOn.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (Prod.uniformSpace.{u1, u2} α β _inst_2 _inst_1) _inst_3 (Function.HasUncurry.uncurry.{max u1 u2 u3, max u1 u2, u3} (α -> β -> γ) (Prod.{u1, u2} α β) γ (Function.hasUncurryInduction.{u1, max u2 u3, u2, u3} α (β -> γ) β γ (Function.hasUncurryBase.{u2, u3} β γ)) F) (Set.prod.{u1, u2} α β U (Set.univ.{u2} β))) -> (TendstoUniformly.{u2, u3, u1} β γ α _inst_3 F (F x) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) x)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] [_inst_2 : UniformSpace.{u1} α] [_inst_3 : UniformSpace.{u3} γ] {x : α} {U : Set.{u1} α}, (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) U (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) x)) -> (forall {F : α -> β -> γ}, (UniformContinuousOn.{max u1 u2, u3} (Prod.{u1, u2} α β) γ (instUniformSpaceProd.{u1, u2} α β _inst_2 _inst_1) _inst_3 (Function.HasUncurry.uncurry.{max (max u1 u2) u3, max u1 u2, u3} (α -> β -> γ) (Prod.{u1, u2} α β) γ (Function.hasUncurryInduction.{u1, max u2 u3, u2, u3} α (β -> γ) β γ (Function.hasUncurryBase.{u2, u3} β γ)) F) (Set.prod.{u1, u2} α β U (Set.univ.{u2} β))) -> (TendstoUniformly.{u2, u3, u1} β γ α _inst_3 F (F x) (nhds.{u1} α (UniformSpace.toTopologicalSpace.{u1} α _inst_2) x)))
-Case conversion may be inaccurate. Consider using '#align uniform_continuous_on.tendsto_uniformly UniformContinuousOn.tendstoUniformlyₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem UniformContinuousOn.tendstoUniformly [UniformSpace α] [UniformSpace γ] {x : α} {U : Set α}
(hU : U ∈ 𝓝 x) {F : α → β → γ} (hF : UniformContinuousOn (↿F) (U ×ˢ (univ : Set β))) :
@@ -679,12 +595,6 @@ theorem UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto [NeBot p] (hF : Uniform
#align uniform_cauchy_seq_on.tendsto_uniformly_on_of_tendsto UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto
-/
-/- warning: uniform_cauchy_seq_on_filter.mono_left -> UniformCauchySeqOnFilter.mono_left is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toHasLe.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p'' p')
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.instPartialOrderFilter.{u3} ι))) p'' p) -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p'' p')
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on_filter.mono_left UniformCauchySeqOnFilter.mono_leftₓ'. -/
theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchySeqOnFilter F p p')
(hp : p'' ≤ p) : UniformCauchySeqOnFilter F p'' p' :=
by
@@ -693,12 +603,6 @@ theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchy
exact this.mono (by simp)
#align uniform_cauchy_seq_on_filter.mono_left UniformCauchySeqOnFilter.mono_left
-/- warning: uniform_cauchy_seq_on_filter.mono_right -> UniformCauchySeqOnFilter.mono_right is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p'')
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) p'' p') -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p'')
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on_filter.mono_right UniformCauchySeqOnFilter.mono_rightₓ'. -/
theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauchySeqOnFilter F p p')
(hp : p'' ≤ p') : UniformCauchySeqOnFilter F p p'' :=
by
@@ -716,12 +620,6 @@ theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (h
#align uniform_cauchy_seq_on.mono UniformCauchySeqOn.mono
-/
-/- warning: uniform_cauchy_seq_on_filter.comp -> UniformCauchySeqOnFilter.comp is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {γ : Type.{u4}}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (forall (g : γ -> α), UniformCauchySeqOnFilter.{u4, u2, u3} γ β ι _inst_1 (fun (n : ι) => Function.comp.{succ u4, succ u1, succ u2} γ α β (F n) g) p (Filter.comap.{u4, u1} γ α g p'))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u3} β] {F : ι -> α -> β} {p : Filter.{u4} ι} {p' : Filter.{u2} α} {γ : Type.{u1}}, (UniformCauchySeqOnFilter.{u2, u3, u4} α β ι _inst_1 F p p') -> (forall (g : γ -> α), UniformCauchySeqOnFilter.{u1, u3, u4} γ β ι _inst_1 (fun (n : ι) => Function.comp.{succ u1, succ u2, succ u3} γ α β (F n) g) p (Filter.comap.{u1, u2} γ α g p'))
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on_filter.comp UniformCauchySeqOnFilter.compₓ'. -/
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilter F p p')
(g : γ → α) : UniformCauchySeqOnFilter (fun n => F n ∘ g) p (p'.comap g) :=
@@ -733,12 +631,6 @@ theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilt
exact eventually_comap.mpr (hpb.mono fun x hx y hy => by simp only [hx, hy, Function.comp_apply])
#align uniform_cauchy_seq_on_filter.comp UniformCauchySeqOnFilter.comp
-/- warning: uniform_cauchy_seq_on.comp -> UniformCauchySeqOn.comp is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {γ : Type.{u4}}, (UniformCauchySeqOn.{u1, u2, u3} α β ι _inst_1 F p s) -> (forall (g : γ -> α), UniformCauchySeqOn.{u4, u2, u3} γ β ι _inst_1 (fun (n : ι) => Function.comp.{succ u4, succ u1, succ u2} γ α β (F n) g) p (Set.preimage.{u4, u1} γ α g s))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u3} β] {F : ι -> α -> β} {s : Set.{u2} α} {p : Filter.{u4} ι} {γ : Type.{u1}}, (UniformCauchySeqOn.{u2, u3, u4} α β ι _inst_1 F p s) -> (forall (g : γ -> α), UniformCauchySeqOn.{u1, u3, u4} γ β ι _inst_1 (fun (n : ι) => Function.comp.{succ u1, succ u2, succ u3} γ α β (F n) g) p (Set.preimage.{u1, u2} γ α g s))
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.comp UniformCauchySeqOn.compₓ'. -/
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s) :=
@@ -756,12 +648,6 @@ theorem UniformContinuous.comp_uniformCauchySeqOn [UniformSpace γ] {g : β →
#align uniform_continuous.comp_uniform_cauchy_seq_on UniformContinuous.comp_uniformCauchySeqOn
-/
-/- warning: uniform_cauchy_seq_on.prod_map -> UniformCauchySeqOn.prod_map is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {ι' : Type.{u4}} {α' : Type.{u5}} {β' : Type.{u6}} [_inst_2 : UniformSpace.{u6} β'] {F' : ι' -> α' -> β'} {p' : Filter.{u4} ι'} {s' : Set.{u5} α'}, (UniformCauchySeqOn.{u1, u2, u3} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u5, u6, u4} α' β' ι' _inst_2 F' p' s') -> (UniformCauchySeqOn.{max u1 u5, max u2 u6, max u3 u4} (Prod.{u1, u5} α α') (Prod.{u2, u6} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u6} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') => Prod.map.{u1, u2, u5, u6} α β α' β' (F (Prod.fst.{u3, u4} ι ι' i)) (F' (Prod.snd.{u3, u4} ι ι' i))) (Filter.prod.{u3, u4} ι ι' p p') (Set.prod.{u1, u5} α α' s s'))
-but is expected to have type
- forall {α : Type.{u4}} {β : Type.{u5}} {ι : Type.{u6}} [_inst_1 : UniformSpace.{u5} β] {F : ι -> α -> β} {s : Set.{u4} α} {p : Filter.{u6} ι} {ι' : Type.{u3}} {α' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α' -> β'} {p' : Filter.{u3} ι'} {s' : Set.{u2} α'}, (UniformCauchySeqOn.{u4, u5, u6} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u2, u1, u3} α' β' ι' _inst_2 F' p' s') -> (UniformCauchySeqOn.{max u2 u4, max u1 u5, max u6 u3} (Prod.{u4, u2} α α') (Prod.{u5, u1} β β') (Prod.{u6, u3} ι ι') (instUniformSpaceProd.{u5, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u6, u3} ι ι') => Prod.map.{u4, u5, u2, u1} α β α' β' (F (Prod.fst.{u6, u3} ι ι' i)) (F' (Prod.snd.{u6, u3} ι ι' i))) (Filter.prod.{u6, u3} ι ι' p p') (Set.prod.{u4, u2} α α' s s'))
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.prod_map UniformCauchySeqOn.prod_mapₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{p' : Filter ι'} {s' : Set α'} (h : UniformCauchySeqOn F p s)
@@ -778,24 +664,12 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
#align uniform_cauchy_seq_on.prod_map UniformCauchySeqOn.prod_map
-/- warning: uniform_cauchy_seq_on.prod -> UniformCauchySeqOn.prod is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {ι' : Type.{u4}} {β' : Type.{u5}} [_inst_2 : UniformSpace.{u5} β'] {F' : ι' -> α -> β'} {p' : Filter.{u4} ι'}, (UniformCauchySeqOn.{u1, u2, u3} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u1, u5, u4} α β' ι' _inst_2 F' p' s) -> (UniformCauchySeqOn.{u1, max u2 u5, max u3 u4} α (Prod.{u2, u5} β β') (Prod.{u3, u4} ι ι') (Prod.uniformSpace.{u2, u5} β β' _inst_1 _inst_2) (fun (i : Prod.{u3, u4} ι ι') (a : α) => Prod.mk.{u2, u5} β β' (F (Prod.fst.{u3, u4} ι ι' i) a) (F' (Prod.snd.{u3, u4} ι ι' i) a)) (Filter.prod.{u3, u4} ι ι' p p') s)
-but is expected to have type
- forall {α : Type.{u3}} {β : Type.{u4}} {ι : Type.{u5}} [_inst_1 : UniformSpace.{u4} β] {F : ι -> α -> β} {s : Set.{u3} α} {p : Filter.{u5} ι} {ι' : Type.{u2}} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι' -> α -> β'} {p' : Filter.{u2} ι'}, (UniformCauchySeqOn.{u3, u4, u5} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u3, u1, u2} α β' ι' _inst_2 F' p' s) -> (UniformCauchySeqOn.{u3, max u1 u4, max u5 u2} α (Prod.{u4, u1} β β') (Prod.{u5, u2} ι ι') (instUniformSpaceProd.{u4, u1} β β' _inst_1 _inst_2) (fun (i : Prod.{u5, u2} ι ι') (a : α) => Prod.mk.{u4, u1} β β' (F (Prod.fst.{u5, u2} ι ι' i) a) (F' (Prod.snd.{u5, u2} ι ι' i) a)) (Filter.prod.{u5, u2} ι ι' p p') s)
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.prod UniformCauchySeqOn.prodₓ'. -/
theorem UniformCauchySeqOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
{p' : Filter ι'} (h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p' s) :
UniformCauchySeqOn (fun (i : ι × ι') a => (F i.fst a, F' i.snd a)) (p ×ᶠ p') s :=
(congr_arg _ s.inter_self).mp ((h.Prod_map h').comp fun a => (a, a))
#align uniform_cauchy_seq_on.prod UniformCauchySeqOn.prod
-/- warning: uniform_cauchy_seq_on.prod' -> UniformCauchySeqOn.prod' is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {s : Set.{u1} α} {p : Filter.{u3} ι} {β' : Type.{u4}} [_inst_2 : UniformSpace.{u4} β'] {F' : ι -> α -> β'}, (UniformCauchySeqOn.{u1, u2, u3} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u1, u4, u3} α β' ι _inst_2 F' p s) -> (UniformCauchySeqOn.{u1, max u2 u4, u3} α (Prod.{u2, u4} β β') ι (Prod.uniformSpace.{u2, u4} β β' _inst_1 _inst_2) (fun (i : ι) (a : α) => Prod.mk.{u2, u4} β β' (F i a) (F' i a)) p s)
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u3} β] {F : ι -> α -> β} {s : Set.{u2} α} {p : Filter.{u4} ι} {β' : Type.{u1}} [_inst_2 : UniformSpace.{u1} β'] {F' : ι -> α -> β'}, (UniformCauchySeqOn.{u2, u3, u4} α β ι _inst_1 F p s) -> (UniformCauchySeqOn.{u2, u1, u4} α β' ι _inst_2 F' p s) -> (UniformCauchySeqOn.{u2, max u1 u3, u4} α (Prod.{u3, u1} β β') ι (instUniformSpaceProd.{u3, u1} β β' _inst_1 _inst_2) (fun (i : ι) (a : α) => Prod.mk.{u3, u1} β β' (F i a) (F' i a)) p s)
-Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on.prod' UniformCauchySeqOn.prod'ₓ'. -/
theorem UniformCauchySeqOn.prod' {β' : Type _} [UniformSpace β'] {F' : ι → α → β'}
(h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p s) :
UniformCauchySeqOn (fun (i : ι) a => (F i a, F' i a)) p s :=
@@ -956,12 +830,6 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
-/
-/- warning: tendsto_locally_uniformly_on_Union -> tendstoLocallyUniformlyOn_iUnion is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u4} ι} [_inst_2 : TopologicalSpace.{u1} α] {S : γ -> (Set.{u1} α)}, (forall (i : γ), IsOpen.{u1} α _inst_2 (S i)) -> (forall (i : γ), TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (S i)) -> (TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (Set.iUnion.{u1, succ u3} α γ (fun (i : γ) => S i)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u4}} [ι : UniformSpace.{u3} β] {_inst_1 : γ -> α -> β} {F : α -> β} {f : Filter.{u4} γ} [p : TopologicalSpace.{u2} α] {_inst_2 : Sort.{u1}} {S : _inst_2 -> (Set.{u2} α)}, (forall (i : _inst_2), IsOpen.{u2} α p (S i)) -> (forall (i : _inst_2), TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (S i)) -> (TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (Set.iUnion.{u2, u1} α _inst_2 (fun (i : _inst_2) => S i)))
-Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnionₓ'. -/
theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) : TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
by
@@ -987,12 +855,6 @@ theorem tendstoLocallyUniformlyOn_sUnion (S : Set (Set α)) (hS : ∀ s ∈ S, I
#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_sUnion
-/
-/- warning: tendsto_locally_uniformly_on.union -> TendstoLocallyUniformlyOn.union is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} [_inst_2 : TopologicalSpace.{u1} α] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α}, (IsOpen.{u1} α _inst_2 s₁) -> (IsOpen.{u1} α _inst_2 s₂) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p s₁) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p s₂) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p (Union.union.{u1} (Set.{u1} α) (Set.hasUnion.{u1} α) s₁ s₂))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} [_inst_2 : TopologicalSpace.{u1} α] {s₁ : Set.{u1} α} {s₂ : Set.{u1} α}, (IsOpen.{u1} α _inst_2 s₁) -> (IsOpen.{u1} α _inst_2 s₂) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p s₁) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p s₂) -> (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 F f p (Union.union.{u1} (Set.{u1} α) (Set.instUnionSet.{u1} α) s₁ s₂))
-Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.unionₓ'. -/
theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s₁) (hs₂ : IsOpen s₂)
(h₁ : TendstoLocallyUniformlyOn F f p s₁) (h₂ : TendstoLocallyUniformlyOn F f p s₂) :
TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) := by rw [← sUnion_pair];
@@ -1067,12 +929,6 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-/
-/- warning: tendsto_locally_uniformly_on_tfae -> tendstoLocallyUniformlyOn_TFAE is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {s : Set.{u1} α} [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : LocallyCompactSpace.{u1} α _inst_2] (G : ι -> α -> β) (g : α -> β) (p : Filter.{u3} ι), (IsOpen.{u1} α _inst_2 s) -> (List.TFAE (List.cons.{0} Prop (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 G g p s) (List.cons.{0} Prop (forall (K : Set.{u1} α), (HasSubset.Subset.{u1} (Set.{u1} α) (Set.hasSubset.{u1} α) K s) -> (IsCompact.{u1} α _inst_2 K) -> (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p K)) (List.cons.{0} Prop (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (Exists.{succ u1} (Set.{u1} α) (fun (v : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) v (nhdsWithin.{u1} α _inst_2 x s)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) v (nhdsWithin.{u1} α _inst_2 x s)) => TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p v)))) (List.nil.{0} Prop)))))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {s : Set.{u1} α} [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : LocallyCompactSpace.{u1} α _inst_2] (G : ι -> α -> β) (g : α -> β) (p : Filter.{u3} ι), (IsOpen.{u1} α _inst_2 s) -> (List.TFAE (List.cons.{0} Prop (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 G g p s) (List.cons.{0} Prop (forall (K : Set.{u1} α), (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) K s) -> (IsCompact.{u1} α _inst_2 K) -> (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p K)) (List.cons.{0} Prop (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Exists.{succ u1} (Set.{u1} α) (fun (v : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) v (nhdsWithin.{u1} α _inst_2 x s)) (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p v)))) (List.nil.{0} Prop)))))
-Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAEₓ'. -/
/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
@@ -1175,12 +1031,6 @@ the statements are derived from a statement about locally uniform approximation
a point, called `continuous_within_at_of_locally_uniform_approx_of_continuous_within_at`. -/
-/- warning: continuous_within_at_of_locally_uniform_approx_of_continuous_within_at -> continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {s : Set.{u1} α} {x : α} [_inst_2 : TopologicalSpace.{u1} α], (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) => Exists.{max (succ u1) (succ u2)} (α -> β) (fun (F : α -> β) => And (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F s x) (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s x)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {s : Set.{u1} α} {x : α} [_inst_2 : TopologicalSpace.{u1} α], (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (Exists.{max (succ u1) (succ u2)} (α -> β) (fun (F : α -> β) => And (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F s x) (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s x)
-Case conversion may be inaccurate. Consider using '#align continuous_within_at_of_locally_uniform_approx_of_continuous_within_at continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAtₓ'. -/
/-- A function which can be locally uniformly approximated by functions which are continuous
within a set at a point is continuous within this set at this point. -/
theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (hx : x ∈ s)
@@ -1203,12 +1053,6 @@ theorem continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt (hx :
exact C.mono fun y hy => u₁₀ (prod_mk_mem_compRel hy this)
#align continuous_within_at_of_locally_uniform_approx_of_continuous_within_at continuousWithinAt_of_locally_uniform_approx_of_continuousWithinAt
-/- warning: continuous_at_of_locally_uniform_approx_of_continuous_at -> continuousAt_of_locally_uniform_approx_of_continuousAt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {x : α} [_inst_2 : TopologicalSpace.{u1} α], (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) => Exists.{max (succ u1) (succ u2)} (α -> β) (fun (F : α -> β) => And (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F x) (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f x)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {x : α} [_inst_2 : TopologicalSpace.{u1} α], (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhds.{u1} α _inst_2 x)) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (F : α -> β) => And (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F x) (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f x)
-Case conversion may be inaccurate. Consider using '#align continuous_at_of_locally_uniform_approx_of_continuous_at continuousAt_of_locally_uniform_approx_of_continuousAtₓ'. -/
/-- A function which can be locally uniformly approximated by functions which are continuous at
a point is continuous at this point. -/
theorem continuousAt_of_locally_uniform_approx_of_continuousAt
@@ -1219,12 +1063,6 @@ theorem continuousAt_of_locally_uniform_approx_of_continuousAt
simpa only [exists_prop, nhdsWithin_univ, continuousWithinAt_univ] using L
#align continuous_at_of_locally_uniform_approx_of_continuous_at continuousAt_of_locally_uniform_approx_of_continuousAt
-/- warning: continuous_on_of_locally_uniform_approx_of_continuous_within_at -> continuousOn_of_locally_uniform_approx_of_continuousWithinAt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {s : Set.{u1} α} [_inst_2 : TopologicalSpace.{u1} α], (forall (x : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x s) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) => Exists.{max (succ u1) (succ u2)} (α -> β) (fun (F : α -> β) => And (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F s x) (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u)))))))) -> (ContinuousOn.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} {s : Set.{u1} α} [_inst_2 : TopologicalSpace.{u1} α], (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (F : α -> β) => And (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F s x) (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u)))))))) -> (ContinuousOn.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s)
-Case conversion may be inaccurate. Consider using '#align continuous_on_of_locally_uniform_approx_of_continuous_within_at continuousOn_of_locally_uniform_approx_of_continuousWithinAtₓ'. -/
/-- A function which can be locally uniformly approximated by functions which are continuous
on a set is continuous on this set. -/
theorem continuousOn_of_locally_uniform_approx_of_continuousWithinAt
@@ -1244,12 +1082,6 @@ theorem continuousOn_of_uniform_approx_of_continuousOn
#align continuous_on_of_uniform_approx_of_continuous_on continuousOn_of_uniform_approx_of_continuousOn
-/
-/- warning: continuous_of_locally_uniform_approx_of_continuous_at -> continuous_of_locally_uniform_approx_of_continuousAt is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} [_inst_2 : TopologicalSpace.{u1} α], (forall (x : α) (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) => Exists.{max (succ u1) (succ u2)} (α -> β) (fun (F : α -> β) => And (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F x) (forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (Continuous.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f)
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : UniformSpace.{u2} β] {f : α -> β} [_inst_2 : TopologicalSpace.{u1} α], (forall (x : α) (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhds.{u1} α _inst_2 x)) (Exists.{max (succ u2) (succ u1)} (α -> β) (fun (F : α -> β) => And (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) F x) (forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F y)) u))))))) -> (Continuous.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f)
-Case conversion may be inaccurate. Consider using '#align continuous_of_locally_uniform_approx_of_continuous_at continuous_of_locally_uniform_approx_of_continuousAtₓ'. -/
/-- A function which can be locally uniformly approximated by continuous functions is continuous. -/
theorem continuous_of_locally_uniform_approx_of_continuousAt
(L : ∀ x : α, ∀ u ∈ 𝓤 β, ∃ t ∈ 𝓝 x, ∃ F, ContinuousAt F x ∧ ∀ y ∈ t, (f y, F y) ∈ u) :
@@ -1324,9 +1156,6 @@ this paragraph, we prove variations around this statement.
-/
-/- warning: tendsto_comp_of_locally_uniform_limit_within -> tendsto_comp_of_locally_uniform_limit_within is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tendsto_comp_of_locally_uniform_limit_within tendsto_comp_of_locally_uniform_limit_withinₓ'. -/
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` within a set `s` to a function `f`
which is continuous at `x` within `s `, and `gₙ` tends to `x` within `s`, then `Fₙ (gₙ)` tends
to `f x`. -/
@@ -1346,9 +1175,6 @@ theorem tendsto_comp_of_locally_uniform_limit_within (h : ContinuousWithinAt f s
exact u₁₀ (prod_mk_mem_compRel H3 (H1 _ H2))
#align tendsto_comp_of_locally_uniform_limit_within tendsto_comp_of_locally_uniform_limit_within
-/- warning: tendsto_comp_of_locally_uniform_limit -> tendsto_comp_of_locally_uniform_limit is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tendsto_comp_of_locally_uniform_limit tendsto_comp_of_locally_uniform_limitₓ'. -/
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` to a function `f` which is
continuous at `x`, and `gₙ` tends to `x`, then `Fₙ (gₙ)` tends to `f x`. -/
theorem tendsto_comp_of_locally_uniform_limit (h : ContinuousAt f x) (hg : Tendsto g p (𝓝 x))
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -561,13 +561,9 @@ theorem UniformContinuousOn.tendstoUniformly [UniformSpace α] [UniformSpace γ]
show (fun q : α × β => (F x q.2, F q.1 q.2)) = Prod.map (↿F) ↿F ∘ φ by ext <;> simpa]
apply hF.comp (tendsto_inf.mpr ⟨_, _⟩)
· rw [uniformity_prod, tendsto_inf, tendsto_comap_iff, tendsto_comap_iff,
- show (fun p : (α × β) × α × β => (p.1.1, p.2.1)) ∘ φ = (fun a => (x, a)) ∘ Prod.fst
- by
- ext
+ show (fun p : (α × β) × α × β => (p.1.1, p.2.1)) ∘ φ = (fun a => (x, a)) ∘ Prod.fst by ext;
simp,
- show (fun p : (α × β) × α × β => (p.1.2, p.2.2)) ∘ φ = (fun b => (b, b)) ∘ Prod.snd
- by
- ext
+ show (fun p : (α × β) × α × β => (p.1.2, p.2.2)) ∘ φ = (fun b => (b, b)) ∘ Prod.snd by ext;
simp]
exact
⟨tendsto_left_nhds_uniformity.comp tendsto_fst,
@@ -838,9 +834,7 @@ theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCounta
(fun q : ι × α => (f q.snd, F q.fst q.snd)) ∘ u =
(fun q : ℕ × α => (f q.snd, F ((fun n : ℕ => (u n).fst) q.fst) q.snd)) ∘ fun n =>
(n, (u n).snd) :=
- by
- ext1 n
- simp
+ by ext1 n; simp
rw [this]
refine' tendsto.comp h _
rw [tendsto_prod_iff']
@@ -856,9 +850,7 @@ theorem TendstoUniformlyOn.seq_tendstoUniformlyOn {l : Filter ι} (h : TendstoUn
have :
(fun q : ℕ × α => (f q.snd, F (u q.fst) q.snd)) =
(fun q : ι × α => (f q.snd, F q.fst q.snd)) ∘ fun p : ℕ × α => (u p.fst, p.snd) :=
- by
- ext1 x
- simp
+ by ext1 x; simp
rw [this]
refine' h.comp _
rw [tendsto_prod_iff']
@@ -983,19 +975,15 @@ theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen
#print tendstoLocallyUniformlyOn_biUnion /-
theorem tendstoLocallyUniformlyOn_biUnion {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
(h : ∀ i ∈ s, TendstoLocallyUniformlyOn F f p (S i)) :
- TendstoLocallyUniformlyOn F f p (⋃ i ∈ s, S i) :=
- by
- rw [bUnion_eq_Union]
+ TendstoLocallyUniformlyOn F f p (⋃ i ∈ s, S i) := by rw [bUnion_eq_Union];
exact tendstoLocallyUniformlyOn_iUnion (fun i => hS _ i.2) fun i => h _ i.2
#align tendsto_locally_uniformly_on_bUnion tendstoLocallyUniformlyOn_biUnion
-/
#print tendstoLocallyUniformlyOn_sUnion /-
theorem tendstoLocallyUniformlyOn_sUnion (S : Set (Set α)) (hS : ∀ s ∈ S, IsOpen s)
- (h : ∀ s ∈ S, TendstoLocallyUniformlyOn F f p s) : TendstoLocallyUniformlyOn F f p (⋃₀ S) :=
- by
- rw [sUnion_eq_bUnion]
- exact tendstoLocallyUniformlyOn_biUnion hS h
+ (h : ∀ s ∈ S, TendstoLocallyUniformlyOn F f p s) : TendstoLocallyUniformlyOn F f p (⋃₀ S) := by
+ rw [sUnion_eq_bUnion]; exact tendstoLocallyUniformlyOn_biUnion hS h
#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_sUnion
-/
@@ -1007,9 +995,7 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.unionₓ'. -/
theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s₁) (hs₂ : IsOpen s₂)
(h₁ : TendstoLocallyUniformlyOn F f p s₁) (h₂ : TendstoLocallyUniformlyOn F f p s₂) :
- TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) :=
- by
- rw [← sUnion_pair]
+ TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) := by rw [← sUnion_pair];
refine' tendstoLocallyUniformlyOn_sUnion _ _ _ <;> simp [*]
#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.union
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -1339,10 +1339,7 @@ this paragraph, we prove variations around this statement.
/- warning: tendsto_comp_of_locally_uniform_limit_within -> tendsto_comp_of_locally_uniform_limit_within is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u1} α} {x : α} {p : Filter.{u3} ι} {g : ι -> α} [_inst_2 : TopologicalSpace.{u1} α], (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s x) -> (Filter.Tendsto.{u3, u1} ι α g p (nhdsWithin.{u1} α _inst_2 x s)) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) => Filter.Eventually.{u3} ι (fun (n : ι) => forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F n y)) u)) p)))) -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n (g n)) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {s : Set.{u1} α} {x : α} {p : Filter.{u3} ι} {g : ι -> α} [_inst_2 : TopologicalSpace.{u1} α], (ContinuousWithinAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f s x) -> (Filter.Tendsto.{u3, u1} ι α g p (nhdsWithin.{u1} α _inst_2 x s)) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhdsWithin.{u1} α _inst_2 x s)) (Filter.Eventually.{u3} ι (fun (n : ι) => forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F n y)) u)) p)))) -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n (g n)) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align tendsto_comp_of_locally_uniform_limit_within tendsto_comp_of_locally_uniform_limit_withinₓ'. -/
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` within a set `s` to a function `f`
which is continuous at `x` within `s `, and `gₙ` tends to `x` within `s`, then `Fₙ (gₙ)` tends
@@ -1364,10 +1361,7 @@ theorem tendsto_comp_of_locally_uniform_limit_within (h : ContinuousWithinAt f s
#align tendsto_comp_of_locally_uniform_limit_within tendsto_comp_of_locally_uniform_limit_within
/- warning: tendsto_comp_of_locally_uniform_limit -> tendsto_comp_of_locally_uniform_limit is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {g : ι -> α} [_inst_2 : TopologicalSpace.{u1} α], (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f x) -> (Filter.Tendsto.{u3, u1} ι α g p (nhds.{u1} α _inst_2 x)) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.Mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (Filter.hasMem.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => Exists.{0} (Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) (fun (H : Membership.Mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (Filter.hasMem.{u1} α) t (nhds.{u1} α _inst_2 x)) => Filter.Eventually.{u3} ι (fun (n : ι) => forall (y : α), (Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) y t) -> (Membership.Mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.hasMem.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F n y)) u)) p)))) -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n (g n)) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
-but is expected to have type
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {g : ι -> α} [_inst_2 : TopologicalSpace.{u1} α], (ContinuousAt.{u1, u2} α β _inst_2 (UniformSpace.toTopologicalSpace.{u2} β _inst_1) f x) -> (Filter.Tendsto.{u3, u1} ι α g p (nhds.{u1} α _inst_2 x)) -> (forall (u : Set.{u2} (Prod.{u2, u2} β β)), (Membership.mem.{u2, u2} (Set.{u2} (Prod.{u2, u2} β β)) (Filter.{u2} (Prod.{u2, u2} β β)) (instMembershipSetFilter.{u2} (Prod.{u2, u2} β β)) u (uniformity.{u2} β _inst_1)) -> (Exists.{succ u1} (Set.{u1} α) (fun (t : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) t (nhds.{u1} α _inst_2 x)) (Filter.Eventually.{u3} ι (fun (n : ι) => forall (y : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) y t) -> (Membership.mem.{u2, u2} (Prod.{u2, u2} β β) (Set.{u2} (Prod.{u2, u2} β β)) (Set.instMembershipSet.{u2} (Prod.{u2, u2} β β)) (Prod.mk.{u2, u2} β β (f y) (F n y)) u)) p)))) -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n (g n)) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align tendsto_comp_of_locally_uniform_limit tendsto_comp_of_locally_uniform_limitₓ'. -/
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` to a function `f` which is
continuous at `x`, and `gₙ` tends to `x`, then `Fₙ (gₙ)` tends to `f x`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -207,7 +207,7 @@ theorem tendstoUniformly_iff_tendsto {F : ι → α → β} {f : α → β} {p :
/- warning: tendsto_uniformly_on_filter.tendsto_at -> TendstoUniformlyOnFilter.tendsto_at is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {p' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (Filter.principal.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)) p') -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n x) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
+ forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {p' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) (Filter.principal.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.hasSingleton.{u1} α) x)) p') -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n x) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {x : α} {p : Filter.{u3} ι} {p' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) (Filter.principal.{u1} α (Singleton.singleton.{u1, u1} α (Set.{u1} α) (Set.instSingletonSet.{u1} α) x)) p') -> (Filter.Tendsto.{u3, u2} ι β (fun (n : ι) => F n x) p (nhds.{u2} β (UniformSpace.toTopologicalSpace.{u2} β _inst_1) (f x)))
Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.tendsto_at TendstoUniformlyOnFilter.tendsto_atₓ'. -/
@@ -246,7 +246,7 @@ theorem tendstoUniformlyOn_univ : TendstoUniformlyOn F f p univ ↔ TendstoUnifo
/- warning: tendsto_uniformly_on_filter.mono_left -> TendstoUniformlyOnFilter.mono_left is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p'' p')
+ forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toHasLe.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p'' p')
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.instPartialOrderFilter.{u3} ι))) p'' p) -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p'' p')
Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mono_left TendstoUniformlyOnFilter.mono_leftₓ'. -/
@@ -257,7 +257,7 @@ theorem TendstoUniformlyOnFilter.mono_left {p'' : Filter ι} (h : TendstoUniform
/- warning: tendsto_uniformly_on_filter.mono_right -> TendstoUniformlyOnFilter.mono_right is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p'')
+ forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p'')
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) p'' p') -> (TendstoUniformlyOnFilter.{u1, u2, u3} α β ι _inst_1 F f p p'')
Case conversion may be inaccurate. Consider using '#align tendsto_uniformly_on_filter.mono_right TendstoUniformlyOnFilter.mono_rightₓ'. -/
@@ -685,7 +685,7 @@ theorem UniformCauchySeqOn.tendstoUniformlyOn_of_tendsto [NeBot p] (hF : Uniform
/- warning: uniform_cauchy_seq_on_filter.mono_left -> UniformCauchySeqOnFilter.mono_left is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p'' p')
+ forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toHasLe.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.partialOrder.{u3} ι))) p'' p) -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p'' p')
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u3} ι}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u3} (Filter.{u3} ι) (Preorder.toLE.{u3} (Filter.{u3} ι) (PartialOrder.toPreorder.{u3} (Filter.{u3} ι) (Filter.instPartialOrderFilter.{u3} ι))) p'' p) -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p'' p')
Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on_filter.mono_left UniformCauchySeqOnFilter.mono_leftₓ'. -/
@@ -699,7 +699,7 @@ theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchy
/- warning: uniform_cauchy_seq_on_filter.mono_right -> UniformCauchySeqOnFilter.mono_right is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p'')
+ forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toHasLe.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.partialOrder.{u1} α))) p'' p') -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p'')
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {p : Filter.{u3} ι} {p' : Filter.{u1} α} {p'' : Filter.{u1} α}, (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p') -> (LE.le.{u1} (Filter.{u1} α) (Preorder.toLE.{u1} (Filter.{u1} α) (PartialOrder.toPreorder.{u1} (Filter.{u1} α) (Filter.instPartialOrderFilter.{u1} α))) p'' p') -> (UniformCauchySeqOnFilter.{u1, u2, u3} α β ι _inst_1 F p p'')
Case conversion may be inaccurate. Consider using '#align uniform_cauchy_seq_on_filter.mono_right UniformCauchySeqOnFilter.mono_rightₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -964,13 +964,13 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
-/
-/- warning: tendsto_locally_uniformly_on_Union -> tendstoLocallyUniformlyOn_unionᵢ is a dubious translation:
+/- warning: tendsto_locally_uniformly_on_Union -> tendstoLocallyUniformlyOn_iUnion is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u4} ι} [_inst_2 : TopologicalSpace.{u1} α] {S : γ -> (Set.{u1} α)}, (forall (i : γ), IsOpen.{u1} α _inst_2 (S i)) -> (forall (i : γ), TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (S i)) -> (TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (Set.unionᵢ.{u1, succ u3} α γ (fun (i : γ) => S i)))
+ forall {α : Type.{u1}} {β : Type.{u2}} {γ : Type.{u3}} {ι : Type.{u4}} [_inst_1 : UniformSpace.{u2} β] {F : ι -> α -> β} {f : α -> β} {p : Filter.{u4} ι} [_inst_2 : TopologicalSpace.{u1} α] {S : γ -> (Set.{u1} α)}, (forall (i : γ), IsOpen.{u1} α _inst_2 (S i)) -> (forall (i : γ), TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (S i)) -> (TendstoLocallyUniformlyOn.{u1, u2, u4} α β ι _inst_1 _inst_2 F f p (Set.iUnion.{u1, succ u3} α γ (fun (i : γ) => S i)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u4}} [ι : UniformSpace.{u3} β] {_inst_1 : γ -> α -> β} {F : α -> β} {f : Filter.{u4} γ} [p : TopologicalSpace.{u2} α] {_inst_2 : Sort.{u1}} {S : _inst_2 -> (Set.{u2} α)}, (forall (i : _inst_2), IsOpen.{u2} α p (S i)) -> (forall (i : _inst_2), TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (S i)) -> (TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (Set.unionᵢ.{u2, u1} α _inst_2 (fun (i : _inst_2) => S i)))
-Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_unionᵢₓ'. -/
-theorem tendstoLocallyUniformlyOn_unionᵢ {S : γ → Set α} (hS : ∀ i, IsOpen (S i))
+ forall {α : Type.{u2}} {β : Type.{u3}} {γ : Type.{u4}} [ι : UniformSpace.{u3} β] {_inst_1 : γ -> α -> β} {F : α -> β} {f : Filter.{u4} γ} [p : TopologicalSpace.{u2} α] {_inst_2 : Sort.{u1}} {S : _inst_2 -> (Set.{u2} α)}, (forall (i : _inst_2), IsOpen.{u2} α p (S i)) -> (forall (i : _inst_2), TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (S i)) -> (TendstoLocallyUniformlyOn.{u2, u3, u4} α β γ ι p _inst_1 F f (Set.iUnion.{u2, u1} α _inst_2 (fun (i : _inst_2) => S i)))
+Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnionₓ'. -/
+theorem tendstoLocallyUniformlyOn_iUnion {S : γ → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) : TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
by
rintro v hv x ⟨_, ⟨i, rfl⟩, hi : x ∈ S i⟩
@@ -978,25 +978,25 @@ theorem tendstoLocallyUniformlyOn_unionᵢ {S : γ → Set α} (hS : ∀ i, IsOp
refine' ⟨t, _, ht'⟩
rw [(hS _).nhdsWithin_eq hi] at ht
exact mem_nhdsWithin_of_mem_nhds ht
-#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_unionᵢ
+#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
-#print tendstoLocallyUniformlyOn_bunionᵢ /-
-theorem tendstoLocallyUniformlyOn_bunionᵢ {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
+#print tendstoLocallyUniformlyOn_biUnion /-
+theorem tendstoLocallyUniformlyOn_biUnion {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
(h : ∀ i ∈ s, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i ∈ s, S i) :=
by
rw [bUnion_eq_Union]
- exact tendstoLocallyUniformlyOn_unionᵢ (fun i => hS _ i.2) fun i => h _ i.2
-#align tendsto_locally_uniformly_on_bUnion tendstoLocallyUniformlyOn_bunionᵢ
+ exact tendstoLocallyUniformlyOn_iUnion (fun i => hS _ i.2) fun i => h _ i.2
+#align tendsto_locally_uniformly_on_bUnion tendstoLocallyUniformlyOn_biUnion
-/
-#print tendstoLocallyUniformlyOn_unionₛ /-
-theorem tendstoLocallyUniformlyOn_unionₛ (S : Set (Set α)) (hS : ∀ s ∈ S, IsOpen s)
+#print tendstoLocallyUniformlyOn_sUnion /-
+theorem tendstoLocallyUniformlyOn_sUnion (S : Set (Set α)) (hS : ∀ s ∈ S, IsOpen s)
(h : ∀ s ∈ S, TendstoLocallyUniformlyOn F f p s) : TendstoLocallyUniformlyOn F f p (⋃₀ S) :=
by
rw [sUnion_eq_bUnion]
- exact tendstoLocallyUniformlyOn_bunionᵢ hS h
-#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_unionₛ
+ exact tendstoLocallyUniformlyOn_biUnion hS h
+#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_sUnion
-/
/- warning: tendsto_locally_uniformly_on.union -> TendstoLocallyUniformlyOn.union is a dubious translation:
@@ -1010,7 +1010,7 @@ theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s
TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) :=
by
rw [← sUnion_pair]
- refine' tendstoLocallyUniformlyOn_unionₛ _ _ _ <;> simp [*]
+ refine' tendstoLocallyUniformlyOn_sUnion _ _ _ <;> simp [*]
#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.union
#print tendstoLocallyUniformlyOn_univ /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -1087,7 +1087,7 @@ lean 3 declaration is
but is expected to have type
forall {α : Type.{u1}} {β : Type.{u2}} {ι : Type.{u3}} [_inst_1 : UniformSpace.{u2} β] {s : Set.{u1} α} [_inst_2 : TopologicalSpace.{u1} α] [_inst_3 : LocallyCompactSpace.{u1} α _inst_2] (G : ι -> α -> β) (g : α -> β) (p : Filter.{u3} ι), (IsOpen.{u1} α _inst_2 s) -> (List.TFAE (List.cons.{0} Prop (TendstoLocallyUniformlyOn.{u1, u2, u3} α β ι _inst_1 _inst_2 G g p s) (List.cons.{0} Prop (forall (K : Set.{u1} α), (HasSubset.Subset.{u1} (Set.{u1} α) (Set.instHasSubsetSet.{u1} α) K s) -> (IsCompact.{u1} α _inst_2 K) -> (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p K)) (List.cons.{0} Prop (forall (x : α), (Membership.mem.{u1, u1} α (Set.{u1} α) (Set.instMembershipSet.{u1} α) x s) -> (Exists.{succ u1} (Set.{u1} α) (fun (v : Set.{u1} α) => And (Membership.mem.{u1, u1} (Set.{u1} α) (Filter.{u1} α) (instMembershipSetFilter.{u1} α) v (nhdsWithin.{u1} α _inst_2 x s)) (TendstoUniformlyOn.{u1, u2, u3} α β ι _inst_1 G g p v)))) (List.nil.{0} Prop)))))
Case conversion may be inaccurate. Consider using '#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAEₓ'. -/
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
TFAE
@@ -1109,7 +1109,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
tfae_finish
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (K «expr ⊆ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (K «expr ⊆ » s) -/
#print tendstoLocallyUniformlyOn_iff_forall_isCompact /-
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -68,7 +68,6 @@ open Topology Uniformity Filter Set
universe u v w x
variable {α : Type u} {β : Type v} {γ : Type w} {ι : Type x} [UniformSpace β]
-
variable {F : ι → α → β} {f : α → β} {s s' : Set α} {x : α} {p : Filter ι} {p' : Filter α}
{g : ι → α}
@@ -367,7 +367,7 @@ theorem Filter.Tendsto.tendstoUniformlyOn_const {g : ι → β} {b : β} (hg : T
tendstoUniformlyOn_iff_tendstoUniformlyOnFilter.mpr (hg.tendstoUniformlyOnFilter_const (𝓟 s))
#align filter.tendsto.tendsto_uniformly_on_const Filter.Tendsto.tendstoUniformlyOn_const
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
theorem UniformContinuousOn.tendstoUniformlyOn [UniformSpace α] [UniformSpace γ] {x : α} {U : Set α}
{V : Set β} {F : α → β → γ} (hF : UniformContinuousOn (↿F) (U ×ˢ V)) (hU : x ∈ U) :
TendstoUniformlyOn F (F x) (𝓝[U] x) V := by
@@ -613,7 +613,7 @@ theorem tendstoLocallyUniformlyOn_univ :
simp [TendstoLocallyUniformlyOn, TendstoLocallyUniformly, nhdsWithin_univ]
#align tendsto_locally_uniformly_on_univ tendstoLocallyUniformlyOn_univ
--- Porting note: new lemma
+-- Porting note (#10756): new lemma
theorem tendstoLocallyUniformlyOn_iff_forall_tendsto :
TendstoLocallyUniformlyOn F f p s ↔
∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝[s] x) (𝓤 β) :=
We have UniformCauchySeqOn.cauchy_map
. This is the special case of that if one wants exactly CauchySeq
, which is a Cauchy map specialized to atTop
.
@@ -551,6 +551,13 @@ theorem UniformCauchySeqOn.cauchy_map [hp : NeBot p] (hf : UniformCauchySeqOn F
filter_upwards [hf u hu] with p hp using hp x hx
#align uniform_cauchy_seq_on.cauchy_map UniformCauchySeqOn.cauchy_map
+/-- If a sequence of functions is uniformly Cauchy on a set, then the values at each point form
+a Cauchy sequence. See `UniformCauchSeqOn.cauchy_map` for the non-`atTop` case. -/
+theorem UniformCauchySeqOn.cauchySeq [Nonempty ι] [SemilatticeSup ι]
+ (hf : UniformCauchySeqOn F atTop s) (hx : x ∈ s) :
+ CauchySeq fun i ↦ F i x :=
+ hf.cauchy_map (hp := atTop_neBot) hx
+
section SeqTendsto
theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCountablyGenerated]
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -134,7 +134,7 @@ def TendstoUniformly (F : ι → α → β) (f : α → β) (p : Filter ι) :=
∀ u ∈ 𝓤 β, ∀ᶠ n in p, ∀ x : α, (f x, F n x) ∈ u
#align tendsto_uniformly TendstoUniformly
--- porting note: moved from below
+-- Porting note: moved from below
theorem tendstoUniformlyOn_univ : TendstoUniformlyOn F f p univ ↔ TendstoUniformly F f p := by
simp [TendstoUniformlyOn, TendstoUniformly]
#align tendsto_uniformly_on_univ tendstoUniformlyOn_univ
@@ -184,7 +184,7 @@ theorem TendstoUniformly.tendsto_at (h : TendstoUniformly F f p) (x : α) :
h.tendstoUniformlyOnFilter.tendsto_at le_top
#align tendsto_uniformly.tendsto_at TendstoUniformly.tendsto_at
--- porting note: tendstoUniformlyOn_univ moved up
+-- Porting note: tendstoUniformlyOn_univ moved up
theorem TendstoUniformlyOnFilter.mono_left {p'' : Filter ι} (h : TendstoUniformlyOnFilter F f p p')
(hp : p'' ≤ p) : TendstoUniformlyOnFilter F f p'' p' := fun u hu =>
@@ -367,7 +367,7 @@ theorem Filter.Tendsto.tendstoUniformlyOn_const {g : ι → β} {b : β} (hg : T
tendstoUniformlyOn_iff_tendstoUniformlyOnFilter.mpr (hg.tendstoUniformlyOnFilter_const (𝓟 s))
#align filter.tendsto.tendsto_uniformly_on_const Filter.Tendsto.tendstoUniformlyOn_const
--- porting note: new lemma
+-- Porting note: new lemma
theorem UniformContinuousOn.tendstoUniformlyOn [UniformSpace α] [UniformSpace γ] {x : α} {U : Set α}
{V : Set β} {F : α → β → γ} (hF : UniformContinuousOn (↿F) (U ×ˢ V)) (hU : x ∈ U) :
TendstoUniformlyOn F (F x) (𝓝[U] x) V := by
@@ -606,7 +606,7 @@ theorem tendstoLocallyUniformlyOn_univ :
simp [TendstoLocallyUniformlyOn, TendstoLocallyUniformly, nhdsWithin_univ]
#align tendsto_locally_uniformly_on_univ tendstoLocallyUniformlyOn_univ
--- porting note: new lemma
+-- Porting note: new lemma
theorem tendstoLocallyUniformlyOn_iff_forall_tendsto :
TendstoLocallyUniformlyOn F f p s ↔
∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝[s] x) (𝓤 β) :=
@@ -648,7 +648,7 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
exact ⟨t, nhdsWithin_mono x h' ht, H.mono fun n => id⟩
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
--- porting note: generalized from `Type` to `Sort`
+-- Porting note: generalized from `Type` to `Sort`
theorem tendstoLocallyUniformlyOn_iUnion {ι' : Sort*} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
@@ -677,7 +677,7 @@ theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s
refine' tendstoLocallyUniformlyOn_sUnion _ _ _ <;> simp [*]
#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.union
--- porting note: tendstoLocallyUniformlyOn_univ moved up
+-- Porting note: tendstoLocallyUniformlyOn_univ moved up
protected theorem TendstoLocallyUniformly.tendstoLocallyUniformlyOn
(h : TendstoLocallyUniformly F f p) : TendstoLocallyUniformlyOn F f p s :=
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -449,7 +449,7 @@ theorem UniformCauchySeqOnFilter.tendstoUniformlyOnFilter_of_tendsto [NeBot p]
-- But we need to promote hF' to the full product filter to use it
have hmc : ∀ᶠ x in (p ×ˢ p) ×ˢ p', Tendsto (fun n : ι => F n x.snd) p (𝓝 (f x.snd)) := by
rw [eventually_prod_iff]
- refine' ⟨fun _ => True, by simp, _, hF', by simp⟩
+ exact ⟨fun _ => True, by simp, _, hF', by simp⟩
-- To apply filter operations we'll need to do some order manipulation
rw [Filter.eventually_swap_iff]
have := tendsto_prodAssoc.eventually (tendsto_prod_swap.eventually ((hF t ht).and hmc))
@@ -525,7 +525,7 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type*} [UniformSpace β'] {F'
rw [← Set.image_subset_iff] at hvw
apply (tendsto_swap4_prod.eventually ((h v hv).prod_mk (h' w hw))).mono
intro x hx a b ha hb
- refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
+ exact hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
#align uniform_cauchy_seq_on.prod_map UniformCauchySeqOn.prod_map
theorem UniformCauchySeqOn.prod {ι' β' : Type*} [UniformSpace β'] {F' : ι' → α → β'}
@@ -738,7 +738,7 @@ theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α
tfae_have 2 → 3
· rintro h x hx
obtain ⟨K, ⟨hK1, hK2⟩, hK3⟩ := (compact_basis_nhds x).mem_iff.mp (hs.mem_nhds hx)
- refine' ⟨K, nhdsWithin_le_nhds hK1, h K hK3 hK2⟩
+ exact ⟨K, nhdsWithin_le_nhds hK1, h K hK3 hK2⟩
tfae_have 3 → 1
· rintro h u hu x hx
obtain ⟨v, hv1, hv2⟩ := h x hx
@@ -760,7 +760,7 @@ theorem tendstoLocallyUniformlyOn_iff_filter :
exact ⟨_, hs2, _, eventually_of_mem hs1 fun x => id, fun hi y hy => hi y hy⟩
· rintro h u hu x hx
obtain ⟨pa, hpa, pb, hpb, h⟩ := h x hx u hu
- refine' ⟨pb, hpb, eventually_of_mem hpa fun i hi y hy => h hi hy⟩
+ exact ⟨pb, hpb, eventually_of_mem hpa fun i hi y hy => h hi hy⟩
#align tendsto_locally_uniformly_on_iff_filter tendstoLocallyUniformlyOn_iff_filter
theorem tendstoLocallyUniformly_iff_filter :
@@ -150,7 +150,7 @@ theorem TendstoUniformly.tendstoUniformlyOnFilter (h : TendstoUniformly F f p) :
theorem tendstoUniformlyOn_iff_tendstoUniformly_comp_coe :
TendstoUniformlyOn F f p s ↔ TendstoUniformly (fun i (x : s) => F i x) (f ∘ (↑)) p :=
- forall₂_congr <| fun u _ => by simp
+ forall₂_congr fun u _ => by simp
#align tendsto_uniformly_on_iff_tendsto_uniformly_comp_coe tendstoUniformlyOn_iff_tendstoUniformly_comp_coe
/-- A sequence of functions `Fₙ` converges uniformly to a limiting function `f` w.r.t.
@@ -376,7 +376,7 @@ theorem UniformContinuousOn.tendstoUniformlyOn [UniformSpace α] [UniformSpace
change Tendsto (Prod.map (↿F) ↿F ∘ φ) (𝓝[U] x ×ˢ 𝓟 V) (𝓤 γ)
simp only [nhdsWithin, SProd.sprod, Filter.prod, comap_inf, inf_assoc, comap_principal,
inf_principal]
- refine hF.comp (Tendsto.inf ?_ <| tendsto_principal_principal.2 <| fun x hx => ⟨⟨hU, hx.2⟩, hx⟩)
+ refine hF.comp (Tendsto.inf ?_ <| tendsto_principal_principal.2 fun x hx => ⟨⟨hU, hx.2⟩, hx⟩)
simp only [uniformity_prod_eq_comap_prod, tendsto_comap_iff, (· ∘ ·),
nhds_eq_comap_uniformity, comap_comap]
exact tendsto_comap.prod_mk (tendsto_diag_uniformity _ _)
@@ -652,7 +652,7 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
theorem tendstoLocallyUniformlyOn_iUnion {ι' : Sort*} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
- (isOpen_iUnion hS).tendstoLocallyUniformlyOn_iff_forall_tendsto.2 $ fun _x hx =>
+ (isOpen_iUnion hS).tendstoLocallyUniformlyOn_iff_forall_tendsto.2 fun _x hx =>
let ⟨i, hi⟩ := mem_iUnion.1 hx
(hS i).tendstoLocallyUniformlyOn_iff_forall_tendsto.1 (h i) _ hi
#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
filter_upwards
(#7719)
mathport was forgetting a space in filter_upwards [...]with
instead of filter_upwards [...] with
.
@@ -221,7 +221,7 @@ theorem TendstoUniformlyOn.congr {F' : ι → α → β} (hf : TendstoUniformlyO
theorem TendstoUniformlyOn.congr_right {g : α → β} (hf : TendstoUniformlyOn F f p s)
(hfg : EqOn f g s) : TendstoUniformlyOn F g p s := fun u hu => by
- filter_upwards [hf u hu]with i hi a ha using hfg ha ▸ hi a ha
+ filter_upwards [hf u hu] with i hi a ha using hfg ha ▸ hi a ha
#align tendsto_uniformly_on.congr_right TendstoUniformlyOn.congr_right
protected theorem TendstoUniformly.tendstoUniformlyOn (h : TendstoUniformly F f p) :
@@ -548,7 +548,7 @@ theorem UniformCauchySeqOn.cauchy_map [hp : NeBot p] (hf : UniformCauchySeqOn F
simp only [cauchy_map_iff, hp, true_and_iff]
intro u hu
rw [mem_map]
- filter_upwards [hf u hu]with p hp using hp x hx
+ filter_upwards [hf u hu] with p hp using hp x hx
#align uniform_cauchy_seq_on.cauchy_map UniformCauchySeqOn.cauchy_map
section SeqTendsto
@@ -785,7 +785,7 @@ theorem TendstoLocallyUniformlyOn.congr {G : ι → α → β} (hf : TendstoLoca
rintro u hu x hx
obtain ⟨t, ht, h⟩ := hf u hu x hx
refine' ⟨s ∩ t, inter_mem self_mem_nhdsWithin ht, _⟩
- filter_upwards [h]with i hi y hy using hg i hy.1 ▸ hi y hy.2
+ filter_upwards [h] with i hi y hy using hg i hy.1 ▸ hi y hy.2
#align tendsto_locally_uniformly_on.congr TendstoLocallyUniformlyOn.congr
theorem TendstoLocallyUniformlyOn.congr_right {g : α → β} (hf : TendstoLocallyUniformlyOn F f p s)
@@ -793,7 +793,7 @@ theorem TendstoLocallyUniformlyOn.congr_right {g : α → β} (hf : TendstoLocal
rintro u hu x hx
obtain ⟨t, ht, h⟩ := hf u hu x hx
refine' ⟨s ∩ t, inter_mem self_mem_nhdsWithin ht, _⟩
- filter_upwards [h]with i hi y hy using hg hy.1 ▸ hi y hy.2
+ filter_upwards [h] with i hi y hy using hg hy.1 ▸ hi y hy.2
#align tendsto_locally_uniformly_on.congr_right TendstoLocallyUniformlyOn.congr_right
/-!
This will improve spaces in the mathlib4 docs.
@@ -916,7 +916,7 @@ this paragraph, we prove variations around this statement.
/-- If `Fₙ` converges locally uniformly on a neighborhood of `x` within a set `s` to a function `f`
-which is continuous at `x` within `s `, and `gₙ` tends to `x` within `s`, then `Fₙ (gₙ)` tends
+which is continuous at `x` within `s`, and `gₙ` tends to `x` within `s`, then `Fₙ (gₙ)` tends
to `f x`. -/
theorem tendsto_comp_of_locally_uniform_limit_within (h : ContinuousWithinAt f s x)
(hg : Tendsto g p (𝓝[s] x))
@@ -112,8 +112,9 @@ theorem tendstoUniformlyOn_iff_tendstoUniformlyOnFilter :
simp
#align tendsto_uniformly_on_iff_tendsto_uniformly_on_filter tendstoUniformlyOn_iff_tendstoUniformlyOnFilter
-alias tendstoUniformlyOn_iff_tendstoUniformlyOnFilter ↔
- TendstoUniformlyOn.tendstoUniformlyOnFilter TendstoUniformlyOnFilter.tendstoUniformlyOn
+
+alias ⟨TendstoUniformlyOn.tendstoUniformlyOnFilter, TendstoUniformlyOnFilter.tendstoUniformlyOn⟩ :=
+ tendstoUniformlyOn_iff_tendstoUniformlyOnFilter
#align tendsto_uniformly_on.tendsto_uniformly_on_filter TendstoUniformlyOn.tendstoUniformlyOnFilter
#align tendsto_uniformly_on_filter.tendsto_uniformly_on TendstoUniformlyOnFilter.tendstoUniformlyOn
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -269,7 +269,7 @@ theorem UniformContinuous.comp_tendstoUniformly [UniformSpace γ] {g : β → γ
TendstoUniformly (fun i => g ∘ F i) (g ∘ f) p := fun _u hu => h _ (hg hu)
#align uniform_continuous.comp_tendsto_uniformly UniformContinuous.comp_tendstoUniformly
-theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
+theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type*} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {q : Filter ι'} {q' : Filter α'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q q') :
TendstoUniformlyOnFilter (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f')
@@ -279,7 +279,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
convert h.prod_map h' -- seems to be faster than `exact` here
#align tendsto_uniformly_on_filter.prod_map TendstoUniformlyOnFilter.prod_map
-theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
+theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type*} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} {s' : Set α'} (h : TendstoUniformlyOn F f p s)
(h' : TendstoUniformlyOn F' f' p' s') :
TendstoUniformlyOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p')
@@ -288,14 +288,14 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
simpa only [prod_principal_principal] using h.prod_map h'
#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_map
-theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
+theorem TendstoUniformly.prod_map {ι' α' β' : Type*} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p') := by
rw [← tendstoUniformlyOn_univ, ← univ_prod_univ] at *
exact h.prod_map h'
#align tendsto_uniformly.prod_map TendstoUniformly.prod_map
-theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
+theorem TendstoUniformlyOnFilter.prod {ι' β' : Type*} [UniformSpace β'] {F' : ι' → α → β'}
{f' : α → β'} {q : Filter ι'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q p') :
TendstoUniformlyOnFilter (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
@@ -303,14 +303,14 @@ theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F'
fun u hu => ((h.prod_map h') u hu).diag_of_prod_right
#align tendsto_uniformly_on_filter.prod TendstoUniformlyOnFilter.prod
-theorem TendstoUniformlyOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
+theorem TendstoUniformlyOn.prod {ι' β' : Type*} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformlyOn F f p s) (h' : TendstoUniformlyOn F' f' p' s) :
TendstoUniformlyOn (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
(p.prod p') s :=
(congr_arg _ s.inter_self).mp ((h.prod_map h').comp fun a => (a, a))
#align tendsto_uniformly_on.prod TendstoUniformlyOn.prod
-theorem TendstoUniformly.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
+theorem TendstoUniformly.prod {ι' β' : Type*} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
(p ×ˢ p') :=
@@ -491,7 +491,7 @@ theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (h
#align uniform_cauchy_seq_on.mono UniformCauchySeqOn.mono
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
-theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilter F p p')
+theorem UniformCauchySeqOnFilter.comp {γ : Type*} (hf : UniformCauchySeqOnFilter F p p')
(g : γ → α) : UniformCauchySeqOnFilter (fun n => F n ∘ g) p (p'.comap g) := fun u hu => by
obtain ⟨pa, hpa, pb, hpb, hpapb⟩ := eventually_prod_iff.mp (hf u hu)
rw [eventually_prod_iff]
@@ -500,7 +500,7 @@ theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilt
#align uniform_cauchy_seq_on_filter.comp UniformCauchySeqOnFilter.comp
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
-theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
+theorem UniformCauchySeqOn.comp {γ : Type*} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s) := by
rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
simpa only [UniformCauchySeqOn, comap_principal] using hf.comp g
@@ -513,7 +513,7 @@ theorem UniformContinuous.comp_uniformCauchySeqOn [UniformSpace γ] {g : β →
UniformCauchySeqOn (fun n => g ∘ F n) p s := fun _u hu => hf _ (hg hu)
#align uniform_continuous.comp_uniform_cauchy_seq_on UniformContinuous.comp_uniformCauchySeqOn
-theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
+theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type*} [UniformSpace β'] {F' : ι' → α' → β'}
{p' : Filter ι'} {s' : Set α'} (h : UniformCauchySeqOn F p s)
(h' : UniformCauchySeqOn F' p' s') :
UniformCauchySeqOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (p ×ˢ p') (s ×ˢ s') := by
@@ -527,13 +527,13 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
refine' hvw ⟨_, mk_mem_prod (hx.1 a ha) (hx.2 b hb), rfl⟩
#align uniform_cauchy_seq_on.prod_map UniformCauchySeqOn.prod_map
-theorem UniformCauchySeqOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
+theorem UniformCauchySeqOn.prod {ι' β' : Type*} [UniformSpace β'] {F' : ι' → α → β'}
{p' : Filter ι'} (h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p' s) :
UniformCauchySeqOn (fun (i : ι × ι') a => (F i.fst a, F' i.snd a)) (p ×ˢ p') s :=
(congr_arg _ s.inter_self).mp ((h.prod_map h').comp fun a => (a, a))
#align uniform_cauchy_seq_on.prod UniformCauchySeqOn.prod
-theorem UniformCauchySeqOn.prod' {β' : Type _} [UniformSpace β'] {F' : ι → α → β'}
+theorem UniformCauchySeqOn.prod' {β' : Type*} [UniformSpace β'] {F' : ι → α → β'}
(h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p s) :
UniformCauchySeqOn (fun (i : ι) a => (F i a, F' i a)) p s := fun u hu =>
have hh : Tendsto (fun x : ι => (x, x)) p (p ×ˢ p) := tendsto_diag
@@ -648,7 +648,7 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
-- porting note: generalized from `Type` to `Sort`
-theorem tendstoLocallyUniformlyOn_iUnion {ι' : Sort _} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
+theorem tendstoLocallyUniformlyOn_iUnion {ι' : Sort*} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
(isOpen_iUnion hS).tendstoLocallyUniformlyOn_iff_forall_tendsto.2 $ fun _x hx =>
@@ -2,16 +2,13 @@
Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module topology.uniform_space.uniform_convergence
-! leanprover-community/mathlib commit 2705404e701abc6b3127da906f40bae062a169c9
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Separation
import Mathlib.Topology.UniformSpace.Basic
import Mathlib.Topology.UniformSpace.Cauchy
+#align_import topology.uniform_space.uniform_convergence from "leanprover-community/mathlib"@"2705404e701abc6b3127da906f40bae062a169c9"
+
/-!
# Uniform convergence
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -214,9 +214,9 @@ theorem TendstoUniformlyOnFilter.congr {F' : ι → α → β} (hf : TendstoUnif
theorem TendstoUniformlyOn.congr {F' : ι → α → β} (hf : TendstoUniformlyOn F f p s)
(hff' : ∀ᶠ n in p, Set.EqOn (F n) (F' n) s) : TendstoUniformlyOn F' f p s := by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at hf⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at hf ⊢
refine' hf.congr _
- rw [eventually_iff] at hff'⊢
+ rw [eventually_iff] at hff' ⊢
simp only [Set.EqOn] at hff'
simp only [mem_prod_principal, hff', mem_setOf_eq]
#align tendsto_uniformly_on.congr TendstoUniformlyOn.congr
@@ -241,14 +241,14 @@ theorem TendstoUniformlyOnFilter.comp (h : TendstoUniformlyOnFilter F f p p') (g
/-- Composing on the right by a function preserves uniform convergence on a set -/
theorem TendstoUniformlyOn.comp (h : TendstoUniformlyOn F f p s) (g : γ → α) :
TendstoUniformlyOn (fun n => F n ∘ g) (f ∘ g) p (g ⁻¹' s) := by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h ⊢
simpa [TendstoUniformlyOn, comap_principal] using TendstoUniformlyOnFilter.comp h g
#align tendsto_uniformly_on.comp TendstoUniformlyOn.comp
/-- Composing on the right by a function preserves uniform convergence -/
theorem TendstoUniformly.comp (h : TendstoUniformly F f p) (g : γ → α) :
TendstoUniformly (fun n => F n ∘ g) (f ∘ g) p := by
- rw [tendstoUniformly_iff_tendstoUniformlyOnFilter] at h⊢
+ rw [tendstoUniformly_iff_tendstoUniformlyOnFilter] at h ⊢
simpa [principal_univ, comap_principal] using h.comp g
#align tendsto_uniformly.comp TendstoUniformly.comp
@@ -287,7 +287,7 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
(h' : TendstoUniformlyOn F' f' p' s') :
TendstoUniformlyOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p')
(s ×ˢ s') := by
- rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h'⊢
+ rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h' ⊢
simpa only [prod_principal_principal] using h.prod_map h'
#align tendsto_uniformly_on.prod_map TendstoUniformlyOn.prod_map
@@ -489,7 +489,7 @@ theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauch
theorem UniformCauchySeqOn.mono {s' : Set α} (hf : UniformCauchySeqOn F p s) (hss' : s' ⊆ s) :
UniformCauchySeqOn F p s' := by
- rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf⊢
+ rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
exact hf.mono_right (le_principal_iff.mpr <| mem_principal.mpr hss')
#align uniform_cauchy_seq_on.mono UniformCauchySeqOn.mono
@@ -505,7 +505,7 @@ theorem UniformCauchySeqOnFilter.comp {γ : Type _} (hf : UniformCauchySeqOnFilt
/-- Composing on the right by a function preserves uniform Cauchy sequences -/
theorem UniformCauchySeqOn.comp {γ : Type _} (hf : UniformCauchySeqOn F p s) (g : γ → α) :
UniformCauchySeqOn (fun n => F n ∘ g) p (g ⁻¹' s) := by
- rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf⊢
+ rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf ⊢
simpa only [UniformCauchySeqOn, comap_principal] using hf.comp g
#align uniform_cauchy_seq_on.comp UniformCauchySeqOn.comp
@@ -568,7 +568,7 @@ theorem tendstoUniformlyOn_of_seq_tendstoUniformlyOn {l : Filter ι} [l.IsCounta
theorem TendstoUniformlyOn.seq_tendstoUniformlyOn {l : Filter ι} (h : TendstoUniformlyOn F f l s)
(u : ℕ → ι) (hu : Tendsto u atTop l) : TendstoUniformlyOn (fun n => F (u n)) f atTop s := by
- rw [tendstoUniformlyOn_iff_tendsto] at h⊢
+ rw [tendstoUniformlyOn_iff_tendsto] at h ⊢
exact h.comp ((hu.comp tendsto_fst).prod_mk tendsto_snd)
#align tendsto_uniformly_on.seq_tendsto_uniformly_on TendstoUniformlyOn.seq_tendstoUniformlyOn
@@ -723,7 +723,7 @@ theorem TendstoLocallyUniformlyOn.comp [TopologicalSpace γ] {t : Set γ}
theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUniformly F f p)
(g : γ → α) (cg : Continuous g) : TendstoLocallyUniformly (fun n => F n ∘ g) (f ∘ g) p := by
- rw [← tendstoLocallyUniformlyOn_univ] at h⊢
+ rw [← tendstoLocallyUniformlyOn_univ] at h ⊢
rw [continuous_iff_continuousOn_univ] at cg
exact h.comp _ (mapsTo_univ _ _) cg
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
@@ -355,7 +355,7 @@ theorem tendstoUniformlyOn_singleton_iff_tendsto :
#align tendsto_uniformly_on_singleton_iff_tendsto tendstoUniformlyOn_singleton_iff_tendsto
/-- If a sequence `g` converges to some `b`, then the sequence of constant functions
-`λ n, λ a, g n` converges to the constant function `λ a, b` on any set `s` -/
+`fun n ↦ fun a ↦ g n` converges to the constant function `fun a ↦ b` on any set `s` -/
theorem Filter.Tendsto.tendstoUniformlyOnFilter_const {g : ι → β} {b : β} (hg : Tendsto g p (𝓝 b))
(p' : Filter α) :
TendstoUniformlyOnFilter (fun n : ι => fun _ : α => g n) (fun _ : α => b) p p' := by
@@ -363,7 +363,7 @@ theorem Filter.Tendsto.tendstoUniformlyOnFilter_const {g : ι → β} {b : β} (
#align filter.tendsto.tendsto_uniformly_on_filter_const Filter.Tendsto.tendstoUniformlyOnFilter_const
/-- If a sequence `g` converges to some `b`, then the sequence of constant functions
-`λ n, λ a, g n` converges to the constant function `λ a, b` on any set `s` -/
+`fun n ↦ fun a ↦ g n` converges to the constant function `fun a ↦ b` on any set `s` -/
theorem Filter.Tendsto.tendstoUniformlyOn_const {g : ι → β} {b : β} (hg : Tendsto g p (𝓝 b))
(s : Set α) : TendstoUniformlyOn (fun n : ι => fun _ : α => g n) (fun _ : α => b) p s :=
tendstoUniformlyOn_iff_tendstoUniformlyOnFilter.mpr (hg.tendstoUniformlyOnFilter_const (𝓟 s))
Protect HasFTaylorSeriesUpToOn.fderivWithin
,
IsBoundedBilinearMap.fderiv
, and
IsBoundedBilinearMap.fderivWithin
.
Rename
isBoundedBilinearMapSmul
-> isBoundedBilinearMap_smul
;isBoundedBilinearMapMul
-> isBoundedBilinearMap_mul
;isBoundedBilinearMapComp
-> isBoundedBilinearMap_comp
;isBoundedBilinearMapSmulRight
-> isBoundedBilinearMap_smulRight
;isBoundedBilinearMapCompMultilinear
-> isBoundedBilinearMap_compMultilinear
;ContinuousLinearMap.mulLeftRightIsBoundedBilinear
-> ContinuousLinearMap.mulLeftRight_isBoundedBilinear
;nhdsWithin_eq_nhds_within'
-> nhdsWithin_eq_nhdsWithin'
;ContinuousWithinAt.preimage_mem_nhds_within'
-> ContinuousWithinAt.preimage_mem_nhdsWithin'
.Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -717,7 +717,7 @@ theorem TendstoLocallyUniformlyOn.comp [TopologicalSpace γ] {t : Set γ}
intro u hu x hx
rcases h u hu (g x) (hg hx) with ⟨a, ha, H⟩
have : g ⁻¹' a ∈ 𝓝[t] x :=
- (cg x hx).preimage_mem_nhds_within' (nhdsWithin_mono (g x) hg.image_subset ha)
+ (cg x hx).preimage_mem_nhdsWithin' (nhdsWithin_mono (g x) hg.image_subset ha)
exact ⟨g ⁻¹' a, this, H.mono fun n hn y hy => hn _ hy⟩
#align tendsto_locally_uniformly_on.comp TendstoLocallyUniformlyOn.comp
@@ -728,21 +728,24 @@ theorem TendstoLocallyUniformly.comp [TopologicalSpace γ] (h : TendstoLocallyUn
exact h.comp _ (mapsTo_univ _ _) cg
#align tendsto_locally_uniformly.comp TendstoLocallyUniformly.comp
-open List in
theorem tendstoLocallyUniformlyOn_TFAE [LocallyCompactSpace α] (G : ι → α → β) (g : α → β)
(p : Filter ι) (hs : IsOpen s) :
- TFAE [TendstoLocallyUniformlyOn G g p s,
- ∀ K, K ⊆ s → IsCompact K → TendstoUniformlyOn G g p K,
- ∀ x ∈ s, ∃ v ∈ 𝓝[s] x, TendstoUniformlyOn G g p v] := by
- apply_rules [tfae_of_cycle, Chain.cons, Chain.nil] -- porting note: todo: use `tfae_have` or not?
- · exact fun h K hKs hKc =>
- (tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact hKc).mp (h.mono hKs)
+ List.TFAE [
+ TendstoLocallyUniformlyOn G g p s,
+ ∀ K, K ⊆ s → IsCompact K → TendstoUniformlyOn G g p K,
+ ∀ x ∈ s, ∃ v ∈ 𝓝[s] x, TendstoUniformlyOn G g p v] := by
+ tfae_have 1 → 2
+ · rintro h K hK1 hK2
+ exact (tendstoLocallyUniformlyOn_iff_tendstoUniformlyOn_of_compact hK2).mp (h.mono hK1)
+ tfae_have 2 → 3
· rintro h x hx
- obtain ⟨K, ⟨hK1, hK2⟩ ,hK3⟩ := (compact_basis_nhds x).mem_iff.mp (hs.mem_nhds hx)
- refine' ⟨K, nhdsWithin_le_nhds hK1 , h K hK3 hK2 ⟩
+ obtain ⟨K, ⟨hK1, hK2⟩, hK3⟩ := (compact_basis_nhds x).mem_iff.mp (hs.mem_nhds hx)
+ refine' ⟨K, nhdsWithin_le_nhds hK1, h K hK3 hK2⟩
+ tfae_have 3 → 1
· rintro h u hu x hx
obtain ⟨v, hv1, hv2⟩ := h x hx
exact ⟨v, hv1, hv2 u hu⟩
+ tfae_finish
#align tendsto_locally_uniformly_on_tfae tendstoLocallyUniformlyOn_TFAE
theorem tendstoLocallyUniformlyOn_iff_forall_isCompact [LocallyCompactSpace α] (hs : IsOpen s) :
SProd
to implement overloaded notation · ×ˢ ·
(#4200)
Currently, the following notations are changed from · ×ˢ ·
because Lean 4 can't deal with ambiguous notations.
| Definition | Notation |
| :
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>
@@ -84,19 +84,19 @@ We define uniform convergence and locally uniform convergence, on a set or in th
/-- A sequence of functions `Fₙ` converges uniformly on a filter `p'` to a limiting function `f`
with respect to the filter `p` if, for any entourage of the diagonal `u`, one has
-`p ×ᶠ p'`-eventually `(f x, Fₙ x) ∈ u`. -/
+`p ×ˢ p'`-eventually `(f x, Fₙ x) ∈ u`. -/
def TendstoUniformlyOnFilter (F : ι → α → β) (f : α → β) (p : Filter ι) (p' : Filter α) :=
- ∀ u ∈ 𝓤 β, ∀ᶠ n : ι × α in p ×ᶠ p', (f n.snd, F n.fst n.snd) ∈ u
+ ∀ u ∈ 𝓤 β, ∀ᶠ n : ι × α in p ×ˢ p', (f n.snd, F n.fst n.snd) ∈ u
#align tendsto_uniformly_on_filter TendstoUniformlyOnFilter
/--
A sequence of functions `Fₙ` converges uniformly on a filter `p'` to a limiting function `f` w.r.t.
-filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ᶠ p'` to the uniformity.
+filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ˢ p'` to the uniformity.
In other words: one knows nothing about the behavior of `x` in this limit besides it being in `p'`.
-/
theorem tendstoUniformlyOnFilter_iff_tendsto :
TendstoUniformlyOnFilter F f p p' ↔
- Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ᶠ p') (𝓤 β) :=
+ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ˢ p') (𝓤 β) :=
Iff.rfl
#align tendsto_uniformly_on_filter_iff_tendsto tendstoUniformlyOnFilter_iff_tendsto
@@ -121,11 +121,11 @@ alias tendstoUniformlyOn_iff_tendstoUniformlyOnFilter ↔
#align tendsto_uniformly_on_filter.tendsto_uniformly_on TendstoUniformlyOnFilter.tendstoUniformlyOn
/-- A sequence of functions `Fₙ` converges uniformly on a set `s` to a limiting function `f` w.r.t.
-filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ᶠ 𝓟 s` to the uniformity.
+filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ˢ 𝓟 s` to the uniformity.
In other words: one knows nothing about the behavior of `x` in this limit besides it being in `s`.
-/
theorem tendstoUniformlyOn_iff_tendsto {F : ι → α → β} {f : α → β} {p : Filter ι} {s : Set α} :
- TendstoUniformlyOn F f p s ↔ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ᶠ 𝓟 s) (𝓤 β) :=
+ TendstoUniformlyOn F f p s ↔ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ˢ 𝓟 s) (𝓤 β) :=
by simp [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter, tendstoUniformlyOnFilter_iff_tendsto]
#align tendsto_uniformly_on_iff_tendsto tendstoUniformlyOn_iff_tendsto
@@ -156,11 +156,11 @@ theorem tendstoUniformlyOn_iff_tendstoUniformly_comp_coe :
#align tendsto_uniformly_on_iff_tendsto_uniformly_comp_coe tendstoUniformlyOn_iff_tendstoUniformly_comp_coe
/-- A sequence of functions `Fₙ` converges uniformly to a limiting function `f` w.r.t.
-filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ᶠ ⊤` to the uniformity.
+filter `p` iff the function `(n, x) ↦ (f x, Fₙ x)` converges along `p ×ˢ ⊤` to the uniformity.
In other words: one knows nothing about the behavior of `x` in this limit.
-/
theorem tendstoUniformly_iff_tendsto {F : ι → α → β} {f : α → β} {p : Filter ι} :
- TendstoUniformly F f p ↔ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ᶠ ⊤) (𝓤 β) := by
+ TendstoUniformly F f p ↔ Tendsto (fun q : ι × α => (f q.2, F q.1 q.2)) (p ×ˢ ⊤) (𝓤 β) := by
simp [tendstoUniformly_iff_tendstoUniformlyOnFilter, tendstoUniformlyOnFilter_iff_tendsto]
#align tendsto_uniformly_iff_tendsto tendstoUniformly_iff_tendsto
@@ -205,7 +205,7 @@ theorem TendstoUniformlyOn.mono {s' : Set α} (h : TendstoUniformlyOn F f p s) (
#align tendsto_uniformly_on.mono TendstoUniformlyOn.mono
theorem TendstoUniformlyOnFilter.congr {F' : ι → α → β} (hf : TendstoUniformlyOnFilter F f p p')
- (hff' : ∀ᶠ n : ι × α in p ×ᶠ p', F n.fst n.snd = F' n.fst n.snd) :
+ (hff' : ∀ᶠ n : ι × α in p ×ˢ p', F n.fst n.snd = F' n.fst n.snd) :
TendstoUniformlyOnFilter F' f p p' := by
refine' fun u hu => ((hf u hu).and hff').mono fun n h => _
rw [← h.right]
@@ -276,7 +276,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
{f' : α' → β'} {q : Filter ι'} {q' : Filter α'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q q') :
TendstoUniformlyOnFilter (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f')
- (p ×ᶠ q) (p' ×ᶠ q') := by
+ (p ×ˢ q) (p' ×ˢ q') := by
rw [tendstoUniformlyOnFilter_iff_tendsto] at h h' ⊢
rw [uniformity_prod_eq_comap_prod, tendsto_comap_iff, ← map_swap4_prod, tendsto_map'_iff]
convert h.prod_map h' -- seems to be faster than `exact` here
@@ -285,7 +285,7 @@ theorem TendstoUniformlyOnFilter.prod_map {ι' α' β' : Type _} [UniformSpace
theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} {s' : Set α'} (h : TendstoUniformlyOn F f p s)
(h' : TendstoUniformlyOn F' f' p' s') :
- TendstoUniformlyOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ᶠ p')
+ TendstoUniformlyOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p')
(s ×ˢ s') := by
rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter] at h h'⊢
simpa only [prod_principal_principal] using h.prod_map h'
@@ -293,7 +293,7 @@ theorem TendstoUniformlyOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
theorem TendstoUniformly.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{f' : α' → β'} {p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
- TendstoUniformly (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ᶠ p') := by
+ TendstoUniformly (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (Prod.map f f') (p ×ˢ p') := by
rw [← tendstoUniformlyOn_univ, ← univ_prod_univ] at *
exact h.prod_map h'
#align tendsto_uniformly.prod_map TendstoUniformly.prod_map
@@ -302,7 +302,7 @@ theorem TendstoUniformlyOnFilter.prod {ι' β' : Type _} [UniformSpace β'] {F'
{f' : α → β'} {q : Filter ι'} (h : TendstoUniformlyOnFilter F f p p')
(h' : TendstoUniformlyOnFilter F' f' q p') :
TendstoUniformlyOnFilter (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
- (p ×ᶠ q) p' :=
+ (p ×ˢ q) p' :=
fun u hu => ((h.prod_map h') u hu).diag_of_prod_right
#align tendsto_uniformly_on_filter.prod TendstoUniformlyOnFilter.prod
@@ -316,29 +316,29 @@ theorem TendstoUniformlyOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι'
theorem TendstoUniformly.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'} {f' : α → β'}
{p' : Filter ι'} (h : TendstoUniformly F f p) (h' : TendstoUniformly F' f' p') :
TendstoUniformly (fun (i : ι × ι') a => (F i.1 a, F' i.2 a)) (fun a => (f a, f' a))
- (p ×ᶠ p') :=
+ (p ×ˢ p') :=
(h.prod_map h').comp fun a => (a, a)
#align tendsto_uniformly.prod TendstoUniformly.prod
/-- Uniform convergence on a filter `p'` to a constant function is equivalent to convergence in
-`p ×ᶠ p'`. -/
+`p ×ˢ p'`. -/
theorem tendsto_prod_filter_iff {c : β} :
- Tendsto (↿F) (p ×ᶠ p') (𝓝 c) ↔ TendstoUniformlyOnFilter F (fun _ => c) p p' := by
+ Tendsto (↿F) (p ×ˢ p') (𝓝 c) ↔ TendstoUniformlyOnFilter F (fun _ => c) p p' := by
simp_rw [nhds_eq_comap_uniformity, tendsto_comap_iff]
rfl
#align tendsto_prod_filter_iff tendsto_prod_filter_iff
/-- Uniform convergence on a set `s` to a constant function is equivalent to convergence in
-`p ×ᶠ 𝓟 s`. -/
+`p ×ˢ 𝓟 s`. -/
theorem tendsto_prod_principal_iff {c : β} :
- Tendsto (↿F) (p ×ᶠ 𝓟 s) (𝓝 c) ↔ TendstoUniformlyOn F (fun _ => c) p s := by
+ Tendsto (↿F) (p ×ˢ 𝓟 s) (𝓝 c) ↔ TendstoUniformlyOn F (fun _ => c) p s := by
rw [tendstoUniformlyOn_iff_tendstoUniformlyOnFilter]
exact tendsto_prod_filter_iff
#align tendsto_prod_principal_iff tendsto_prod_principal_iff
-/-- Uniform convergence to a constant function is equivalent to convergence in `p ×ᶠ ⊤`. -/
+/-- Uniform convergence to a constant function is equivalent to convergence in `p ×ˢ ⊤`. -/
theorem tendsto_prod_top_iff {c : β} :
- Tendsto (↿F) (p ×ᶠ ⊤) (𝓝 c) ↔ TendstoUniformly F (fun _ => c) p := by
+ Tendsto (↿F) (p ×ˢ ⊤) (𝓝 c) ↔ TendstoUniformly F (fun _ => c) p := by
rw [tendstoUniformly_iff_tendstoUniformlyOnFilter]
exact tendsto_prod_filter_iff
#align tendsto_prod_top_iff tendsto_prod_top_iff
@@ -375,8 +375,9 @@ theorem UniformContinuousOn.tendstoUniformlyOn [UniformSpace α] [UniformSpace
TendstoUniformlyOn F (F x) (𝓝[U] x) V := by
set φ := fun q : α × β => ((x, q.2), q)
rw [tendstoUniformlyOn_iff_tendsto]
- change Tendsto (Prod.map (↿F) ↿F ∘ φ) (𝓝[U] x ×ᶠ 𝓟 V) (𝓤 γ)
- simp only [nhdsWithin, Filter.prod, comap_inf, inf_assoc, comap_principal, inf_principal]
+ change Tendsto (Prod.map (↿F) ↿F ∘ φ) (𝓝[U] x ×ˢ 𝓟 V) (𝓤 γ)
+ simp only [nhdsWithin, SProd.sprod, Filter.prod, comap_inf, inf_assoc, comap_principal,
+ inf_principal]
refine hF.comp (Tendsto.inf ?_ <| tendsto_principal_principal.2 <| fun x hx => ⟨⟨hU, hx.2⟩, hx⟩)
simp only [uniformity_prod_eq_comap_prod, tendsto_comap_iff, (· ∘ ·),
nhds_eq_comap_uniformity, comap_comap]
@@ -397,13 +398,13 @@ theorem UniformContinuous₂.tendstoUniformly [UniformSpace α] [UniformSpace γ
/-- A sequence is uniformly Cauchy if eventually all of its pairwise differences are
uniformly bounded -/
def UniformCauchySeqOnFilter (F : ι → α → β) (p : Filter ι) (p' : Filter α) : Prop :=
- ∀ u ∈ 𝓤 β, ∀ᶠ m : (ι × ι) × α in (p ×ᶠ p) ×ᶠ p', (F m.fst.fst m.snd, F m.fst.snd m.snd) ∈ u
+ ∀ u ∈ 𝓤 β, ∀ᶠ m : (ι × ι) × α in (p ×ˢ p) ×ˢ p', (F m.fst.fst m.snd, F m.fst.snd m.snd) ∈ u
#align uniform_cauchy_seq_on_filter UniformCauchySeqOnFilter
/-- A sequence is uniformly Cauchy if eventually all of its pairwise differences are
uniformly bounded -/
def UniformCauchySeqOn (F : ι → α → β) (p : Filter ι) (s : Set α) : Prop :=
- ∀ u ∈ 𝓤 β, ∀ᶠ m : ι × ι in p ×ᶠ p, ∀ x : α, x ∈ s → (F m.fst x, F m.snd x) ∈ u
+ ∀ u ∈ 𝓤 β, ∀ᶠ m : ι × ι in p ×ˢ p, ∀ x : α, x ∈ s → (F m.fst x, F m.snd x) ∈ u
#align uniform_cauchy_seq_on UniformCauchySeqOn
theorem uniformCauchySeqOn_iff_uniformCauchySeqOnFilter :
@@ -448,7 +449,7 @@ theorem UniformCauchySeqOnFilter.tendstoUniformlyOnFilter_of_tendsto [NeBot p]
rcases comp_symm_of_uniformity hu with ⟨t, ht, htsymm, htmem⟩
-- We will choose n, x, and m simultaneously. n and x come from hF. m comes from hF'
-- But we need to promote hF' to the full product filter to use it
- have hmc : ∀ᶠ x in (p ×ᶠ p) ×ᶠ p', Tendsto (fun n : ι => F n x.snd) p (𝓝 (f x.snd)) := by
+ have hmc : ∀ᶠ x in (p ×ˢ p) ×ˢ p', Tendsto (fun n : ι => F n x.snd) p (𝓝 (f x.snd)) := by
rw [eventually_prod_iff]
refine' ⟨fun _ => True, by simp, _, hF', by simp⟩
-- To apply filter operations we'll need to do some order manipulation
@@ -482,7 +483,7 @@ theorem UniformCauchySeqOnFilter.mono_left {p'' : Filter ι} (hf : UniformCauchy
theorem UniformCauchySeqOnFilter.mono_right {p'' : Filter α} (hf : UniformCauchySeqOnFilter F p p')
(hp : p'' ≤ p') : UniformCauchySeqOnFilter F p p'' := fun u hu =>
- have := (hf u hu).filter_mono ((p ×ᶠ p).prod_mono_right hp)
+ have := (hf u hu).filter_mono ((p ×ˢ p).prod_mono_right hp)
this.mono (by simp)
#align uniform_cauchy_seq_on_filter.mono_right UniformCauchySeqOnFilter.mono_right
@@ -518,7 +519,7 @@ theorem UniformContinuous.comp_uniformCauchySeqOn [UniformSpace γ] {g : β →
theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F' : ι' → α' → β'}
{p' : Filter ι'} {s' : Set α'} (h : UniformCauchySeqOn F p s)
(h' : UniformCauchySeqOn F' p' s') :
- UniformCauchySeqOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (p ×ᶠ p') (s ×ˢ s') := by
+ UniformCauchySeqOn (fun i : ι × ι' => Prod.map (F i.1) (F' i.2)) (p ×ˢ p') (s ×ˢ s') := by
intro u hu
rw [uniformity_prod_eq_prod, mem_map, mem_prod_iff] at hu
obtain ⟨v, hv, w, hw, hvw⟩ := hu
@@ -531,14 +532,14 @@ theorem UniformCauchySeqOn.prod_map {ι' α' β' : Type _} [UniformSpace β'] {F
theorem UniformCauchySeqOn.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι' → α → β'}
{p' : Filter ι'} (h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p' s) :
- UniformCauchySeqOn (fun (i : ι × ι') a => (F i.fst a, F' i.snd a)) (p ×ᶠ p') s :=
+ UniformCauchySeqOn (fun (i : ι × ι') a => (F i.fst a, F' i.snd a)) (p ×ˢ p') s :=
(congr_arg _ s.inter_self).mp ((h.prod_map h').comp fun a => (a, a))
#align uniform_cauchy_seq_on.prod UniformCauchySeqOn.prod
theorem UniformCauchySeqOn.prod' {β' : Type _} [UniformSpace β'] {F' : ι → α → β'}
(h : UniformCauchySeqOn F p s) (h' : UniformCauchySeqOn F' p s) :
UniformCauchySeqOn (fun (i : ι) a => (F i a, F' i a)) p s := fun u hu =>
- have hh : Tendsto (fun x : ι => (x, x)) p (p ×ᶠ p) := tendsto_diag
+ have hh : Tendsto (fun x : ι => (x, x)) p (p ×ˢ p) := tendsto_diag
(hh.prod_map hh).eventually ((h.prod h') u hu)
#align uniform_cauchy_seq_on.prod' UniformCauchySeqOn.prod'
@@ -610,19 +611,19 @@ theorem tendstoLocallyUniformlyOn_univ :
-- porting note: new lemma
theorem tendstoLocallyUniformlyOn_iff_forall_tendsto :
TendstoLocallyUniformlyOn F f p s ↔
- ∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ᶠ 𝓝[s] x) (𝓤 β) :=
+ ∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝[s] x) (𝓤 β) :=
forall₂_swap.trans <| forall₄_congr fun _ _ _ _ => by
rw [mem_map, mem_prod_iff_right]; rfl
nonrec theorem IsOpen.tendstoLocallyUniformlyOn_iff_forall_tendsto (hs : IsOpen s) :
TendstoLocallyUniformlyOn F f p s ↔
- ∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ᶠ 𝓝 x) (𝓤 β) :=
+ ∀ x ∈ s, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝 x) (𝓤 β) :=
tendstoLocallyUniformlyOn_iff_forall_tendsto.trans <| forall₂_congr fun x hx => by
rw [hs.nhdsWithin_eq hx]
theorem tendstoLocallyUniformly_iff_forall_tendsto :
TendstoLocallyUniformly F f p ↔
- ∀ x, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ᶠ 𝓝 x) (𝓤 β) := by
+ ∀ x, Tendsto (fun y : ι × α => (f y.2, F y.1 y.2)) (p ×ˢ 𝓝 x) (𝓤 β) := by
simp [← tendstoLocallyUniformlyOn_univ, isOpen_univ.tendstoLocallyUniformlyOn_iff_forall_tendsto]
#align tendsto_locally_uniformly_iff_forall_tendsto tendstoLocallyUniformly_iff_forall_tendsto
sSup
/iSup
(#3938)
As discussed on Zulip
supₛ
→ sSup
infₛ
→ sInf
supᵢ
→ iSup
infᵢ
→ iInf
bsupₛ
→ bsSup
binfₛ
→ bsInf
bsupᵢ
→ biSup
binfᵢ
→ biInf
csupₛ
→ csSup
cinfₛ
→ csInf
csupᵢ
→ ciSup
cinfᵢ
→ ciInf
unionₛ
→ sUnion
interₛ
→ sInter
unionᵢ
→ iUnion
interᵢ
→ iInter
bunionₛ
→ bsUnion
binterₛ
→ bsInter
bunionᵢ
→ biUnion
binterᵢ
→ biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -650,32 +650,32 @@ theorem TendstoLocallyUniformlyOn.mono (h : TendstoLocallyUniformlyOn F f p s) (
#align tendsto_locally_uniformly_on.mono TendstoLocallyUniformlyOn.mono
-- porting note: generalized from `Type` to `Sort`
-theorem tendstoLocallyUniformlyOn_unionᵢ {ι' : Sort _} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
+theorem tendstoLocallyUniformlyOn_iUnion {ι' : Sort _} {S : ι' → Set α} (hS : ∀ i, IsOpen (S i))
(h : ∀ i, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i, S i) :=
- (isOpen_unionᵢ hS).tendstoLocallyUniformlyOn_iff_forall_tendsto.2 $ fun _x hx =>
- let ⟨i, hi⟩ := mem_unionᵢ.1 hx
+ (isOpen_iUnion hS).tendstoLocallyUniformlyOn_iff_forall_tendsto.2 $ fun _x hx =>
+ let ⟨i, hi⟩ := mem_iUnion.1 hx
(hS i).tendstoLocallyUniformlyOn_iff_forall_tendsto.1 (h i) _ hi
-#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_unionᵢ
+#align tendsto_locally_uniformly_on_Union tendstoLocallyUniformlyOn_iUnion
-theorem tendstoLocallyUniformlyOn_bunionᵢ {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
+theorem tendstoLocallyUniformlyOn_biUnion {s : Set γ} {S : γ → Set α} (hS : ∀ i ∈ s, IsOpen (S i))
(h : ∀ i ∈ s, TendstoLocallyUniformlyOn F f p (S i)) :
TendstoLocallyUniformlyOn F f p (⋃ i ∈ s, S i) :=
- tendstoLocallyUniformlyOn_unionᵢ (fun i => isOpen_unionᵢ (hS i)) fun i =>
- tendstoLocallyUniformlyOn_unionᵢ (hS i) (h i)
-#align tendsto_locally_uniformly_on_bUnion tendstoLocallyUniformlyOn_bunionᵢ
+ tendstoLocallyUniformlyOn_iUnion (fun i => isOpen_iUnion (hS i)) fun i =>
+ tendstoLocallyUniformlyOn_iUnion (hS i) (h i)
+#align tendsto_locally_uniformly_on_bUnion tendstoLocallyUniformlyOn_biUnion
-theorem tendstoLocallyUniformlyOn_unionₛ (S : Set (Set α)) (hS : ∀ s ∈ S, IsOpen s)
+theorem tendstoLocallyUniformlyOn_sUnion (S : Set (Set α)) (hS : ∀ s ∈ S, IsOpen s)
(h : ∀ s ∈ S, TendstoLocallyUniformlyOn F f p s) : TendstoLocallyUniformlyOn F f p (⋃₀ S) := by
- rw [unionₛ_eq_bunionᵢ]
- exact tendstoLocallyUniformlyOn_bunionᵢ hS h
-#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_unionₛ
+ rw [sUnion_eq_biUnion]
+ exact tendstoLocallyUniformlyOn_biUnion hS h
+#align tendsto_locally_uniformly_on_sUnion tendstoLocallyUniformlyOn_sUnion
theorem TendstoLocallyUniformlyOn.union {s₁ s₂ : Set α} (hs₁ : IsOpen s₁) (hs₂ : IsOpen s₂)
(h₁ : TendstoLocallyUniformlyOn F f p s₁) (h₂ : TendstoLocallyUniformlyOn F f p s₂) :
TendstoLocallyUniformlyOn F f p (s₁ ∪ s₂) := by
- rw [← unionₛ_pair]
- refine' tendstoLocallyUniformlyOn_unionₛ _ _ _ <;> simp [*]
+ rw [← sUnion_pair]
+ refine' tendstoLocallyUniformlyOn_sUnion _ _ _ <;> simp [*]
#align tendsto_locally_uniformly_on.union TendstoLocallyUniformlyOn.union
-- porting note: tendstoLocallyUniformlyOn_univ moved up
@@ -695,7 +695,7 @@ theorem tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace [CompactSpa
rw [← eventually_all] at hU
refine' hU.mono fun i hi x => _
specialize ht (mem_univ x)
- simp only [exists_prop, mem_unionᵢ, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
+ simp only [exists_prop, mem_iUnion, SetCoe.exists, exists_and_right, Subtype.coe_mk] at ht
obtain ⟨y, ⟨hy₁, hy₂⟩, hy₃⟩ := ht
exact hi ⟨⟨y, hy₁⟩, hy₂⟩ x hy₃
#align tendsto_locally_uniformly_iff_tendsto_uniformly_of_compact_space tendstoLocallyUniformly_iff_tendstoUniformly_of_compactSpace
closes #3680, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Stepping.20through.20simp_rw/near/326712986
@@ -324,7 +324,7 @@ theorem TendstoUniformly.prod {ι' β' : Type _} [UniformSpace β'] {F' : ι'
`p ×ᶠ p'`. -/
theorem tendsto_prod_filter_iff {c : β} :
Tendsto (↿F) (p ×ᶠ p') (𝓝 c) ↔ TendstoUniformlyOnFilter F (fun _ => c) p p' := by
- simp_rw [nhds_eq_comap_uniformity, tendsto_comap_iff, map_map, le_def, mem_map]
+ simp_rw [nhds_eq_comap_uniformity, tendsto_comap_iff]
rfl
#align tendsto_prod_filter_iff tendsto_prod_filter_iff
The unported dependencies are