Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 10.8 — partitions of unity

Proved
Rudin.ch10_partition_of_unity

by Lucas · Sep 12, 2026 · Mathlib 0df444a (Lean v4.33.1)

analysistopology

Let KKK be a compact subset of Rn\mathbb{R}^nRn covered by open sets VαV_\alphaVα​. Then there are finitely many continuous functions ψ1,…,ψs\psi_1,\dots,\psi_sψ1​,…,ψs​ with compact support, each supported in some VαV_\alphaVα​, with ψj≥0\psi_j \ge 0ψj​≥0, ∑jψj=1\sum_j \psi_j = 1∑j​ψj​=1 on KKK, and ∑jψj≤1\sum_j \psi_j \le 1∑j​ψj​≤1 everywhere.

Preamble
import Mathlib
import Definitions.Def_Rudin_ch10_forms

open Filter Topology MeasureTheory
Formal statement
namespace Rudin

/-- Rudin, Theorem 10.8 (partitions of unity): if `K` is a compact subset of `ℝⁿ` covered by
open sets `V i`, there are finitely many continuous functions `ψ j` with compact support, each
supported in one of the `V i`, with `0 ≤ ψ j`, `∑ ψ j = 1` on `K` and `∑ ψ j ≤ 1`
everywhere. -/
theorem ch10_partition_of_unity (n : ℕ) (K : Set (Fin n → ℝ)) (hK : IsCompact K)
    (ι : Type) (V : ι → Set (Fin n → ℝ)) (hV : ∀ i, IsOpen (V i)) (hcover : K ⊆ ⋃ i, V i) :
    ∃ (s : ℕ) (ψ : Fin s → (Fin n → ℝ) → ℝ) (idx : Fin s → ι),
      (∀ j, Continuous (ψ j)) ∧ (∀ j, ∀ x, 0 ≤ ψ j x) ∧
      (∀ j, HasCompactSupport (ψ j)) ∧ (∀ j, tsupport (ψ j) ⊆ V (idx j)) ∧
      (∀ x ∈ K, ∑ j, ψ j x = 1) ∧ (∀ x, ∑ j, ψ j x ≤ 1) := by sorry

end Rudin
Source
Walter Rudin, Principles of Mathematical Analysis, 3rd edition, McGraw-Hill, 1976, Chapter 10, p. 251, Theorem 10.8
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic)

Let n∈Nn \in \mathbb{N}n∈N, let K⊆RnK \subseteq \mathbb{R}^nK⊆Rn be compact, let ι\iotaι be an arbitrary index type in the lowest universe and V:ι→P(Rn)V : \iota \to \mathcal{P}(\mathbb{R}^n)V:ι→P(Rn) a family of open sets with K⊆⋃iViK \subseteq \bigcup_i V_iK⊆⋃i​Vi​. Then there exist a natural number sss, functions ψ0,…,ψs−1:Rn→R\psi_0,\dots,\psi_{s-1} : \mathbb{R}^n\to\mathbb{R}ψ0​,…,ψs−1​:Rn→R, and an assignment idx:{0,…,s−1}→ι\mathrm{idx} : \{0,\dots,s-1\} \to \iotaidx:{0,…,s−1}→ι, such that:

  • each ψj\psi_jψj​ is continuous on all of Rn\mathbb{R}^nRn;
  • ψj(x)≥0\psi_j(x) \ge 0ψj​(x)≥0 for every jjj and every xxx;
  • each ψj\psi_jψj​ has compact support;
  • the closed support of ψj\psi_jψj​ is contained in Vidx(j)V_{\mathrm{idx}(j)}Vidx(j)​;
  • ∑jψj(x)=1\sum_{j} \psi_j(x) = 1∑j​ψj​(x)=1 for every x∈Kx \in Kx∈K;
  • ∑jψj(x)≤1\sum_{j} \psi_j(x) \le 1∑j​ψj​(x)≤1 for every x∈Rnx \in \mathbb{R}^nx∈Rn.

The family is finite (indexed by {0,…,s−1}\{0,\dots,s-1\}{0,…,s−1}), and s=0s = 0s=0 is allowed — which can only occur when KKK is empty. Smoothness of the ψj\psi_jψj​ is not asserted, only continuity.

Human review
  • Endorsed by Shuze Chen · Sep 14, 2026

  • Endorsed by Community (Bot) · Sep 14, 2026

  • Endorsed by Lucas · Sep 14, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, licensed under Apache 2.0.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTermsJoin SlackJoin Zulip© 2026 Prove2Me