@@ -130,11 +130,16 @@ variable [PseudoMetricSpace β]
130130noncomputable instance [BoundedSpace β] : PseudoMetricSpace (α →ᵤ β) :=
131131 PseudoEMetricSpace.toPseudoMetricSpaceOfDist
132132 (fun f g ↦ ⨆ x, dist (toFun f x) (toFun g x))
133- (fun _ _ ↦ by
134- have := BoundedSpace.bounded_univ (α := β) |>.ediam_ne_top.lt_top
135- refine (iSup_le fun x ↦ EMetric.edist_le_diam_of_mem ?_ ?_).trans_lt this |>.ne
136- all_goals trivial)
137- (fun _ _ ↦ by simp [edist_def, ENNReal.toReal_iSup (fun _ ↦ edist_ne_top _ _), dist_edist])
133+ (fun _ _ ↦ Real.iSup_nonneg fun i ↦ dist_nonneg)
134+ fun f g ↦ by
135+ cases isEmpty_or_nonempty α
136+ · simp [edist_def]
137+ have : BddAbove <| .range fun x ↦ dist (toFun f x) (toFun g x) := by
138+ use (EMetric.diam (.univ : Set β)).toReal
139+ simp +contextual [mem_upperBounds, eq_comm (a := dist _ _), ← edist_dist,
140+ ← ENNReal.ofReal_le_iff_le_toReal BoundedSpace.bounded_univ.ediam_ne_top,
141+ EMetric.edist_le_diam_of_mem]
142+ exact ENNReal.eq_of_forall_le_nnreal_iff fun r ↦ by simp [edist_def, ciSup_le_iff this]
138143
139144lemma dist_def [BoundedSpace β] (f g : α →ᵤ β) :
140145 dist f g = ⨆ x, dist (toFun f x) (toFun g x) :=
@@ -279,17 +284,18 @@ variable [Finite 𝔖] [PseudoMetricSpace β]
279284
280285noncomputable instance [BoundedSpace β] : PseudoMetricSpace (α →ᵤ[𝔖] β) :=
281286 PseudoEMetricSpace.toPseudoMetricSpaceOfDist
282- (fun f g ↦ ⨆ x ∈ ⋃₀ 𝔖, dist (toFun 𝔖 f x) (toFun 𝔖 g x))
283- (fun _ _ ↦ by
284- have := BoundedSpace.bounded_univ (α := β) |>.ediam_ne_top.lt_top
285- exact (iSup₂_le fun x _ ↦ EMetric.edist_le_diam_of_mem (Set.mem_univ _) (Set.mem_univ _))
286- |>.trans_lt this |>.ne)
287- (fun _ _ ↦ by
288- simp only [dist_edist, edist_def, ← ENNReal.toReal_iSup (fun _ ↦ edist_ne_top _ _)]
289- rw [ENNReal.toReal_iSup]
290- have := BoundedSpace.bounded_univ (α := β) |>.ediam_ne_top.lt_top
291- refine fun x ↦ lt_of_le_of_lt (iSup_le fun hx ↦ ?_) this |>.ne
292- exact EMetric.edist_le_diam_of_mem (Set.mem_univ _) (Set.mem_univ _))
287+ (fun f g ↦ ⨆ x : ⋃₀ 𝔖, dist (toFun 𝔖 f x) (toFun 𝔖 g x))
288+ (fun _ _ ↦ Real.iSup_nonneg fun i ↦ dist_nonneg)
289+ fun f g ↦ by
290+ cases isEmpty_or_nonempty (⋃₀ 𝔖)
291+ · simp_all [edist_def]
292+ have : BddAbove (.range fun x : ⋃₀ 𝔖 ↦ dist (toFun 𝔖 f x) (toFun 𝔖 g x)) := by
293+ use (EMetric.diam (.univ : Set β)).toReal
294+ simp +contextual [mem_upperBounds, eq_comm (a := dist _ _), ← edist_dist,
295+ ← ENNReal.ofReal_le_iff_le_toReal BoundedSpace.bounded_univ.ediam_ne_top,
296+ EMetric.edist_le_diam_of_mem]
297+ refine ENNReal.eq_of_forall_le_nnreal_iff fun r ↦ ?_
298+ simp [edist_def, ciSup_le_iff this]
293299
294300noncomputable instance [BoundedSpace β] : BoundedSpace (α →ᵤ[𝔖] β) where
295301 bounded_univ := by
0 commit comments