@@ -15,26 +15,8 @@ variable {ι : Type*} {U K : Set ℂ} {z : ℂ} {F : ι → ℂ →ᵤ[compacts
15
15
def UniformlyBoundedOn (F : ι → ℂ → ℂ) (U : Set ℂ) : Prop :=
16
16
∀ K ∈ compacts U, ∃ Q, IsCompact Q ∧ ∀ i, MapsTo (F i) K Q
17
17
18
- @[deprecated] def UniformlyBoundedOn'' (F : ι → ℂ → ℂ) (U : Set ℂ) : Prop :=
19
- ∀ K ∈ compacts U, ∃ M > 0 , ∀ z ∈ K, range (eval z ∘ F) ⊆ closedBall 0 M
20
-
21
- lemma uniformlyBoundedOn''_iff_uniformlyBoundedOn (F : ι → ℂ → ℂ) (U : Set ℂ) :
22
- UniformlyBoundedOn'' F U ↔ UniformlyBoundedOn F U := by
23
- constructor <;> intro h K hK
24
- · obtain ⟨M, -, hM2⟩ := h K hK
25
- refine ⟨closedBall 0 M, isCompact_closedBall _ _, fun i z hz => ?_⟩
26
- exact hM2 z hz <| mem_range.mpr ⟨i, rfl⟩
27
- · obtain ⟨Q, hQ1, hQ2⟩ := h K hK
28
- obtain ⟨M, hM⟩ := hQ1.isBounded.subset_closedBall 0
29
- refine ⟨M ⊔ 1 , by simp, fun z hz y => ?_⟩
30
- rintro ⟨i, rfl⟩
31
- have := hM (hQ2 i hz)
32
- simp at this
33
- simp [this]
34
-
35
18
lemma UniformlyBoundedOn.deriv (h1 : UniformlyBoundedOn F U) (hU : IsOpen U)
36
- (h2 : ∀ i, DifferentiableOn ℂ (F i) U) :
37
- UniformlyBoundedOn (deriv ∘ F) U := by
19
+ (h2 : ∀ i, DifferentiableOn ℂ (F i) U) : UniformlyBoundedOn (deriv ∘ F) U := by
38
20
rintro K ⟨hK1, hK2⟩
39
21
obtain ⟨δ, hδ, h⟩ := hK2.exists_cthickening_subset_open hU hK1
40
22
have e1 : cthickening δ K ∈ compacts U :=
@@ -51,29 +33,24 @@ lemma UniformlyBoundedOn.deriv (h1 : UniformlyBoundedOn F U) (hU : IsOpen U)
51
33
sphere_subset_closedBall.trans (closedBall_subset_cthickening hx δ) hz
52
34
simpa using hM (hQ2 i this)
53
35
54
- lemma UniformlyBoundedOn.equicontinuousOn
55
- (h1 : UniformlyBoundedOn F U)
56
- (hU : IsOpen U)
57
- (h2 : ∀ (i : ι), DifferentiableOn ℂ (F i) U)
58
- (hK : K ∈ compacts U) :
59
- EquicontinuousOn F K := by
36
+ lemma UniformlyBoundedOn.equicontinuousOn (h1 : UniformlyBoundedOn F U) (hU : IsOpen U)
37
+ (h2 : ∀ i, DifferentiableOn ℂ (F i) U) (hK : K ∈ compacts U) : EquicontinuousOn F K := by
60
38
apply (equicontinuous_restrict_iff _).mp
61
- have key := h1.deriv hU h2
62
39
rintro ⟨z, hz⟩
63
40
obtain ⟨δ, hδ, h⟩ := nhds_basis_closedBall.mem_iff.1 (hU.mem_nhds (hK.1 hz))
64
- have : ∃ M > 0 , ∀ x ∈ closedBall z δ, ∀ i, _root_.deriv (F i) x ∈ closedBall 0 M := by
65
- rw [← uniformlyBoundedOn''_iff_uniformlyBoundedOn] at key
66
- obtain ⟨m, hm, h⟩ := key (closedBall z δ) ⟨h, isCompact_closedBall _ _⟩
67
- exact ⟨m, hm, fun x hx i => h x hx ⟨i, rfl⟩⟩
41
+ have : ∃ M > 0 , ∀ i, MapsTo (_root_.deriv (F i)) (closedBall z δ) (closedBall 0 M) := by
42
+ obtain ⟨Q, hQ1, hQ2⟩ := h1.deriv hU h2 (closedBall z δ) ⟨h, isCompact_closedBall _ _⟩
43
+ obtain ⟨M, hM⟩ := hQ1.isBounded.subset_closedBall 0
44
+ refine ⟨M ⊔ 1 , by simp, fun i => ?_⟩
45
+ exact ((hQ2 i).mono_right hM).mono_right <| closedBall_subset_closedBall le_sup_left
68
46
obtain ⟨M, hMp, hM⟩ := this
69
47
rw [equicontinuousAt_iff]
70
48
rintro ε hε
71
49
refine ⟨δ ⊓ ε / M, gt_iff_lt.2 (lt_inf_iff.2 ⟨hδ, div_pos hε hMp⟩), λ w hw i => ?_⟩
72
50
simp
73
51
have e1 : ∀ x ∈ closedBall z δ, DifferentiableAt ℂ (F i) x :=
74
52
λ x hx => (h2 i).differentiableAt (hU.mem_nhds (h hx))
75
- have e2 : ∀ x ∈ closedBall z δ, ‖_root_.deriv (F i) x‖ ≤ M :=
76
- λ x hx => by simpa using hM x hx i
53
+ have e2 : ∀ x ∈ closedBall z δ, ‖_root_.deriv (F i) x‖ ≤ M := by simpa [MapsTo] using hM i
77
54
have e3 : z ∈ closedBall z δ := mem_closedBall_self hδ.le
78
55
have e4 : w.1 ∈ closedBall z δ := by simpa using (lt_inf_iff.1 hw).1 .le
79
56
rw [dist_eq_norm]
0 commit comments