Continuous partition of unity #
In this file we define PartitionOfUnity (ι X : Type*) [TopologicalSpace X] (s : Set X := univ)
to be a continuous partition of unity on s indexed by ι. More precisely,
f : PartitionOfUnity ι X s is a collection of continuous functions f i : C(X, ℝ), i : ι,
such that
- the supports of
f iform a locally finite family of sets; - each
f iis nonnegative; ∑ᶠ i, f i x = 1for allx ∈ s;∑ᶠ i, f i x ≤ 1for allx : X.
In the case s = univ the last assumption follows from the previous one but it is convenient to
have this assumption in the case s ≠ univ.
We also define a bump function covering,
BumpCovering (ι X : Type*) [TopologicalSpace X] (s : Set X := univ), to be a collection of
functions f i : C(X, ℝ), i : ι, such that
- the supports of
f iform a locally finite family of sets; - each
f iis nonnegative; - for each
x ∈ sthere existsi : ιsuch thatf i y = 1in a neighborhood ofx.
The term is motivated by the smooth case.
If f is a bump function covering indexed by a linearly ordered type, then
g i x = f i x * ∏ᶠ j < i, (1 - f j x) is a partition of unity, see
BumpCovering.toPartitionOfUnity. Note that only finitely many terms 1 - f j x are not equal
to one, so this product is well-defined.
Note that g i x = ∏ᶠ j ≤ i, (1 - f j x) - ∏ᶠ j < i, (1 - f j x), so most terms in the sum
∑ᶠ i, g i x cancel, and we get ∑ᶠ i, g i x = 1 - ∏ᶠ i, (1 - f i x), and the latter product
equals zero because one of f i x is equal to one.
We say that a partition of unity or a bump function covering f is subordinate to a family of
sets U i, i : ι, if the closure of the support of each f i is included in U i. We use
Urysohn's Lemma to prove that a locally finite open covering of a normal topological space admits a
subordinate bump function covering (hence, a subordinate partition of unity), see
BumpCovering.exists_isSubordinate_of_locallyFinite. If X is a paracompact space, then any
open covering admits a locally finite refinement, hence it admits a subordinate bump function
covering and a subordinate partition of unity, see BumpCovering.exists_isSubordinate.
We also provide two slightly more general versions of these lemmas,
BumpCovering.exists_isSubordinate_of_locallyFinite_of_prop and
BumpCovering.exists_isSubordinate_of_prop, to be used later in the construction of a smooth
partition of unity.
Implementation notes #
Most (if not all) books only define a partition of unity of the whole space. However, quite a few
proofs only deal with f i such that tsupport (f i) meets a specific closed subset, and
it is easier to formalize these proofs if we don't have other functions right away.
We use WellOrderingRel j i instead of j < i in the definition of
BumpCovering.toPartitionOfUnity to avoid a [LinearOrder ι] assumption. While
WellOrderingRel j i is a well order, not only a strict linear order, we never use this property.
Tags #
partition of unity, bump function, Urysohn's lemma, normal space, paracompact space
A continuous partition of unity on a set s : Set X is a collection of continuous functions
f i such that
- the supports of
f iform a locally finite family of sets, i.e., for every pointx : Xthere exists a neighborhoodU ∋ xsuch that all but finitely many functionsf iare zero onU; - the functions
f iare nonnegative; - the sum
∑ᶠ i, f i xis equal to one for everyx ∈ sand is less than or equal to one otherwise.
If X is a normal paracompact space, then PartitionOfUnity.exists_isSubordinate guarantees
that for every open covering U : Set (Set X) of s there exists a partition of unity that is
subordinate to U.
The collection of continuous functions underlying this partition of unity
- locallyFinite' : LocallyFinite fun (i : ι) => Function.support ⇑(self.toFun i)
the supports of the underlying functions are a locally finite family of sets
the functions are non-negative
the functions sum up to one on
sthe functions sum up to at most one, globally
Instances For
A BumpCovering ι X s is an indexed family of functions f i, i : ι, such that
- the supports of
f iform a locally finite family of sets, i.e., for every pointx : Xthere exists a neighborhoodU ∋ xsuch that all but finitely many functionsf iare zero onU; - for all
i,xwe have0 ≤ f i x ≤ 1; - each point
x ∈ sbelongs to the interior of{x | f i x = 1}for somei.
One of the main use cases for a BumpCovering is to define a PartitionOfUnity, see
BumpCovering.toPartitionOfUnity, but some proofs can directly use a BumpCovering instead of
a PartitionOfUnity.
If X is a normal paracompact space, then BumpCovering.exists_isSubordinate guarantees that for
every open covering U : Set (Set X) of s there exists a BumpCovering of s that is
subordinate to U.
The collections of continuous functions underlying this bump covering
- locallyFinite' : LocallyFinite fun (i : ι) => Function.support ⇑(self.toFun i)
the supports of the underlying functions are a locally finite family of sets
the functions are non-negative
the functions are each at most one
Each point
x ∈ sbelongs to the interior of{x | f i x = 1}for somei.
Instances For
Equations
- PartitionOfUnity.instFunLikeContinuousMapReal = { coe := PartitionOfUnity.toFun, coe_injective' := ⋯ }
If f is a partition of unity on s, then for every x ∈ s there exists an index i such
that 0 < f i x.
The support of a partition of unity at a point x₀ as a Finset.
This is the set of i : ι such that x₀ ∈ support f i, i.e. f i ≠ x₀.
Equations
- ρ.finsupport x₀ = ⋯.toFinset
Instances For
The tsupports of a partition of unity are locally finite.
The tsupport of a partition of unity at a point x₀ as a Finset.
This is the set of i : ι such that x₀ ∈ tsupport f i.
Equations
- ρ.fintsupport x₀ = ⋯.toFinset
Instances For
If f is a partition of unity on s : Set X and g : X → E is continuous at every point of
the topological support of some f i, then fun x ↦ f i x • g x is continuous on the whole space.
If f is a partition of unity on a set s : Set X and g : ι → X → E is a family of functions
such that each g i is continuous at every point of the topological support of f i, then the sum
fun x ↦ ∑ᶠ i, f i x • g i x is continuous on the whole space.
A partition of unity f i is subordinate to a family of sets U i indexed by the same type if
for each i the closure of the support of f i is a subset of U i.
Equations
- f.IsSubordinate U = ∀ (i : ι), tsupport ⇑(f i) ⊆ U i
Instances For
Alias of PartitionOfUnity.exists_finset_nhds'.
Alias of PartitionOfUnity.exists_finset_nhds.
Alias of PartitionOfUnity.exists_finset_nhds_support_subset.
If f is a partition of unity that is subordinate to a family of open sets U i and
g : ι → X → E is a family of functions such that each g i is continuous on U i, then the sum
fun x ↦ ∑ᶠ i, f i x • g i x is a continuous function.
Equations
- BumpCovering.instFunLikeContinuousMapReal = { coe := BumpCovering.toFun, coe_injective' := ⋯ }
A BumpCovering that consists of a single function, uniformly equal to one, defined as an
example for Inhabited instance.
Equations
- BumpCovering.single i s = { toFun := Pi.single i 1, locallyFinite' := ⋯, nonneg' := ⋯, le_one' := ⋯, eventuallyEq_one' := ⋯ }
Instances For
Equations
- BumpCovering.instInhabited = { default := BumpCovering.single default s }
A collection of bump functions f i is subordinate to a family of sets U i indexed by the
same type if for each i the closure of the support of f i is a subset of U i.
Equations
- f.IsSubordinate U = ∀ (i : ι), tsupport ⇑(f i) ⊆ U i
Instances For
If X is a normal topological space and U i, i : ι, is a locally finite open covering of a
closed set s, then there exists a BumpCovering ι X s that is subordinate to U. If X is a
paracompact space, then the assumption hf : LocallyFinite U can be omitted, see
BumpCovering.exists_isSubordinate. This version assumes that p : (X → ℝ) → Prop is a predicate
that satisfies Urysohn's lemma, and provides a BumpCovering such that each function of the
covering satisfies p.
If X is a normal topological space and U i, i : ι, is a locally finite open covering of a
closed set s, then there exists a BumpCovering ι X s that is subordinate to U. If X is a
paracompact space, then the assumption hf : LocallyFinite U can be omitted, see
BumpCovering.exists_isSubordinate.
If X is a paracompact normal topological space and U is an open covering of a closed set
s, then there exists a BumpCovering ι X s that is subordinate to U. This version assumes that
p : (X → ℝ) → Prop is a predicate that satisfies Urysohn's lemma, and provides a
BumpCovering such that each function of the covering satisfies p.
If X is a paracompact normal topological space and U is an open covering of a closed set
s, then there exists a BumpCovering ι X s that is subordinate to U.
If X is a locally compact T2 topological space and U i, i : ι, is a locally finite open
covering of a compact set s, then there exists a BumpCovering ι X s that is subordinate to U.
If X is a paracompact space, then the assumption hf : LocallyFinite U can be omitted, see
BumpCovering.exists_isSubordinate. This version assumes that p : (X → ℝ) → Prop is a predicate
that satisfies Urysohn's lemma, and provides a BumpCovering such that each function of the
covering satisfies p.
If X is a normal topological space and U i, i : ι, is a locally finite open covering of a
closed set s, then there exists a BumpCovering ι X s that is subordinate to U. If X is a
paracompact space, then the assumption hf : LocallyFinite U can be omitted, see
BumpCovering.exists_isSubordinate.
Index of a bump function such that fs i =ᶠ[𝓝 x] 1.
Instances For
Partition of unity defined by a BumpCovering. We use this auxiliary definition to prove some
properties of the new family of functions before bundling it into a PartitionOfUnity. Do not use
this definition, use BumpCovering.toPartitionOfUnity instead.
The partition of unity is given by the formula g i x = f i x * ∏ᶠ j < i, (1 - f j x). In other
words, g i x = ∏ᶠ j < i, (1 - f j x) - ∏ᶠ j ≤ i, (1 - f j x), so
∑ᶠ i, g i x = 1 - ∏ᶠ j, (1 - f j x). If x ∈ s, then one of f j x equals one, hence the product
of 1 - f j x vanishes, and ∑ᶠ i, g i x = 1.
In order to avoid an assumption LinearOrder ι, we use WellOrderingRel instead of (<).
Instances For
The partition of unity defined by a BumpCovering.
The partition of unity is given by the formula g i x = f i x * ∏ᶠ j < i, (1 - f j x). In other
words, g i x = ∏ᶠ j < i, (1 - f j x) - ∏ᶠ j ≤ i, (1 - f j x), so
∑ᶠ i, g i x = 1 - ∏ᶠ j, (1 - f j x). If x ∈ s, then one of f j x equals one, hence the product
of 1 - f j x vanishes, and ∑ᶠ i, g i x = 1.
In order to avoid an assumption LinearOrder ι, we use WellOrderingRel instead of (<).
Equations
Instances For
Equations
- PartitionOfUnity.instInhabited = { default := default.toPartitionOfUnity }
If X is a normal topological space and U is a locally finite open covering of a closed set
s, then there exists a PartitionOfUnity ι X s that is subordinate to U. If X is a
paracompact space, then the assumption hf : LocallyFinite U can be omitted, see
BumpCovering.exists_isSubordinate.
If X is a paracompact normal topological space and U is an open covering of a closed set
s, then there exists a PartitionOfUnity ι X s that is subordinate to U.
If X is a locally compact T2 topological space and U is a locally finite open covering of a
compact set s, then there exists a PartitionOfUnity ι X s that is subordinate to U.
A variation of Urysohn's lemma.
In a locally compact T2 space X, for a compact set t and a finite family of open sets {s i}_i
such that t ⊆ ⋃ i, s i, there is a family of compactly supported continuous functions {f i}_i
supported in s i, ∑ i, f i x = 1 on t and 0 ≤ f i x ≤ 1.