Adapting Families of Maps to Open Covers

9.2. A Lipschitz Partition of Unity🔗

The given r_\alpha are merely continuous, but the coming estimate (9.4) needs weights that are Lipschitz in x. We build our own.

First trim the cover: let U^\flat_\alpha := U_\alpha if r_\alpha \not\equiv 0 and U^\flat_\alpha := \emptyset otherwise. The U^\flat_\alpha still cover X (as in the easy regime, every x has an active \alpha with r_\alpha(x) \ne 0, and then x \in U^\flat_\alpha).

Proposition 9.2.1🔗

Proposition 9.2.1. Let X be a compact metric space and \{V_\alpha\} an open cover. Then there are a finite index set A_0, functions \varpi_\alpha : X \to [0,\infty), and a constant M, such that: each \varpi_\alpha is M-Lipschitz and nonnegative; \varpi_\alpha \equiv 0 for \alpha \notin A_0; \sum_{\alpha \in A_0} \varpi_\alpha \equiv 1; and \varpi_\alpha = 0 outside V_\alpha for every \alpha.

Proof. If X = \emptyset there is nothing to prove. If some V_{\alpha_0} = X, take \varpi_{\alpha_0} \equiv 1 and all others 0. Otherwise every complement V_\alpha^{\mathrm c} is nonempty and closed. By compactness choose a finite subcover, indexed by A_0. For \alpha \in A_0 let \varphi_\alpha(x) := \operatorname{dist}(x, V_\alpha^{\mathrm c}): nonnegative, 1-Lipschitz, vanishing exactly off V_\alpha (the complement is closed), and positive on V_\alpha. The sum \Sigma := \sum_{\alpha \in A_0}\varphi_\alpha is continuous and everywhere positive (each point is in some V_\alpha, \alpha \in A_0), hence on the compact X bounded below by some m > 0 and above by some B. Set \varpi_\alpha := \varphi_\alpha / \Sigma for \alpha \in A_0 (and 0 otherwise). These are nonnegative, sum to 1, vanish off V_\alpha, and are Lipschitz: a quotient of a bounded Lipschitz function by a Lipschitz function bounded below is Lipschitz, with constant expressible in terms of the Lipschitz constants, B and m (numerator: |\varphi(x)\Sigma(y) - \varphi(y)\Sigma(x)| \le (B + B\,|A_0|)\, d(x,y) by adding and subtracting \varphi(y)\Sigma(y); denominator \ge m^2). \blacksquare

In Lean, the finite subcover, the Lipschitz quotient bound, the normalization step, and the assembled partition of unity are:

open scoped NNReal Topology open Metric namespace Submission namespace FamiliesOfMapsB01 /-- A finite subcover, in membership form. -/ lemma exists_finite_subcover_mem {ι X : Type*} [TopologicalSpace X] [CompactSpace X] (U : ι → Set X) (hUopen : ∀ α, IsOpen (U α)) (hcover : ∀ x : X, ∃ α, x ∈ U α) : ∃ sActive : Finset ι, ∀ x : X, ∃ α ∈ sActive, x ∈ U α := ι:Type u_1X:Type u_2inst✝¹:TopologicalSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[inst✝¹] (U α)hcover:∀ (x : X), ∃ α, x ∈ U α⊢ ∃ sActive, ∀ (x : X), ∃ α ∈ sActive, x ∈ U α ι:Type u_1X:Type u_2inst✝¹:TopologicalSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[inst✝¹] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhcov:Set.univ ⊆ ⋃ α, U α⊢ ∃ sActive, ∀ (x : X), ∃ α ∈ sActive, x ∈ U α ι:Type u_1X:Type u_2inst✝¹:TopologicalSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[inst✝¹] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhcov:Set.univ ⊆ ⋃ α, U αt:Finset ιht:Set.univ ⊆ ⋃ i ∈ t, U i⊢ ∃ sActive, ∀ (x : X), ∃ α ∈ sActive, x ∈ U α exact ⟨t, fun x => ι:Type u_1X:Type u_2inst✝¹:TopologicalSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[inst✝¹] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhcov:Set.univ ⊆ ⋃ α, U αt:Finset ιht:Set.univ ⊆ ⋃ i ∈ t, U ix:X⊢ ∃ α ∈ t, x ∈ U α ι:Type u_1X:Type u_2inst✝¹:TopologicalSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[inst✝¹] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhcov:Set.univ ⊆ ⋃ α, U αt:Finset ιht:Set.univ ⊆ ⋃ i ∈ t, U ix:Xthis:x ∈ ⋃ i ∈ t, U i⊢ ∃ α ∈ t, x ∈ U α; All goals completed! 🐙⟩ /- Quotient of a bounded Lipschitz function by a Lipschitz function bounded below is Lipschitz, with an explicit constant. -/ lemma abs_div_sub_div_le {X : Type*} [PseudoMetricSpace X] {f S : X → ℝ} {Lf LS B m : ℝ} (hf : ∀ x y, |f x - f y| ≤ Lf * dist x y) (hS : ∀ x y, |S x - S y| ≤ LS * dist x y) (hf0 : ∀ x, 0 ≤ f x) (hfB : ∀ x, f x ≤ B) (hSB : ∀ x, S x ≤ B) (hSm : ∀ x, m ≤ S x) (hm : 0 < m) : ∀ x y, |f x / S x - f y / S y| ≤ ((Lf * B + B * LS) / m ^ 2) * dist x y := X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < m⊢ ∀ (x y : X), |f x / S x - f y / S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y intro x X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:X⊢ |f x / S x - f y / S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y have : f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x) := X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < m⊢ ∀ (x y : X), |f x / S x - f y / S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y All goals completed! 🐙 have : abs (f x * S y - f y * S x) ≤ (Lf * B + B * LS) * dist x y := X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < m⊢ ∀ (x y : X), |f x / S x - f y / S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y exact abs_le.mpr ⟨ X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)⊢ -((Lf * B + B * LS) * dist x y) ≤ f x * S y - f y * S x All goals completed! 🐙, X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)⊢ f x * S y - f y * S x ≤ (Lf * B + B * LS) * dist x y All goals completed! 🐙 ⟩ X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x / S x - f y / S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y; X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| / |S x * S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x yX:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S x ≠ 0X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S y ≠ 0; X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| / |S x * S y| ≤ (Lf * B + B * LS) / m ^ 2 * dist x y X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| * m ^ 2 ≤ (Lf * B + B * LS) * dist x y * |S x * S y|X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 < |S x * S y|X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 < m ^ 2 X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| * m ^ 2 ≤ (Lf * B + B * LS) * dist x y * |S x * S y|X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 < |S x * S y|X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 < m ^ 2 try All goals completed! 🐙; X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| * m ^ 2 ≤ (Lf * B + B * LS) * dist x y * |S x * S y| exact mul_le_mul ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ |f x * S y - S x * f y| ≤ (Lf * B + B * LS) * dist x y All goals completed! 🐙 ) ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ m ^ 2 ≤ |S x * S y| X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ m ^ 2 ≤ S x * S y ; All goals completed! 🐙 ) ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 ≤ m ^ 2 All goals completed! 🐙 ) ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 ≤ (Lf * B + B * LS) * dist x y All goals completed! 🐙 ); X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ 0 < |S x * S y| exact abs_pos.mpr ( mul_ne_zero ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S x ≠ 0 All goals completed! 🐙 ) ( X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S y ≠ 0 All goals completed! 🐙 ) ); X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S x ≠ 0 All goals completed! 🐙; X:Type u_1inst✝:PseudoMetricSpace Xf:X → ℝS:X → ℝLf:ℝLS:ℝB:ℝm:ℝhf:∀ (x y : X), |f x - f y| ≤ Lf * dist x yhS:∀ (x y : X), |S x - S y| ≤ LS * dist x yhf0:∀ (x : X), 0 ≤ f xhfB:∀ (x : X), f x ≤ BhSB:∀ (x : X), S x ≤ BhSm:∀ (x : X), m ≤ S xhm:0 < mx:Xy:Xthis✝:f x * S y - f y * S x = (f x - f y) * S y + f y * (S y - S x)this:|f x * S y - f y * S x| ≤ (Lf * B + B * LS) * dist x y⊢ S y ≠ 0 All goals completed! 🐙 /-- Assembly step: from a finite family `φ` of `1`-Lipschitz, nonnegative, `B`-bounded, subordinate functions whose sum over `sActive` is bounded in `[m, B]` with `m > 0`, normalise to a Lipschitz partition of unity. -/ lemma lipschitz_pou_of_data {ι X : Type*} [PseudoMetricSpace X] (U : ι → Set X) (sActive : Finset ι) (φ : ι → X → ℝ) (m B : ℝ) (hm : 0 < m) (hφnn : ∀ α x, 0 ≤ φ α x) (hφlip : ∀ α, ∀ x y, |φ α x - φ α y| ≤ dist x y) (hφB : ∀ α x, φ α x ≤ B) (hφsub : ∀ α x, x ∉ U α → φ α x = 0) (hSm : ∀ x, m ≤ ∑ α ∈ sActive, φ α x) (hSB : ∀ x, ∑ α ∈ sActive, φ α x ≤ B) : ∃ (σ : ι → X → ℝ) (M : ℝ≥0), (∀ α x, 0 ≤ σ α x) ∧ (∀ x, ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α, α ∉ sActive → ∀ x, σ α x = 0) ∧ (∀ α, LipschitzWith M (σ α)) ∧ (∀ α x, x ∉ U α → σ α x = 0) := ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ B⊢ ∃ σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 classical ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α x⊢ ∃ σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S x⊢ ∃ σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 have hSlip : ∀ x y, |S x - S y| ≤ (sActive.card : ℝ) * dist x y := ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ B⊢ ∃ σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 intro x ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xx:Xy:X⊢ |S x - S y| ≤ ↑sActive.card * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xx:Xy:X⊢ |(fun x => ∑ α ∈ sActive, φ α x) x - (fun x => ∑ α ∈ sActive, φ α x) y| ≤ ↑sActive.card * dist x y; ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xx:Xy:X⊢ |∑ x_1 ∈ sActive, (φ x_1 x - φ x_1 y)| ≤ ↑sActive.card * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xx:Xy:X⊢ ∑ i ∈ sActive, |φ i x - φ i y| ≤ ↑sActive.card * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xx:Xy:X⊢ ∑ i ∈ sActive, dist x y ≤ ↑sActive.card * dist x y All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι) (x : X), 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α xι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (x : X), ∑ α ∈ sActive, (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 1ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ α ∉ sActive, ∀ (x : X), (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι), LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α)ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι), ∀ x ∉ U α, (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι) (x : X), 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x intro α ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:X⊢ 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x; ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xh:α ∈ sActive⊢ 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α xι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xh:α ∉ sActive⊢ 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xh:α ∈ sActive⊢ 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xh:α ∈ sActive⊢ 0 ≤ φ α x / S x; All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xh:α ∉ sActive⊢ 0 ≤ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (x : X), ∑ α ∈ sActive, (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 1 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yx:X⊢ ∑ α ∈ sActive, (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 1 All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ α ∉ sActive, ∀ (x : X), (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 intro α ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιhα:α ∉ sActive⊢ ∀ (x : X), (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιhα:α ∉ sActivex:X⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0; All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι), LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α) ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ι⊢ LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α) ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActive⊢ LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α)ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∉ sActive⊢ LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α) ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActive⊢ LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α) ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActivex:Xy:X⊢ dist ((fun α x => if α ∈ sActive then φ α x / S x else 0) α x) ((fun α x => if α ∈ sActive then φ α x / S x else 0) α y) ≤ ↑((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActivex:Xy:X⊢ |φ α x / S x - φ α y / S y| ≤ ↑((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActivex:Xy:XhB0:0 ≤ B⊢ |φ α x / S x - φ α y / S y| ≤ ↑((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∈ sActivex:Xy:XhB0:0 ≤ B⊢ |φ α x / S x - φ α y / S y| ≤ (1 * B + B * ↑sActive.card) / m ^ 2 * dist x y All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∉ sActive⊢ LipschitzWith ((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal ((fun α x => if α ∈ sActive then φ α x / S x else 0) α) ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∉ sActivex:Xy:X⊢ dist ((fun α x => if α ∈ sActive then φ α x / S x else 0) α x) ((fun α x => if α ∈ sActive then φ α x / S x else 0) α y) ≤ ↑((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal * dist x y ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιh:α ∉ sActivex:Xy:X⊢ 0 ≤ ↑((1 * B + B * ↑sActive.card) / m ^ 2).toNNReal * dist x y All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x y⊢ ∀ (α : ι), ∀ x ∉ U α, (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 intro α ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:X⊢ x ∉ U α → (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U α⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0; ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U αh:α ∈ sActive⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U αh:α ∉ sActive⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U αh:α ∈ sActive⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U αh:α ∈ sActive⊢ φ α x / S x = 0; All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝:PseudoMetricSpace XU:ι → Set XsActive:Finset ιφ:ι → X → ℝm:ℝB:ℝhm:0 < mhφnn:∀ (α : ι) (x : X), 0 ≤ φ α xhφlip:∀ (α : ι) (x y : X), |φ α x - φ α y| ≤ dist x yhφB:∀ (α : ι) (x : X), φ α x ≤ Bhφsub:∀ (α : ι), ∀ x ∉ U α, φ α x = 0hSm:∀ (x : X), m ≤ ∑ α ∈ sActive, φ α xhSB:∀ (x : X), ∑ α ∈ sActive, φ α x ≤ BS:X → ℝ := fun x => ∑ α ∈ sActive, φ α xhSdef:S = fun x => ∑ α ∈ sActive, φ α xhSpos:∀ (x : X), 0 < S xhSlip:∀ (x y : X), |S x - S y| ≤ ↑sActive.card * dist x yα:ιx:Xhx:x ∉ U αh:α ∉ sActive⊢ (fun α x => if α ∈ sActive then φ α x / S x else 0) α x = 0 All goals completed! 🐙 /-- **Lipschitz partition of unity subordinate to an open cover.** -/ lemma exists_lipschitz_pou {ι X : Type*} [MetricSpace X] [CompactSpace X] (U : ι → Set X) (hUopen : ∀ α, IsOpen (U α)) (hcover : ∀ x : X, ∃ α, x ∈ U α) : ∃ (sActive : Finset ι) (σ : ι → X → ℝ) (M : ℝ≥0), (∀ α x, 0 ≤ σ α x) ∧ (∀ x, ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α, α ∉ sActive → ∀ x, σ α x = 0) ∧ (∀ α, LipschitzWith M (σ α)) ∧ (∀ α x, x ∉ U α → σ α x = 0) := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U α⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 classical ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∃ α₀, U α₀ = Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:¬∃ α₀, U α₀ = Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∃ α₀, U α₀ = Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 -- Degenerate case: one set is everything; use the single indicator `1`. ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι) (x : X), 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α xι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (x : X), ∑ α ∈ {α₀}, (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 1ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ α ∉ {α₀}, ∀ (x : X), (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι), LipschitzWith 0 ((fun α => if α = α₀ then fun x => 1 else fun x => 0) α)ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι), ∀ x ∉ U α, (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι) (x : X), 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x intro α ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:X⊢ 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x; ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xh:α = α₀⊢ 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α xι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xh:¬α = α₀⊢ 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xh:α = α₀⊢ 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α xι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xh:¬α = α₀⊢ 0 ≤ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (x : X), ∑ α ∈ {α₀}, (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 1 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univx:X⊢ ∑ α ∈ {α₀}, (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 1; All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ α ∉ {α₀}, ∀ (x : X), (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 intro α ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιhα:α ∉ {α₀}⊢ ∀ (x : X), (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιhα:α ∉ {α₀}x:X⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0; have h : α ≠ α₀ := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U α⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα:ιx:Xhα₀:U α = Set.univhα:α ∉ {α}⊢ False; All goals completed! 🐙 All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι), LipschitzWith 0 ((fun α => if α = α₀ then fun x => 1 else fun x => 0) α) ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ι⊢ LipschitzWith 0 ((fun α => if α = α₀ then fun x => 1 else fun x => 0) α); ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ι⊢ LipschitzWith 0 (if α = α₀ then fun x => 1 else fun x => 0); ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιh✝:α = α₀⊢ LipschitzWith 0 fun x => 1ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιh✝:¬α = α₀⊢ LipschitzWith 0 fun x => 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιh✝:α = α₀⊢ LipschitzWith 0 fun x => 1ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιh✝:¬α = α₀⊢ LipschitzWith 0 fun x => 0 All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univ⊢ ∀ (α : ι), ∀ x ∉ U α, (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 intro α ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:X⊢ x ∉ U α → (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xhx:x ∉ U α⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0; ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xhx:x ∉ U αh:α = α₀⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xhx:x ∉ U αh:¬α = α₀⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xhx:x ∉ U αh:α = α₀⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αα₀:ιhα₀:U α₀ = Set.univα:ιx:Xhx:x ∉ U αh:¬α = α₀⊢ (fun α => if α = α₀ then fun x => 1 else fun x => 0) α x = 0 All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:¬∃ α₀, U α₀ = Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 -- Generic case: every `(U α)ᶜ` is nonempty, so `infDist · (U α)ᶜ` is positive on `U α`. `push_neg` has been deprecated. Prefer using `push Not` instead. If you'd rather continue using `push_neg` in your project, you can implement it as follows: ``` open Lean.Parser.Tactic in macro "push_neg" cfg:optConfig loc:(location)? : tactic => `(tactic| push $cfg:optConfig Not $[$loc]?) ``` ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U α⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜ⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 have hcont : Continuous (fun x => ∑ α ∈ sActive, Metric.infDist x (U α)ᶜ) := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U α⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 All goals completed! 🐙 have hpos : ∀ x, 0 < ∑ α ∈ sActive, Metric.infDist x (U α)ᶜ := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U α⊢ ∃ sActive σ M, (∀ (α : ι) (x : X), 0 ≤ σ α x) ∧ (∀ (x : X), ∑ α ∈ sActive, σ α x = 1) ∧ (∀ α ∉ sActive, ∀ (x : X), σ α x = 0) ∧ (∀ (α : ι), LipschitzWith M (σ α)) ∧ ∀ (α : ι), ∀ x ∉ U α, σ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜx:X⊢ 0 < ∑ α ∈ sActive, infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜx:Xα:ιhα:α ∈ sActivehxα:x ∈ U α⊢ 0 < ∑ α ∈ sActive, infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜx:Xα:ιhα:α ∈ sActivehxα:x ∈ U α⊢ 0 < infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜx:Xα:ιhα:α ∈ sActivehxα:x ∈ U α⊢ x ∉ (U α)ᶜ All goals completed! 🐙 obtain ⟨m, hm_pos, hm⟩ : ∃ m, 0 < m ∧ ∀ x, m ≤ ∑ α ∈ sActive, Metric.infDist x (U α)ᶜ := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜ⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜhX:IsEmpty X⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜhX:Nonempty X⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜhX:IsEmpty X⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜhX:Nonempty X⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜhX:Nonempty Xx₀:Xleft✝:x₀ ∈ Set.univhx₀:IsMinOn (fun x => ∑ α ∈ sActive, infDist x (U α)ᶜ) Set.univ x₀⊢ ∃ m, 0 < m ∧ ∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ All goals completed! 🐙 obtain ⟨B, hB⟩ : ∃ B, ∀ x, ∑ α ∈ sActive, Metric.infDist x (U α)ᶜ ≤ B := ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ⊢ ∃ B, ∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:B ∈ upperBounds (Set.range fun x => ∑ α ∈ sActive, infDist x (U α)ᶜ)⊢ ∃ B, ∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ B All goals completed! 🐙 obtain ⟨σ, M, h1, h2, h3, h4, h5⟩ := lipschitz_pou_of_data U sActive φ m B hm_pos (fun α x => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:X⊢ 0 ≤ φ α x ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∈ sActive⊢ 0 ≤ φ α xι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∉ sActive⊢ 0 ≤ φ α x ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∈ sActive⊢ 0 ≤ φ α xι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∉ sActive⊢ 0 ≤ φ α x All goals completed! 🐙) (fun α x y => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:X⊢ |φ α x - φ α y| ≤ dist x y ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∈ sActive⊢ |φ α x - φ α y| ≤ dist x yι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∉ sActive⊢ |φ α x - φ α y| ≤ dist x y ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∈ sActive⊢ |φ α x - φ α y| ≤ dist x y ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∈ sActive⊢ |infDist x (U α)ᶜ - infDist y (U α)ᶜ| ≤ dist x y ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∈ sActiveh:dist (infDist x (U α)ᶜ) (infDist y (U α)ᶜ) ≤ ↑1 * dist x y⊢ |infDist x (U α)ᶜ - infDist y (U α)ᶜ| ≤ dist x y All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xy:Xhα:α ∉ sActive⊢ |φ α x - φ α y| ≤ dist x y All goals completed! 🐙) (fun α x => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:X⊢ φ α x ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∈ sActive⊢ φ α x ≤ Bι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∉ sActive⊢ φ α x ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∈ sActive⊢ φ α x ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∈ sActive⊢ infDist x (U α)ᶜ ≤ B All goals completed! 🐙 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∉ sActive⊢ φ α x ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhα:α ∉ sActive⊢ 0 ≤ B All goals completed! 🐙) (fun α x hx => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U α⊢ φ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∈ sActive⊢ φ α x = 0ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∉ sActive⊢ φ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∈ sActive⊢ φ α x = 0 ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∈ sActive⊢ infDist x (U α)ᶜ = 0 exact Metric.infDist_zero_of_mem (ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∈ sActive⊢ x ∈ (U α)ᶜ All goals completed! 🐙) ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bα:ιx:Xhx:x ∉ U αhα:α ∉ sActive⊢ φ α x = 0 All goals completed! 🐙) (fun x => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bx:X⊢ m ≤ ∑ α ∈ sActive, φ α x ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bx:X⊢ m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜ; All goals completed! 🐙) (fun x => ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bx:X⊢ ∑ α ∈ sActive, φ α x ≤ B ι:Type u_1X:Type u_2inst✝¹:MetricSpace Xinst✝:CompactSpace XU:ι → Set XhUopen:∀ (α : ι), IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] (U α)hcover:∀ (x : X), ∃ α, x ∈ U αhuniv:∀ (α₀ : ι), U α₀ ≠ Set.univsActive:Finset ιhsActive:∀ (x : X), ∃ α ∈ sActive, x ∈ U αφ:ι → X → ℝ := fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hφdef:φ = fun α x => if α ∈ sActive then infDist x (U α)ᶜ else 0hsum:∀ (x : X), ∑ α ∈ sActive, φ α x = ∑ α ∈ sActive, infDist x (U α)ᶜhcont:Continuous[PseudoMetricSpace.toUniformSpace.toTopologicalSpace, _] fun x => ∑ α ∈ sActive, infDist x (U α)ᶜhpos:∀ (x : X), 0 < ∑ α ∈ sActive, infDist x (U α)ᶜm:ℝhm_pos:0 < mhm:∀ (x : X), m ≤ ∑ α ∈ sActive, infDist x (U α)ᶜB:ℝhB:∀ (x : X), ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ Bx:X⊢ ∑ α ∈ sActive, infDist x (U α)ᶜ ≤ B; All goals completed! 🐙) All goals completed! 🐙 end FamiliesOfMapsB01 end Submission

Apply this to \{U^\flat_\alpha\}, obtaining a finite set A_0 of indices, weights \varpi_\alpha, and a Lipschitz constant M. By construction, \varpi_\alpha \equiv 0 whenever r_\alpha \equiv 0 (its trimmed set is empty), and \varpi_\alpha = 0 outside U_\alpha.

(The trimming of the cover — U^\flat_\alpha := \emptyset when r_\alpha \equiv 0 — happens at the call site, in the main construction.)